The bad news is that the Pyle Center did not have a room large...



The bad news is that the Pyle Center did not have a room large enough for our main lecture hall at YAPC::NA 2012. The good news is that 100 meters down the street is the Lowell Center. We’ll be taking over the Lowell Center’s large dining room and setting it up to handle all of you. 

This is where we’ll do our keynote, plenary sessions, Getting The Most Out Of YAPC talk, the lightening talks, etc. 

Belgian Perl Workshop 2011

Hello fellow perl programmers!

Please note that the Belgian Perl Workshop 2011 will take place at "The Hub" in Brussels (http://brussels.the-hub.net/public/) on Saturday 15 October.

We are quite late on schedule. So please register your presence and talk submissions as soon as possible via the conference site http://conferences.yapceurope.org/bpw2011/

PS1: As every year, entrance will be free !
PS2: Please forward this message wherever you think it will get audience.

Mail user agents

Recently I've decided that I should change the way I host my email. I've moved to fastmail.fm + offlineimap + Dovecot + Mutt. I've played with a few IMAP clients and am currently back to using Mutt like I used to ten years ago.

I wondered what email clients my friends are using. I could ask them all... or I could write a program to query the London.pm and perl5-porters mailing lists for email user agents (one random email per email address) for the last year.

London.pm results

76 Gmail
29 Mutt
27 Thunderbird
22 Apple Mail
7 Alpine
6 Evolution
4 KMail
4 Gnus
3 SquirrelMail
3 Exchange
2 Unknown
2 Internet Messaging Program
2 Claws Mail
1 YahooMailRC
1 tin
1 RoundCube Webmail
1 Postbox
1 Pine
1 Opera Mail
1 Microsoft Outlook
1 LinkedIn
1 iPhone Mail
1 iPad Mail
1 Hotmail
1 Blackberry

perl5-porters results

Thanks Popa Marius Adrian

DBD::Firebird now passes all its tests on Fedora 15 with a simple

perl Makefile.PL && make && ISC_PASSWORD=$password make test

Very cool and most appreciated!

We will be posting registration information for YAPC::NA 2012...



We will be posting registration information for YAPC::NA 2012 early next year. However, for now I thought you might like to see the room where we will hold registration next year. This is the Upper Lounge in the Lowell Center. Though the image doesn’t show it, this room is quite large and will more than handle the long lines that form during registration.

We also hope to have multiple registration desks working to make the lines move quickly. 

DBD::SQLite 1.34_01 and mod_perl

The DBD::SQLite team shipped a new developer release (version 1.34_01) with a patch by Mark Dootson. It should fix a long-standing "not an error" issue under the mod_perl/CentOS environment (reported and discussed in several tickets). I confirmed the bug was gone under the CentOS 5.5, but if you find it still remains under your (probably rather old) environment, please let us know via RT, mailing list, or #dbd-sqlite@irc.perl.org. Thanks.

Using strict is hard, let's just use Moose;

I've been running into more and more code which uses Moose, and doesn't use strict. The logic being that since Moose uses strict, your code doesn't need to.

Is there something about Moose's use of strict that differs from other modules that use strict? Say for instance that if I use Carp in my code (which uses strict), is it still ok not to use strict?

What worries me as someone who works on legacy systems where code doesn't use strict, is that best practices are de-evolving. New Perl programmers will see code that uses Moose but not strict, and go on to write programs that don't use Moose and also don't use strict. It makes me wonder if the practices that are being implemented in Modern Perl for the benefit of experienced users will set bad precedents for inexperienced users.

Hey 5.16 developers, can you enable strictures and warnings by default? Now that makes sense to me.

Any advanced social networking site is indistinguishable from spam

  • Usenet
  • Email
  • BBS
  • Newsletters
  • Internet Forums
  • My Space
  • Blogspot
  • Facebook
  • Twitter
  • Lets all welcome Google+ to the club

Dorm Pricing

We now have pricing for YAPC:NA 2012 for those wishing to stay in the dorms. For a single room the price is $62.65. For a double room the price is $41.80 per person. Both include breakfast each morning, plus this impressive list of amenities. Note that this does not include parking, if that’s something you need.

We’ll open up online registration for the dorms in late February. And you will be able to register for dorms to stay during the workshops and hackathon (June 11 & 12) as well as the the conference itself (June 13-15). You’ll even be able to extend your stay until Saturday June 16th if your flight or other travel doesn’t leave until the next day. 

Abstracting the company away (part 2)

After creating company-specific schemas, I decided to refactor and abstract more issues. This mainly revolved around our databases.

If you've read the previous post, and tried it yourself, you'd notice having schemas in a central module that anyone can use was comfortable. However, if you've tried to write stuff using that schema, you probably also noticed that you have to keep reinventing some variables.

Assuming OO code, you'd have an attribute for the schema object, the database host, the database user and the database password, for each of the several databases you might have. Perhaps even more variables. We had the same issue. I was tired of having to configure this every single time. The next refactor had to consider this.

I wrote a role called KittiesInc::Role::DB (assuming my $workplace was called "KittiesInc.") and it included all the attributes for databases. It created, for two databases, attributes for the schema object, database hostname, database username and database DSN.

DBIx::Class populate Gotcha

Today, we watched a series of test cases failing. Our tests started with a blank database and a series of populate method-calls to create their own test records.

Everything looked obviously right, but after a while of debugging, we found out that the populate method of DBIx::Class::ResultSet behaves differently depending on the context used. In Scalar or List context, the records are inserted using the INSERT statement, while in void context, a bulk insert method is used.

From a performance standpoint, this absolutely makes sense. The documentation does explain this very well.

However, some optimizations have been made under the hood that are not obvious unless you know about -- I did not know that before.

My code looked like this:

My first post...

I look forward to writing about my adventures in Perl. I hope some of you contribute comments, suggestions and feedback a long the way.

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.

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.