Type::Tiny 1.000000 Released

It's been almost 17 months, and over 160 releases to get there, but Type-Tiny 1.000000 has been released on CPAN Day 2014.

Type-Tiny is a framework for type constraints and coercions. It can be used for isa checks in Moose, Mouse, and Moo attributes, function parameter checking, and so on. It's already used by over a hundred CPAN distributions.

Over the next few days I'll be posting some tips and tricks explaining some Type-Tiny features that you may find useful.

CPAN Day 2014 in Oslo

Oslo Perl Mongers are organizing a CPAN Day event! \o/

Tomorrow (Saturday August 16th 2014), we’ll be hanging out at the Hackeriet (Norwegian for “The Hackery”) hackerspace, helping anyone dropping by with CPAN and Perl issues they may have!

We can help with…

  • Getting your modules published
  • Sign up for PAUSE
  • Answering your Perl quesions, of any difficulty!
  • Telling about Perl and CPAN best practices
  • Show how to create a CPAN distribution
  • Help toubleshooting module deployment and installation issues
  • Offer therapy, constructive criticism or Real Help for anyone struggling with Perl or CPAN
  • Hang out and have fun!

We’ll have Club Mate in the fridge (unless it’s sold out) and even a short presentation about CPAN and Perl module basics, courtesy Arne Sommer.

Feel free to sign up at meetup.com, and drop by! :-D

Try Travis CI with your CPAN distributions

Travis is a continuous integration (CI) platform for github users, which is free to use. You can set it up so that every time you push one of your CPAN distributions to github, Travis will test it against different versions of Perl.

I've only just started playing with Travis, but I can already see benefits for using it in parallel with CPAN Testers. Why not give it a go on CPAN Day? :-)

perlprogramming.org

In addition to perlpolls.com and perlsurveys.com I just found out that the domain perlprogramming.org is also about to expire. As I don't want to pay for these any more I'll let all of these expire.

If you have an idea what to do with any of these domains, please let me know and I'd be glad to transfer the ownership to you instead of letting random people register them after they expire.

Want to help the Perl community? Here's how.

Please respond by tomorrow (Aug 15th).

Grants Committee Looking For Volunteers - The Perl Foundation

brian d foy at Chicago Perl Mongers tonight!

Just a quick reminder that noted perl luminary brian d foy will be at Chicago Perl Mongers tonight. He will be running his Become a CPAN Author Workshop which is a great way to start contributing to this famous repository. So if you have wanted to start playing with CPAN or you just want to meet brian then come on over! It is free as in beer AND there will be free beer!

Specify the min perl version for your distribution

It's a good idea to specify the minimum Perl version required by your distribution. It's useful information for people looking at your code, it's helpful for CPAN Testers (which will report NA for old perls, rather than failing), and it makes the requirement clear to people who are trying to install your module on an older Perl.

Splitting a Catalyst App and recombining it with Plack::Builder

I had a big Catalyst App serving HTML.

Some time later a RESTful interface was needed so I added RESTful controllers using Catalyst::Controller::REST

But that broke Plack::Middleware::CSRFBlock, because the REST calls don't request a form and thus cannot add the secure token to POST requests.

Thinking about a solution it dawned on my that having a single App serving HTML and RESTful requests is probably a bad design choice.

Thankfully most of my business logic is in my DBIx::Class schema so splitting up one Catalyst App into two Catalyst Apps under the same namespace shouldn't be much of a problem.

Let's call the old App 'MyApp'. I wanted the new Apps to be named 'MyApp::Web::HTML' and 'MyApp::Web::API'

First part was to create lib/MyApp/Web/API and lib/MyApp/Web/HTML folders and moving as much components (Controllers/Views/Forms) there as possible. This part meant quite some renaming of file and package names. Your IDE can be quite helpful with that.

Quickly Check for Database Design Flaws

Don't you just hate it? You've finished reading, again, that blog entry about database design and you're feeling that you can design something reasonable, and then you see this table:

EmployeeID| SalesPerson| SalesOffice| OfficeNumber| Customer1| Customer2| Customer3
1003 Mary Smith Chicago 312-555-1212 Ford GM
1004 John Hunt New York 212-555-1212 Dell HP Apple
1005 Martin Hap Chicago 312-555-1212 Boeing

You can easily see that Customer1, Customer2, and Customer3 are wrong, but what about the rest? Try as you might, you can't quite put all of the rules together that easily to figure out what's wrong with the above table.

There's a shortcut, though, and it makes it very easy to start understanding database design.

MadMongers Tonight

Come hang out with us at Essen Haus tonight and participate in a series of mini-talks about where Perl can go. You might be surprised. 

[From my blog.]

Put your CPAN distributions on github

If your CPAN distributions aren't already on github, then I think you should consider adding them. Github is the most popular code hosting service, so it's the first place many people will look for your code.

If your distributions are on github, it makes it a lot easier for people to submit changes (like bug fixes) via pull requests. And if it's easier, it's more likely that people will.

If you do add your dists to github, then you should make sure that you give the repo in the dist's metadata and the documentation too.

Sawyer X joins Perl::Dancer conference as trainer and speaker

Sawyer X, one of the most prolific Dancer core developer and excellent
presenter, is attending the Perl::Dancer conference.

He is going to be in charge of the first training day, with the help
of other presenters.

Also, Sawyer X will also give presentations on the main conference days
on Wednesday and Thursday. He'll be around to answer your questions
about Dancer during these days.

Thanks to Booking.com for sponsoring the event and Sawyer X being there.

Please register for the conference at http://act.perl.dance/eic2014/registration.html.

Call for Papers is still open at http://act.perl.dance/eic2014/cfp.html.

If you need more information, please contact us by email (2014@perl.dance).

Are conference speakers compensated

Recently brian d foy wrote about compensation for conference speakers. The term "dirty secret" prompted me to write about it as well.

Swiss Perl Workshop: Kickstarting Mastering Perl Course

Isn't it amazing! There are people in the community - true celebrities, international travelers, writers of several popular books, authors of bazillion modules, record holders on stack overflow - who not only want to come to your local or not-so-local Perl event but even want to work for their compensation.
And hey, sometimes they go as far as starting a Kickstarter campaign for you to fund that work.

For the Swiss Perl Workshop 2014, brian d foy does all the above, and more. He is giving a keynote, teaching his "Become a CPAN Author in 2 Hours", hanging out at the "Hack and Talk"-Track, and whatever we come up with in the next weeks.
The best though is that he stays for another few days. On September 9 and 10 he is going to teach "Mastering Perl" in Zürich. To make the class interesting and available to even more people, he started a Kickstarter campaign.
Only few hours into the campaign, it is already doing very well:
kickstarter_campaign_brian.png

Classify your RT tickets on CPAN Day!

Last week I encouraged y'all to fix a bug or two on CPAN Day, either in your distributions, or in someone else's. To help you, I listed the top 20 dists by bugs.

David "never satisfied" Golden pointed out that the table would be more useful / interesting if broken down by severity. So here it is. This also reveals that a lot of tickets don't have a severity set, so on CPAN Day we should sort that out too!

Creating an MMORPG in Perl

Question: do you want to hear more about my attempts to create an MMORPG in Perl, even if posts are not Perl-related? Also, are you interested in helping me develop its ideas further?

As many of you know, I'm trying to create an MMORPG running on Perl. It's codenamed veure. Though I've written about it a few times here, I've not written much because many of the entries are about game design and not strictly about Perl. As a result, I've tried to avoid spamming this blog. That being said, people constantly say "stop talking about how great Perl is and build great things with it!" So I'm trying to build something great with Perl, but as most experienced programmers know, it's not so much the programming language as the business rules which are important.

And damn, business rules in an MMORPG are hard.

Having fun with Perl and PDL: predicting github contribution calendar, GitInsight

Premise : this is my first time using PDL

Lately i had the chance to put my hands on PDL, i was glad to discover that it's awesome! I come from a matlab/octave and Mathematica background, at first was a bit difficult to dig thru the PDL equivalents functions and i have to admit that PyMC has some fancy stuff that require a lot of code to implement in PDL and i wanted to borrow in that case.

A Marpa-powered IDL parser, and translation to Moose

I am pleased to announce the release of a Marpa::R2 parser for the latest OMG IDL, version 3.5: MarpaX::Languages::IDL::AST.

The source code of the parsing itself is very small, thanks to Marpa::R2::Scanless power, and produces an AST of any IDL source, so that everybody is free to adapt it.

As an example, this module provides an experimental translation from IDL to Moose, via the script idl2moose. Indeed, perl's Moose (and its friends -;) notion of roles fit perfectly what an IDL stands for: the definition of an interface..

I imagine this can be useful for those wanting to describe what they want, without having to write something that can be automa(gi)cally generated.

Please note that this module has intentionnally no link to any CORBA implementation, leaving room to any perl implementation behing the scene.

Acknowledge your contributors on CPAN Day

There's a well known saying, "it takes a village to raise a child". I think our equivalent is something like "it takes a community to raise a CPAN distribution". There are very few modules on CPAN that have been purely the work of one person. You get bug reports, pull requests, feature ideas, typos reported by D Steinbrunner, and so on.

All of these interactions nudge your distribution down the road, encourage you, inspire you, and sometimes annoy you. But they all help make your distributions what they are. So on CPAN day, maybe you could acknowledge them in your documentation?

WiMP : The Wirld's Mightiest Programmer Competition

WiMP : The Wirld's Mightiest Programmer Competition

[From my blog.]

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.