I’m going to be in Chicago for Chicago VeganMania on Saturday, November 5. I’ll be arriving late afternoon on Thursday, November 3, and leaving in the afternoon on Sunday, November 6.

I’ll be pretty busy, so I can’t promise to get together with everyone or anyone, but ping me via email if you want to get together and I’ll get back to you once I have a better sense of my schedule.

I won’t be at PPW this year, and thus the Moose class won’t be happening. I apologize to anyone who signed up for the Moose class, though last I heard that was just one person, which is the main reason the class isn’t happening.

I think the upshot of this is that announcing a possible class isn’t a good idea. All this does is create uncertainty for potential students and discourage signups. In the future, there’s a couple things conference organizers and I can do to make this class (or any class) more successful.

First, just announce the class. Don’t say it’ll only happen if only X people sign up. The option to cancel for lack of signups is always available.

Second, the class needs a concrete date and time well in advance. I suspect that part of the reason people didn’t sign up for the Moose class is that they wanted to see what it would conflict with first. Would you want to miss Damian to come to my class? Hell, I’d rather see Damian than come to my class!

Even if the whole schedule isn’t ready, things like classes and major keynotes should be scheduled at least two months in advance.

As a corrolary, organizers need to know how long the class takes well in advance. I didn’t communicate that clearly to the PPW folks. For the record, the Moose class needs around 6 to 6.5 hours of class time, excluding lunch.

Back in March, I mentioned that I was working on a new OO tutorial for the Perl 5 core. I’ve been working this intermittently over the last eight months or so, with lots of useful feedback from the perl5-porters. Along the way, the project grew to include a rewrite of the perlobj document, the reference document for Perl OO.

I’m happy to say that as of last week, all of my work has been merged into the blead branch of core, and will be in the next release of Perl.

Here’s what I did …

We now have an entirely new OO tutorial. This tutorial has two parts. The first is an introduction to OO concepts. Some people may come to Perl without a background in another OO language, so defining basic concepts is important. This part defines these concepts in terms of how Perl implements them, so even if the reader has some OO background, skimming this section will still be useful.

The second half introduces three OO systems from CPAN and gives short examples of how to use each one. In 2011, it just doesn’t make any sense to tell people how to roll their own OO code in a tutorial. The systems I wrote about are Moose, Class::Accessor, and Object::Tiny. I also mention Role::Tiny, since roles are awesome, and you shouldn’t have to use Moose to use roles.

When I merged this tutorial, I deleted all the old tutorials. Those were perltoot (Tom’s object-oriented tutorial for perl), perltooc (Tom’s OO Tutorial for Class Data in Perl), perlboot (Beginner’s Object-Oriented Tutorial). I also removed perlbot (Bag o’ Object Tricks (the BOT)). All of these were extremely outdated and contained a number of dubious recommendations.

Don’t take this as a criticism of Tom, Randal, or other people who worked hard on those docs. They were great when they were written, but the state of the art in Perl OO has changed a lot in the past 10-15 years. If Perl 5 is still in use 10 years from now, someone will be deleting my tutorial then!

I also revised perlobj. Some of the old content remains, but it has been rewritten, reordered, and expanded. I hope that it is now a 100% complete reference to core Perl OO features.

If anyone reading this has any constructive feedback on these docs, I’d love to hear it. I really want to get these new docs into excellent shape before Perl 5.16 ships in spring of 2012.

I’ve decided to follow Jacob Kaplan-Moss’s lead and pledge that I won’t speak (or attend) any conference that does not publish an acceptable (to me) code of conduct/anti-harassment policy. I’ve already written about what should go into such a code, and I think Jacob’s post makes a number of good points on why a policy is important.

What would a code need for me to consider it acceptable?

First, it needs to define acceptable conduct. The Reasonable Person Principle section from the YAPC 2011 code is good, but something much simpler is fine too. In fact, I’m fine with something as simple as “we expect all conference attendees to treat each with respect”.

The policy should outline some explicitly unacceptable behaviors. This needs to be there for the benefit of people who are clueless. At a minimum, this should forbid sexual imagery in slides, unwanted sexual attention (or maybe just unwanted attention), and verbal abuse. If the conference has exhibitors, it should also forbid sexualized imagery and clothing for exhibitors (in other words, no booth babes). The example anti-harassment policy in the Geek Feminism Wiki lists more unacceptable behaviors, and that’s probably a good list to copy. But really, my concern isn’t that the policy have exactly the right list, just that there is some effort to outline the most egregious unacceptable behaviors.

It doesn’t hurt to say something about what the penalties for violating the policy might be, but I don’t think that’s critical. The existence of a policy implies that violators may be ejected from the conference at the discretion of the organizers.

Finally, it needs to include an explicit reporting procedure that includes a way for attendees to report incidents via phone and/or email. In other words, there needs to be a way for people to report incidents without finding a conference organizer in person (which may not always be easy enough to do).

Ideally, I’d also want to see an internal policy for conference staff and volunteers that gives some guidelines on how to handle these incidents.

I don’t expect my declaration to cause a problem for any future Perl events I’d want to attend. The last few conferences I’ve attended have had some sort of policy, and I expect these to become much more common in the future.

If you’re also a frequent speaker (or infrequent, or not a speaker at all) at Perl events (or non-Perl events), please consider joining me in this pledge.