Zero to Perl is rocking and rolling.



Zero to Perl is rocking and rolling.

[From the YAPC::NA Blog.]

Guess what this does ...

First, here's a one-liner:

    perl -de 'BEGIN {@DB::typeahead=("V ::","q")};1'

If you have a sense of what might be happening, you're probably an experienced Perl user. If you can accurately describe what's happening, you're an advanced user. If you can completely describe the output before you see it, you need psychiatric help.

Perl 5.16.0 installed

I thought I would see how long my new 8 core box would take to compile 5.16.0.

It took about 18 minutes 25 seconds if stat on the build log is accurate.

So now I have the new shiny...just need to reload all the CPAN modules I use now.

Huzzah!

Alien::Base Perl Foundation Grant Report Month 3

This month’s work on Alien::Base started really exciting. I had tracked down several bugs and was honing in on full Linux compatibiliy. Turns out much of my testing problems had been in the test suite, wherein I mimiced make/Makefile with a perl script (in the name of Xplatform) but made some incorrect assumptions.

How’s that for a view from the hackathon?



How’s that for a view from the hackathon?

[From the YAPC::NA Blog.]

iCPAN 2.0.0 now Available in the App Store

I'm happy to announce that iCPAN 2.0.0 is now in the app store. If you're not familiar with it, iCPAN is a free iOS app which allows you to browse CPAN Pod on your iPhone/iPod/iPad. The previous version of iCPAN was released in November of 2010, so this has been a long time in coming.

If only CPAN had a web service...

LLVM 3.1 with AddressSanitizer released

The good part:

LLVM 3.1 has been released, and AddressSanitizer is now officially a part of it.

llvm.org/releases/3.1/docs/ReleaseNotes.html

The bad parts:

There are still several issues (= security bugs) with perl-5.16.0 and important modules.

  • heap-overflow threaded-only in swash_init - Carp - caller - gv_stashpvn call perl #113060 cx corruption
  • DBI use-after-free cpan #75614
  • List::Util 1.24 cpan #72700 (be sure to upgrade it from CPAN if you need to use 5.16.0 plain. Fixed in 1.25)
  • clone_with_stack heap-use-after-free on PL_curcop perl #111610

My asan talk at YAPC is on the waiting list. If someone is interested I'll do a hallway meeting. parrot is happy to use it.

asan unrelated:

See my other blog posts about AddressSanitizer:

  1. adventures-with-clang-and-asan
  2. address-sanitizer-round-2

A MOP for Perl 5

Stevan Little will give a talk at YAPC::Europe 2012 described as

This talk will explore the current proposal for adding a new object system to the Perl 5 core. We will discuss the syntax and semantics as well as the underlying MOP (Meta Object Protocol) that the system will be built upon. We will also explore what that would mean for the future of Perl 5 as a language and how it will retain the connection to the past.

The Workshops and Hackathon Begin Today

YAPC::NA 2012 is almost upon us. The workshops and hackathon begin today! Go to the second floor in the Pyle Center if you’re one of the attendees for the early activities.

[From the YAPC::NA Blog.]

CPANdeps now links to the right bug-tracker

CPANdeps has for ages had links to each distribution's bug tracker. Trouble is, it always just linked to rt.cpan. Lots of people don't use that any more, preferring to, for example, use the one that github creates for each repository hosted there. META.yml (and META.json) have links to those.

Ben Bullock provided a patch to extract the info from the META files, and I applied it a few moments ago. There are quite a few different ways it can be specified, and in some places META.yml and META.json files have different data structures, so we may have missed a few. Please submit a bug report if you find any module whose bug tracker I'm not correctly linking to.

What Moose is doing to my nose

It's only been a couple of months since I've been using Moose, but it is already changing the way I read code. Of course, it changed the way I write code in a very short time, but I was surprised when I realized that it also changes the way I smell code.

Things that seemed normal last year, now are a code smell to me. Whenever I see an object being constructed inside a method whose name doesn't start with '_build_', I wonder if something bad is going on. Even method calls with parameters are now becoming a code smell. Whenever I smell that smell, I ask myself "should this be an attribute?".

And that's a pretty good thing. I never found testing my code easier. "Dependency injection" is harder to spell out than it is to just do it. And I find myself being able to understand my own code a couple of weeks later.

So, to sum it all up: Thank you, Moose Cabal!

YAPC::Asia Tokyo Facebook Page

I created a basic YAPC::Asia Tokyo Facebook Page. Let me know if you can think of stuff I should post there.

Meanwhile, I think this shows the importance for us event organizers to take professional photographs. This is the kind of place you want to use them pictures! They are well worth the $$ you pay. I suggest you definitely look into hiring someone for your next Perl event!

YAPC::Asia Tokyo Collage

YAPC::Asia Tokyo 2012 is on Sep 27, 28, and 29! Tickets will be available soon!

Chadbourne Hall

Apparently the receipt that dorm dwellers receive from the University doesn’t tell them they need to go to Chadbourne Hall. So I wanted to announce it far and wide in case anybody else gets hung up by that. 

Chadbourne Hall

420 N. Park Street
Madison, WI 53706-1489
Chadbourne Desk: (608) 262-2688

[From the YAPC::NA Blog.]

Strawberry Perl 5.16.0.1 released

Strawberry Perl 5.16.0.1 is available at http://strawberryperl.com/releases.html
(all editions: MSI, ZIP, PortableZIP for both: 32/64bit MS Windows)

More details in Release Notes:
http://strawberryperl.com/release-notes/5.16.0.1-32bit.html
http://strawberryperl.com/release-notes/5.16.0.1-64bit.html

If you have not heard about Strawberry Perl see http://strawberryperl.com

installing cpan modules with chef

Chef is a systems integration framework, built to bring the benefits of configuration management to your entire infrastructure.

I have created cpan cookbook to install cpan modules with chef. It's easy in use, because all the implimenation is hidden providing you simple interface:

cpan_client 'CGI' do
    action 'install'
    install_type 'cpan_module'
    user 'root'
    group 'root'

end

Among cpan_client features are:

  • installing in dry-run mode
  • installing with given install_base and install_path
  • installing from tarball
  • installing within given cwd
  • and others

For more details visit - http://community.opscode.com/cookbooks/cpan

Refactoring Perl code

Gabor Szabo will give a talk at YAPC::Europe 2012 described as

Code refactoring is "disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior". It is needed to ensure your code remains readable while growing in size and scope.

It is needed if you have some old code base that needs improvement and after every period of intense development when you "did not have the time to properly design your code".

There are several patterns in refactoring, some of them you might already practice without knowing the name.

The most obvious is when you use a variable $x and suddenly you realize it could have a more descriptive name.
If you change all the occurances of $x to this better name, without changing anything else in the code, that's already refactoring.

You probably know that Wisconsin is the Badger State due to our...



You probably know that Wisconsin is the Badger State due to our University Athletics mascot, Bucky Badger. However, you may not know why it is called the Badger State. Believe it or not, we have very few badgers in the state. Wisconsin is called the Badger State because in the early days mining was the largest industry here, and the miners were called “badgers” because they burrowed into the ground like their animal namesake. In the harsh Wisconsin winters the miners would actually live in the mines to escape the cold.

Benchmark::Featureset::SetOps - Compare various array/set handling modules

Hi Folks

I've just uploaded to CPAN V 1.00 of Benchmark::Featureset::SetOps.

Here's the rationale (from the FAQ):
I maintain (but did not write) Set::Array. I have never really liked its interface, so when I started a home-grown script that Kim Ryan (author of Locale::SubCountry) and I use to compare his module with my WWW::Scraper::Wikipedia::ISO3166, I wondered if there was some module more to my liking. Hence the search for alternatives. Then I realized my work could benefit the Perl community if I formalized the results of this search.

Also, I have 7 modules on CPAN which use Set::Array, so I wanted a good idea of the array/set modules before I decided to switch.

But, more importantly, to protect your delicate sensibilites from the code, you can just view the HTML report here.

Next DBD::SQLite to be released in early June

The final developer release of the current DBD::SQLite has been posted to CPAN.

http://search.cpan.org/~adamk/DBD-SQLite-1.36_04/

The new release upgrades SQLite from 3.7.9 to 3.7.12 and the upgrade of DBD::SQLite is in line with SQLite upgrade recommendations, and also driven by the move of Firefox to a newer file format than currently supported.

The new release contains a few changes that may cause trouble for your application and you should test, the biggest is the change in the default file format from version 1 to version 4 that landed in 3.7.10.

This means that SQLite files produced by DBD::SQLite will no longer be readable by older versions of SQLite unless you explicitly enable PRAGMA legacy_file_format=ON.

TeXlipse for LaTeX development

I know that this is a Perl blog, so I will just post a quick link to my other blog. If you are writing any LaTeX, you should look at TeXlipse; look again if you have already tried it in the past. Read more on my other blog.

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.