README.pod

July 3, 2021 · View on GitHub

=pod

=encoding UTF-8

=head1 NAME

Task::Kensho - A Glimpse at an Enlightened Perl

=head1 VERSION

version 0.41

=head1 SYNOPSIS

> cpanm --interactive Task::Kensho

=head1 DESCRIPTION

=for stopwords Buddhism EPO Kenshō nonduality amongst Organisation installable WebSocket

LTask::Kensho is a list of recommended, widely used and best-in-class modules for Enlightened Perl development. CPAN is wonderful, but there are too many wheels and you have to pick and choose amongst the various competing technologies.

From Lhttp://en.wikipedia.org/wiki/Kensho:

=over 4

Kenshō (見性) (C. Wu) is a Japanese term for enlightenment experiences - most commonly used within the confines of Zen Buddhism - literally meaning "seeing one's nature"[1] or "true self."[2] It generally "refers to the realization of nonduality of subject and object."[3]

=back

The plan is for LTask::Kensho to be a rough testing ground for ideas that go into among other things the Enlightened Perl Organisation Extended Core (EPO-EC).

The modules that are bundled by LTask::Kensho are broken down into several categories and are still being considered. They are all taken from various top 100 most used perl modules lists and from discussions with various subject matter experts in the Perl Community. That said, this bundle does I follow the guidelines established for the EPO-EC for peer review via industry advisers.

Starting in 2011, LTask::Kensho split its sub-groups of modules into individually-installable tasks. Each LTask::Kensho sub-task is listed at the beginning of its section in this documentation.

When installing LTask::Kensho itself, you will be asked to install each sub-task in turn, or you can install individual tasks separately. These individual tasks will always install all their modules by default. This facilitates the ease and simplicity the distribution aims to achieve.

=head1 RECOMMENDED MODULES

=for stopwords Async Minimalistic

=head2 LTask::Kensho::Async: Async Programming

=over 4

=item L

represent an operation awaiting completion

=item LIO::Async

Asynchronous event-driven programming

=item L

Many-Core Engine for Perl providing parallel processing capabilities

=item LMojo::IOLoop

Minimalistic event loop

=item L

Multitasking and networking framework for Perl

=item LParallel::ForkManager

A simple parallel processing fork manager

=back

=for stopwords pastebin yay

=head2 LTask::Kensho::CLI: Useful Command-line Tools

=over 4

=item LApp::Ack

A grep-like text finder

=item LApp::Nopaste

Easy access to any pastebin

=item LModule::CoreList

What modules shipped with versions of perl

=item L

reply - read, eval, print, loop, yay!

=back

=head2 LTask::Kensho::Config: Config Modules

=over 4

=item LConfig::Any

Load configuration from different file formats, transparently

=item LConfig::General

Generic Config Module

=item LJSON::MaybeXS

wrapper around the most current and fast JSON backends

=back

=head2 LTask::Kensho::DBDev: Database Development

=over 4

=item LDBD::SQLite

Self Contained RDBMS in a DBI Driver

=item L

Database independent interface for Perl

=item LDBIx::Class

Extensible and flexible object <-> relational mapper.

=item LDBIx::Class::Schema::Loader

Dynamic definition of a DBIx::Class::Schema

=item LSQL::Translator

Manipulate structured data definitions (SQL and more)

=back

=head2 LTask::Kensho::Dates: Date Modules

=over 4

=item L

A date and time object

=item LTime::Moment

A fast immutable object representing a date and time

=item LTime::ParseDate

Date parsing both relative and absolute

=item LTime::Piece

A date and time object based on localtime or gmtime

=back

=head2 LTask::Kensho::Email: Email

=over 4

=item LEmail::MIME::Kit

The Swiss army chainsaw of assembling email messages

=item LEmail::Sender

A library for sending email

=item LEmail::Simple

A B email object. No, really!

=item LEmail::Stuffer

A more casual approach to creating and sending Email:: emails

=item LEmail::Valid

Check validity of Internet email addresses

=back

=for stopwords CSV XLS XLSX

=head2 LTask::Kensho::ExcelCSV: Excel/CSV

=over 4

=item LExcel::Writer::XLSX

Create spreadsheets in the XLSX format

=item LSpreadsheet::Read

Read the data from a spreadsheet

=item LSpreadsheet::WriteExcel::Simple

Create XLS documents easily

=item LText::CSV_XS

Manipulate comma-separated values (CSV)

=back

=head2 LTask::Kensho::Exceptions: Exception Handling

=over 4

=item LSyntax::Keyword::Try

try/catch/finally with full syntax support for control statements

=item LTry::Tiny

Lightweight exception handling that handles the vagaries of $@.

=item L

Make builtins and other functions die instead of returning undef on failure.

=back

=for stopwords whippitupitude Hackery Mojo

=head2 LTask::Kensho::Hackery: Script Hackery

These packages are included less for production work and more for whippitupitude. They reflect packages that people have found incredibly useful for prototyping and debugging before reducing down to a production script.

=over 4

=item LIO::All

IO::All combines all of the best Perl IO modules into a single nifty object oriented interface to greatly simplify your everyday Perl IO idioms.

=item LSmart::Comments

Comments that do more than just sit there

=item LTerm::ProgressBar::Simple

Simple progress bars

=item L

Fun one-liners with Mojo

=back

=head2 LTask::Kensho::Logging: Logging

=over 4

=item LLog::Any

Bringing loggers and listeners together.

=item LLog::Contextual

Log::Contextual is a simple interface to extensible logging. It is bundled with a really basic logger, Log::Contextual::SimpleLogger.

=item LLog::Dispatch

This module manages a set of Log::Dispatch::* output objects that can be logged to via a unified interface.

=item LLog::Log4perl

Log::Log4perl lets you remote-control and fine-tune the logging behaviour of your system from the outside. It implements the widely popular (Java-based) Log4j logging package in pure Perl.

=back

=for stopwords profiler templated tidyall validator

=head2 LTask::Kensho::ModuleDev: Module Development

=over 4

=item LCPAN::Uploader

Upload things to the CPAN

=item LCode::TidyAll

Engine for tidyall, your all-in-one code tidier and validator

=item LData::Printer

Colored pretty-print of Perl data structures and objects

=item LDevel::Confess

Include stack traces on all warnings and errors

=item LDevel::Dwarn

Combine warns and Data::Dumper::Concise

=item LDevel::NYTProf

Powerful feature-rich perl source code profiler

=item LDist::Zilla

Builds distributions of code to be uploaded to the CPAN.

=item LModern::Perl

enable all of the features of Modern Perl with one command

=item LModule::Build::Tiny

A simple, lightweight, drop-in replacement for ExtUtils::MakeMaker or Module::Build

=item LPerl::Critic

Critique Perl source code for best-practices.

=item LPerl::Tidy

Parses and beautifies perl source

=item LPod::Readme

Convert POD to README file

=item LSoftware::License

Packages that provide templated software licenses

=back

=head2 LTask::Kensho::OOP: Object Oriented Programming

=over 4

=item L

Minimalist Object Orientation (with Moose compatibility)

=item L

a postmodern object system for Perl5 (see also Task::Moose for a larger list of Moose extensions)

=item LMooseX::Aliases

easy aliasing of methods and attributes in Moose

=item LMooseX::Getopt

a Moose role for processing command line options

=item LMooseX::NonMoose

easy subclassing of non-Moose classes

=item LMooseX::Role::Parameterized

Moose roles with composition parameters

=item LMooseX::SimpleConfig

a Moose role for setting attributes from a simple configuration file

=item LMooseX::StrictConstructor

a Moose extension that makes your object constructors blow up on unknown attributes

=item LPackage::Variant

Parameterizable packages

=item LType::Tiny

tiny, yet Moo(se)-compatible type constraints

=item Lnamespace::autoclean

keep imports out of your namespace (Moose-aware)

=back

=for stopwords Redis

=head2 LTask::Kensho::Scalability: Scalability

=over 4

=item L

A unified cache interface, like DBI

=item L

Perl binding for Redis database

=back

=head2 LTask::Kensho::Testing: Testing

=over 4

=item LDevel::Cover

Code coverage metrics for Perl

=item LTest2::Suite

Distribution with a rich set of tools built upon the Test2 framework.

=item LTest::Deep

Test deep data structures

=item LTest::Fatal

Test exception-based code

=item LTest::Memory::Cycle

Check for memory leaks and circular memory references

=item LTest::Pod

Check for POD errors in files

=item LTest::Pod::Coverage

Check for pod coverage in your distribution.

=item LTest::Requires

Make running a test conditional on a particular module being installed

=item LTest::Simple

Basic utilities for writing tests.

=item LTest::Warnings

Test for warnings and the lack of them

=back

=for stopwords Bundler

=head2 LTask::Kensho::Toolchain: Basic Toolchain

=over 4

=item LApp::FatPacker

Pack your dependencies onto your script file

=item LApp::cpanminus

Get, unpack, build and install modules from CPAN

=item LApp::cpm

a fast CPAN module installer

=item LApp::perlbrew

Manage perl installations in your $HOME

=item LCPAN::Mini

Create a minimal mirror of CPAN

=item L

Perl module dependency manager (aka Bundler for Perl)

=item L

Curate a repository of Perl modules

=item Llocal::lib

Create and use a local lib/ for perl modules with PERL5LIB

=item L

Perl extension for Version Objects

=back

=for stopwords WebSocket

=head2 LTask::Kensho::WebCrawling: Web Crawling

=over 4

=item LHTTP::Thin

A Thin Wrapper around HTTP::Tiny to play nice with HTTP::Message

=item LHTTP::Tiny

Lightweight HTTP client implementation

=item LLWP::Simple

Simple procedural interface to LWP

=item LLWP::UserAgent

Full-featured Web client library for Perl

=item LMojo::UserAgent

Non-blocking I/O HTTP and WebSocket user agent

=item LWWW::Mechanize

Handy web browsing in a Perl object

=item LWWW::Mechanize::TreeBuilder

This module combines WWW::Mechanize and HTML::TreeBuilder.

=item LWWW::Selenium

Perl Client for the Selenium Remote Control test tool

=back

=for stopwords configs RSS

=head2 LTask::Kensho::WebDev: Web Development

=over 4

=item L

A Semantic Web Framework

=item LCGI::FormBuilder::Source::Perl

Build CGI::FormBuilder configs from Perl syntax files.

=item L

the new generation of Dancer, a lightweight yet powerful web application framework

=item LHTML::FormHandler

HTML forms using Moose

=item LHTTP::BrowserDetect

Determine Web browser, version, and platform from an HTTP user agent string

=item LMIME::Types

Definition of MIME types

=item L

Real-time web framework

=item L

Flexible superglue between Web Servers and Perl Web Frameworks or code.

=item LTask::Catalyst

Catalyst is The Elegant MVC Web Application Framework. Task::Catalyst is all you need to start with Catalyst.

=item L