NAME
Task::BeLike::GETTY - be like GETTY (without the insanity hopefully) -- use what drives his gears
VERSION
version 20150205.000
TASK CONTENTS
Perl itself
perl 5.010001
You should have at least 5.10.1
Useful Command-Line Tools
App::Ack
Because grep is outdated
Working with CPAN distributions
App::cpanminus
Because I don't want useless crap on my screen.
App::CPAN::Fresh
Installs latest version of the dist... for the people who cant wait to get their own release on other machines ;)
Object orientated working
Moo
Cause it cost nothing and makes the code nice.
MooX
An easier way to load Moo and MooX plugins for it.
Moose
The ultimate power in the universe to make classes
MooseX::NonMoose
Sometimes something else wanna be a Moose!
Application Frameworks
MooX::HasEnv
Depend attributes on environment variables in Moo.
MooX::Cmd
MooX::Cmd together with MooX::Options gives you the ability to make easy multicommand application.
MooX::Options
MooseX::Getopt
If you use Moose, then you should go this way for making options possible in your application.
String::ProgressBar
Make nice progress bars in your application.
Event driven, non-blocking environment
Reflex
Because POE is really outdated (and too complex)
Reflexive::Client::HTTP
Never saw a non-blocking environment which not used some HTTP client somewhere in the process hehe :).
Database
DBIx::Class
There is no other way to access a database
DBIx::Class::Candy
Use this to define your DBIx::Class result classes.
DBIx::Class::AlwaysUpdate
DBIx::Class::TimeStamp
DBIx::Class::EncodedColumn
DBIx::Class::InflateColumn::DateTime
DBIx::Class::InflateColumn::Serializer
Very useful in combination with JSON to get a simple random data storage field.
DBIx::Class::EncodedColumn::Crypt::Eksblowfish::Bcrypt
Best way to get a transparent (one way) encrypted field, like password.
Templating
Text::Xslate
The fastest template engine, but needs a bit more understandment, but can be used with many template syntaxes (more or less identical of course).
Web frameworks
Catalyst::Runtime
For serious web application development
Catalyst::Plugin::ChainedURI
A more simple way to get a specific url in Catalyst then with the given tools inside of Catalyst.
Catalyst::Plugin::CustomErrorMessage
An error should be nice.
Catalyst::Plugin::Session
Catalyst::Plugin::Session::State::Cookie
Catalyst::Plugin::Session::Store::File
Catalyst::Plugin::Unicode::Encoding
Never forget to load this. You want utf8.
Catalyst::Authentication::Store::DBIx::Class
Catalyst::Plugin::Authentication
Catalyst::Plugin::Captcha
Catalyst::Plugin::StackTrace
Make a crash more useful, show a stack trace.
Catalyst::View::TT
Catalyst::View::JSON
Catalyst::View::Email::Template
Yeb
A very simple straightforward Web DSL, perfect for beginners.s
Web::Simple
For the simple stuff (more for experienced users)
Plack
The base for all those frameworks, and the best way to make your own base for a webframework, even tho, you normally should be happy with Web::Simple and Catalyst, but it gives interesting background knowledge to know Plack and PSGI. See http://plackperl.org/.
Plack::Middleware::Debug
The so far best debugging console from the author of Plack directly.
Web Development Helper
CSS::Minifier::XS
JavaScript::Minifier
Twiggy::Server
An AnyEvent webserver which allows to make websocket servers.
PocketIO
socket.io compatible websocket implementation.
Validation
Syccess
A very simple concept to validate hashs based on any way you want.
Email::Valid
Best thing so far to check for a valid email.
Translation
Locale::Simple
A simple way to integrate gettext translations into Javascript and Perl with the same API. It has anything included you need, you just need to have the gettext tools installed. You can check for a tool msgfmt
that is inside there, if you are unsure, if you installed the proper gettext package of your distribution.
Installation Tools
Installer
Install a giant group of requirements (of any kind) automatically into one directory.
Tools for authoring CPAN Distributions
Dist::Zilla
Dist::Zilla::PluginBundle::Author::GETTY
This pluginbundle gives you directly all Dist::Zilla plugins I use. Its a package that tries to be very efficient. Many people dislike that it generates the changes out of the git log. It is btw also used to generate this Task.
File::ShareDir::ProjectDistDir
Essential for working sane with the share directory of a distribution in development context.
Testing
Test::More
Simple, straightforward, thats what you need.
Test::Dirs
For comparing resulting directories.
File::Temp
For getting temporary directories. Very handy for tests.
Making your own DarkPAN / GreyPAN
CPAN::Repository
Dist::Data
Module::Data
Path::ScanINC
Other Libraries I Use
Data::Printer
Nicest debugging output ever.
DateTime 0.77
Version 0.77 required because: provides CLDR support with fewest known bugs
Working with timestamps is just wrong.
DateTime::Format::Epoch
As reference to remind that you can find YOUR specific DateTime string definition out of the many DateTime::Format:: distributions.
DateTime::Format::Strptime
A very flexible format handler, if you really cant find what you need.
DateTime::Format::Human::Duration
A good way to display a time duration to humans.
JSON
The most effective data storage way ...
JSON::MaybeXS
... and make it quick!
YAML
If you want the data in the worst case created or modified by humans, then this is the way to go.
Path::Tiny
Path::Class
IO::All
The best sugar to access files and their data.
Config::INI
I like INI files.... dont hate me.
Devel::NYTProf
The most heavy overall debugging possible. Try it out once, to know what you have.
Scalar::Util
Nice toolset, check it out and get it known.
Text::Markdown 1.0.24
Version 1.0.24 required because: has trust_list_start
For making nice GitHub README and wiki pages.
HTTP::Message
You will need HTTP::Request and HTTP::Response. Use it with LWP::UserAgent or Reflexive::Client::HTTP.
LWP::UserAgent
A simple way to make a blocking HTTP request based on HTTP::Request.
URL::Encode
URL encoding
URI
Handling URLs itself, making parameter and so on. Very useful, still dislike the API somehow.
Sanity-Check
These are just here to make sure other things work properly.
Mozilla::CA
Crypt::SSLeay
LWP::Protocol::https
IO::Socket::SSL
AUTHOR
Torsten Raudssus <torsten@raudss.us>
COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Torsten Raudssus.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.