Think, for Perl’s sake

I’m no longer surprised when I read about
verbal abuse of other humans in my community.
It makes me sad, both for the person who would say that to someone else, and for the person who gets the abuse.
Worse, it makes me sad that the abusers don’t care about the effects on their fellow human beings, or on the projects that they are representing.

Using technology in a community like ours is far more than just a choice of which code does more. Choosing to use a technology on a project is an investment. When you invest in a project, whether it’s a language like Perl, or a module like DBIx::Class, you’re not just investing in code. You’re investing in the community that comes with it. There are at least two major Perl projects I will not invest any time in because of the communities that surround them. I’m not alone in my convictions and actions.

The other day I ran across an acronym, THINK, that gives questions to ask about what you’re about to communicate, before you actually say it.

Is what I’m about to say:

Thoughtful
Honest
Intelligent
Necessary
Kind

Geeks in technical discussions are really good at the Intelligent, and usually Thoughtful. The Honest is just a given.

It’s with Necessary and, especially, Kind where some fail, with damaging results.

I’d like to urge all of us to keep THINK in mind in all our interactions, whether in IRC, mailing lists or in person at user group meetings and conferences.

As an aside, I’ve always moderated Perlbuzz comments, and will continue to do so. THINK crystallizes my criteria perfectly.

ack 1.94 released

Version 1.94 of ack, my source code searcher designed for programmers, has been released. This is the first release in almost
a year.
You can install it as [App::Ack](http://search.cpan.org/dist/ack) from the CPAN shell, or you can use one of the installation methods described at [http://betterthangrep.com/](http://betterthangrep.com/)
Here are the changes.
## Fixes
–man and –version now return with an exit code of 0. They
used to exit with a 1. Thanks to Bo Borgerson.
Fixed ack misbehavior when using –match or not specifying a regex:
ack –match Sue
cat foo | ack –perl
Fixed issue 74: analog to grep, ‘ack –count regex file’ now
only outputs the number of found matches, if only one file is
given.
Fixed issue 76: Giving both –line and a regex (with –match)
now leads to an error. The same is true for -f or -g in conjunction
with –match. (Torsten Blix)
Fixed issue 80: Piping into ack –count now works as expected.
ack always returned 0 when piped into, no matter how many matches
where found. (Torsten Blix)
Fixed issue 81: .ackrc now ignores leading/trailing whitespace.
(Torsten Blix)
## File type updates
Added –verilog, –vhdl and –clojure.
Files that match *.mk and *.mak as well as GNUmakefile are now included in
the ack filetype ‘make’ (issue 88).
Added RSpec’s .spec type to the –ruby list.
Added support for Go and Delphi.
Ignores Monotone’s _MTN directories.
Added .xsl to the list of –xml files.
## Enhancements
The –ignore-dir option now can ignore entire paths relative
to your current directory. Thanks to Nick Hooey. For example:
ack –ignore-dir=t/subsystem/test-data
Added –invert-file-match switch to negate the sense of the
-g/-G switches. Thanks, Lars Dieckow.
Updated the README to Markdown format. Thanks to Mark Szymanski
for the idea.
Added docs for -r, -R, –recurse options.
Added new switch –color-lineno and environment variable `ACK_COLOR_LINENO`,
which allow setting the line number color. (Marq Schneider)
Added option –show-types to output the types that ack considers
a file to have. (Torsten Blix)
`ack –count –no-filename regex` doesn’t output a list of numbers but a
sum of all occurences. This is NOT what grep does but is the more sensible
behavior.

Google Code-In brings fresh blood to the Perl and Parrot communities

By Jonathan Leto

I’m excited to announce that Parrot Foundation and
The Perl Foundation
have been accepted as organizations in Google Code-In 2010!

Google Code-In is a contest, similar to Google Summer of Code, where Google
pays students aged 13-18 to do tasks designed by open source
communities, while learning about open source. Google pays for the
work to be done, and we get new members to our communities, while students
learn useful skills. It is a big win for everyone.

In 2010, Google Summer of Code was a great success for Perl and Parrot.
We got amazing new features in Parrot, Perl 5 and Perl 6 .
In 2009, we had similarly spectacular results.

For the students, the benefits are huge. They get mentored by some
of the best minds in open source and get “street cred” in the
community. This contest also acts as a stepping stone for Google
Summer of Code, so students that excel at Code-In will most likely be
sought after for future Google Summer of Code involvement.
It’s also fantastic experience to put on a résumé.
I see many Google Summer of Code students get snapped up by respected
companies, or accepted to prestigious academic institutions.

The more well-documented tasks we have before that, the more students we will
have the potential to attract. I can attest that these kind of contests
attract some of the smartest students in the world, so the Perl and Parrot communities
have much to gain by being involved.

I expect great results for Code-In as well, but we need your help. The Google
Code-In contest opens up for students on:
November 22, 2010 at 12:00 AM Pacific Time / 08:00 UTC.

How Can You Get Involved?

  • Add a task to our task list There is a template
    that you can copy and paste, as well as many examples. Any task related to Perl 5, Perl 6 or Parrot is fair game.
  • Improve the description of an existing task. The more specific a task and
    the more documentation and links you provide, the easier it is for a student
    to choose and complete a task.
  • Volunteer to mentor a student on a task. You apply to be a mentor
    here. Please join the
    tpf-gsoc-students
    mailing list and introduce yourself. Provide a brief description of why you are interested when you sign up, so we know you aren’t a bot 🙂
    Please also join the #gci channel on irc.perl.org.
  • Tell potential students about Google Code-In and how we are involved. Here is a link
    to the timeline
    and FAQ that you can send them, as well as
    flyers to post.

Jonathan “Duke” Leto has been heavily involved in co-ordinating the Perl and Parrot projects in Google Summer of Code for the past three years. He’s also a core contributor to the Parrot and Perl 6 projects, as well as the maintainer of many CPAN modules. You can find his Perl-related blog at http://leto.net/perl.

Progressing vs. leapfrogging

In this blog post, [“Ugly Old Perl”](http://blog.laufeyjarson.com/2010/11/ugly-old-perl/), the author discusses how he(?) is still finding old Perl code like this:
open(FH, “<<$runpath/log/output.log ")
|| die "Can't write output.log!"
instead of the newer safer
open( my $fh, '<<', "$runpath/log/output.log" )
|| die "Can't write output.log!"
He discusses how he's tried to introduce his co-workers to three-arg `open` calls, and they have no idea that such a thing exists. Perl 5 has become such a success, so ubiquitous, that people don't realize there have been improvements since they first learned it.
I'm sure these people don't know any of the changes made to Perl regexes, too. They might still be using `study` as part of the belief that it magically makes regexes match faster.
These are the users that will never use attributes, or Moose, or much of anything discussed in [Modern Perl](http://www.onyxneon.com/books/modern_perl/).
I'm OK with that.
These are the users who are going to stick with the Perl they know until they leapfrog to something else. That something else might be Ruby, or it might be Perl 6, but I know that they're never going to make a straight progression.
If you're reading this blog, chances are you're a progresser. You follow each Perl release. You are interested in the incremental changes. You want to know about named captures in regexes and you find ways to use them in your existing code.
But most of the users of Perl aren't. They're using Perl as a tool to get stuff done, and it's not a hobby. There's nothing wrong with that. They won't change their way of seeing Perl until there's something to leapfrog over. All we can do is make Perl 5.12 or Perl 6 a fantastic target to leap to, something to entice them to make the leap.
(Aside: He also brings up the idea often trotted out that Perl 6 be named something other than Perl. It won't happen, so there's no point in discussing it.)

Passing of Randy Kobes

Curtis “Ovid” Poe forwarded to me this announcement from the University of Winnipeg about the passing of Perl community member Randy Kobes. Most Perl people will know of Randy because of his kobesearch alternative CPAN search interface.
> It is with profound sadness that the University learned yesterday of the passing of Associate Dean of Science Randy Kobes. Dr. Kobes passed away after a recent battle with lung cancer.
> Randy was an excellent academic, physicist and educator of young people. He was fully dedicated to public engagement in science. His contributions to community learning at The University of Winnipeg went far beyond the classroom.
> Randy was a primary driver of the University’s Let’s Talk Science and was also keenly involved in the Eco-Kids programs, and numerous other outreach activities that involved inner-city children and youth. He was also the leader of numerous new degree programs in science, including Radiation Health and Safety; Science, Environment and Indigenous Knowledge; and pre-professional programs.
> Randy was truly dedicated to student success. Almost all of his work efforts were directed to encouraging student success in one way or another. Along with the many initiatives mentioned above, he volunteered his time in the summer with the CSI (Community School Investigators), an inner city summer learning enrichment program and was very involved in the homework club at the Wii Chiiwaakanak Learning Centre. He also personally drove students to Sisler High School, where the University had established an off-campus homework club.
> Randy obtained a B. Eng. degree in Engineering Physics from the University of Saskatchewan in 1978 and a Ph.D. in theoretical physics from the University of Alberta in 1983. He held postdoctoral fellowships at the University of British Columbia and at Memorial University of Newfoundland before joining the University of Winnipeg in 1987.
> His research interests included the application of quantum field theoretic methods to topics in theoretical particle physics and investigating non-linear effects using numerical techniques. He held an NSERC Discovery Grant since joining the University of Winnipeg, and most recently served as the University’s Associate Dean of Science.
> In June 2005 Randy was awarded the Marsha Hanen Award for Excellence in Creating Community Awareness. He founded the Manitoba chapter of Let’s Talk Science, which promotes scientific literacy by having University of Winnipeg volunteer scientists visit classrooms, present interactive experiments and raise awareness of science. In October 1999 he won the Erica and Arnold Rogers Award for Excellence in Research and Scholarship.