urbia.com sponsors YAPC::Europe 2012

We welcome urbia.com AG as a Silver Sponsor of this years' YAPC::Europe.

UrbiaBlog.png

urbia.com AG (a company of Gruner + Jahr AG & Co KG) operates the web community www.urbia.de targeting young families with topics like pregnancy, birth, baby and parenting at its core. www.urbia.de attracts 6,5 million visits and 2,3 million unique users per month which makes us the market leader in the parenting segment in Germany.

Perl has been proudly powering our platform since 1998. In the meantime we migrated our code base to Modern Perl making use of the Catalyst MVC framework, DBIx::Class, Template::Toolkit, Moose and tons of other wonderful CPAN modules without which we would have never been so successful. To thank the excellent community and show our continuing support, we decided to sponsor this year's YAPC::EU in Frankfurt. If you're interested in joining our team in Cologne, go to http://www.urbia.de/allgemein/jobs to check out our open positions and/or contact us at jobs@urbia.com.

CPAN Testers Summary - May 2012 - Black Moon

May proved quite an interesting month. Firstly, I got several confused emails relating to the Status page on The CPAN Testers Reports site. Secondly, we ran out of slots in the namespace for Amazon. And then thirdly a very involved discussion on versions on the mailing list.

The nice thing about short-circuiting

I just noticed in my own code that even though I am comfortable with this expression:

$a //= 123;

when the right-hand side is some function call, especially one with side-effects or big performance penalty, I tend to write:

unless (defined $a) { $a = foo() }

which is silly because // and //= short-circuits. The same case for || and ||=, et al. It's just irrational fear.

YAPC::NA 2012 Starts Today!

Hold on to your hats, this is going to be a wild ride! See you all at the Lowell Center for the kick off this morning at 9am sharp! Registration opens at 7am.

Don’t forget that you can watch the streams live on the web for free:

Also, the videos are being recorded. We will be posting them somewhere, but we don’t have details yet. We’ll do another blog post after the conference to let you know where you can watch them.

[From the YAPC::NA Blog.]

Net-A-Porter.com sponsors YAPC::Europe 2012

We welcome Net-A-Porter.com as a Gold Sponsor of this years' YAPC::Europe. Without the help of all our sponsors, the event would be almost impossible... Thanks!

net_a_porter.jpg

RFC: Unicode 6.2 changes

Unicode is getting ready to release their next version, 6.2 (likely in September). It includes only a single new character, for the new Turkish currency symbol. But there are changes to the properties of existing characters, and some of these may be of concern to Perl programmers.

A comment period on the changes has just started, closing in July. Unicode calls these PRI's, or Public Review Issues. This is a link to the page describing the changes and procedures for commenting.

The issues I think are of most interest to Perlers are the proposed changes of the Unicode General Category for a number of ASCII characters. Follow this link for a list of them. An example is U+0040 ( @ ) COMMERCIAL AT. Unicode proposes to change this to be a Symbol, instead of Punctuation. Perl code is somewhat shielded from this change, as qr/[[:punct:]]/ matches both Symbols and Punctuation in the ASCII range. However, what qr/\p{Punct}/ and qr/\p{Symbol}/ match would change, as would qr//[:punct:]]/ for non-ASCII characters.

There are other changes proposed as well. Use the first link above to get the details.

MooseX-App 1.04 released

I just have released the latest version of MooseX-App - a command line-app helper framework - on CPAN (see my last blog post if you want to learn more about MooseX-App). This release incorporates the feedback I have got from fellow perl mongers.

The most notable change is that not all attributes will be exposed to the CLI, but only those defined with the new 'option' keyword.

The 'option' keyword is basically just syntactic sugar for adding an attribute with a special trait which marks attributes as command-line options. The main advantage for this approach is that you don't have to explicitly prevent internal attributes - possibly originating from consumed roles deep down in your code - from being exposed to the command line.

Furthermore I have cleaned up the meta classes, making it easier to write custom plugins which can modify almost every part of MooseX-App's behaviour, and fixed a couple of bugs I have discovered while switching App::iTan from MooseX::App::Cmd to MooseX::App.

App::iTan is a little command-line application - written a couple of years ago - which helps me to manage indexed transaction authentication numbers (iTAN) for my online-banking account. Hope you like it.

Why full closure support makes Perl great for science

Part of the reason I love Perl is that it has full closures. It makes it really easy for my scientist brain to think of code references as equations. This is why I try to make my scientific software think this way too; PerlGSL is built on this concept. Its especially fun when this allows me to nest functionality to get even more complex behavior.

In this following example I find the Gaussian width needed so that the integral over it on a certain range has a particular value. Yes this is an easier example, but if the function f were more complex, this code would be no worse.

Hopefully this shows some of that power, and some of the reason I am working on PerlGSL.

I will be going into more detail on similar concepts at one of my talks at YAPC::NA later this month. See some of you there?

Deadlines for talk submissions / acceptance

This is just a reminder for you if you plan to submit a talk
to YAPC::Europe 2012 in Frankfurt.

The Talk submission deadline is 15th July 2012 (four weeks before the conference).

The latest approval notification is on 31st of July.

We will evaluate talk submissions every three weeks and accept a handful proposals. This doesn't mean that if your talk isn't approved right away, it won't be. However, the sooner you get your talk proposals in, the better chance you have of getting a talk approved and placed on the schedule.

Please also remember
that we'd like to print the proceedings, so talk handouts are important too! We think that proceedings are a good way to call back the talks you have heard and to get more information about topics you were unable to attend.

As people also had asked, the Early Bird offer will exprire early in July.

Registration Opens at 4pm

If you’re here and want to get a head start on registration, we’ll have an open registration session between 4pm and 6pm tonight in the Upper Lounge of the Lowell Center. Come say hello, pick up your badge, t-shirt, and other swag.

[From the YAPC::NA Blog.]

App-ArchiveDevelCover 1.001

App-ArchiveDevelCover now shows a diff-like comparison between the current and previous archived coverage report.
You can find a screenshot and a bit more info on my blog

Hello World

OK, so this is my first attempt to write a blog, I hope this works. I like Perl (a lot) I like Bioinformatics and Computational Biology (yes I'm a biologist and I'm also a systems analyst), and now I decided that I like Big Data as well. Hope to write a little about those subjects.

Simplified error cleanup with Filter::Cleanup

Writing fault-tolerant programs can be a tedious exercise. Often, each step in the program logic depends on the success of the step prior, resulting in deeply nested calls to eval. Tracking the global $@ and ensuring that errors are not lost can be tricky and result in hard-to-follow logic.

I recently read The D Programming Language by Andrei Alexandrescu (which I highly recommend). D features an interesting (and, to the best of my knowledge, unique) alternative to try/catch-style error handling (although it also supports try/catch/finally). It turns out that very little code actually traps errors and makes decisions based on error conditions. In most cases, the error must be temporarily trapped to allow cleanup before re-throwing the error afterward. In these cases, D programmers can use a scope statement to register clean-up code to be executed should any of the statements following it trigger an error.

Spouse's Program

The Spouse’s Program begins tomorrow morning. Those of you participating should come to the opening ceremonies at 9am at the Lowell Center, where I’ll introduce you to our Spouse’s Program organizer, Julia. Dress casually and in comfortable shoes. 

Tomorrow you’ll be taking tours of the State Capitol, Camp Randall Stadium, and of Wollersheim Winery. Later in the week you’ll be visiting the Chazen Museum of Art, going sailing, participating in a craft workshop, and taking a guided tour of State Street (a shopping/restaurant district). 

[From the YAPC::NA Blog.]

YAPC::Asia Tokyo 2012 Best Walk Awards!

Since YAPC::Asia Tokyo 2010, we have been hosting voting on "Best Talk Award" for talks that go on YAPC::Asia Tokyo. We are also giving away prizes for the winners of these awards -- for 2010, we gave a Macbook Pro with all the bells and whistles, and last year we gave a dandy ergonomic chair.

So we were thinking what to do this year... and here's what we got: We're going to give the winner a trip to YAPC::NA or YAPC::EU. Runner-up prize will be trips to local PM meetups in Japan.

This award was originally created in hopes that giving talks at YAPC::Asia Tokyo will also also be rewarding for the attendees, and also to give them some incentive to learn more, to do more. We believe that giving them a chance to attend these conferences will be an extremely cool opportunity to mingle with people who otherwise they may never meet in person, and to feel what it's like in other conferences.

Of course, we are assuming that a Japanese local would get the award, but if somebody living abroad gets this award, we'll try to arrange something. Do visit us if you're interested!

Log4perl: Category Logging at a Different Level than Root

(This is probably intuitively obvious to everyone else...)

Here is a sample Log::Log4perl configuration where the root logs at WARN, package 'Joe' logs at 'INFO', and package 'Zoe::Marie' logs at ERROR:

log4perl.rootLogger=WARN, LOGFILE log4perl.logger.Joe=INFO, LOGFILE log4perl.logger.Zoe.Marie=ERROR, LOGFILE

log4perl.additivity.Joe = 0
log4perl.additivity.Zoe.Marie = 0

log4perl.appender.LOGFILE=Log::Log4perl::Appender::File
log4perl.appender.LOGFILE.filename=/tmp/test-Log4perl.log
log4perl.appender.LOGFILE.mode=append

log4perl.appender.LOGFILE.layout=PatternLayout
log4perl.appender.LOGFILE.layout.ConversionPattern=[%r] %F %L %c - %m%n

Because of how Log::Log4perl was built, you don't need to do anything special in your code to support this multi-level priority logging -- each package can just use Log::Log4perl->get_logger() to get the the logging object and it all falls out in the wash.

(In theory, this type of configuration should work for Log4j and Log4net also.)

YAPC::Europe 2013 Call for Venue reminder

As far as I know, the YEF did receive neither a Letter of Intent nor a proper proposal for hosting YAPC::Europe 2013 yet (and I should know, as I'm on the Venue Committee)

The deadline for submitting a proposal is Thursday, 5 July.

So if you and your group are thinking about hosting next years YAPC, we would very much appreciate it if you'd send a short note (or a full-fledged proposal) to venue@yapceurope.org.

It's really not much work, and all reports from previous organizers stating otherwise are grossly exaggerated!

Here's the whole Call for Venue, and here is a detailed document on what to do to bring YAPC::Europe 2013 to your wonderful hometown. And for even more organizers know-how, check out Perl Jam an upcoming book about "How to organise a conference ... and live to tell the tale." by barbie et.al. (also available on github)

Keeping in touch

From guest contributor Matt Trout:

YAPC::NA isn’t just about the main conference programme - there’s often
things that get organised on the fly by attendees because somebody comes
up with an idea, or because they want to try somewhere new for lunch.

In order to make sure you don’t miss out - and to find out if somebody
has found the power cable you accidentally left in the lobby - it’s worth
keeping in touch.

To do that, there are two key resources -

 1) The mailing list:

    http://mail.pm.org/mailman/listinfo/yapc

 2) The IRC channel:

    #yapc on irc.perl.org (which allows mibbit.com if you have no client)

The mailing list tends to be used for “hey, does anybody fancy doing
X later?” ideas, and the IRC channel for “hey, does anybody fancy doing
X right now?” but that’s more down to the technology than any enforcement.

These will help you get the most out of your YAPC - and to find the
people involved in http://act.yapcna.org/2012/wiki?node=HallwayPlusPlus
if you’re wanting to met new people while you’re here too!

[From the YAPC::NA Blog.]

A marvellous overview of browser capabilities

Hi Folks

caniuse.com.

Nuff said.

cpancover

I've started work on my Devel::Cover grant from TPF. If you are interested you can see my report for the first week at http://www.nntp.perl.org/group/perl.qa/2012/05/msg13184.html.

As a part of that work I have updated cpancover and moved it to a new home at http://cpancover.com.

cpancover is my project to provide coverage details for CPAN modules. Whilst useful in its own right, I also tend to use CPAN as my extended test suite for Devel::Cover. I was able to procure a server in the beta phase of http://bigv.io from the nice folk at http://bytemark.co.uk and I decided it was time for cpancover to have its own domain name.

If you would like to see a module added to cpancover please let me know. Or, better yet, patch https://github.com/pjcj/Devel--Cover/blob/master/utils/install_modules and send me a pull request.

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.