Strawberry Perl 5.20.3.1 released

Strawberry Perl 5.20.3.1 is available at http://strawberryperl.com

More details in Release Notes:
http://strawberryperl.com/release-notes/5.20.3.1-32bit.html
http://strawberryperl.com/release-notes/5.20.3.1-64bit.html

I would like to thank our sponsor Enlightened Perl Organisation for resources provided to our project.

Travis-CI and latest version of Perl 5

I just tried to add perl 5.22 to the list of perl I run my tests on, but it seem Travis-CI does not support perl 5.22 yet.

This reminded me that it would be nice if I could configure Travis-CI to use a flag such as 'latest_production' that will always use the latest version of perl available in Travis-CI so when the finally add 5.22 the "latest_production" will automatically pick up that version.

It would be also great to have 'blead' that would use blead perl for testing.

Is any of these possible today?

Concurrency and Channels in Perl 6

I've been working on a Bayesian spam filter, but it keeps running out of memory, so I moved to something else for a while. The new concurrency stuff looks really interesting, but I don't understand it well yet. As a project, I came up with the idea of a password cracker, which would check a crypt-style hash against a word list. (This probably isn't a CPU-intensive enough task to be worth threading, but it was simple.) Here's the code, with details below:

http://swatpm.org start up

Hi!

I have just started a repository of portable web tests - http://swatpm.org
This is an alpha stage. Please follow up:

- Read what swat is
- Create your test suite useful for others
- Publish it to CPAN
- List it to http://swatpm.org

---

Regards. Alexey.

Fluent interfaces in Perl 6

I've been digging into Perl 6 more lately and I noticed the Wikipedia example of fluent interfaces didn't have a Perl 6 example, so I fixed that.

To be fair, Martin Fowler's explanation (as usual) of fluent interfaces does a much better job of explaining them, but a key point is that setters have a return value. For many fluent interfaces, the setters set a value and actually return a new instance of a different object for you to call methods on. Thus, the examples in Wikipedia don't always meet the criteria of a fluent interface, but I added a Perl 6 version that closely modeled the PHP version (but more concisely, and with much better type safety). I sidestepped the entire fluent interface debate.

Video from Q&A Session with Larry Wall at Swiss Perl Workshop 2015

Thanks a lot for your questions. We hope you find many of them answered in the video, where Will "Coke" Coleda asks Larry Wall your Perl6 questions.

Perl Maven facelift and new navigation

The Perl Maven site was just recently updated to use Bootstrap 3 (I know, just in time before version 4 is released.) and it got some new navigation tools:
  • The language links were moved to the right-hand side.
  • Articles that belong to any of the series linked from the front page show a Prev and a Next button.
  • On the left-hand side they will show the list of all the articles that belong to this series.

For example you can check out the Perl tutorial, the Beginner Perl video course, or the project building an open source clone of search.cpan.org.

cperl-5.22.1 released

https://github.com/perl11/cperl/releases/tag/cperl-5.22.1

The name cperl stands for a perl with classes, types, compiler support, or just a company-friendly perl, but currently it's only a better 5.22 based variant without classes.

Currently it is about 1.5x faster than perl5.22 overall, >2x faster then 5.14 and uses the least amount of memory measured since 5.6, i.e. less than 5.10 and 5.6.2, which were the previous leaders. While perl5.22 uses the most memory yet measured.

See http://perl11.org/cperl/STATUS.html and http://perl11.org/cperl/ for an
overview, changes and docs.
Detailed changes are at https://github.com/perl11/cperl/blob/master/Changes

./Configure -sder -Dusecperl && make -s -j4 test && sudo make install

P6SGI: 4 Myths Dispelled

So my last couple of posts have brought up some grousing from people who do not like PSGI in Perl 5. I am sorry to say that some of this grousing against P6SGI has made some assumptions based on PSGI and not based on P6SGI. I am now going to try to dispel some of these myths.

Ressurrecting Perl.pt

onion.png

In the last week, as a result of YAPC::EU::2015, the main website for the `Portuguese Perl Mongers' (a free translation of the association name) has been rewritten by Nuno "smash" Carvalho, in Perl 6, to generate (static) web content. It still has its perks, but it mostly working.

In order to not be just waiting for Nuno's work, I've been writing some articles on Perl 5 and Perl 6 (in Portuguese, sorry folks). Any way, I invite you to go and peek there. Mostly if you can understand Portuguese (I think half the population would know Portuguese or Spanish, so, it might be enough) you can understand these small posts.

Fruits of YAPC::Europe - Image::JpegMinimal

In which we create "instant" image previews in HTML (with a smidgen of Javascript)

After reading a bit of how Facebook makes the transfer of profile images faster for low bandwidth connections and bringing my photo gallery generator up to speed to exhibit my pictures of YAPC::Europe 2015 and Granada (that's a transient link), I thought about reimplementing the "compression" in Perl and some Javascript on the client side to reconstruct the image. I was surprised that a JPEG header is so big (around 500 bytes) and so constant between images. For pages with many images. It seems like a nice latency win to do "compression of repeating data" and send a chunk of preview images with the HTML.

With the help of Imager, it turns this image

IMG_7468.JPG

into a tiny, tiny preview image like this

IMG_7468_preview.JPG

and then blows that image up and blurs it in the browser,
so that the user sees the following image until the real
image data has been loaded:

IMG_7468_blurred.JPG

Is Perl still a useful, viable language?

Three years ago someone asked the question "Is Perl still a useful, viable language?" on programmers.stackexchange.com. I'm not sure what would happen to a "useful, viable language" over time that would cause it to not be that any more - but I'm obviously biased.

The thing that I find intriguing is that the referrer logs for the Map of CPAN show that every day, at least one person follows the link from that question to the mapofcpan site. Every. Single. Day.

It's not even a particularly prominent link. How many people must be asking that question and finding that StackExchange page every day?

gdb-dashboard

https://github.com/cyrus-and/gdb-dashboard

wget https://raw.githubusercontent.com/cyrus-and/gdb-dashboard/master/.gdbinit -O .gdb-dashboard

sed -i 's,python Dashboard.start(),#python Dashboard.start(),' .gdb-dashboard

joe .gdbinit
source .gdb-dashboard
python Dashboard.start()

Screen Shot 2015-09-12 at 11.30.44 AM.png

Geocoding with Perl and Google Maps



Geocoding with Perl and Google Maps

[From my blog.]

P6SGI: Smack the Reference Implementation

The P6SGI standard is progressing reasonably well now. There are a number of issues yet to be worked out it is a reasonably good start. However, before we can really be sure of that, we need an implementation that puts the standard to use and helps us find the warts as well as provides a way to get started working with it.

Introducing: Smack.

Perl has Plack. Perl 6 has Smack. So far, the basics of it's own standalone server are built and working and CGI is started. Some of the built-in apps and some standard middleware have been drafted, but there is a large amount of work to be done.

I have a regular job, 3 boys, and limited spare time. If you have any interest in helping work on the next generation of Perl application servers, your help would be most welcome.

Cheers.

Creating a registry of environment variables

I want a registry of environment variables. If I see someone using one, I want to know what it does and what code or programs uses that. Or, given a program, what are all the variables that might affect it?

Rather than do the whole thing, I let myself do part of the first bit. I crawled all of my installed modules to pull out the keys used with %ENV. My solution (here's the gist) does some dumb matching then passes the result to PPI. It's probably another easy step to make PPI find uses of %ENV too (and skip all the mentions in the docs).

Some modules define their own variables, and some of those are even documented. Many use variables that they expect you to know about already, such as $ENV{HOME}.

From just the stuff I had installed (about 20 different perls), here are the most frequent, with their count:

Perl5 to Java compiler - 2nd hackathon

We've had another hackathon at work. This time Bosko, Bruno, Frederico, Yati, and I hacked on the Perlito Perl5-to-Java compiler.

We started adding unit tests - so that we can automatically extract a list of implemented features; the existing Perl tests are not properly organized "by feature".

The latest additions to the Java backend are:

Enlightened Perl Organisation sponsors Strawberry Perl

I am pleased to announce that Enlightened Perl Organisation (EPO) has kindly extended the support of Strawberry Perl project by sponsoring our build server (VPS) for the next 12 months. I would like to thank Mark Keating for arranging the funding.

For those interested in technical details: the build server is MS Windows 2012 virtual private server, 4 CPU, 16 GB RAM, 120 GB HDD.

And just for curiosity: the server sits (at least they claim so) in the heart of Europe, in the neighbourhood of this beautiful gothic castle (it does not make it run faster but still...).

If you are also considering supporting Strawberry Perl project you can do it indirectly by becoming EPO member or via donating EPO.

YAPC::EU 2015

Rather than crossposting content, click here to read instead.

Asynchronous, parallel and... dead. My Perl 6 daily bread.

I love Perl 6 asynchronous features. They are so easy to use and can give instant boost by changing few lines of code that I got addicted to them. I became asynchronous junkie. And finally overdosed. Here is my story...

I was processing a document that was divided into chapters, sub-chapters, sub-sub-chapters and so on. Parsed to data structure it looked like this:

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.