Release the Validator :: Custom 0.27 - improvement of grammar, handling of a multiple values, improvement of the OR validation

Validator::Custom 0.27 is release. This is a form validation module made of Perl. I was released it on CPAN.


Validator::Custom 0.27 Release

In the recent changes, while it keep backword compatibility, it is an effort to get the Mojolicious::Validator grammar. Validator::Custom is more customizable than Mojolicious::Validator yet now.

How I didn't fix AnyEvent::ForkManager

For April, I was assigned AnyEvent::ForkManager, which claims to provide an interface similar to Parallel::ForkManager, but compatible with AnyEvent. The module had some CPAN testers’ failures as well as an issue reported on GitHub, so I tried to fix it. I wasn’t quite successful, though.

Which CPAN distributions include jquery.js ?

Further playing with the JavaScript based view of CPAN I've added a new page in the lab called files. You can type in a name of a file (e.g jquery.js) and it will list you all the distributions that include this file.

You can also search for directory names such as js or css.

Let me know if you find something strange!

Oh and if you'd like to learn how to build the client side of the web application, register on the course I run before YAPC::EU.

Perl Zombie Ate My Brain

zombiePerl.png

Well something like that. The whole story is that I wanted to add in some new code on a rather old web-page. As the new code took some time to run I wanted to do it as an asynchronous call. So my new code would run off line and not slow down the already slow response time.

So I being a module sort of guy I had a try with Async and all seemed to work correctly in dev so we moved it into production and it seemed to work fine

Until

our Nagios started to complain and a quick 'top' gave us

Tasks: 1515 total,   1234 running, 670 sleeping,   6 stopped,   654 zombie

Well a after a pull-back of the code and then a clean up with a number of kill commands I got rid of them.

So what was the problem??

well the code was simple enough

Plack::Middleware::SignedCookies

I released Plack::Middleware::SignedCookies some time ago because I went looking for it and came up empty. This is a middleware that signs outgoing cookies on the server with a HMAC digest and verifies the digest on incoming cookies. If a cookie doesn’t pass the signature test, it is dropped on the floor and your application never gets to see it.

There are several framework-specific plugins that do the same job, but I wanted to get rid of as much framework-specific code as possible.

New CPAN Modules

I have found myself in a bit of a CPAN exuberance these last few months. While I have released several new modules, I haven’t found time to announce them individually. Here then is a joint announcement of what I’ve been doing on CPAN lately.

My Second NYC Perl Hackathon experience

On May 2nd 2015, the Second NYC Perl Hackathon event took place and this time around it was a completely different experience from the First NYC Perl Hackathon that took place in 2013. In early February, Jim Keenan made a call for a Perl Hackathon venue space in the NY.pm mailing list and Peter Martini from Bloomberg L.P. arranged a meeting to discuss the possibility of having Bloomberg L.P. host the event ( This is where my adventure started ). Jim Keenan reached out to me to assist him as a co-organizer ( and I excitedly said Yes ! ).

Veure: Arbitrary Mission Actions

This little baby makes me very happy:

That is a screenshot from the completion of a level 1 mission "Find Amaidoo's E-slate." The code was painful to integrate, but it makes things like the above simple to do.

Montage of Brian

Further to my last post about Brian McCauley, his wife Sam has a request for photos any of us may have taken over the years of Brian, so that she can used them to create a montage at his memorial.

If you have anything you'd like to submit, perhaps from a YAPC or other Perl event, please send them to the email address: picturesofbrian2015@gmail.com

Please do not send photos to myself or Sam, as she is using this email address to enable her to sort through photos. This email address is being sent to friends and colleagues at SJA, so hopefully Sam will have quite a collection to choose from.

How I Spent my 2015 NY.pm Hackathon

The 2015 NY.pm hackathon was a really fun event. I've posted a report on how it all happened for me .

Next stable DBD::SQLite to be released in mid June

DBD::SQLite 1.47_05 is a release candidate of the next stable DBD::SQLite. As always, please test it with your modules/applications and let me know if you find anything. If there's no blocker nor request to wait, I'll release 1.48 in the mid June, hopefully on 11th, the day after the YAPC::NA is over.

There'll be no big change in DBD::SQLite 1.48 itself, but a few notable changes that might affect you include:

  • Fixed optimization (-O2) was removed. This usually shouldn't matter, but if your perl is compiled with a different level of optimization, test carefully.
  • Now you can pass an extra bit (SQLITE_DETERMINISTIC) to create_function() and create_aggregate() for better performance.
  • $dbh->do($sql_without_bind_values) should also perform better.
  • DBD::SQLite::Constants is introduced to export a number of useful constants.

See Changes file in the distribution for other fixes and improvements.

Beta Features for Veure

There was positive response to my last entry about Veure, both on the post and in private email, so I'll keep posting.

Currently, we're pushing forward hard to try to get to the alpha release and get playtesters (let me know if you want in on it). Major things we need to finish to get there:

  • More missions and jobs (repeatable missions for lower rewards)
  • Auction Houses
  • Elite-style trading
  • More NPCs
  • More game balancing
  • Some legal stuff (expensive and time-consuming)

There's more we need, but those are the "big" items we need to finish. The content generation is some of the most time-consuming. Plus, I need to do a lot of work to make the mission system manageable for someone who isn't me. Right now it's complex (to put it mildly) and I'm adding a new feature to make it more flexible but which also increases complexity. If we can't have rich, compelling, missions, much of the game falls flat.

Brian McCauley (1967-2015)

It is with great sadness that I pass on the news that Brian McCauley passed away yesterday morning.

Perl QA Hackathon 2015 Recap

A few weeks ago was the Perl QA Hackathon in wonderful Berlin, Germany.

I attended like I have for the last 3 years, as I love to get a chance to hang out in person with many of the people I see online daily, and I get a huge boost of motivation surrounding the event. It's also a great time to catch up on things that have been put off for one reason or another.

This year I planned to get Devel::PatchPerl working for a few much older versions of Perl. Devel::PatchPerl's purpose is to patch unpacked tarballs of the perl source tree so that older perls continue to compile as compilers and libraries change over time. This is useful for module maintainers who want to continue to support older perls for various reasons.

In my testing, I could compile perl all the way back to perl-5.6.0, but not beyond that, and I need to go back to at least 5.003.

New JavaScript based interface of CPAN

I've started to build a new, JavaScript based interface to CPAN. It uses the MetaCPAN API as its back-end. It is quite at the beginning, but you might already want to take a look at it and give suggestions.

One of the reasons to build this is to provide material for the Web Application Development course I am offering at YAPC::EU. This is a single-page application using jQuery, Handlebars and Kube.

Another reason is to provide a playground for myself and for others to create potentially interesting pages based on the MetaCPAN data that later can be incorporated into MetaCPAN. For example I've added a page that list the most recently uploaded modules without a license in the META fields. If someone is looking for low-hanging fruits for sending pull-requests, this might be a good source for them.

There is also a list of recommended modules categorized on he front page.

The source code is on GitHub in case you'd like to send suggestions.

MetaCPAN Welcomes iDoneThis as a Sponsor

I've been doing a fair amount of mentoring work over the last couple of years with the Google Summer of Code (GSOC) and the GNOME Outreach Program for Women (now Outreachy). I've tried various ways of tracking progress of the interns, with varying degrees of success. What I've settled on and what has worked best for me is iDoneThis.

The beauty of this service is its simplicity. It's calendar-based and it lets you track two things: what you plan to do on a given day and what you've actually done on a given day. Teams can share this info and then "like" and comment on them. That's basically it. You can either log in to the site or just respond to an email. I have to say that I really like the simplicity of email as an API, even if I do prefer to log-in to enter my "dones".

How I write custom quests for Veure

Note: If MMORPGs are of interest to you, please read through this and answer the simple questions at the end.

I'm still diligently hacking away at Veure. About a year ago I wrote that I had 17% of the alpha tasks done. Given that I've added a number of alpha tasks (and pushed some back to beta), I'm relatively pleased that as of this writing, I have 81% of the alpha tasks finished, with over 90% of the commits by me. It's daunting single-handedly writing an MMORPG, but we've a developer who's been working on it and will be returning to it in June, so that's going to help. We're also looking at hiring a narrative designer to flesh out content. Writing a game is hard, but filling it with content? Hoo boy! It's the difference between outlining a novel and writing it (well, not exactly, but cut me some slack, eh?).

And that brings me to content. Much of $secret_mmorpg_name (legal stuff, sorry) will be impacted by missions, but what are missions?

(should be a) Reply to [GPW 2015] German train drivers' union calls 5-day strike starting Tuesday

The German Perl Workshop will take place as planned. The following mail was sent out to (I assume) all attendees:

YAPC::EU Master Classes, Talks and Hackathons

Upcoming YAPC Europe in Granada will have at least two master classes, 34 talks and there's room ready for hackathons on September 1st.

Do you want to be part of it too? You can still register the conference and the master classes, submit talk proposals, or organize a hackathon. Find the details on the conference website.

[BREAKING] [GPW 2015] German train drivers' union calls 5-day strike starting Tuesday

This is just a quick PSA to bring it to anyone's attention who needs to know and doesn't already yet: The association of german train drivers has announced a general strike of person transportation from tuesday to sunday (5.5. - 10.5.). No further details have been announced by Die Bahn yet, but this might call the German Perl Workshop this year in jeopardy. Organizers have been sent messages, but have not replied yet.

Edit: The GPW organizers have posted an update.

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.