Perl 6, the Bird, and Hacking with Damian

Today was a long day for me. First, I was up early to ensure I could spend some time taking care of things in my office before class at 9:00am. Second, eight hours of Advanced Perl Best Practices with Damian Conway. Third, a special San Diego Perl Mongers presentation of Sex and Violence: Social and Technical Lessons from the Perl 6 Project, again with Damian Conway. I am exhausted and I think I have Perl leaking from my ears.

Today was also a very good day. I learned a lot, and had a great time doing so. While I’m already familiar with most of Perl’s best practices and the reasons for using them, there are always many things to be learned any time Damian speaks. For example, I’ve always been one to use a single method as both accessor and mutator. However, now I’ve seen a good argument to use separate methods. Granted, I could have just read the book, but who has time for that?

One thing I will recommend: try to avoid flipping the bird to your instructor, even accidentally, particularly if you’re sitting in the front row and he’s standing only six feet directly in front of you. Shortly after this incident, I had a conversation with a friend in New Zealand. He gave me an explanation of the gesture and congratulated me for executing it in such a public forum (and getting a few laughs).

Even after my faux pas, I had the distinct honour to do a bit of hacking with Damian after class. My coworker voiced a concern I’ve also had in the past: inside-out modules, in this case Contextual::Return, do not work with Data::Dumper. So what did they do? They immediately started looking for a way to make it work. Initially, I merely stood back and watched; however, I’m proud to say I did have some input into the final implementation. Essentially, we came up with the following method to make it work.


{ local $Data::Dumper::Freezer = 'Contextual::Return::FREEZE';
  Dumper $return_value;
}

It’s perhaps not the most convenient way of doing the job, but it’s not bad for something that for most people is a debugging tool.

After a short break for some rolled tacos at Nico’s, it was back to the auditorium for Damian’s presentation to the Perl Mongers. As always, he had us rolling with laughter while at the same time learning quite a lot. The primary focus of the talk was the social and technical lessons learned by the core Perl 6 development team over the last seven years of the project. The lessons can be applied to any project—or in fact any group of people—be it Open Source or within a company. While useful, I was most excited by what Damian shared of Perl 6 itself. The design is amazingly clean and elegant, and I’m really looking forward to using it in my own projects. One thing that really has me excited is junctions. These look like an awesome way to develop parallel code cleanly and intuitively (at least for me).

I have one more day of class tomorrow, one I’m really looking forward to. Damian will explain to us exactly how it is he can be so productive, even while traveling. I expect to be overwhelmed with information and it will likely take me all weekend just to absorb it, and even longer to put what I learn to use. Next year I sure hope we have him back to teach us all about Vim.

OSCON 2007: People Hacks

One of the tracks at OSCON this year is people. Everyone thinks that Open Source is about programming, but it’s really about people. People who write Open Source.

Apparently, this the people track is very popular with everyone. This session, People Hacks, is standing room only. Unfortunately, Adam Keys’ slides weren’t able to display on the screen. I think his talk stood on its own. In fact, I wish more talks lacked slides. For most people, they’re a crutch.

People Hacks is about advocacy, moving minds, and organizing teams. It’s a fact of life that no man is an island. We have to work with people, and they won’t always be our friends. Sometimes we want to hit them. Sometimes we talk past them. But we do need to work with them. And we can’t always hit them.

Most of us program because we like logic. We like dealing with machines that are predictable and rational. But we have to deal with people. People who are not always predictable and not always rational.

“There is no man page for humans.”

Truer words were never spoken.

People who are in a good mood are easy to work with. People who are sad or in a down state are difficult to work with (think emo kids—the new blonde jokes!). Get someone to smile. Humor is infectuous. Once people are laughing along with you, they’re easy to bring over to your side. Conversely, negative feelings spread like wildfire. Avoid negativity.

“The ABBA Method.” ABBA is like negativity. A little goes a really long way. When down, go listen to ABBA. How… odd.

Everyone loves a critic (Fox News?), but no one really enjoys criticism. It never goes over well. People take it poorly, they go on the defensive. When people are criticized, they withdraw from the conversation, and no one can move forward. Throw a compliment in. “Kiss their ass before handing it to them.”

Open Source has a love/hate relationship with jerks. We don’t tolerate them at all when they troll forums. However, if they’re a strong personality on an Open Source project, we’ll put up with them. A lot.

Sometimes you’re the jerk. We can all be jerks at times. If you can’t avoid it, at least recognize it and apologize for it.

After a while, the talk turned into a list of patterns of behavior found in people with ways to disarm them. The slides would have helped here, as it’s getting a bit more difficult to follow along.

He highly recommends reading How to Win Friends and Influence People.

And now it’s time for lunch, and I’m hungry, so I’m done.