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.]

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.

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.

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.]

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!

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

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.

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.

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.

Stop Making The Web Harder Than It Is; Real-world REST, HATEOAS, and Hypermedia APIs with Magpie

Kip Hampton will give a talk at YAPC::NA 2012 described as:

Developing for the Web shouldn’t be hard. Yet, many smart developers make it more difficult than it needs to be by choosing tools and frameworks that do not fully take advantage of all that HTTP has to offer. This talk demonstrates how projects at all levels— from the simplest brochureware site to the most advanced Hypermedia APIs—can be made simpler by getting back to the basics of HTTP. We introduce Tamarou’s internal application development and publishing framework, Magpie (scheduled for public release to coincide with YAPC::NA) and step through a series of real-world examples to show how its resource-oriented approach to development keeps simple things simple and makes hard things easier. 

Topics include:

* Why MVC is the wrong way to think about Web development.

* Why most frameworks that claim to be RESTful aren’t (and how that makes life harder)

* An brief introduction to Resource-oriented development.

* A series of production-tested Magpie recipes covering the gamut of Web-dev from simple templated sites through advanced Hypermedia applications.

[From the YAPC::NA Blog.]

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.

YAPC::NA 2012 donate ticket

I will not be using my badge to the conference. Is there a place where I can put this in a 'needs' pot? To be used by someone who can make the conference, thanks.

Distributed Processing Applications with Helios

Andrew Johnson will be giving a talk at YAPC::NA 2012 described as:

Helios is a distributed job processing system that allows users to write applications to spread workloads across multiple processes and servers.  The Helios job queuing, configuration, and logging APIs aim to provide a user with an environment to easily write applications that scale across multiple processes and hosts.  My talk will focus on Helios basic concepts and features (especially new features introduced in the new 2.4x series) with a particular interest in how to write simple Helios applications.  I will also cover best practices for getting the best performance out of the Helios environment.

[From the YAPC::NA Blog.]

Repeated Capturing and Parsing

An interesting query was recently posted to the internal Perl mail list at work. The questioner was trying to match a pattern repeatedly, capturing all of the results in an array. But, it wasn't doing quite what he expected. The message, with minor edits, went a little something like the following.

Using Mojo::DOM

Mojolicious is already well known for its web framework, but I am finding more and more (after being told by our own brian d foy) that its DOM parser (Mojo::DOM) is worth the price of admission as well. Anyway today I was poking around StackOverflow and I ended up answering a question using nothing more than some well crafted DOM calls. Here is my (slightly reworded) response. It makes for a nice example of using simple CSS3 selectors to simplify HTML parsing.

The question goes something like this: Lets say we have some HTML which contains the times that a shop is open. How can we get this information in a HTML5/CSS3 (i.e. modern) way? Mojo::DOM.

Tel Aviv Perl Mongers Meeting on 30 May, 2012

Important Update! (20 May, 2012) There was a problem with the old building (where we usually meet). There are no available rooms there at all.

As a result we're assigned to room 2205 in the new building (Mitchell building). The entrance is through Yeda Am street, on the corner with HaMelakha street.

(The Hebrew text will be followed by an English one).

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.