I’m very pleased to announce that Michael Schwern has...



I’m very pleased to announce that Michael Schwern has agreed to be our keynote speaker at YAPC::NA 2012. He’s got an interesting and diverse portfolio of work in the Perl community, but most of you probably know him as the guy that created Test::More, although my favorite module of his is URI::Find. He’s one of the most entertaining and dynamic speakers the Perl community, and I’m sure this talk will be no exception. 

I <3/> XML::Rabbit

Just a quick note about how much I appreciate the work Robin Smidsrød has done on XML::Rabbit. I'm now using it on a second project, and the ease in which I can quickly build a set of classes and attributes to process XML documents combined with the usual Moose-y goodness is truly wonderful.

The first project in which I used XML::Rabbit, XML::Ant::BuildFile, is still chugging away and working well.

CPAN Testers Server Update - 20/09/2011

The MySQL databases have now been rebuilt and correctly synced between each other. The SQLite databases are now being updated and these should be completed by the end of the week. This has enabled me to write some simple scripts to create and repair the databases, which I'll now be including in a separate distribution to be released on GitHub. It will also include all the apache, mysql, logrotate, cron and other config and script files, so that if we ever have to rebuild again, getting started is a lot easier.

The websites are now rebuilding too. The statistics site will be complete shortly, as it takes a while to rerun all the statistical analysis. Trying to analyse everything all at once tends to grind the server to halt, whereas analysing bitesize chunks, although slightly slower, uses less memory and saves progress to disk, so we don't have to start again from scratch if anything falls over.

NetworkManager att login

Just got Kubuntu installed on my laptop. It's not bad but the panel locks up when I login to ATT wifi at Starbucks until I goto a browser and submit their online agreement. This behavior is a bit annoying so decided to try to automate the form submission with WWW::Mechanize. The script is very simple but seems to work so I decided to post it here for anyone else with similar issues.
99attwifi
Comments welcome.

This is a shot of the rooftop terrace on the Pyle Center roof...



This is a shot of the rooftop terrace on the Pyle Center roof where the YAPC::NA 2012 banquet will be held on Wednesday, June 13th. 

Authors vs. Contributors

I’ve been giving some thought over the weekend to ‘Authors’ vs. ‘Contributors’ as credits in module documentation.

For reasons I can’t remember but can almost justify still I’ve been submitting modules to (the) CPAN with myself listed as the Author and any subsequent patches are credited as a Contributor.

As a Dist::Zilla user I’ve been thinking that it would be nice to have dist.ini accept ‘contributors = Jane Doe’ data in much the same way it does with authors.

My investigations into a plugin for Dist::Zilla hit a roadblock when I realised that I’d need to either fudge things horribly or fork dzil, submit a patch and pray they accept it.

Since this is more work that just writing a plugin I took the time to stop and think.

  • Is there any difference between an Author and the Contributors?
  • Am I placing too much self-importance on myself as the creator of a distribution?
  • Should Contributors be listed as Authors?

I’ve not been able to perform an exhaustive search of (the) CPAN but there are a couple of distrubutions that use Contributors:

If it’s good enough for the ‘big three’ does that mean it’s inherently okay for me to use?

Should I embark on a branched piece of work to add ‘contributors’ to Dist::Zilla?

Perl and Parsing 9: "Use" and the Ruby Slippers

In this post, I talk about how Perl 5 parses its use statement. The use statement is implemented with what I have named "Ruby Slippers" parsing. The idea is that you parse with a convenient grammar, but one which is too simple to actually describe the language you are parsing. For example, if you are parsing HTML, the grammar might assume all start tags have end tags.

Whenever the simplified grammar has trouble parsing, the lexer fixes the situation by pretending the input is what the parser wants to see. The parser is like Dorothy in the Wizard of Oz, who really would like to be back in Kansas. The lexer is like the good witch, Glenda, who assures Dorothy that, because of her Ruby Slippers, Dorothy really can be wherever she wants to be.

Why Perl ?

"Perl is, by and large, a digested and simplified version of Unix. Perl is the Cliff Notes of Unix" - Larry Wall

I could never really get myself to learn sed, awk, zsh, grep, find, m4, pipes, xargs, tee, cut, paste, yacc, lex, various IPC or even C for that matter. I ought to.

In practice, in almost most all cases I use perl.

Perl equivalents to the above are psed, jawk, ack, IPC::Run, IPC:: ..., IO::All, ppt, A real parser, reference counted pointers(if you ever miss c), POSIX and even a shell. You can also, easily write yourself one script that exactly does what you want to.

The other thing that makes me keep coming back to perl are the books. I have read every book of every programming language out there, but I always end up re-reading perl books ... because the other books put me to sleep.

I’m very pleased to announce that Best Practical...



I’m very pleased to announce that Best Practical Solutions is sponsoring YAPC::NA 2012. Best Practical Solutions are the creators of RT: Request Tracker, the leading open-source issue tracking system.

Best Practical was founded to deliver value to RT’s established base of users by providing custom development and user support for RT. We are fully committed to supporting RT as an open source technology, while providing the quality development and support necessary to operations in commercial enterprises and corporations.

Running perltidy in a Git commit hook (githook-perltidy)

I have found a couple of attempts at integrating perltidy into Git commit hooks, but nothing yet that I considered robust enough. The scripts ignore the state of the index, modify the working tree, and then forget to update the index before the commit. They didn't recover from a failed tidy run, leaving both the working tree and index messed up. Critically for me I could not do an interactive or patched "git add" and have the final commit reflect what I wanted.

githook-perltidy is my answer to this challenge. Robustness is achieved by stashing the working tree and index before the tidy run, which is re-applied on error. The same stash can be applied on top of the new commit (using a post-commit hook) to merge non-indexed working tree changes afterwards. The POD inside the script hopefully documents the process in sufficient detail to give you confidence in the method. Code has the final say of course...

You can grab a tar or zip file of the distribution now from the github repository at https://github.com/mlawren/githook-perltidy. Feedback (and patches for tests!) is welcome.

A new sponsor: $foo - Perl-Magazin

$foo - Perl Magazine is our second sponsor.

Foo_Logo_web.gif

The purpose of $foo magazine is to present and discuss projects written in Perl; to keep up-to-date with the latest news in the community including about The Perl Foundation; to publish tutorials on Perl projects such as WxPerl, Perl 6, Moose; it also gives news on CPAN modules (6 new modules are covered in each issue).

We will contact more companies when we created a paper for potential sponsors that will explain the sponsorship levels. I hope this will be done in October...

corelist web interface

Whenever you don't have a perl installation or a commandline available, or you want to show somebody else information about core modules, you can use:

http://perlpunks.de/corelist

The website has been around for some years, but wasn't very well known and actually a bit ugly. I've redesigned it, added a new diff function and moved it to a new server where it can run under mod_perl.
The diff function allows you to compare two perl versions for added, removed or changed modules.

I'm also thinking about auto completion but maybe this is overkill for such a small tool.

edit: I have added links to ppm and debian searches. if you have any other resource for module search (redhat, ...), please post.

Internationalization and Act

An interesting question came up today regarding our team’s Act development for YAPC::NA: Are we going to take the effort to maintain internationalization for the new features we add? My answer was an emphatic yes!

We’re a US conference, with a team largely composed of US programmers (we have a few foreigners lending us a hand; thanks, guys!). Even so, Perl is not exclusively a US programming language; people all over the world use Perl for just about everything! The Act team has been doing a great job making their application available to people speaking a variety of languages, and I’m proud to carry on that tradition. Now, if you’ve never written internationalized code before, the prospect may seem a bit daunting; so here’s a tip you can use when working on Act:

Debugging JavaScript in a WebBrowser Control from VS2010

You can debug JavaScript executing inside a WebBrowser control embedded in your .NET 4.0 application from VS2010 (Visual Studio 2010), but it takes a little effort.

  1. Enable Script Debugging (both IE and Other) in Internet Explorer.
  2. Disable friendly HTTP messages in Internet Explorer.
  3. Enable Display a notification about every script error in Internet Explorer.
  4. Modify VS2010 to debug Script from the Attach Process dialog. Please note that you cannot debug both JavaScript (Script) and .NET 4.0 code at the same time. (I don't know why.)
  5. Add a debugger; statement at the start of your JavaScript.
  6. Start your WebBrowser-embedded application without debugging (Ctrl-F5).
  7. When your application hits the JavaScript debugger; statement, select your current instance of VS2010.
  8. Voilà! You can now debug the JavaScript executing inside the WebBrowser control in your .NET 4.0 application.

(Posted here so I don't forget the steps.)

(This was abstracted from many sources including Silverlight 4 Tools for Visual Studio 2010 Debugging Overview.)

CPANdeps re-design

Having prettified CPAN.org, perl.org and others, Leo Lapworth has now kindly had one of his designers apply their skills to CPANdeps. I think you'll all agree that it's a great improvement.

I'm very grateful to Leo, and to Foxtons.

How to get astride a zombie.

Hi everyone!
I have written an article about defunct processes under UNIX. I think it will help someone what is going on inside UNIX IPC :) Everyone is welcomed: IT Remarks

We’re pleased to announce that Shutterstock has become...



We’re pleased to announce that Shutterstock has become Gold Sponsor of YAPC::NA 2012. Shutterstock loves Perl.  They’re a stock photo and video company, and are at the forefront of technology and research.  They do fascinating things with search, discovery, recommendation engines, and scalability.  They’re looking for really smart people and great engineers to help them to continue to be a leader in the industry.  They focus on fast, iterative development (over 150 deployments/month) and collaborative, interactive programming. Developers work on small cross-functional teams (4-6 people) that have a voice in setting their own priorities and are expected to build and deploy applications quickly and iteratively.

If that’s not enough, check out these other perks:

Deadline for YAPC::Europe 2011 Survey Submissions

The deadline for submissions of the YAPC::Europe 2011 Conference Survey and Talk Evaluations is tomorrow. If you attended YAPC::Europe in Riga, and haven't already done so, please take some time to complete the survey and give your feedback both to the current organisers and future organisers. Whether you only attended for the first time this year, or have been attending for years, all feedback is useful and worthwhile.

So far we've had 144 surveys and 713 evaluations submitted, and a big thank you to all those complete the forms.

I plan to work on the talk evaluations over the weekend and send them out to speakers early next week. I shall then work on the survey results, which will be posted on the YAPC Conference Surveys site.

Variable Names

I wrote this on beginners@perl.org today in a thread which was discussing short variable names:

Tool for Perl Scripting - Devel::Comments


One of the advantages to Perl is that as a scripting language, a small script can be coded to perform a simple task. For example, I enjoy sharing photos of family over the internet, but all the images are at least 2.4Mb in disk size! Using a mix of Perl and Unix commands, I have a script no bigger than 1 page to resize entire folders for me.

I like to use an iterative method of programming. Code some lines, execute and test. Rinse and repeat. But I found my method of debugging annoying. $\ = "\n"; and print() statements to sanity check my variables, only to delete or comment those lines later.

Enter a great Module: Devel::Comments A module to help with debugging in the development stage by using the comment lines in your scripts.

Make the comments in your code work for you. Now to view the value of a variable: write:

### $mainDirectory

and STDERR will print out:

### $mainDirectory: /home/tyler/perl

About blogs.perl.org

blogs.perl.org is a common blogging platform for the Perl community. Written in Perl with a graphic design donated by Six Apart, Ltd.