2011.07.26 in #1
What are your top binary library dependencies?
David Golden wanted to create a list of most important packages that might do better if there was an Alien::* package providing them.
2011.08.13 in #3
Five ways to install modules prereqs by hand
David Golden shows us some examples to make it easy to install CPAN modules - almost - manually. Do you have other ways to improve or extend his suggestions?
2011.09.13 in #8
How to find files with Path::Class::Rule
David Golden (dagolden) introduces his new module for traversing a directory structure an processing files and directories based on some rule. Think about a Perlish way of using the Unix find command.
2011.10.04 in #11
Yet another taint mode reminder
For improved security of your Perl application David Golden (dagolden) suggest the use of the (IMHO) mostly neglected taint mode of Perl.
2012.01.20 in #26
Visualizing Perl 5 release cycles
David Golden (xdg dagolden) has published a nice graph nicely showing the release dates of various stable Perl versions. It's also interesting to see the first comment immediately raising the potential problem of the shorter release cycles for end-users.
2012.01.22 in #27
Visualizing the Perl 5 support policy
This is a follow-up post by David Golden to his post about historical Perl 5 release cycles.
2012.02.09 in #29
2012Q1 TPF Grant Proposal: Cooking Perl with Chef
David Golden submitted a grant proposal. I think it would be important to get comments from more people.
2012.02.16 in #30
Hilight growls from irssi with Plack and ssh
Apparently David Golden has a similar setup to mine for IRC. Using an ssh connection to a remote server, where he runs irssi. The problem that we don't get pop-up notification when someone is talking to us. Or I'd say we did not get. Following the instructions of @dagolden one can set up a pop-up alert... Actually, in one of the comments he pointed to another solution by RGS that was even simpler to setup. So now I have notifications! Shall I be happy not? Shall I say goodbye to the little productivity I had earlier?
2012.03.19 in #35
Cooking Perl with Chef - Grant Report #1
David Golden reports that most of the coding part has been finished and he is working on the cookbook and documentation.
2012.04.03 in #37
Perl QA hackathon wrapup
A long and detailed report by David Golden. See the changes to the CPAN clients and how you will be able to use them in a private system. (aka. DarkPAN)
2012.05.20 in #43
Cooking Perl with Chef - Grant Report #3
David Golden reports his progress releasing a new version of Pantry that adds command line configuration to Chef nodes.
2012.08.02 in #54
Cooking Perl with Chef - Grant Report #4
David Golden is back working full time on the grant. He also created a new web site for Perl and Chef and there is a mailing list for the DevOps using Perl. There is even a screencast for Cooking Perl with Chef.
2012.11.01 in #67
Updated: Visualizing Perl 5 release history
Looking at this graph I wonder, why are most of my clients still using Perl 5.6 and 5.8? What went wrong?
2012.11.16 in #69
Why PERL_UNICODE makes me SAD
With a funny use of the acronym, David Golden explains what the PERL_UNICODE flag does, and how can that can make things worse.
2012.12.07 in #72
My first week of Dancer, Xslate and Bootstrap
2012.12.18 in #74
My second week of Dancer, now with queues and transactional email
David Golden was designing a password reset system for his Dancer based web application.
2013.01.30 in #80
Goodbye Path::Class, hello Path::Tiny
Path::Class is awesome, but not the fastest horse in the stabble. Consequently, here comes David Golden's Path::Tiny, with 90% of its cousin's features and a lot more speed in its hooves.
2013.02.07 in #81
Adventures in Benchmarking, Part 1
Everyone wants it faster. David Golden shows how to make it faster and how to measure it.
2013.02.21 in #83
Why I sometimes hate require
The perils of case insensitive file systems. Or maybe Perl should have a mode to automatically recognize such problems?
2013.02.25 in #84
Alternative to Test::NoWarnings
Test::NoWarnings: useful, but flawed. David Golden: pragmatic, but impatient. Say hello to his latest module, Test::FailWarnings.
2013.03.05 in #85
My Perl 6 post was really about Perl 5
A very interesting discussion on the future of Perl. I think, in his earlier post (linked from this one) David Golden covered the major ways people in the Perl community related to Perl 6 which reflects on how they thing the possible(?) evolution of Perl 5. Can Perl 5 break backward compatibility more than it does now? Maybe the questions should be: How much breakage is already too much?
2013.03.13 in #86
How I'm using Dist::Zilla to give credit to contributors
Never underestimate the power of a well-placed "thank you". David Golden shows how one can easily, and automatically, give credit to everyone who contribute to a distribution, with a little bit of Dist::Zilla help.
2013.03.16 in #86
Stop Pod tests before they stop you!
Some authors bundle POD tests in their distribution, which has little value to the end-user. David Golden got tired of those, and introduces a new test harness that transparently skip those pesky tests.
2013.03.18 in #87
No more copy and paste: How to refactor tests with roles
Tests are just more code, but when it gets to testing, even the best programmers might revert to the ancient art of copy-paste. But this is David Golden. He did not want to repeat his code so he wrote a module called Test::Roo to make it easy to use roles in testing. (And the comments are also interesting to read.)
2013.03.20 in #87
How to mass-favorite modules on MetaCPAN
Providing feedback to module authors is a great way to encourage them to do more. Even if the feedback is only by up-voting their module on MetaCPAN. David Golden shows a way to do that automatically for all the modules you use.
2013.03.27 in #88
How I've started managing GitHub pulls
David Golden shares with us some of the scripts and tricks he uses to facilitate the ebbs of pull requests.
2013.04.06 in #89
UNIVERSAL::new for command line MU
Do you sometime try to use modules on the command line. Has it bothered you that you need to type the module name twice? Once for loading and once for calling ->new on the name? This module of David Golden reduces the pain.
2013.04.19 in #91
Perl QA hackathon 2013 wrapup
A day-by-day report of the hackathon written by David Golden.
2013.04.19 in #91
The Annotated Lancaster Consensus
David Golden touched on a couple of issues regarding toolchain and testing: Minimum-supported Perl; Having a 'standard' for specifying pure-perl builds; Several new environment variables for testing contexts were added to make things clearer. Changes to the specifications of the META file. Several other items.
2013.04.24 in #92
OODA vs technical debt
I am not even sure this should be under the title 'testing' or 'business'. David Golden react to the posts written by Ovid advocating monitoring instead of testing. David brings us a lot closer to understanding the business rationals behind investing in more testing or eliminating some testing in favor of faster feed-back loop from the customers.
2013.05.16 in #95
Anyone want vanillaperl.com?
David Golden owns the domain name 'vanillaperl.com', but don't really have a use for it. Have a good idea for it? Chime in, and the domain could be yours!
2013.05.20 in #96
How I manage new perls with perlbrew
There are cases when you would like to make sure your code runs on more than one version of Perl. Either because you don't have control over which version of perl will be used, or because your company wants to make sure when upgrade comes, it will be smooth. David Golden explains how he uses perlbrew to have several versions of perl on his system.
2013.05.20 in #97
How I manage new perls with perlbrew
Perl 5.10, 5.12, 5.14, 5.16, 5.18, and all their patch versions... There sure are a lot of perls out there. Even more if you play with the development versions. But thanks to perlbrew and cpanm, compiling a wide selection of them is fairly easy. David Golden walks us through the handful of scripts and tricks he uses to make managing the herd even easier.
2013.05.28 in #97
Paying respect to Module::Build
David Golden proposed earlier this month to move Module::Build out of Perl 5 core. He explains here his rationale, and provides a comprehensive overview of what Module::Build managed to achieve (which is a lot), and what weaknesses proved to be its Achilles's heels.
2013.07.21 in #104
How do you manage your DarkPAN?
David Golden is doing some research on how companies handle the mix of CPAN modules and their own code (aka. DarkPAN). If you have such beast, and if you are using Perl in your company then surely you have, then go ahead, talk to David.
2013.09.12 in #112
Previewing POD before shipping
Especially interesting for CPAN authors who would like to read their POD in a web browser, before they upload the module to PAUSE. David Golden create a short script that would turn POD into HTML and then open your default browser to that file. Even if you don't need this service, the script is a nice example of using Path::Tiny, Pod::Simple::XHTML, and Browser::Open.
2013.10.09 in #116
Real $VERSIONs on CPAN
Do you know how should a version number on CPAN look like? Not? Don't worry. Apparently there are a few other people who have very interesting ideas about how version numbers should look like.
2013.10.09 in #116
Five percent of indexed CPAN packages come from just two distributions
Apparently David Golden was on a roll checking CPAN. What is totally unclear to me is why do those two distribution need so many packages (modules)?
2013.11.28 in #123
The xdg channel - Thanksgiving missive
Look, new toys! David Golden worked on quite a few CPAN modules lately without blogging about them. Now he collected the list: Class::Tiny, Path::Tiny, MooseX::Role::MongoDB,CPAN::Common::Index just to mention some of them.
2014.01.12 in #129
Help test IO::Socket::IP for Perl v5.20
The future needs you. IO:Socket::IP is planned to be added to Perl 5.20, and thus bring IPv6 support to core perl. But before this happens, the new code has to be thoroughly tested. This is where you, if you accept your mission, will fit in.
2014.01.28 in #132
Why installing Dist::Zilla is slow and what you can do about it
David Golden checked the worst-case scenario, when you have a freshly installed perl and you need to install Dist::Zilla with more than 170 dependencies and suggests two ways to reduce the install-time. Even with those it will probably take more than 10 minutes. Just enough to do get up from your chair and do some exercises.
2014.02.05 in #133
Why you should use getcwd and not cwd
I keep using the cwd() function from the Cwd module when I need the current working directory, but I think David Golden has a point. I should just change the habit and start using getcwd().
2014.03.03 in #137
Why I finally joined Gittip and why you should, too
Gittip. Probably not the best way to become a software millionaire, but it sure provides a nice way to give and receive motivational pats in the back. David Golden joined the site, and argues why you should too.
2014.05.04 in #145
The next Test::More might break fragile test modules
2014.08.01 in #158
Adventures in Optimization
A 54 min long presentation by David Golden on how customize Benchmark.pm and how to optimize a Hash that needs to be ordered. Like Hash::Ordered
2015.01.25 in #183
Setting up a Perl Development Environment with plenv
David gives a straight-up, no-nonsense set of steps to get you a plenv-based Perl environment up and running in, oh, probably less than 10 minutes.
2015.01.28 in #184
Moving CPAN RT tickets to Github, now improved
A while back David presented a way to migrate tickets from RT to github issues. Here he describes a more complete solution, which is available on github.
2015.02.06 in #185
Sometimes, it really IS a bug in Perl
Watch literal strings ("Hello world") DISAPPEAR and become undefined
2015.02.22 in #187
Thoughts on getting Perl 6 for Christmas
David lays out his current thinking on Perl 6. TL;DR: likes some bits, but thinks it seems large / complex and under-documented at the moment.
2015.03.02 in #189
Distributions much have a main module with matching name
David describes a change in PAUSE that can result in a slightly perplexing error message when you upload something to PAUSE. Basically, if you upload a distribution
Foo-Bar to PAUSE, then it must contain a module
Foo::Bar, otherwise it will not be added to the CPAN index. Existing dists not meeting this rule got an exception, but all new dists must satisfy this rule.
2015.04.01 in #193
How to add 'provides' metadata via Makefile.PL
Though I think in most cases this should happen automatically, in the rare cases when you need to fiddle with the names listed in the META files, this explanation can be useful
2015.05.05 in #198
Faster ordered hashes for Perl
The Fast and the Furious? Check out Hash::Ordered.
2015.05.10 in #198
The Annotated Berlin Consensus
One of the big results of the QA Hackathon in Berlin is this document, that describes various aspects of PAUSE, CPAN, and the Perl Toolchain.
2015.07.24 in #209
Why you shouldn't waste your time on Perl 5.6
In his contribution to the Perl 5.6 discussion, David's position is similar to Matt's, but he makes the observation that most 5.6 work seems to be related to smoke testing with 5.6, rather then people who are using Perl 5.6 in production.
2015.08.05 in #211
Visualizing Perl 5 Release History – 2015 edition
David periodically publishes a chart that shows the dates of the Perl 5 stable releases; this one shows from 5.4 to the most recent 5.22. The thing that really stands out is the steady march of yearly releases from 5.12 onwards.
2015.08.06 in #211
Announcing the MongoDB Perl driver v1.0.0 Release Candidate
David announced the first release candidate for the Perl MongoDB driver, version 1.0.0. This is a "substantial rewrite" of the original Perl driver, so if you use MongoDB, they'd like you to kick the tyres, and perhaps a little bit more.
2015.08.10 in #212
Review a git branch in the terminal
When you'd prefer not to leave the command-line while comparing Git branches.
2015.08.14 in #212
MongoDB Perl driver v1.0.0 RC 2 available - please test!
If you are using MongoDB, this is likely a module lying deeply into your stack. And its next release is going to be a big, scary, bump-it-to-one-dot-oh release. Wisdom says you might just want to give its trial version a whirl before things get irrevocable.
2015.09.24 in #218
MongoDB v1.0.0 released
... and it is already in use in some places.
2015.10.05 in #220
How to trim PDF margins and edit metadata
David presents his solution to two of the things that bug him about PDFs of academic papers: humungous borders and missing metadata (making them hard to find later by search).
2015.10.15 in #221
If you use MongoDB and Perl, I want your feedback!
MongoDB is one of the only next-gen databases to support Perl in-house. By providing feedback on how you use MongoDB you will help demonstrate the value this work provides. (I have filled the survey; ++ -ed the module; filed several JIRA tickets; Blogged about using MongoDB with Perl. The first two only take 1-2 minutes. The rest will need more involvement. ~szabgab)
2015.10.15 in #221
MongoDB Perl Driver v1.0.2 released
2015.11.30 in #228
Getting ready for MongoDB 3.2: new features, new Perl driver beta
A new release of MongoDB is coming up. And a new trial version of its driver is already accessible on CPAN. MongoDB peeps you know what that means.
2015.12.23 in #231
Finally, a streaming Perl filehandle API for MongoDB GridFS
The latest development release of the MongoDB distribution includes a new interface to MongoDB's filesystem abstraction. David shows how you can use it.
2016.01.07 in #233
Perl 5 and Perl 6 are mortal enemies
Most people see Perl 5 and 6 as siblings. David goes further, and see them as Cain and Abel. Who happen to be Highlanders. Stuck in an infernal device created by the Jigsaw killer.
2016.02.03 in #237
My Github dashboard of neglect
It is very frustrating when you submit a pull-request and noone responds to it for a year. It is also very embarrassing when you realize you were the one who did not respond to a pull-request. Now, with the help of a little Perl script written by David you can see the whole list of repos where there are pull-requests waiting for your attention.
2016.02.03 in #237
A parallel MongoDB client with Perl and fork
Connect to MongoDB; fork; reconnect in each child; do your job.
2016.02.19 in #239
Please test Path-Tiny-0.081-TRIAL
The trial version of the upcoming Path::Tiny release is available. If you are using Path::Tiny, you should give it a whirl, as there are incompatible changes coming down the pipe. And if you are not using Path::Tiny. You should. 'cause it's awesome.
2016.03.13 in #242
No more dirty reads with MongoDB
Perhaps you are the type of conservative soul who prefers consistency over sheer performance? Rejoice, for MongoDB has a new knob to adjust its behavior in that regard.
2016.04.18 in #248
When RFCs attack: HTTP::Tiny is getting stricter
The RFCs were updated and David is trying to follow the rules. Please make sure your application still works after upgrading!
2016.04.28 in #249
Stand up and be counted: Annual MongoDB Developer Survey
If you use Perl and MongoDB, David need your help: please fill in the MongoDB developer experience survey.
2016.09.06 in #268
Comparison of Class::Tiny and Object::Simple
2016.10.04 in #272
A discussion of DBIx-Class governance and future development
A lengthy discussion is ongoing about DBIx-Class governnance.
2017.02.12 in #290
Response to "Our Adventures in Logging"
2018.04.24 in #353
Perl Toolchain Summit 2018 report
For the community, having so many high-caliber people able to spend dedicated time on the infrastructure of Perl is a hugely effective way of getting things done and making the most of volunteer time. Having the right people in the room means that almost no question is too obscure to get an answer from at least one of the attendees.
If you are not yet subscribed, you can do it now. Free of charge:
Just ONE e-mail each Monday. Easy to unsubscribe. No spam. Your e-mail address is safe.
This newsletter is about the Perl Programming languages.