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

use Data::DPath qw(dpath);
<br>
use JSON::Path;
<br><br>my $data = { map { $_ =&gt; {map {$I<< =&gt;[1..4]} 1..20} } &quot;a&quot;..&quot;z&quot; };
<br><br>timethese(-0.25, {
<br><br>dseek =&gt; sub { $ds = Data::Seek-&gt;new(data=&gt;$data); $ds-&gt;search(&quot;j.1.\@&quot;)-&gt;data }, 
<br><br>dseek >>cacheobj=&gt;sub{ state $ds=Data::Seek-&gt;new(data=&gt;$data); $ds-&gt;search(&quot;j.1.\@&quot;)-&gt;data },
<br><br>dpath=&gt;sub{ dpath(&quot;/j/1/I<< &quot;)-&gt;match($data) }, 
<br><br>jpath=&gt;sub{ JSON::Path-&gt;new(q[$.j.1.[ >>]])-&gt;values($data) },
<br>
});
<br>
=head2 #

<br><br>###
<br>
Benchmark: running dpath, dseek, dseek_cacheobj, jpath for at least 0.25 CPU seconds...
<br><br>dpath:  1 wallclock secs ( 0.27 usr +  0.00 sys =  0.27 CPU) @ 8292.59/s (n=2239)
<br><br>(warning: too few iterations for a reliable count)
<br><br>dseek:  1 wallclock secs ( 0.29 usr +  0.00 sys =  0.29 CPU) @ 37.93/s (n=11)
<br><br>(warning: too few iterations for a reliable count)
<br>
dseek_cacheobj:  0 wallclock secs ( 0.33 usr +  0.00 sys =  0.33 CPU) @ 42.42/s (n=14)
<br><br>(warning: too few iterations for a reliable count)
<br><br>jpath:  0 wallclock secs ( 0.27 usr +  0.00 sys =  0.27 CPU) @ 11711.11/s (n=3162)
<br><br>(warning: too few iterations for a reliable count)
<br>
=head2 #

<br><br>Also: 1) the syntax is rather inconsistent: ':n' for array index access, but '.@' (instead of ':@') for grabbing all elements. 2) currently cannot select subtree (must always select leaf node).
<br><br>As alternatives, I recommend the much simpler JSON::Path, or the more powerful Data::DPath.
<br>


=item L<Games::2048>

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

My favorite 2048 implementation (it's text-mode, written in Perl, uses my module Color::ANSI::Util, and what else... oh yeah, it's the only implementation where I've reached 2048 :-) ).
<br><br>One tip: enlarge the fonts of your terminal emulator (e.g. Ctrl-+ on Konsole) until it's big and convenient enough.


=item L<App::D>

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

As an alternative, one can also do:
<br><br>alias d='
<br><br>TZ=UTC date; # show date in UTC
<br><br>date       ; # show date in local timezone
<br><br>cal -3     ; # show monthly calendar for curmon-1, curmon, curmon+1
<br>
'
<br><br>


=item L<Getopt::Long>

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

Having worked for quite some time with option processing and several other similar modules, I have to say that most of the time you probably want to use Getopt::Long instead of the other alternatives. Or at least pick the alternatives which are based...
<br><br>Most other modules that reinvent option parsing either don't bother to do short option bundling (-abc instead of -a -b -c), or abbreviation (--long-o instead --long-option-name), or the choice to (dis)allow mix-mashing options and arguments, ...
<br>


=item L<Text::Table::Tiny>

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

Very fast, several times faster than Text::TabularDisplay or Text::Table (and many times faster than the other slower table-generator modules). It uses sprintf() to format a whole row instead of formatting each cell separately using sprintf() and joi...
<br><br>I did a comparison in: <a href="http://blogs.perl.org/users/steven_haryanto/2014/07/benchmarking-several-ascii-table-generator-modules.html" rel="nofollow">blogs.perl.org/users/steven_haryanto/...</a>


=item L<Mo>

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

A great alternative when Moo is a bit too much for you. Useful for scripts that must start really fast. Mind you, Moo loads about 5K lines of code and more than a dozen files, all of which takes +- 10ms on my computer. Mo on the other hand is only a ...
<br><br>I use this for a very lightweight parent class. A richer subclass then uses Moo.
<br><br>Isn't it great that we have the choices and upgrade path from the very minimal Mo, to Moo for normal cases, to Moos and Moose for even richer (but heavier) alternatives. Truly TIMTOWTDI!
<br>


=item L<App::ChangeShebang>

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

Given that the name of this module/app is &quot;change shebang&quot; (instead of &quot;change shebang to samedir perl&quot;) perhaps this app can be made more generic? For example, I've had to change all shebangs from &quot;#!/usr/bin/env perl&quot; ...
<br>


=item L<Hash::Ordered>

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

Overall looks ok, with the exception that it does not look and feel like a regular Perl hash at all. Now someone just needs to create a tie interface on top of this :)
<br>


=item L<App::whatthecommit>

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

From the description: &quot;App::whatthecommit is just another lazy-to-lazy line command utility.&quot; I'd thought the definition of laziness would be something like 'alias gc=git commit --allow-empty-message'. This is more like hubris. Or whatever....
<br>


=item L<Opt::Imistic>

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

Very nifty for short scripts and some clever design inside (all options are stored as arrayref, but there is some overloading to make getting boolean/flag and normal scalar value convenient).
<br><br>For more &quot;proper&quot; scripts though (anything above say 20-30 lines) I'd recommend using something like Getopt::Long with a real spec. Some of the features I like in G::L not in Opt::Imistic: the ability to get --noOPT for free for fla...


=item L<Devel::STrace>

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

The doc looks promising, it really looks like it could be the &quot;strace for Perl functions&quot;, but the usage is awkward (you have to open two terminals, one for running your program and producing trace file, and another for reading this file). ...
<br><br>One alternative if you're looking for a similar module is Debug::LTrace.
<br><br>

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

=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).
<br><br>PS: Thanks to Toby Inkster for pointing this module out.
<br><br>


=item L<Text::CharWidth>

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

It's faster than Unicode::GCString-&gt;new($str)-&gt;columns, but it gives wrong answers to lots of characters, e.g. control characters like &quot;\n&quot;, &quot;\t&quot;, etc are currently assumed to have width of -1 character. You're better off wi...


Rating: 2/10

=item L<App::Options>

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

2010-10-13:
<br><br>I admit, this is not the most flexible configuration framework out there as it enforces some convention. And I don't/can't use it on every project. But it's certainly one of the easiest. You can slap a few lines of options declaration in your...
<br><br>There are still a few annoyances (I submitted them in the RT), but in general, this is a very handy module to use for lazy coders who just want to accept configuration/options from outside the code.
<br><br>&lt;shameless plug&gt;I'm trying to do somewhat the same with Config::Tree, but as of now the module is not really done yet.&lt;/shameless plug&gt;
<br><br>UPDATE 2013-08-15:
<br><br>I'm reducing the ratings from 5 to 2. I've now avoided using this module due to two lingering issue since 2010: 1) App::Options does not accept '--opt val', only '--opt=val' which is incompatible with how most command-line programs work, caus...
<br><br>I'm now using Perinci::CmdLine as replacement, but I cannot recommend it in general, as the two modules are not equivalent.


Rating: 4/10

=item L<Filesys::Notify::Simple>

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

It's rather unfortunate that currently the choice for general purpose cross-platform filesystem notification modules on CPAN falls between this module (FNS) or File::ChangeNotify (F::CN). The other CPAN modules are either OS-/framework-specific.
<br><br>FNS has a simple API but is perhaps too simple for some uses, while F::CN uses Moose and has a big startup overhead. 
<br><br>If you simply want to check from time to time whether a change has occured, you need to wrap the wait() method with alarm(). And I found on my Linux PC that I need a timeout of at least 3 seconds for this to work reliably.


Rating: 8/10

=item L<experimental>

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

Vote +1 to add this to core. Please make coding in Perl 5 relatively painless.


=item L<MIME::Lite::HTML>

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

Very straightforward to use (I needed to send a URL/webpage as HTML email with embedded images/objects). With this module I can finish my job with only a few lines of Perl in 3-5 minutes (searching for this module in CPAN takes more than that! search...
<br><br>Blackberry is having trouble displaying the resulting email though. No problem with Gmail or Thunderbird/Icedove.


=item L<Term::Size>

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

5-year old bug like RT#38594 still present. Use one of the alternate implementations like Term::Size::{Unix,Win32,ReadKey}.
<br>


Rating: 2/10

=item L<DateTime::Format::Flexible>

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

While it doesn't cover as much phrases as DateTime::Format::Natural, at least it's simpler to translate (and the dist already includes a couple of translations). BTW, I think like in the POD of DateTime::Format::Natural, it needs to list which phrase...
<br><br>


Rating: 8/10

=item L<DateTime::Format::Natural>

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

I'm giving DateTime::Format::Natural 3 stars because while it's great for English (it covers more phrases than DateTime::Format::Flexible), it's also hard to translate. Look at the source code for DateTime::Format::Natural::Lang::EN: lots of Englishi...
<br>


Rating: 6/10

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

Rating: 2/10

=item L<Spreadsheet::Perl>

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

Good documentation. All modules' documentation should similarly strive to contain at least: rationale for existence, pointer to alternatives, and task-oriented organization.


=item L<Unix::PasswdFileOps>

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

Less-than-descriptive name (module's main function seems to be sorting entries, can't be guessed from the name). No unit tests. Doesn't handle /etc/shadow. Also, it might be useful to explain why one needs to sort entries in passwd file.
<br>


Rating: 4/10

=item L<Array::Diff>

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

Yes, simple and gets the job done. Though I'm a bit curious with the implementation. If the interface is only to get number of deleted and added items (instead of positions of deletion/insertion), why depend on Algorithm::Diff (or use the name 'diff'...
<br>


=item L<DZ1>

Why do we need this uploaded to CPAN?


Rating: 2/10

=item L<Passwd::Unix>

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

No tests. No detailed error status, only true/false (yes, there is a 'warnings' parameter on constructor, but this doesn't give out warnings on all operations, only some). No locking (although there is backup, but still).
<br><br>Also, some weird choices, why use bzip2 when creating backup? Or, why still require running as root (checking $() if we are allowing custom database file location?
<br><br>Between this and Unix::ConfigFile, I'm seriously considering using Unix commands instead (useradd, userdel, gpasswd, et al).
<br><br>UPDATE 2011-04-21: I created a fork of Passwd::Unix 0.52 called Passwd::Unix::Alt instead, which add some tests and modifications. Try it out if your needs are also not met by Passwd::Unix.
<br><br>UPDATE 2012-08-30: I created a new module called Unix::Passwd::File. Try it out if your needs are also not met by Passwd::Unix.


Rating: 2/10

=item L<Unix::ConfigFile>

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

Outdated module that doesn't handle /etc/shadow and /etc/gshadow.


Rating: 2/10

=item L<lib::xi>

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

Handy module for installing dependencies. There are previous efforts, but the arrival of cpanm makes autoinstall process less tedious, so hats off also to the creator of cpanm.
<br>


=item L<Capture::Tiny::Extended>

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

Indispensable. Provides nice enhancement to Capture::Tiny (particularly the real-time teeing).
<br>


=item L<google_talk_bot>

Improperly packaged, improper POD formatting, bot messages hardcoded in script, and yes... idiotic license. Basically a &quot;trial&quot; script to bait users into consultation gig. CPAN is not a place for this kind of thing. Please try again.
<br>


Rating: 2/10

=item L<Clone::Any>

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

Using Clone::Any nowadays is more trouble than it's worth.
<br><br>First, there are annoying incompatibilities between cloning modules. Most notably Storable, which is the default cloning module if Clone is not available, I<still> doesn't support storing Regexp objects out-of-the-box after all these years.
<br><br>Second, this module has not been updated for a long time and newer alternatives like the fast Data::Clone is not recognized.
<br><br>Right now I'm replacing all code from using Clone::Any code to Data::Clone.
<br><br>


Rating: 4/10

=item L<Array::OrdHash>

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

Fun module to play with, especially for those among us infected with a bit of PHP envy (me, never!).
<br>


=item L<Bash::Completion>

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

Clean code, plugin interface simple to use, but implementation needs to be improved. For example, parsing $ENV{COMP_LINE} &amp; $ENV{COMP_POINT} into @argv is done simplistically using split(/\h+/), without regard to shell's quotes/escapes. (Getopt::...
<br>


Rating: 6/10

=item L<Bash::Completion::Plugins::cpanm>

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

Cool, except that with cpanm I often install local distribution (cpanm Foo-Bar-1.23.tar.gz). Perhaps the completion can look in the filesystem first before firing API request. Also, might be nice if there is some caching because it seems to be slow (...
<br>


Rating: 8/10

=item L<Switch>

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

With all due respect to the author, Switch is no longer necessary in 5.10+ as 5.10+ already introduced smart matching and given(). given() is superior because it doesn't introduce compile-time overhead, doesn't mess line numbers, and should be faster...
<br><br>You have been using 5.10+, right? (Since 5.8 is no longer officially supported)
<br>


=item L<Moo>

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

Last week I ported an application from Mouse (Any::Moose) to Moo. Went without a hitch (well I did replace &quot;with 'X', 'Y', 'Z';&quot; to &quot;with 'X'; with 'Y'; with 'Z';&quot; as instructed in the Moo documentation). Startup time decreased si...
<br>


=item L<Sub::StopCalls>

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

Cool idea, if a bit extreme.
<br><br>If computing a value is expensive, there's Memoize for the caller. On the callee side, you can cache the result (there's state variable in 5.10+ so it's dead simple to use).
<br><br>So I believe Sub::StopCalls is only necessary if you find the overhead of the sub call itself to be a bottleneck. And if that is the case, perhaps you should refactor the calling code anyway.


Rating: 8/10

=item L<Log::Log4perl::Tiny>

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

5 stars solely for the idea (I'm beginning to love the ::Tiny movement more and more these days). Haven't actually tried it though, but I bet many Log4perl users, me included, mostly only use easy_init. As much as Log4perl is mature and fairly optimi...


=item L<SHARYANTO::YAML::Any>

Re: Blue. I guess I shouldn't release this. I need something quick to fix our application, so this is not really something meant for public use. Will be purging this from PAUSE.
<br>


=item L<SQL::Easy>

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

IIRC, there has also previous similar attempt like this. Modules like these are not necessary, as DBI already has something equivalent (and even better): selectrow_{array,hashref,arrayref} and selectall_{array,hash}ref.
<br>


Rating: 2/10

=item L<CGI::Struct>

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

Cool, will definitely try this out the next time I write another form processing CGI script. Although the module is named CGI::, there's nothing CGI-specific about it, and that's good. So this module is basically a &quot;path-expander&quot; for hash ...
<br><br>Btw, one thing I use rather often in PHP is naming parameter as &quot;foo[]&quot; which will automatically add elements to the $_REQUEST['foo'] array. Perhaps this feature can be considered too.


=item L<DateTime::BusinessHours>

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

Just tried it. It works, but the module/dist is not in the best shape:
<br><br>* Test fails (pod-coverage, error in POD)
<br><br>* dependency on Class::MethodMaker not yet specified
<br><br>* Documentation: Synopsis contains mistake (class name is DateTime::BusinessHours not BusinessHours), the name '$testing' is not very suitable, there are typos.
<br><br>* Style-wise, method naming is &quot;joinedwords&quot;, while in DateTime families it's &quot;separated_words&quot; (not a big deal though).
<br><br>


Rating: 6/10

=item L<Bundle::Dpchrist>

Every once in a while everyone of us encounters a programmer that disregards existing reusable code and creates his/her own &quot;standard library&quot; for everything, from trimming string to creating random number to cleaning the kitchen sink. We a...
<br><br>A commendable effort, David. But there really are a lot of wheels being reinvented here.


=item L<Net::BitTorrent::File>

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

I mass download stuffs by putting a bunch of torrent files in a directory on the server and let rtorrent takes care of them. With this module I can quickly whip up a short script to calculate the total size of the downloadable files so I can be prett...
<br>


=item L<Module::CoreList>

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

Wow, I was thinking the same exact &quot;godsend&quot; too and turns out some other reviewer already said so. Very very helpful to assist deployment and pick modules to use. I personally made a couple of command-line scripts like pm-in-core or core-s...
<br>


=item L<WWW::Mechanize>

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

WWW::Mechanize is of course one of the indispensable tools for any web programmer or admin. The current problem is the proliferation of 3rd party subclasses, the functionalities of which cannot be used together. So you want a polite Mechanize which d...
<br>


=item L<Mail::Sendmail>

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

I used Mail::Sendmail and a few others &quot;older&quot; modules back from the days when it didn't support setting envelope sender different from RFC From, and when the test hung on some dead host.
<br><br>If it's still working for you, great. I personally have moved on to other modules like Email::Sender::Simple, which abstracts sending mechanism (transport) and support SMTP auth, for two. Also, many of the guide/documentation for Mail::Sendma...


Rating: 6/10

=item L<autodie>

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



( run in 2.187 seconds using v1.01-cache-2.11-cpan-804bf51f3ce )