August 2007 Archives

Further reports from YAPC::Europe

| No Comments

Thanks to those who've been uploading photos to Flickr and tagging them with yapceu07. Here's one by Sébastien Aperghis-Tramoni of Leon Brocard and his pet camel:

acmecamel.jpg

Dave Cantrell reports on each day's activities: Tuesday, Wednesday, Thursday.

The conference dinner at a Heuriger on the outskirts of Vienna was great. The orga-punks had hired a small fleet of buses to get us there and back, and one of the sponsors laid on a great buffet. The local wine was pretty damned fine too, and then the evening de-generated into Schnapps, with toasts to Her Majesty, to her splendid navy, and to The Village People.

BinGOs has made available the slides he used for the POE Hackathon: introduction and main slide set. [ Ed: these links are timing out for me right now, but I hope they'll come good soon. ]

osfameron has uploaded his "Big Bad Wolf" slides -- all about debugging web applications -- to slideshare:

Smylers spoke at YAPC::Europe about How to talk at a Perl conference for beginners.

If you've recently created some amazing software that you're eager to evangelize then that's an obvious thing to talk about. But what if you haven't? That's OK -- there's lots of good stuff you can talk about that's produced by others who aren't at the conference, or don't have time to create presentations about it, or are so close to the project that they can't relate to beginners, or ...

If you'd like to present at YAPC next year, or any other Perl conference, his guide should get you started.

And finally, domm has been posting links to further videos of YAPC::Europe on YouTube. We showed you the pre-conference dinner in our previous post, but now videos of Tuesday and Wednesday are also available. I really like the second one:

YAPC::Europe slides available: Moose and Web::Scraper

| 3 Comments

A couple of sets of slides available from YAPC::Europe presentations given over the last couple of days:

Adblock

If you're presenting at YAPC::Europe and putting your slides online, tag them yapceu07 and/or tell us about it in a comment or an email.

News from YAPC::Europe

| 2 Comments

A quick round-up of news and links from Vienna, where the community-run YAPC::Europe conference is currently in progress.

domm reports on the pre-conference dinner with video:

maks gives his take on day one:

The talks are on going, schedule got some last minute updates. Cog gave us a fun keynote on how to socialize in order to get most out of a YAPC. Larry Wall gave his current vision on scripting languages. Matt Trout had a full audience for an enthusiatic talk about the community around DBIx::Class. Hackathons are ongoing and domm is preparing videos of the welcome night. The Selenium talk by Barbie got high prise. gwolf did a very good presentation about the challenges of the Debian Perl group. So the first day looks like a win and we are happy to see how it will go on.. :)

Rija has been live-blogging each day: Tuesday and Wednesday are up so far.

A few people on Flickr have been tagging their photos with yapceu07 -- if anyone else is uploading photos, please do the same! Here's one by Andy Armstrong of Mark Jason Dominus, author of Higher-Order Perl:

mjd.jpg

And finally, next year's YAPC::EU will be in Copenhagen. jonasbn reports the news on use.perl.org.

Bid on one-month perlbuzz.com ad package at YAPC::Europe auction

| No Comments

If you're looking for attention for your business, your open source project, your Perl Mongers group, or just want to buy space on the front of perlbuzz.com, now's your chance.

Perlbuzz.com has donated a special ad package to be auctioned off at the Perl Foundation auction at YAPC::EU. The winner of the auction will get an ad placed on the front page of Perlbuzz.com for one month in the far right column, just below the "About Perlbuzz" box, linking to the URL of his or her choice. In addition, we'll also include a feature article about your business/project/group/whatever.

This isn't just for businesses! Maybe the Catalyst team wants to tell everyone it's better than Jifty. Perhaps the London Perl Mongers want to spread a little orange around the web. Put up an LOLcat if you want. The choice is up to you.

The auction takes place in Vienna on Thursday, August 30th at 16:15 local time (UTC +2). Not in Vienna? You can still bid via IRC, in channel #yapc on MagNET (irc.perl.org). Get there early and let your intentions be known so you don't miss out.

Join the fun, help support the Perl Foundation, and get your image and story in front of the readership of Perl's newest news source.

(Disclaimer: The winner will have to provide the 160x240 ad, and of course perlbuzz.com reserves the right not to link to or display something offensive, illegal or otherwise inappropriate for the site.)

search.cpan.org makes improvements in searching

| 6 Comments
search.cpan.org, which for many people is the CPAN, has added a crucial little enhancement. The star ratings given to distributions at cpanratings.perl.org now appear on the search results. This makes it easy to tell at a glance which modules may best serve your needs.

Say you want a module to work with Excel spreadsheets. Now, when you search on "Excel", the star ratings in the results give the searcher starting points.

Thanks to Graham Barr for making this change.

Perl's Artistic License comes under legal scrutiny

| No Comments

There's very little case law around Open Source software licenses, but this week we've seen an interesting case involving the Artistic License, under which Perl is distributed.

The blog Law and Life: Silicon Valley has a discussion of the case:

The decision makes two important points: (1) the Artistic License is a contract and (2) the failure to include the copyright notices was not a "restriction" on the scope of the license. The first point is important because the Free Software Foundation and some lawyers have taken the position that open source licenses are not contracts. They have good reasons for wishing to avoid some contract formalities, but this position has complicated discussions about the enforceability and remedies for open source licenses.

The second point is very important because it deals with remedies. Generally, the remedy for contract violations under US law is damages, not "injunctive relief" (which means that the court order a party to cease their violation). On the other hand, copyright infringement generally includes a presumption that injunctive relief is appropriate. Thus, the question of whether the violation of a license is a contract violiation or copyright infringement (it can be both) is very important, because licensors would prefer to obtain an injunction prohibiting the breach of the license.

As pointed out in the article linked above, this decision in relation to the Artistic License doesn't apply to other licenses. This will no doubt have some bearing on how Perl chooses to use the Artistic 2.0 license.

An article on use Perl asks:

  • Could the same thing happen under the Artistic 2.0 or Will further revisions to the Artistic license be required?
  • Should adoption of Artistic 2.0 wait until Perl 5.10?

However, as a District Court case, this decision only applies in California -- admittedly a very influential place in the tech world, but we can still hope that this decision, which many see as a bad one, will be overturned in a higher court.

Further reading:

Pittsburgh Perl Workshop offers day-long introductory class

| No Comments
For those wanting to get a jump-start on their Perl skills, the Pittsburgh Perl Workshop 2007 will offer a day-long class, "From Zero To Perl", taught by Daniel Klein. I'm glad to see PPW providing content for beginners, since conference content tends to expert-level material. Now you can drag along your non-Perl-using co-workers when you head out to Pittsburgh for October 13th-14th, 2007.

Statistical views of open source projects on ohloh.net

| No Comments

ohloh.net is a social networking site built around open source projects. People give kudos to each other, and there's some sort of ranking system such that I'm #277 of 29,000 users, which shows that their ranking system is fueled by psychedelics.

ohloh has some cool analyses for the projects, since they analyze the public source repositories of the projects they track. For instance, here's the codebase size for Parrot

There are also great tools to look at who's committed to projects. Take a look at the list of committers to the Parrot project. This is a great use of sparklines to reveal the history of the project through the amount of code committed to the project.

See how Leopold Tösch works like crazy for years on Parrot, then disappears.
My Parrot contributions started out modest, and then I lost interest for a year, then came back a year later.
Compare that to my Perl 5 contributions which are more sporadic, but over a longer period of time.

I've never seen analyses like these done before. If there are others, please let me know in the comments.

How to get listed on CPAN Watch

| 4 Comments

(Note: A permanent page about this is here.)

I've been filtering the full CPAN uploads feed for a few days now and posting the highlights to our CPAN Watch blog. I thought I'd take this opportunity to publicise a few tips on how to get your module listed on CPAN watch.

Do...

  • Include a Changes file. It can be named Changes, CHANGES, ChangeLog, or anything of the kind, just as long as it exists.
  • Document the changes for each release. I can't tell what's changed if you don't tell me.
  • Put your change log in reverse chronological order. This makes it easy to see the most recent change.
  • Give me an easy headline by listing the most significant changes first.
  • Be specific. Don't just say "bugfixes", tell me which bugs in particular.

Don't...

  • Make me go to an external website or Subversion repository to find out what's changed.
  • Refer to "improvements", "new features", or "bugfixes" without explaining what they are.
  • Leave your Changes file completely empty. (Yes, I've seen this!)
  • Release a list of your Subversion commit messages as a change log.

If you follow these guidelines, I'll read your change log and try to determine whether your release is "significant". This is a bit of a fuzzy judgment, but here are some of the guidelines I use:

Significant

  • New features added
  • Major bugfixes
  • Breaking backward compatibility
  • Many changes grouped together, even if each is individually small
  • First release of a major module in some time
  • New release of something that looks to be of broad interest and usefulness

Insignificant

  • Documentation/packaging/test changes
  • Internals-only changes, refactoring, etc.
  • Small changes (eg. one small bug fixed)
  • Developer releases
  • Unauthorized releases

I hope this will help clarify what criteria I use for CPAN Watch. Not surprisingly, these are the same sorts of things potential users of your module look for as well. As time permits, I'll be automating some of this process, so it will be increasingly important for distributions to document their changes in a way I can pick up programatically.

"Beginning Perl" turned into a wiki

| No Comments
Simon Cozens has been mostly absent from the Perl community since he's gone off to mission work in Japan, but he writes in to tell us:
I've begun the process of putting my (very) old book Beginning Perl, first edition, into a wiki to allow it to be updated, corrected and annotated: http://books.simon-cozens.org/index.php/Beginning_Perl It's a very rough data dump at the moment and needs a lot of gardening, but hopefully it's still a useful resource.
Thanks to Simon for making this available to the community.

YAPC::Europe is nearly upon us

| No Comments

yapc-eu.png

It's only a week until YAPC::Europe, Europe's grass-roots, community-run Perl conference. This year's is being held in Vienna from August 28th to 30th, and if you haven't registered yet, it looks like you can still do so.

YAPC conferences are always packed full of fantastic sessions, and this one is no exception. Take a look at the schedule with its three consecutive streams of talks and two rooms for hackathons. There will also be BOFs (Birds of a Feather sessions) which are being organised via the conference's wiki so be sure not to miss them.

And now, some notices:

Greg McCarroll seeks stuff to auction

For many years, Greg has been running a charity auction at YAPC to benefit The Perl Foundation. Items auctioned range from the serious to the silly, and it's the novelty items that make the auction an unmissable event.

Greg writes:

There are 8 days left till the YAPC::Europe auction and I've realised I don't have one novelty item to auction. I've just been too busy starting work at Venda (a Perl shop in London with I'd guess about 20 Perl hackers and hiring more) to contact people. So I'd really like people to contact me with ideas, in the past we've had things like ...

  • Signed photo's of buffy & willow, to see which was more valuable.
  • Pledges in order to see Damian and Schwern arm wrestle (semi-nakedly).
  • The date of the London.pm meeting (I won!).
  • Japanese meals cooked by Perl mongers.
  • Lessons In hacking the Perl core.

You name it, so please please please, if you have an idea about something I could auction, contact me at greg@mccarroll.org.uk.

Perl Buzz needs you!

If you're going to YAPC::Europe, we need your help! None of our editors will be there, alas, so we're relying on the Perl community to tell us what happens so we can cover it. You can contribute in the following ways:

  • Email us directly with news, reviews, and so forth. The address is editors@perlbuzz.com.
  • Tag your blog posts with yapceu07 so we can find them via the blog search engines.
  • Upload photos to Flickr under a Creative Commons license and tag them with yapceu07.
  • If you take photos and don't use Flickr, but would like us to see them, email the URL of your gallery to editors@perlbuzz.com.

PerlBuzz is go for launch!

| No Comments

Welcome to Perl Buzz! Andy and I are excited to be launching a new Perl blog, and hope you'll like it as much as we do.

A lot of people have been asking us, "Why do we need another Perl blog?" We believe that there's room for as many Perl blogs, journals, and news sites as people want to set up. Each has its own flavour and will appeal to different groups of people, and that's just fine. Perl Buzz's unique selling point is that we're bringing a shiny, happy view of the Perl world to the masses. Some other sites focus on communicating within the existing Perl community. We'll do that, too, but we also hope to reach out to those who aren't yet part of the tribe, and show them just how cool Perl is.

So, let's take a look at what Perl Buzz has to offer.

You can subscribe to any or all of the feeds via RSS; see the links in our sidebar.

If you'd like to contribute to Perl Buzz, please email us at editors@perlbuzz.com, or see our How to contribute page.

Organizing Tests with Test::Class

| No Comments

At the Perl and Mac Development Blog, Christopher Humphries has written a tutorial on using Test::Class.

There are basically two schools of testing that is either Test::Harness based or Test::Class based. Test::Harness school runs a series of scripts which have tests in them top down, usually with a plan at the top of the file (plan is the number of tests you are planning on running). Test::Class manages itself, using Test::Class for tests and to run them...

Most of my test files use Test::More and little else, but Test::Class is a great way to organize tests for larger projects. Best of all, it works with all test modules built on Test::Builder, which is to say almost every test module on the CPAN.

Site review: Nestoria

| No Comments

The world of online real estate is exploding with new websites. One of them is Nestoria, whose website lists properties in the United Kingdom and -- since May -- in Spain as well.

nestoria_screenshot.png

I talked to Mike Astle, the head of engineering at Nestoria, about the site and how they use Perl.

"We knew Nestoria was going to have a lot of pieces, and Perl is a good tool for building all of them," he said when I asked him about their choice of Perl as a development platform. "We're spoilt for choice on web development frameworks and data access toolkits, and we can leverage the breadth of CPAN for all of the data analysis and manipulation task that go on behind the scenes."

"These days it seems that all the hip young kids are using Ruby or Python. We believe that Perl has reached a higher level of maturity than it's newer companions. We can rely on Perl for stability -- something that is even more important to us than overall speed or language features. Optimizing a stable system is easy. Trying to figure out why the garbage collector in your fancy new runtime isn't working right is hard. We want to be on the bleeding edge of product innovation, not language design."

I asked what toolkit Nestoria used, and what their favourite CPAN modules are. Mike tells me they use Mason as the web development framework, along with various DBI modules to talk to MySQL and GD for resizing thousands of images a day.

They also use a lot of CPAN tools to speed their development process. "We are a small team without a QA department, so we rely very heavily on automated tests for unit, blackbox, and performance testing." Modules used include Test::WWW::Mechanize for functional testing of their website and Devel::Profile for profiling code performance.

Nestoria participated in the recent Yahoo Hacks Day in London, and will be at YAPC::Europe in force. Mike also mentioned other ways the company is involved in the Perl community, from presenting at user group meetings to contributing to CPAN. Most importantly, he adds, "We are always happy to buy a few beers at the monthly London.pm meetings. Those guys write a lot of the code that we rely on."

Perl Foundation looking for a chair for the Grant Committee

| No Comments
The Perl Foundation is is looking for a chairperson for its Grant Committee. After two years, Curtis "Ovid" Poe is stepping down, and someone else needs to take on the responsibility of doling out the dollars for Perl development grants. This is a great way to help the Perl community in a non-technical way.

Movable Type 4.0 released

| 2 Comments

mtlogo.png

Movable Type 4.0, the latest version of the software that runs PerlBuzz and who knows how many other blogs, was released yesterday by Six Apart, who are also responsible for TypePad, LiveJournal, and Vox -- all written in Perl.

The list of what's new is pretty long, with lots of interesting stuff on it.

Artur Bergman, over at O'Reilly Radar, says:

Significant new features [...] are centered around community building, with first-class support for comment conversations using OpenID and user registration. The new community pack delivers a social network in a box, allowing end users to create profile pages and rate others.

Unfortunately not all of these features will be included in the forthcoming Open Source version, and it's hard to know exactly what the differences will be at this point. Byrne Reese, product manager for Movable Type, said, "Before we dive too deeply into defining the precise difference we wanted to engage the community about that." The discussion around Movable Type Open Source will occur on http://movabletype.org, the MT community site.

The Open Source version is a new step for Six Apart. Although Movable Type was free for download in its early days, the release of Movable Type 3.0 in 2004 came with a new proprietary license, requiring all but the smallest blogs to pay to use it. This engendered a great deal of controversy at the time.

In any case, the new commercial version looks pretty slick, and the administrative interface is quite a departure from earlier versions.

mtscreenshot.png

If you'd like to check it out, there's a free demo system for you to play with. Or you can download a version for personal use for free. Licenses for the commercial versions begin at $49.95.

PerlBuzz will be upgrading to the official 4.0 release as soon as we find enough round tuits.

Other coverage:

I CAN HAS LOLCODE PARSER?

| No Comments

Unless you’ve been buried in a bog for the last year, you’ll have come across lolcats, the pictures of cats speaking an amusingly stilted dialect of English.

From lolcats came lolgeeks and then, inevitably, lolcode:

HAI
I HAS A VAR ITZ 1

IM IN YR LOOP
   VISIBLE VAR

   IZ VAR BIGGER THAN 39 O RLY?
       YA RLY
           GTFO
       NO WAI
           UP VAR!!1
   KTHX
KTHX

KTHXBYE

I talked to Joe Drago, author of a lolcode interpreter written in Perl.  The parser is based on Parse::RecDescent, a recursive descent parser written by Damian Conway.

Joe’s a Senior Software Developer at a video game company, where most of his work is in other languages, but he says he prefers Perl to the C++ that pays the bills.

Joe says, “I’d never used Parse::RecDescent before… I found it to be wonderful. I’ve been wanting to write a parser for a while now (I own the Dragon book and one on lex/yacc), but I needed a test case. This was a great opportunity to screw around with that. The module is very Perlish, in the sense that it lets you have fun with the grammar of a language without having to plan complex data structures too much to see some results. I highly recommend P::RD for Perl programmers interested in how grammars are written.”

Unfortunately Joe’s lolcode interpreter predates the official lolcode specifications and isn’t compliant with them. But, he says, “I released it under the BSD license under the notion that someone more interested in the final standard would be inspired by my simple stuff and make something really cool with it. Hint, hint!”

Perl debugger reference card

| No Comments

Andrew Ford, maintainer of refcards.com has released a reference card for the Perl debugger.

refcard.png

All his reference cards are downloadable as PDFs in the paper size of your choice.  His current reference card project is for WWW::Mechanize, which just tickles me.

White Camels for 2007

The 2007 White Camel awards for achievements in promoting the Perl community have been awarded to Norbert E. Grüner, Allison Randal and Tim O'Reilly.

The White Camel awards were started in 1999 to acknowledge the work of Perl's community leaders, and are awarded each year at the O'Reilly Open Source Conference.

Attributes: powerful Perl syntax you might not know

| No Comments

An anonymous monk at PerlMonks asks How is this Perl?.

sub end : ActionClass('RenderView') {}

As it turns out, they're attributes, one of the newer and less well understood additions to Perl. You won't see them everywhere, but they're starting to appear in a number of places; many people -- including the anonymous perlmonk -- first encounter them in the Catalyst MVC framework.

Attributes allow you to add extra semantics to any Perl subroutine or variable. The typical example -- given in both the perlmonks thread linked above, and in the Attribute::Handlers docs linked below, is an attribute :Loud which makes any subroutine called with it behave as if it only knew how to shout:

sub greet : Loud {
    print "Good morning.\n";
}

greet();

... prints "GOOD MORNING";

You can also declare variables using attributes:

my $greeting : Loud;

To learn more about attributes and how to write them:

Site review: iusethis.com

| No Comments

If you use a Mac, you need to use this.

iusethis.com is a software review site for Mac OS X software. With 4,500 pieces of software listed and 20,000 users constantly adding reviews or simply saying “I use this”, you can find just about anything there.

iusethis_screenshot.png

I spoke to Marcus Ramberg and Arne Fismen, who run the site, and asked them about how they used Perl to develop it.

The main tool in their toolbox is the Catalyst Framework. “Without an MVC framework like Catalyst, it would be impossible for us to write a structured app, maintain it, and not end up in a big mess,” Marcus told me.

Marcus is the developer, Arne is the designer. “Arne loves Template Toolkit!” Marcus tells me. “That’s pretty much the only Perl thing he actually knows he’s using. Of course, he interacts a lot with DBIx::Class objects, but it speaks to DBIC’s credit that it just works, from a designer perspective.”

So what’s the best thing about the site? What makes the guys smile and say “Wow, that’s cool!”?

Arne tells me, “For us its the way people interact with it. When we started out we expected having to add a lot of the applications ourselves, but we have seen a great community effort helping us out. It is also a very positive community, we are having very little trouble in terms of moderation.”

For Marcus, it’s the site’s APIs that bring a smile to his face, especially when he sees what other people are doing with the data. “Appfresh is probably the best example of this so far, but we look forward to seeing what people will come up with in the future”

The guys have some more projects in the works, all hush-hush, but while we wait to see what they come up with next, check out the guys’ current experiment: iwatchthis.com, a video sharing site with certain similarities to iusethis.

OSCON 2007 Perl lightning talks now online

| No Comments
Mike Schilli has put videos of some of the Perl lightning talks at OSCON up on YouTube.  Pudge sings his "Perl, In A Nutshell", Julian Cash talks about his MoveMyData project, and Schwern talks about how to know how long five minutes is, and why this matters to projects.

Below: Chris "Pudge" Nandor performs "Perl in a Nutshell".

Help us learn about the Perl community with the Perl Survey

| No Comments
Perlbuzz editor Kirrily Robert has created the Perl Survey at perlsurvey.org.  Kirrily's goal is to "take a snapshot of the Perl world as it currently stands." As an active member of the Perl community, she's often asked questions about Perl's users and is only left to "hypothesise, generalise, and hand-wave." Further, software communities can often be an echo chamber where people only hear from like-minded people. The Perl Survey is an attempt to break out of that echo chamber and hear from all Perl users around the world, regardless of skill level, not just the core users most active in vocal communities.
Main Index | Archives | September 2007 »