Amusewiki 2.0

Happy winter solstice, Perl community!

After almost 3 years of development and more than 2 years in production, 2 talks at YAPC::EU (Granada and Cluj) and one talk at the Dancer conference last year in Vienna, I think it's time to announce Amusewiki on blogs. as well, as I consider it more or less feature complete and robust enough for a larger audience.

Amusewiki is basically a CMS, but it's not "yet another one". Its main feature is that it creates for each published text various PDF (via LaTeX) and EPUB (for e-readers and mobile devices) files, along with an HTML version. It's also able to produce slides. Also the bookbuilder provides a way to extract, merge and customize the texts stored in the archive. You may want to give amusewiki a try if you're interested in publishing and distributing texts. If you just need a wiki or a blog for posting code snippets and lolcats, you probably want to look elsewhere. Amusewiki is suitable for publishing whole books as well.

Perl 5 Porters Mailing List Summary: December 12th-18th

Hey everyone,

Following is the p5p (Perl 5 Porters) mailing list summary for the past week.


White Camels 2016

2016.png The White Camel Awards recognize outstanding, non-technical achievement in Perl. Started in 1999 by Perl mongers and later merged with The Perl Foundation, the awards committee selects three names from a long list of worthy Perl volunteers to recognize hard work in Perl Community, Perl Advocacy, and Perl User Groups. These awards have been managed by The Perl Review in conjunction with the The Perl Foundation.

At the end of each year we ask the community to nominate Perl heroes. Each year we have a long list of people we could recognize. You don't have to wait to nominate someone though. We maintain a list from one year to the next. We'll take nominations at any time, but wait to announce them on Perl's birthday.

For 2016, the White Camels recognize the efforts of these people whose hard work has made Perl and the Perl community a better place:

Perl User Groups - David Golden

DBD::mysql - all your UTF-8 bugs are belong to us!!□□

After a couple of years of more or less "maintenance mode" on DBD::mysql - we had a hand full of people contributing occasional fixes and a whole slew of drive-by contributors - we now have a prolific contributor again: Pali Rohár.

It's great to see some more long-standing issues taken care of!

This time around, in the new development release 4.041_01 that is on CPAN now, there are some important fixes for some Unicode-related issues that I would like to point out. The sections below I have distilled based on the descriptions made by Pali.

Automatically converting to UTF-8 for bind parameters

Before this release perl scalars (statements or bind parameters) without UTF8 status flag were not encoded to UTF-8 even if mysql_enable_utf8 was enabled. This caused perl scalars with internal Latin1 encoding to be sent to the mysql server as Latin1 even if mysql_enable_utf8 was enabled.

C::Blocks Advent Day 10

This is the C::Blocks Advent Calendar, in which I release a new treat each day about the C::Blocks library. Yesterday I dug into the details of writing a type that can be used with C::Blocks. Today I explain how to use C::Blocks in multithreaded Perl code.

Working with the MetaCPAN API

This is the fourth article in a series about MetaCPAN. The first article described the two main parts that make up the MetaCPAN project: the API and the search interface. The second article gave a high level overview of how the API uses Elasticsearch to hold and search information about CPAN distributions and authors. The third article showed how MetaCPAN fits into the rest of the CPAN ecosystem.

In this article we'll show how you can use the MetaCPAN API to get information about releases to CPAN. We'll start off with a very simple query, then gradually refine it to narrow down which releases are returned, and what information you request for each release.

This article is brought to you by Elastic, who were a Gold sponsor for meta::hack. We were very happy to have their support, especially given the central role that Elasticsearch plays in MetaCPAN.

C::Blocks Advent Day 9

This is the C::Blocks Advent Calendar, in which I release a new treat each day about the C::Blocks library. Yesterday I illustrated C::Blocks::Object::Magic while writing a simple class that had APIs in both Perl and C. Today I dig into one of the keys of yesterday's example: writing a type that can be used with C::Blocks.

Let the fake times roll...

In my $dayjob at GetResponse I have to deal constantly with time dependent features. For example this email marketing platform allows you to use something called 'Time Travel', which is sending messages to your contacts at desired hour in their time zones. So people around the world can get email at 8:00, when they start their work and chance for those messages message being read are highest. No matter where they live.

But even such simple feature has more pitfalls that you can imagine. For example user has three contacts living in Europe/Warsaw, America/Phoenix and Australia/Sydney time zones.

About is a common blogging platform for the Perl community. Written in Perl and offering the modern features you’ve come to expect in blog platforms, the site is hosted by Dave Cross and Aaron Crane, with a design donated by Six Apart, Ltd.