Many of the ideas in this post actually come from my friend Unny Nambudiripad, but Unny doesn’t blog, so I’ll have to write this up for him. The other day I was talking with Unny and Lisa Kimball about a nonprofit Lisa had looked at. She was disturbed because they’d spent their entire budget on salary. Unny and I didn’t think that was a problem, and Unny had a very good take on how to evaluate a nonprofit organization’s donation worthiness.
Since I’m looking for work these days, I’ve been doing a lot of interviewing. An interview is a potential employer’s chance to learn more about me, but it’s just as important that I learn about them. I think in an ideal interview, I spend at least as much time asking questions as answering. Over the years, I’ve created a standard list of questions that I want answered. What do you like best about working there?
(I’m still looking for a new position. Please check out my resume and contact me if you’re looking for a great Perl developer.) I was talking this weekend with Matt Mackall about Python 3 and Perl 6. Matt is the creator of Mercurial, so he is deeply invested in Python. He was asking about the relationship between Perl 5 and Perl 6, and we were comparing it with the relationship of Python 2 and 3.
(I’m still looking for a new position. Please check out my resume and contact me if you’re looking for a great Perl developer.) There was a lot of interest in Chloro, my new form library, when I blogged about it last week. I just released 0.01. I’ve started integrating Chloro into a web app that I’m developing, and I really like using it so far. That said, this release should be considered an alpha, and I reserve the right to completely rewrite it for the next release.
(I’m still looking for a new position. Please check out my resume and contact me if you’re looking for a great Perl developer.) Perhaps I should title this entry “Building a Slightly Less Horrible Form Library.” When I mentioned form processing in the Moose IRC channel recently, mst said “form modules are … satan”. That sounds about right. I’ve looked at a number of form libraries over the years. Recently I started using HTML::FormHandler (HFH) in an application I’m working on, but eventually I realized it just didn’t work for me.
Perl Best Practices (PBP) was released in 2004, about 7 years ago. Perl is a great language, but its culture of TIMTOWTDI can be a problem. These days, we often hear that “there’s more than one way to do it, but sometimes consistency is not a bad thing either” (TIMTOWTDIBSCINABTE). PBP deserves a lot of credit for encouraging discussion about the downsides of TIMTOWTDI. PBP has a lot of recommendations. A lot of them are fairly trivial, like recommendations on code formatting.
I’ve been spending a fair bit of time working on Perl 5 core documentation. I started by editing and reorganizing some of the documents related to core hacking. This update will be in 5.14, due to be released in April. I’m also working on replacing the existing OO tutorials and updating the OO reference docs, though this won’t make it into the 5.14 release. There’s been a lot of discussion on my OO doc changes, some of it useful, some of it useless, and some of it very rude (welcome to p5p!
Recently I’ve been working on revising the Perl 5 core OO documentation, starting with a new OO tutorial. My first draft used Person and Employee as my example classes, where Employee is a subclass of Person. After I posted the first draft, several people objected to these particular classes. I realized that I agreed with their objections, but I wasn’t able to come up with anything better. I brought this up on the #moose IRC channel, and we had a really interesting discussion.
My last post on Changes files purported to be both a how-to and how not-to, but I got a bit carried away with the how not-to part. Several comments since that post made excellent points, so here’s the summary. Kent Fredric says “don’t be lazy and just copy the output from ‘git log’ into your Changelog.” Yes, a thousand times yes! Remember, the Changes file is for end users of your library, and we don’t care about all the little details.