Lars Dɪᴇᴄᴋᴏᴡ (迪拉斯) will give a talk at YAPC::Europe 2012 described as
Have you ever encountered this situation? "My script requires an (external binary|additional CPAN module), but perhaps it's not installed. I know, I'll have my script install the dependency by itself!" As people on the net are wont to say, now you have two problems.
The talk deals with the basics and some intermediate aspects of packaging: making a CPAN-ready distro, declaring dependencies, the CPAN toolchain, how to use and extend installer modules (MakeMaker, Module::Build/::Install and friends), the customary `inc` subdirectory, Alien, RPM specfiles, and perhaps local::lib::c if it's stable by the time of the talk.
The other day, as they idea of the defined-dereference operator (~> is the favorite at the moment), I proposed the idea of implementing a pragma that changed what Perl does when it's faced with a dereference of, or a message sent to, undef. Right now, of course, it dies.
This bit me hard this evening as we put up some new code; I have a Mason template that calls a series of methods to get a particular piece of status information to be shown to the user. I had bullet proofed it, or so I thought.
rjbs' blog post mentioning Data::Printer prompted me to try it out just now. Coincidentally, earlier today I was investing terminal's 256-color support, Emacs color themes, mc skins, all those color-related stuffs.
After seeing Data::Printer output, I think I want colors in my dumps, but I don't want some new syntax/format; I just want to see Perl. So I quickly hacked Data::Dump::Color. Data::Dump's output is nicely formatted enough as a basis, all I need is to sprinkle some colors to it. The module is barely functional and to make it more proper I'll need Data::Dump to give access to more info.
Sample output:
Eventually I think I'll use Data::Printer. It's just that glancing from the docs, there's no easy way to generate Perl-code (Data::Dumper- or Data::Dump-style) dumps.
This was my first YAPC, and it was fantastic! For many years my knowledge of the Perl community has been through the PDL mailing list, through the many Perl blogs, and through occasional IRC. I attended few Chambana.pm meetings, but they were social and didn't really get me fired up for Perl. My first experience with a collection of Perl programmers would be joining Chicago.pm last fall, and my first Perl conference was DC/Baltimore Perl Workshop this spring. But wow, 400+ Perl programmers in one place!
I gave two talks at the conference: an introduction to the Perl Data Lanuage (PDL) and an introduction to my new plotting library called PDL::Graphics::Prima. Both were well attended and well recieved, and I have gotten a handful of follow-up email and irc discussions as a result of both talks. Building the PDL community was one reason I attended YAPC::NA and I get the impression that it's paying off.
One of the things we'd do with that grant money is hire at least one more developer to help add features to The Game Crafter. If you'd be willing to help out, please vote for us to win this grant.
I've been using MooseX::Params::Validate more and more recently for checking incoming parameters. I'm a big fan of the Moose type system, and love the implicit documentation you get from having a block at the top of your sub that lays out exactly what you're expecting to be passed in.
A coworker was recently looking for something similar for Template Toolkit - rather than simply digging around in the Stash for values that you hope are there (and are the right type), could you actually insist that they were there? I said I thought it was a pretty simple plugin, and then went about proving it...
Template::Plugin::StashValidate allows you to specify a minimum set of values (and their types) that your Template Toolkit template is expecting to recieve. You invoke it as a plugin, with exactly the same arguments as MooseX::Params::Validate:
pair ::= a a
pair ::= pair a
pair ::= a pair
pair ::= pair pair
Peter's module allow you to do this,
and all the examples in this blog post were
run using it.
For those new to this blog
Marpa is something new in parsing --
it parses anything you can write in BNF and,
if your grammar is in one of the classes currently in practical use,
parses it in linear time.
Marpa's parse engine is written in optimized C,
so that Marpa's speed is competitive with parsers of far less power.
Marpa's stable version is
Marpa::XS.
O'Reilly Verlag supports the German Perl community since many years and the sponsor this years' YAPC::Europe as well. Thanks!
The O'Reilly Verlag is the German subsidiary of the internationally successful publisher O'Reilly Media, Inc.
O'Reilly provides information on important and cutting-edge technologies through high-quality textbooks, digital content, websites and conferences.
All O'Reilly authors are part of various international user groups and technology communities - they therefore have first-class practical knowledge.
Main topics of O'Reilly's publications are programming software, websites and mobile applications, operating systems, networks, web design, digital photography, social media and physical computing.
Last week I attended the YAPC:NA 2012 in Madison, WI and I wanted to pass along a few observations from a recruiters point of view. Having recruited Perl developers for Shutterstock in NYC , there is a perception in the recruiting community that Perl is a dying language, there is a lot of unmaintainable code, and that Perl programmers are nearly impossible to find. Shutterstock has had a lot of success with Perl so why all the negativity? And while the company does have a lot of really smart, cool Perl developers, it is a hiring challenge. Anyway, when I arrived at the conference, I was surprised at how down to earth and friendly everyone seemed to be, not to mention a fairly large number of younger developers and recent graduates who loved Perl. You could really sense the power of the community they all shared. One of the guys I spoke with had graduated from an engineering program several years back and had learned perl on his own. He claimed it was a fun and powerful language and sure, he does stuff in other languages, but Perl is his workhorse. He went on and on about how quickly and efficiently you can get stuff done using the free tools that Perl provides. No shame. The other observation was how much support there is around the language. My Perl coworker was able to recognize just about anyone from their IRC handle. Apparently the IRC chat is a place where most Perl people hang out to ask questions and help out the the newbie. Seems to me that Perl is alive and well, but unless you live in the Perl world, it can be hard to see that. Perhaps it's time we bring a new message about Perl to recruiters.
We’ve begun uploading all the videos for YAPC::NA 2012 to YouTube. By the end of the week we should have them all complete. They’ll also be added to PresentingPerl.org. Enjoy!
This is just a reminder for you if you plan to submit a talk to YAPC::Europe 2012 in Frankfurt: The talk submission deadline is 15th July 2012. This is next week!
Please also remember
Proceedings
We'd like to print the proceedings, so talk handouts are important too! We think that proceedings are a good way to call back the talks you have heard and to get more information about topics you were unable to attend.
The deadline to submit the articles to us is July 25th!
Videos
We'd like to record the talks. Please let us know when you want us to not record your talk.
YAPC::NA 2012 was excellent! I really want to congratulate the organizers, staff, and sponsors for putting together such a well-organized, informative, and fun event. I had not been to a YAPC in a couple of years, and this year's conference made me wonder why I had stayed away so long. It was great to hear so many people using Perl for so many cool and exciting things!
Regarding my own talk: After talking to several attendees about Helios, and being encouraged to be less of a "Kirk" and more of a "Picard," I've created a repository on Github for Helios. Going forward it will be easier for others to follow development, contribute, and take advantage of all the goodness Github provides. If you missed my "Distributed Processing Applications with Helios" talk and want some more information, the talk is now available on YouTube (thanks again MadMongers and all the YAPC::NA volunteers!) and the slides are available here.
Now that the official YAPC::NA 2012 talks are making their way online I wanted to post links to all of the relevant material for each talk.
Thanks again to all of you who attended my talks and asked great questions. To those of you watching for the first time, please ask me questions, I will be happy to help (if I can) or discuss my methods/paradigms/simulations.
Baby XS to get you started
A primer for writing XS for people who know Perl and a least a little C.
Modeling Physical Systems Using Modern Object-Oriented Perl
In which I show off my object-oriented paradigms for simulating physical systems; forces and physical objects are just objects, interactions are mediated by coderefs. I also give a simple example and show off some of my real-world simulations.
The reason for this is a quite annoying bug (or missing feature) which displayed content from POD-links (the L tag) as is. Luckily this just occurred for the Mobi-format.
To fix this, we released a new version ob EBook::MOBI (v0.46) and added some minor changes to perlybook.org to allow better support.
Clinton Gormley will give a talk at YAPC::Europe 2012 described as
Elastic::Model is a new framework to store your Moose objects, which uses ElasticSearch as a NoSQL document store and flexible search engine.
It is designed to make small beginnings simple, but to scale easily to Big Data requirements without needing to rearchitect your application. No job too big or small!
This talk will introduce Elastic::Model, demonstrate how to develop a simple application, introduce some more advanced techniques, and discuss how it uses ElasticSearch to scale.
We thought it might be interesting to share some stats about Wifi from YAPC::NA 2012 this year to help future conference and workshop organizers plan their wifi needs better.
Take a look at the following graphs. We had more devices connected to the network in the two buildings we occupied than any other time in the past year. The network engineers actually said that we had more connected than any time in history for those two buildings.
Well its that time again. Thankfully the news is getting better once more!
Much of my time which is earmarked for Perl went to preparing for my YAPC talks. I’m glad they went so well; thanks to all of you who attended. I did even get a question about Alien::Base during one of the Q&As; I’m glad to know that people are interested.
The news this month hopefully is that Windows is passing tests! Or it should once some windows tests show up. It passes on the only windows dev box that I have access to.
Also I have begun work on the fixes for the Mac problem I described last month. I still would like to figure out some way to ensure that the linker flag -header-pad_max_install_names is passed rather than ensuring a really long build path is used. Perhaps using the Makefile ENV => Variables trick? Of course that assumes your project uses make and doesn’t clobber variables but appends to them.
Antelink is a french startup, specializing in
Software Life Cycle Management and Open Source Component Detection. They
provided us with cool Dancer sourcecode analyzis graphs.
Overall contribution by users
.pm files contribution by users
Pod files contribution by users
Test files contribution by users
Reading these graphs
The surfaces represent a mean between the number of commits, and the weight of
modifications contributed (in term of "code line"), only when these are
original content addition. Moving content around isn't counted as active
contribution.
Note that some people are registered twice with different names, I'll try to
post an updated version
What does that demonstrate ? It shows that Dancer is really powered by its
community. Decisions are made together, the code is hacked by multiple hands,
and the management is done in a collegial manner on github.
It's a great reward to be visible on these graphs :)