My Two Master Classes at YAPC::NA::2015

This year at YAPC I’ll be giving two master classes. Why am I doing this? I don’t know, I think I may be insane. But that aside, here’s some info about said classes. My first class is Introduction to Moose. I’ve been giving this class for a number of years, and it’s always been well-received. The class will take place on Sunday, June 7, the day before the conference proper begins.

Something at Netflix is Seriously Broken

Somehow people seem to keep breaking into my Netflix account. Calling Netflix achieves little. Their go to answer is to have me change my password and sign out all devices. In theory, this should keep hackers out. I’ve done this a number of times to no avail. Last night I changed the email associated with the account, as well as the password, and they’re back in tonight. Edit: Someone on HackerNews asked how I know that the account was hacked.

How to Debug a Heisenfailure in Your Tests

Assuming that the failure happens more than once every few thousand test runs, here’s a handy shell snippet: while prove -bv t/MaxMind/DB/Writer/Tree-freeze-thaw.t ; do reset; done This will run the relevant test in a loop over and over, stopping at the first failure. The reset in between each run makes it easy to hit Ctrl-Up in the terminal and go to the beginning of the test run that failed, rather than having a monster scrollback buffer.

How to Go Wrong Testing HTML and Why It Took Me Forever to Fix It

About a million years ago (ok, more like 6 months) a kind soul by the name of Polina Shubina reported a small bug in my Markdent module. She was even kind enough to submit a PR that fixed the issue, which was that the HTML generated for Markdown tables (via a Markdown extension) always used </th> to close table cells. However, there was one problem, there was no test for the bug.

Please Test MooseX::Params::Validate 0.20

A little while back I asked people to test Params::Validate 1.14. Judging by the lack of bug reports I’m sure that many people tested it and it worked fine. Ok, just kidding. I strongly suspect almost no one tested it and that someone will yell at me for breaking their software. But hey, I tried. Now I’m asking folks to try out MooseX::Params::Validate 0.20. This release makes a rather major change to the exception thrown when a type constraint rejects a value.

Please Test Params::Validate 1.14

I’ve just released a new version of Params::Validate that allows validation callbacks to die in order to provide a custom error message or exception object. This was a long-needed feature, and will enable me to make Moose::Params::Validate support the error messages provided by type objects, which has also been long-needed. However, I’m a little nervous about any changes to Params::Validate, since it’s used a rather large chunk of CPAN. It has c.

MaxMind is Hiring

We’ve actually been trying to hire someone for a while, but there was some question about what states we can hire from. First of all, we’re hiring a Senior Software Engineer. This involves a lot of Perl, some Go, and the possibility of C and other languages from time to time. This is mostly backend work, building web services at an ever growing scale. We’re accepting applications for this position from all US states and Canada.

The definition of irony?

autarch@houseabsolute:~/projects/DateTime-TimeZone (master $>)$ dzil release [DZ] beginning to build DateTime-TimeZone Cannot determine local time zone

How Should Log::Dispatch 3.0 Work?

I’ve been playing with the idea of making a new version of Log::Dispatch that breaks some things. There are a few changes I’d like to make … First, I want to trim back the core distro to only include a few outputs. This would just be those outputs which are truly cross-platform and don’t require extra dependencies. Right now that would be the Code, File, Handle, Null, and Screen outputs. I might also borg rjbs’s Log::Dispatch::Array, since it’s so darn useful for testing.

Isn’t Email Great?

Apparently my post on Perl 5’s overloading is deeply, deeply offensive. Here’s an email I got out of the blue today: Perl isn’t your first language isn’t it? You strike me as Java programmer. Look. Don’t do overloading. If you need to do overloading then you are probably doing something wrong. “If you don’t care about defensive programming, then Perl 5′s overloading is perfect, and you can stop reading now.