Perl 5 Porters Monthly: March 2013

cross posted from my blog

Welcome to Perl 5 Porters Monthly, a summary of the email traffic of the perl5-porters email list.

Topics from this month include:

Interview with Jeffrey Thalhammer

I have been trying to conduct interviews for, I think at least a year, but I was never able to figure out the technology. It is still not what I'd like to have, but I think it is reasonably good already to get started.

So let me show you the first interview with
Jeffrey Thalhammer, author of Perl::Critic and Pinto

Fractal Diamond-Square Terrain Generation in Perl

The title is mostly for search engines for anyone who encounters this in the future.

I have, for no particular reason, decided to implement the fractal diamond-square terrain generation algorithm in Perl. Sometimes it's nice to just play.

Learning from other industries, part 1 of n

My first job was as a bus conductor, and my second one was as a student trainee in an engineering company - proper engineering, with production lines, big machines, hot things, and "danger of death" notices on equipment. In both of these, safety was an important concern, and especially in the second one it was drilled in to me that safety and quality are closely related and arise from systems, not merely from individual endeavour. While I never completed my degree in manufacturing/systems engineering (I dropped out because I was fed up after too many years in the classroom) I still retain an interest in the subject.

I recently came across the excellent Disastercast podcast by Drew Rae. Of particular interest to programmers is the sixth episode, which looks at the report into a fatal rail crash caused by a poor safety and testing culture.

Perl 5 Porters Monthly: February 2013

cross posted from my own blog

Welcome to Perl 5 Porters Monthly, a summary of the email traffic of the perl5-porters email list.

Topics from this month include:

Why I joined Propaganda.pm

4 reasons:

1: Right man.I was there when it started. At German Perl Workshop this march in Berlin Richard ignited with his inofficial keynote a lot of controversy. All what said wasn't new or IMO just opinion or chatter/not relevant. Later I spoke with him @ the social meeting in the computer game museum. (seriously, is there a better place for such an event?)

During our conversation I found out: he listens to people, he really loves Perl and he's the right kind of Person to do that, with the right experience set. Even if I don't share some of his fews/considerations what is important.

You Are Invited To The Stratopan Beta

Stratopan is a new service for hosting custom repositories of Perl modules in the cloud. Private beta trials will begin early this summer. If you'd like to participate in the trials, please stop by https://stratopan.com and leave us your email address. We'll contact you with all the details when the trials begin.

Stratopan will host both public and private repositories with any combination of proprietary and open source Perl modules. And Stratopan is built on Pinto, the open source tool for creating custom CPAN-like repositories, so it has the same helpful tools for managing your application dependencies.

Code Evolution Versus Intelligent Design

I didn't actually intend for this to be a series of posts, but hey, that's the consequence of going with the flow rather than rigidly planning everything out beforehand and it nicely mirrors the theme of:

If you have not read those, I strongly recommend that you do so before continuing on this post. Mostly the comments have been positive, but Adrian Howard has offered some interesting counter-points and some good resources for further reading. I will not say that he's wrong, but there is a different way of looking at this situation.

Perl 5 Porters Weekly^WMonthly: January 2013

Cross posted from my own blog

Welcome to Perl 5 Porters Monthly, a summary of the email traffic of the perl5-porters email list.

Well, that was a nice little break. I didn't intend for it to be so long but there you go. Life gets real sometimes. To catch up I'm basically going month by month through most of April. I plan to resume monthly summaries starting the week of April 29, 2013.

Topics for this month:

These are all of the "read the thread" link variety.

Perl5 Census Japan 2013

During Apr 7 - 19, I conducted a web questionnaire targeting Japanese Perl users, which I titled "Perl5 Census Japan 2013" ;)

I purposely asked people spreading the news to specifically state that this was not just for hardcore Perl users, and that even if you did't use Perl much these days, I still wanted your input.

So over approximately two weeks I got 394 replies, and I've compiled the results in my blog. However, this is all in Japanese, and even with Google Translate, the outcome was pretty um, poor.

So here's a (terse) version in English so y'all can see. This will probably give you an insight into how the Japanese Perl community looks like, and what type of technology they prefer.

Pinto::Remote and Pinto::Server

Today I was glad to read that the successful merge of Pinto::Remote and Pinto::Server into its main Pinto repository made Pinto::Remote work again.

I wanted to know how difficult a setup of a Pinto server could become. The requirement behind was to access a single cpan-like repository for deploying server machines. The repository should contain company-provided distributions optionally combined with a collection of cpan-available distributions.

Diagnosing module installation problems in Heroku

I've been playing with Heroku (a platform as a service) and Mojolicious, which works very well if all of the modules install. Greg Hinkle shows you how to do it. Create your mojo app and deploy it easily to Heroku. As you do, it's dependencies are installed for you.

Pure Perl modules are usually fine, but Heroku is a limited Ubuntu environment that doesn't have all the libraries you probably expect to already be there. One of the modules I needed had DB_File as a deep dependency, so deploying my app (with Heroku toolbelt and Mojolicious::Command::deploy::heroku) fails. I get the rainbow barf from the uni-raptor.

barfing-raptor.png

Marpa's SLIF now allows procedural parsing

[ This is cross-posted from the Ocean of Awareness blog. ]

Marpa's SLIF (scanless interface) allows an application to parse directly from any BNF grammar. Marpa parses vast classes of grammars in linear time, including all those classes currently in practical use. With its latest release, Marpa::R2's SLIF also allows an application to intermix its own custom lexing and parsing logic with Marpa's, and to switch back and forth between them. This means, among other things, that Marpa's SLIF can now do procedural parsing.

What is procedural parsing? Procedural parsing is parsing using ad hoc code in a procedural language. The opposite of procedural parsing is declarative parsing -- parsing driven by some kind of formal description of the grammar. Procedural parsing may be described as what you do when you've given up on your parsing algorithm. Dissatisfaction with parsing theory has left modern programmers accustomed to procedural parsing. And in fact some problems are best tackled with procedural parsing.

Factoring integers in Perl

Recently I've been working on factoring and primality proofs (with certificates) for Math::Prime::Util. I thought I'd give a brief summary and comparison of the modules I know of for factoring integers from Perl.

Perl && jQuery && XML && ! taconite

Hi All

If you're in a hurry, jump to my latest (6th) Perl + jQuery tutorial.

In short: I don't use the clever jQuery add-on taconite because it supports only commands (verbs) and I needed conditional execution (an 'if').

Nevertheless, I pinched-er-adapted the idea to unilaterally update some parts of the DOM, and to conditionally update other parts.

Happy reading...

When Must You Test Your Code?

Recently I wrote about how to be agile without testing (if you haven't read that, you should do so before reading this). I was planning on a follow-up after some comments came in and so far the reaction was decidedly mixed. I think that's a shame because not many people seemed to focus on the punchline:

And that's really the most interesting idea of this entire post: your customer's behavior is more important than your application's behavior.

Perl Tutorial in 10 languages

Just a little more than a month ago I only had the English version of the Perl Tutorial I have been writing for a while. Then Felipe da Veiga Leprevost offered to translate it to Portuguese and now there are 9 more translations at various stages.

It is extremely nice to see people volunteer their time to help others....

Travis CI ♥ Perl

Travis CI is a hosted continuous integration service for the open source community.

Essentially you set up a git post-commit hook that causes your tests to get run on every commit, against a number of different Perl versions, with databases and other services available if needed. And it's all free!

If you visit https://travis-ci.org/ you can get a feel for the interface and the tests that are being run. For a particular commit you get a build, for example WebService::Nestoria::Search build 1, which has a sub-build per Perl version, for example WebService::Nestoria::Search build 1.1 (perl 5.16). As you can see you get the full output from the Ubuntu VM that's running your tests, so if anything does go wrong it's pretty simple to debug.

For the rest of this post I'm going to describe the integration process, in particular hitting on how to make it work with Dist::Zilla-based projects.

Thought for the day: Perl 5 is English; Perl 6 is Esperanto.

Esperanto may be a saner language than English in every way.

But English is the language of Shakespeare, of Milton, of Byron, of Dylan Thomas; the language of Arthur Conan-Doyle and Agatha Christie; the language of Tolkien and C S Lewis; of Lewis Carroll and Beatrix Potter. It's the language of Stoker and Shelley.

Wikipedia notes that over 100 original novels have been published in Esperanto. Big woop-dee-doo(!)

I want to be able to use Perl 6 day to day, but not if that involves missing out on Perl 5's literature (i.e. CPAN).

Thank you Ack!

People may have noticed my absence from the Perl world lately. I have been writing my Ph.D. thesis (179 pages on Ultrafast Electron Microscopy with my Physics::UEMColumn Perl module featured) and defense.

Ack is a tool for searching code and text. It works much like the unix tool grep, although it is imbued with the power of Perl. To mark the release of Ack 2.0 though I wanted to mention a few one-liners that made my life easier in this stressful time.

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.