Long Story Short

Not a tech blog today more just a store on design and development. So here goes.

Once upon a time not too long ago and not very far away I was happily working working away when the dreaded battle started between 'The Design' and the 'The Process' types.

Well the end of this was that neither side won their little war and as the big hats came in an 'solved' the team problems by a compromise which left both sides unhappy and shall we say not on speaking terms.

So on the process side the great and glorious 'Scrum' process was adopted (btw not the choice of the Process types) and on the design side they stuck with good old Requirements and Design from the 'Waterfall' model we all know and love.

The real rub was the chief process guy was put in charge of the requirements and the chief design person was place in charge of the process. Needless to say I smelt disaster from a long way off.

Perl 5 Porters Mailing List Summary: March 15-27th

March 15th-27th

News and updates

Perl 5.23.9 is now out!

All tickets blocking 5.25.1 are now collected in Perl #127731.

Ricardo Signes and the team are reviewing all the 5.24 blockers here and here.

Steve Hay is organizing the voting file for 5.22.2.

Tony Cook providing his grant reports. In total about 38 hours and approximately 18 tickets were reviews or worked on, and 3 patches applied.

Dave Mitchell providing his grant report.

Term::ANSIColor 4.05 is now out.

podlators 4.07 is now out.

version.pm was upgraded in core to 0.9914.

Encode 2.83 is now out.

Matthew Horsfall is adding more macros from handy.h to Devel::PPPort so they are available in earlier versions of Perl.

Issues

New issues

On The Mojolicious Codebase

There has been some discussion this week about forks of pieces of Mojolicious. Frustrating discussions over what is proper and how to discourage forking. It has been a long week to be honest (and thankfully the recent incident has been peacefully resolved, see postscript).

But then finally, just today, I’ve chosen to see things a different way. I’m really happy to see what lengths people are willing to go to in order to use Mojolicious. This includes addressing a perceived need for streamlining by taking a maintenance burden onto themselves and forking that code that which they need. They see the value in Mojolicious’ code, if not the value in the toolkit as a whole.

Help required: The SVG module & mouse effects

Can anyone show me code using mouseover etc with the SVG module? I'm afraid the docs are too terse for me. FWIW: I'll be using jQuery/jQuery UI.
TIA.

Virtual Spring Cleaning (part 1 of X)

At the 2016 German Perl Workshop in Nuremberg I first released and demonstrated a simple local search engine created from Elasticsearch with Perl for the surrounding infrastructure. The search application is distributed via CPAN as Dancer::SearchApp.

A Tutorial for using LibXML from Perl

In my ongoing crusade to direct people away from XML::Simple and towards XML::LibXML, I've recently published a documentation project called "Perl XML::LibXML by Example". The primary target of this documentation is the desperate Perl hacker who might otherwise reach for XML::Simple without realising the awful horrors that module will inflict upon them. My hope is that by pointing people at this documentation we'll be able to help them solve their problems sooner and with less pain.

In helping people with their Perl and XML problems I've come to realise that in order to become proficient with XML::LibXML what people really need (and what I've aimed to provide) is:

New to Perl? Come to The Perl Conference in Orlando for only $50.

Perl is a thriving language backed by an active community that continues to grow daily as newcomers discover what the language has to offer. The Perl Conference (also affectionately referred to as “YAPC::NA”) is the premiere North American event featuring training, workshops, hackathons for all things Perl and for all skill levels.

If you are new to Perl and have never attended YAPC before, The Perl Foundation is pleased to announce a very special welcome gift for a few lucky individuals. If this is your first time, you could join the Perl community at YAPC::NA::2016 in Orlando, Florida June 19th through 22nd for only $50.

Here’s what your $50 will get you:

  • Free admission to the main conference event, including all track talks, all keynotes, and some fun social events. (Regular ticket price is $250).
  • Free hotel accommodations June 19, 20, and 21 (The lowest room rate is $119/night)
  • Free Zero to Perl 5 Beginner Class. (Regular ticket price is $75).

That’s over $650 worth of YAPC for only $50!

SparrowHub - a repository of reusable testing/monitoring suites

Hi all!

SparrowHub - is a test/monitoring suites repository. SparrowHub repository contains collections of reusable testing/monitoring suites which are also called plugins. These are test suites for various use cases. From testing web services to checking disk available amount on your server. Sparrow suites are runnable via console script called sparrow which produce TAP output. It could be used in whatever monitoring , testing task and could be easily integrated into existed monitoring / deployment / configuration / automation systems. Sparrow plugins to be written on outthentic DSL and to be extended by Perl.

I have just added two 5 minutes tutorials for those who:

  • wants just to use sparrow suites in monitoring / testing purpose
  • wants to develop new sparrow plugins

A helper managing your PM social media

Social media will absolutely help you grow your local PM. Through consistent social media usage, when combined with consistently holding meetings, Sydney PM meeting attendance has grown from a motley crew of ~6 people 18 months ago to a venue busting 25 last month.

Attendance was so unexpectedly large we had to move out of our hosts board room (thanks Broadbean) to their general staff area. Thankfully their wall mounted status TV was quickly re-purposed for presenters and the show went on smoothly.

Social media for us has been Facebook and our pm.org email list, with Meetup being recently reinvigorated along with #australia on irc.per.org (does that count as social media?)

Heres a strategy: Facebook is very good at gently reaching out to people who can be convinced to play around with perl and come along to your meetings. They might not have used perl in a while, or at all, and everything in between. These people can be gradually enticed to come along via your PM's Facebook page.

Drop perl 5.8 support in GitPrep 2.0

I decide to drop the support of perl v5.8 in GitPrep 2.0 today.

This is because I want to use latest Mojlicious, which requires perl 5.10.1+.

and because mojo-legacy project stop at 2014.

https://github.com/jamadam/mojo-legacy

GitPrep have basic authentication bug in CGI access.
This is maybe old Mojolicious bug.

Perl 5.8 user can continue to use GitPrep 1.xx or install newly perl by using perlbrew.

http://perlbrew.pl/

This is a little pain but I believe this decision is good.

Announce: Rakudo Perl 6 compiler, Release #97 (2016.03)

On behalf of the Rakudo development team, I'm very happy to announce the March 2016 release of Rakudo Perl 6 #97. Rakudo is an implementation of Perl 6 on the Moar Virtual Machine[^1].

This release implements the 6.c version of the Perl 6 specifications. It includes bugfixes and optimizations on top of the 2015.12 release of Rakudo, but no new features.

Upcoming releases in 2016 will include new functionality that is not part of the 6.c specification, available with a lexically scoped pragma. Our goal is to insure that anything that is tested as part of the 6.c specification will continue to work unchanged. There may be incremental spec releases this year as well.

The tarball for this release is available from http://rakudo.org/downloads/rakudo/.

Please note: This announcement is not for the Rakudo Star distribution[^2] --- it's announcing a new release of the compiler only. For the latest Rakudo Star release, see http://rakudo.org/downloads/star/.

Perl 6: The Next Node.js, Done Right

If you've been a programmer for more than a couple of years, then you remember when Node.js first appeared. Some folks were raging about how insanely fast their ecosystem was growing, while others confusedly shrugged, wondering why anyone would want to use a language made for scripting browsers for server side work.

I can easily dismiss Node's large ecosystem of reinvented wheels, but the underlying point of why it got popular is valid: the fewer languages you need for an app, the fewer (or less experienced) programmers you have to hire, the cheaper it is to make your app. The self-proclaimed "HTML programmer" who was copy-pasting JS snippets from blogs and forums, now of all a sudden became a full-stack Web developer. But is using a made-for-browsers language for all-purpose work the right approach?

Introduction to Marpa book in progress

My latest blog post is the introduction to my Marpa Book, currently in progress. The book will be a theory monograph, so it's kind of stuffy, but it's a good summary of Marpa's features. It also discusses the implications of these features for applications.

Super Easy SSL Certs for Mojolicious Apps

I’m assuming that by now you’ve probably heard of Let’s Encrypt. If you haven’t, they are a brand new Certificate Authority that issues SSL certificates for free via an automated system!

There has to be a catch right? Well kinda, but it’s a small one. The certificate is only valid for 90 days. They mention two reasons for this in a blog post: to encourage automation and to contain the damage of a compromised cert.

If you need to renew every 90 days, you don’t want to be doing that by hand right? By encouraging automation, they can effectively force you to investigate how to make security easier for yourself over the long term. You may have read the famous Ten Immutable Laws Of Security but the related Ten Immutable Laws of Security Administration tells us in Law #2 that

Security only works if the secure way also happens to be the easy way

Once you have automated your SSL cert generation then the easy way will be the standard way.

PRC 2016 - First Three Months

As last year I was unable to post every month about the Pull Request Challenge assignments, I decided that this year I would try to post updates every three months.

So, for the first month, I got WebInject. The PR was not huge. Just a contribution to add a README file to the distribution. As the author did not want to update the README and the POD, the PR was changed in order to generate the README from the POD. This PR was then merged. Yay, first month complete.

Spek - test oriented web framework

Recently keep playing with TDD and swat I have created a small web framework based on Kelp and swat.

The essential features of this framework named Spek are:

More refactoring adventures

So lucky for me a client decided to pay me to refactor some of their very old code. Refactoring can be fun, but if you have a 20 year old business critical codebase where the team has forgotten or don't know how stuff works and it absolutely has to not break, then you have some challenges and quite a lot of potential for loss of face.

This particular job was to refactor a single large, excessively complex subroutine into something that was testable and that a relatively naive programmer could reason about. And there were no tests.

tl;dr: this blog post is relatively involved, but scroll down to the bottom to see some neat abuse of git as a data analysis assistant.

Stupid perldoc-search trick

Perl's copious documentation is one of the things that keeps me using it. But this is not an unalloyed benefit; actually finding something, unless you have a pretty good idea where to start looking, can be like finding the proverbial needle in a haystack.

Fortunately, we have Joshua ben Jore's perldoc-search, which will find anything you can specify as a regular expression, and that Perl itself can find.

Unfortunately, this can sometimes be a bit too much. I generally have several Perl kits unpacked in my home directory (well, subdirectories of it). Since by default file-find does a File::Find::find on @INC, and since by default @INC contains my current directory, then if I issue a file-find in my home directory, the entire tree gets searched, and every unpacked kit can produce a hit.

It turns out there is a surely-unsupported but nonintrusive way to exclude the current directory from the search. Instead of running perldoc-search directly, run it as

perl -T -S perldoc-search

Regex /m modifier bug in Perl 5.8.8 and older

It’s 2016, but the CPAN Pull Request Challenge continues. Motivated by my 100% in 2015, I subscribed to the second year, as well. Unfortunately, I didn’t have time to blog about my January PR, but it would have been more about Git than Perl, anyway.

My March assignment was Plack::Middleware::ReverseProxyPath. I noticed the module had several testers’ failures, and looking at the matrix I noticed Perl 5.8.8 was all red in both Linux and Darwin, so I decided to have a look at that.

Random contributors are great

One morning I wake up and see a pull request from a person I don't know on a project I haven't touched in years. Yup, it's a random contributor!

About blogs.perl.org

blogs.perl.org is a common blogging platform for the Perl community. Written in Perl with a graphic design donated by Six Apart, Ltd.