FizzBin with no ifs, ands, or buts.

Today at my current client, there was some disagreement over the scoring of job candidates’ FizzBin solutions in the code test portion of the interview. They are allowed to use whatever language they choose but almost everyone does the same thing. Grayson Koonce has a good explanation of the problem with his evolving solution in Go. I decided to do the exercise myself but with extra constraints. I wouldn’t use any conditionals.

Continue reading “FizzBin with no ifs, ands, or buts.”

List comprehensions in Perl (almost)

[I wrote this about two years ago and waited for some inspiration that would make it a little better. That inspiration never showed up. In the new year I’m cleaning out all the draft articles though.]

I went off to see what list comprehensions are all about. Lately I’ve run across several bits of Python I’ve wanted to use. I don’t mind Python so much but I’m certainly rusty; I spend some time on StackOverflow where I run into the term “list comprehension” quite a bit. They sure like whatever that is so I went off to investigate. Someone might want one of those in Perl, hence the click-baity title of this post (a better one might be “12 Ways to…”). Continue reading “List comprehensions in Perl (almost)”

Automated testing with Travis CI

Intermediate Perl shows the basics of Perl testing. We show you how to write test programs and how to run those from the command line. That’s the language-specific stuff and within the scope of the book. You can take it further though. You can set up your code in a “continuous integration” system that runs the tests whenever you commit change (most of these trigger on a source control commit). You commit your code and grab some more coffee while your tests trigger themselves. Martin Fowler has some interesting thoughts on CI and wikipedia has a comparison matrix of CI services. Continue reading “Automated testing with Travis CI”

Trying to divide the smallest hexadecimal number

You can run into problems relying on the averages of floating point numbers. This is something I think about often after reading Sinan Ünür’s How you average numbers matters. I thought about it again when I read Honza Brabec’s Mean of two floating point numbers can be dangerous. Despite the hyperbole of “can be dangerous” (see “Considered Harmful” Essays Considered Harmful), it certainly can do something that you don’t intend. Continue reading “Trying to divide the smallest hexadecimal number”

Pre-compiled patterns retain their settings if they are interpolated

The qr// operator precompiles a regular expression and returns a reference to that compiled pattern. You can use that reference with the binding operator to perform a match, interpolate the reference into the match or substitution operators, or combine the reference with other references or literal patterns to make a larger pattern. We cover this in Chapter 9, “Regular Expression References”, but don’t emphasize what happens with regex flags when you combine patterns. Continue reading “Pre-compiled patterns retain their settings if they are interpolated”