A Real Developer Challenge

Spotify is having a coding challenge to find "top-notch talent to join our NYC team". The challenge is to solve the most algorithmic puzzles in four hours... alone. "You may not cooperate with anyone, and you may not publish any discussion of solutions." What sort of developer will win this competition? Someone who is quick, dirty, has a mathematical mindset and lucky enough to write something that happens to work for the test data set. The "rockstar". Is this somebody you want on your team? Would you want to maintain their code?

Last year while on contract, the company in question was passing around their coding problem they used to test new hires. It was pretty typical stuff: give the data going in, the data they want out, and write a little program to do the transform. They even supplied most of the program, including a test; the prospective hire just needed to write one sort subroutine which could deal with "Low", "Medium" and "High" as well as numbers.

True + True == 2

I've seen lots of new Perl programmers confuse 1 and true before, usually something like this:

do_something if boolean_function() == 1;

This is not only redundant, but it's also brittle and redundant. In Perl, it's very easy for a boolean function to return something other than one.

sub has_stuff {
    ...
    return scalar @stuff;
}

This code I found today in Module::Build::Base takes the cake.

if ( $self->check_prereq + $self->check_autofeatures != 2) {

(Yes, I fixed it)

UPDATE: Whoops, I broke it! As rsimões pointed out in the comments, the original does not short circuit and my change does. That was not a bug, both check routines should always run (a consequence of the checks having side effects). I had to think about it a bit, and the simplest thing I came up with is:

if( grep { !$_ } $self->check_prereq, $self->check_autofeatures ) {

Which goes to show, and I should have known this myself, don't assume the author is an idiot. There's usually a reason why they did what they did. Find it before touching the code.

Calling All Speakers!

Submit a talk for YAPC::NA 2012. We’re especially interested in talks on real-world Perl apps and quintessential Perl 101 talks, but we’re open to any ideas you have. 

[From the YAPC::NA Blog.]

Perl at Fosdem 2012

Hi,

Next Sunday (5 february), Fosdem 2012 is hosting our Perl booth and Perl devroom. We welcome a bunch of impressive speakers. The schedule is published here.

If you are coming to Fosdem but did not select talks from the Perl devroom: read the text below and reschedule your day ;)
If you didn't plan to come to Fosdem but are or can free next Sunday, read the text below and book your day !
Best of all, Fosdem is free of charge and you don't have to register your presence.

Most talks in the Perl devroom cover specific Perl development aspects, ranging from beginner to expert stuff. If you are a Perl developer, these will certainly be most valuable to you! Check the schedule!

On development in perl

If you go to a bookstore to get some books about modern software development, you will find a lot there, but all these books are written from and written for the "java-guys". In my opinion we need to show, that you can use all these techniques in perl too...

Test Driven Development
I cannot remember a time, where modules in perl from cpan were without a test-suite, and we have many test-modules out there, but all the books about tdd are about Java or .Net.

Automatic Acceptance Tests
All agile developers love automatisation. There is Fit developed in java and you need some time to find Test::C2FIT and even then, the documentation is not so easy to read, so we germans are happy to find the Fit Cookbook (in german)

Domain Specific Language (DSL)
I don't know a language in wich it is easier to build up domain-specific-languages, but if you look up the books, you will again find examples in java and in ruby.

More module versioning pain

Yeah, I know, I am always complaining about module versioning. But I think this is something we need to take care when releasing.

This time, it seems that Mail::SPF (JMEHNLE/mail-spf/Mail-SPF-v2.8.0.tar.gz) was indexed by CPAN as v2.8.0, but identifies itself as v2.008. Oh, joy!

Conference Hotel Registration Open

There are 100 rooms available for YAPC::NA 2012 wishing to stay at the conference facilities. These rooms have all the comfort of a high-end hotel, for only $89 per night for a standard room or $105 for a deluxe room. 

To register visit: https://lowellirm.uwex.edu/irmnet/login.ASPX

Use the group code of: YAPC

You can check in as early as June 10. You can check out no later than June 16. 

You must register for these rooms no later than May 1, 2012. My guess is that they will sell out much faster than that. 

NOTE: Dorm room accommodations will be made available soon for about half this price. 

PS

The guys running the 2012 Perl QA Hackathon have asked me to remind everyone that the hackathon is taking place March 30-April 1 in Paris. They’re also in need of sponsors. If you can help, click the “donate” button at the top right corner of their site.

[From the YAPC::NA Blog.]

Thank You Sponsors

We’d like to thank our sponsors for stepping up to support us. We really couldn’t do this without their support.

You too could sponsor YAPC.

PS

The guys running the 2012 Perl QA Hackathon have asked me to remind everyone that the hackathon is taking place March 30-April 1 in Paris. They’re also in need of sponsors. If you can help, click the “donate” button at the top right corner of their site.

[From the YAPC::NA Blog.]

About blogs.perl.org

blogs.perl.org 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 run by Dave Cross and Aaron Crane, with a design donated by Six Apart, Ltd.