From guest contributor brian d foy for YAPC::NA 2012:
I’m setting up a decidedly low tech way to give newcomers special access to Perl celebrities without the risk that their conversation will be hijacked by all the other conference attendees who already know that person. So far, I’ve convinced Sinan Ünür, Randal Schwartz (merlyn), Ricardo Signes (rjbs), Karen Pauley, and Dave Rolsky to participate. If you’d like to be one of the Celebrities for these lunches, add your name to posterboard. There will be a posterboard in the conference registration area starting Wednesday morning. For each day, there will be some slots where someone with the Celebrity’s name and a meeting time (and maybe a food preference). Four people can put their name under the slot they’d like to attend (and maybe we’ll add a waiting list). Meet back at the posterboard at the chosen time and go to lunch at a place your group chooses. That group gets an exclusive lunch and conversation with the Perl Celebrity. Although I’m not requiring that the group cover the lunch tab, it might be a nice gesture. My only rule is that you should not have ever interacted with that person, online, offline, IRL, or in any other way.
Matt S Trout will give a talk at YAPC::Europe 2012 described as
Moose is one of my favourite things to happen to perl in the last five
years, but the startup overhead and additional dependencies can be hard
to justify for very small projects.
So I asked myself ... "what's the smallest portion of Moose that I could
get by with, that would be easy to build so that when I load Moose my
classes can transparently upgrade themselves?".
The result is Moo - which provides most of the basic syntax of Moose -
and rather than trying to reinvent the MOP part, remembers enough to
make you a Moose::Meta::Class if you decide you need one later.
In this talk, I'll go over exactly which bits of Moose it provides, which
bits it doesn't (this list is longer :), why, and how it's built from
the ground up to be the right answer to "I want something smaller than Moose".
We all know that Python, Perl and Ruby (ok, and PHP, and probably other languages) are always stealing ideas from one another. This is a nice thing to do.
After programming a few with Python there is a couple of details I like. I know not all are possible to implement in Perl. Some of them are, and I would love if they were. I know not all people agree with me (that good, too). Nevertheless, I present here a couple of ideas.
Although I do not like relying only in indentation for blocks, I like the fact that conditionals and loops does not need parenthesis. It makes the code much more legible. I imagine that to make this in Perl it would be crazy. Good enough we don't need them when using it as a modifier.
You're going to go to the Moose Hackathon? You arrive in Frankfurt a few days before the event? Then you might want to do something in Frankfurt. We've set up a wiki page with some suggestions...
Unicode is getting ready to release their next version, 6.2 (likely in September). It includes only a single new character, for the new Turkish currency symbol. But there are changes to the properties of existing characters, and some of these may be of concern to Perl programmers.
The issues I think are of most interest to Perlers are the proposed changes of the Unicode General Category for a number of ASCII characters. Follow this link for a list of them. An example is U+0040 ( @ ) COMMERCIAL AT. Unicode proposes to change this to be a Symbol, instead of Punctuation. Perl code is somewhat shielded from this change, as qr/[[:punct:]]/ matches both Symbols and Punctuation in the ASCII range. However, what qr/\p{Punct}/ and qr/\p{Symbol}/ match would change, as would qr//[:punct:]]/ for non-ASCII characters.
There are other changes proposed as well. Use the first link above to get the details.
I just have released the latest version of MooseX-App - a command line-app helper framework - on CPAN (see my last blog post if you want to learn more about MooseX-App). This release incorporates the feedback I have got from fellow perl mongers.
The most notable change is that not all attributes will be exposed to the CLI, but only those defined with the new 'option' keyword.
The 'option' keyword is basically just syntactic sugar for adding an attribute with a special trait which marks attributes as command-line options. The main advantage for this approach is that you don't have to explicitly prevent internal attributes - possibly originating from consumed roles deep down in your code - from being exposed to the command line.
Furthermore I have cleaned up the meta classes, making it easier to write custom plugins which can modify almost every part of MooseX-App's behaviour, and fixed a couple of bugs I have discovered while switching App::iTan from MooseX::App::Cmd to MooseX::App.
App::iTan is a little command-line application - written a couple of years ago - which helps me to manage indexed transaction authentication numbers (iTAN) for my online-banking account. Hope you like it.
Hold on to your hats, this is going to be a wild ride! See you all at the Lowell Center for the kick off this morning at 9am sharp! Registration opens at 7am.
Don’t forget that you can watch the streams live on the web for free:
Also, the videos are being recorded. We will be posting them somewhere, but we don’t have details yet. We’ll do another blog post after the conference to let you know where you can watch them.
Part of the reason I love Perl is that it has full closures. It makes it really easy for my scientist brain to think of code references as equations. This is why I try to make my scientific software think this way too; PerlGSL is built on this concept. Its especially fun when this allows me to nest functionality to get even more complex behavior.
In this following example I find the Gaussian width needed so that the integral over it on a certain range has a particular value. Yes this is an easier example, but if the function f were more complex, this code would be no worse.
Hopefully this shows some of that power, and some of the reason I am working on PerlGSL.
I will be going into more detail on similar concepts at one of my talks at YAPC::NA later this month. See some of you there?
App-ArchiveDevelCover now shows a diff-like comparison between the current and previous archived coverage report.
You can find a screenshot and a bit more info on my blog
Actually, the payments have been open for about a week
or so, but only inofficially. So, if you have registered
but not paid for your ticket you can now do so at
If you’re here and want to get a head start on registration, we’ll have an open registration session between 4pm and 6pm tonight in the Upper Lounge of the Lowell Center. Come say hello, pick up your badge, t-shirt, and other swag.
OK, so this is my first attempt to write a blog, I hope this works. I like Perl (a lot) I like Bioinformatics and Computational Biology (yes I'm a biologist and I'm also a systems analyst), and now I decided that I like Big Data as well. Hope to write a little about those subjects.
Writing fault-tolerant programs can be a tedious exercise. Often, each step in the program logic depends on the success of the step prior, resulting in deeply nested calls to eval. Tracking the global $@ and ensuring that errors are not lost can be tricky and result in hard-to-follow logic.
I recently read The D Programming Language by Andrei Alexandrescu (which I highly recommend). D features an interesting (and, to the best of my knowledge, unique) alternative to try/catch-style error handling (although it also supports try/catch/finally). It turns out that very little code actually traps errors and makes decisions based on error conditions. In most cases, the error must be temporarily trapped to allow cleanup before re-throwing the error afterward. In these cases, D programmers can use a scope statement to register clean-up code to be executed should any of the statements following it trigger an error.
Since YAPC::Asia Tokyo 2010, we have been hosting voting on "Best Talk Award" for talks that go on YAPC::Asia Tokyo. We are also giving away prizes for the winners of these awards -- for 2010, we gave a Macbook Pro with all the bells and whistles, and last year we gave a dandy ergonomic chair.
This award was originally created in hopes that giving talks at YAPC::Asia Tokyo will also also be rewarding for the attendees, and also to give them some incentive to learn more, to do more. We believe that giving them a chance to attend these conferences will be an extremely cool opportunity to mingle with people who otherwise they may never meet in person, and to feel what it's like in other conferences.
Of course, we are assuming that a Japanese local would get the award, but if somebody living abroad gets this award, we'll try to arrange something. Do visit us if you're interested!
The Spouse’s Program begins tomorrow morning. Those of you participating should come to the opening ceremonies at 9am at the Lowell Center, where I’ll introduce you to our Spouse’s Program organizer, Julia. Dress casually and in comfortable shoes.
Tomorrow you’ll be taking tours of the State Capitol, Camp Randall Stadium, and of Wollersheim Winery. Later in the week you’ll be visiting the Chazen Museum of Art, going sailing, participating in a craft workshop, and taking a guided tour of State Street (a shopping/restaurant district).
Because of how Log::Log4perl was built, you don't need to do anything special in your code to support this multi-level priority logging -- each package can just use Log::Log4perl->get_logger() to get the the logging object and it all falls out in the wash.
(In theory, this type of configuration should work for Log4j and Log4net also.)
To better fit CPAN's naming conventions, Reddit::API has been renamed to Reddit::Client. As there are no dependencies in the reverse lookup graph, Reddit::API is scheduled for deletion.
Reddit::Client begins its life at 0.02 with mostly complete unit tests (thanks for the footnote, Gabor), some refactoring, and a few bug fixes. Enjoy!