One of the fun / cool things about Perl is that it can easily inhabit that space between "too complex for bash" and "too insignificant to invest in a C implementation." In my opinion a lot of the command line tools for EC2 are pretty terrible - they have a large learning curve, a high amount of dependencies and they just aren't that easy to get up and going.
So I started by thinking what was the "minimum viable product" for an EC2 client? Something that slaps a valid v2 AWS signature on any arbitrary API request and translates the XML returned into a Perl data structure. And that's…
One of the things that brian d foy worked pretty hard on for Perldoc inside of 5.16 was better UTF-8 support. We found that there are a huge number of variables for getting good Unicode support out of the "man" formatting pipeline. perldoc internally uses the "podulators" distribution to turn POD markup into man pages, HTML, XML, etc. But with the "man" formatting, the pipeline of operations looks something like this:
perldoc (a tiny little wrapper around the Pod::Perldoc module) finds the appropriate pod markup (either embedded in a .pm or a .pod), passes it to Pod::Man, takes th…
I just released 0.22 of Net::Amazon::EC2 to CPAN which resolves RT #80407 about EC2 requiring version 2 signatures.
Until today, this module had been using v1 signatures. If you use this module and start getting "version mismatch errors" from EC2 calls, you will need to update to this version.
Please be aware that URI::Escape and Digest::SHA were added to the module dependencies to implement AWS v2 signatures.
Pod::Perldoc is a "dual-life module" that ships with Perl core, but also sits outside of it. Over the weekend, I released Pod::Perldoc 3.17 which incorporates several bug fixes and adds several new features.
In the latest release we've:
Added better support for UTF8 in the pod -> *roff -> *roff-formatter -> pager pipeline - unfortunately a lot of UTF8 support for pod remains at the mercy of *roff-formatters. People running perl on Mac OS X, for example, will get old crufty versions of groff that do not process UTF8 input, even though Pod::Man supports UTF8 output.
Improved support for
$PERLDOCPAGER definitions that expect pipelines or input redirection
Improved behavior of
Added two new formatter classes (ToANSI and ToTerm) which bypass many of the UTF8 problems with *roff-formatters.
Made it easier for downstream utilities to define their own command line arguments
Closed over 20 bug tickets on the RT queue. Some of these bug reports were years old unfortunately.
One area where Pod::Perldoc needs definite improvement is in a test suite. It has almost no tests, and the tests it does have are very basic. This is an area I intend to address on an on-going basis, but in order to make the Pod::Perldoc which ships with Perl 5.16 the best it can be, I would appreciate more testing from a wider audience of installations and operating systems.
An easy way to do this without risk to your other perl installations is to set up a "perldoc-testing" instance of perl inside of perlbrew where you can install Pod::Perldoc 3.17 from CPAN after the fact. (Note: Pod::Perldoc now requires at least perl 5.6 due to heavy use of "3-argument"
open in several refactorings.)
Bug reports, comments or questions are best directed to the RT queue, but I will cheerfully review pull requests or Issues on the Pod::Perldoc github repository.
I'm giving a talk tonight at Houston.pm
. The slides from the presentation are after the cut. Also, there's a set of links about DistZilla here
The guinea pig CPAN release for this talk is a Perl binding for the Cron.IO service. It uses Franck Cuny's cool Net::HTTP::API library. A complete binding in like 60 lines of code. Very cool.