• 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:


    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.