YAPC::NA 2012 Registration Open

Registration for YAPC::NA 2012 is now open. You can buy badges for the conference, the hackathon, the Zero to Perl Workshop, the Testing Workshop, or the Spouses Program. In addition, you can make Friend of Perl and Future Friend of Perl donations

[From the YAPC::NA Blog.]

using Dancer as WAF ::Utils

after PSGI, CPAN has a lot of parts to build Web Application Framework. It is easy making WAF yourself without uploaded WAF.

I think WAF uploaded on CPAN are just to provide a style.

Catalyst provides router system using method attribute. Web::Simple uses proto. Mojo provides WAF OO, Mojolicious::Lite provides some keyword for routing. Dancer provides many keywords. bla bla...

I didnt like any styles for my current project, but didnot want to make WAF from scratch.

So. now Im trying to use Dancer. I dont need full keywords. but "every feature is from keyword" style means Dancer looks like ::Util modules.

For example, you may use only the Dancer parts you need in this way.

Moved older projects from googlecode/svn to github

I've moved Autodia and Maypole to github so that it's easier to share or hand over, and make the development more open and interactive.

Hopefully this means that if somebody wants to take the ball and run with it by taking over Maypole it should be pretty easy to handover, also I may be able to start giving people the ability to patch, or make pull requests to my autodia repo - I've been astonished at how smooth github makes this :)

My github stuff is all at https://github.com/hashbangperl

Confessions of a Dist::Zilla newbie

I've been spending a lot of time writing Perl again, after ten years or so in management, and I'm throughly enjoying myself. I recently wanted a module to interface with a third party service, and was surprised to discover there wasn't already a CPAN module for it. My initial needs were very simple, so I decided this would be a good opportunity to find out the modern way to create a module for release to CPAN. This post is based on notes I took as I worked through this.

So, what's the modern way to do Makefile.PL? Tricky to find out, but I've seen a bunch of stuff about Dist::Zilla, and it seems to have a gazillion plugins. Right, Dist::Zilla (DZ) it is. Start off with the tutorial:

http://dzil.org/tutorial/new-dist.html.

Mini-Workshops and Hackathons

We’re having 5 simultaneous tracks at YAPC::NA 2012. The fifth track is for mini-workshops and hackathons. For example, brian d foy is considering running a workshop on how to publish to CPAN. ActiveState is considering running a workshop on using their Stackato platform. We’d love to see lots of others giving on-going mini-workshops and hands-on hackathons. If you need the space, we’ll make sure you have it. 

Mini-workshops and hackathons can be up to 110 minutes long. Submit your workshop today.

[From the YAPC::NA Blog.]

timetracker.plix.at

Today I launched http://timetracker.plix.at.

timetracker.plix.at contains information about App::TimeTracker, the easily extendable command line based time tracker we use a lot. You maybe remember App::TimeTracker from one of the talks I gave at YAPC::Europe 2011 in Riga (App-TimeTracker, Metaprogramming & Method Modifiers). It's a real nice app, give it a try if need a sane way to keep track of your working hours, and want to automate other boring administrative tasks in one go.

Read more about how I did the site, why I did it in the first place and why you should also set up websites for your projects either in my blog or in the (rather similar..) timetracker blog.

Perl Trolls

Perl is from the days of usenet. I have no experience of usenet, but I understand that the troll phenomenon originated there.

From the comments on Perl tutorials suck, one can clearly identify the trolls there.

I don't know whether the advice "Don't feed the trolls" is the best one or not. But I find the _repeated_ occurrence of replying to these trolls threads on reddit or HN amusing.

Yes, amusing.

If a person get's into a fight with a drunk, it's amusing to watch it.

But sometimes it just feels awkward to watch even perl elders like chromatic, in the fight. A drunk is not going to be the epitome of rationality, so why _even_ bother ? These people are just simpletons, madly in love with mercury(an unusual language I might say!) or just a had a shitty day.

I think some one has to say it.

troll.png

Unexpected PITA progress

Of all the Big Awesome Things I've tried to create over the years, PITA has been been one of the longest and most disappointing.

Conceived as the logical extrapolation of Perl's testing framework development into the future, the basic idea is zero conf 100% automatic testing in parallel across arbitrarily many different operating systems using one-time virtual machines.

Achieving that kind of process isolation in a way that doesn't require any manual setup and no human intervention has meant some extremely twisted internals and lots of unusual and complicated problems to solve.

This is a map of the Lowell Center. The Lowell Center is one...



This is a map of the Lowell Center. The Lowell Center is one half of our meeting space for YAPC::NA 2012. Here you’ll find the registration desk, the main hall where we’ll hold the opening ceremonies, plenaries, and the lightening talks. In addition, the Lowell Center contains 100 hotel rooms if you choose to stay there. 

Don’t worry, you don’t need to save this map now. We’ll provide you with one at the registration desk, and it will be posted on large billboards in the Lowell Center itself. 

[From the YAPC::NA Blog.]

Cph.pm celebrated CPAN's birthday

We held our monthly (almost...) meeting on the last Wednesday of the month instead of the last Tuesday, because it supposedly is CPAN's 16 year birthday.

Being a round birthday (choosing the right base notation), we celebrated with chips, sandwiches and drinks, kindly provided by Adapt A/S.

Amidst the talks about Perler's usage of git, there was also discussions about Monger Group's homepages. What do other groups use for this? Conferences have ACT, modules have PAUSE/CPAN. Blogs have this page.

Don't we have a canned .pm webinator?

So, what's new from Perl?

A few weeks ago I read a discussion thread that mentioned Perl. It might be about Mojolicious 2.0 release, on reddit, my memory is failing me. A commenter asked about what novel projects that originated from the Perl community the past several years (like the last 3 years).

Perl used to be the source of ideas that get copied to other languages, e.g. DBI, WWW::Mechanize, and its regex flavor. Now the tide has turned, and although that is not a bad thing, one might wonder the same question.

It's true that for web development, many new ideas nowadays come from Ruby/Python/JavaScript/and others instead of Perl (although "new" sometimes is very loosely defined). Nevertheless, Dancer is a port from Ruby's Sinatra, PSGI from WSGI/Rack, and so on. Some other projects also are "stolen" from other languages: perlbrew, cpanm (well not exactly, but the one-off command-line nature and verbosity reminds one of PHP's pear or rubygem client).

GCI 2011

The Perl Foundation is hoping to take part in the Google Code-in once again this year. This is a programme under which students aged between 13 and 17 are able to undertake short, well defined tasks for open source projects, and in return they will get a tee-shirt, a certificate, gain credits and can also be paid up to $500 for their work by Google. The ten students with the most credits at the end of the programme will also be invited to visit the Google headquarters.

This is a wonderful opportunity that we have to get young students involved in open source software in general and Perl in particular. One of the aims of the GCI programme is to find those who will become long-term contributors and ensure the future of open source projects. So if you want to help ensure the long-term viability of Perl, then please get involved with GCI.

Perl + Pathfinder == <3

Chris Nehren will give a talk at YAPC::NA 2012 that he describes as:

I like Perl. I like tabletop RPGs (especially tabletop RPGs whose mechanics are licensed under the OGL, like D&D 3.5 and Pathfinder). I like Unix. And I like running games.

But I’m lazy. And running games is a *lot* of work. What’s a lazy GM to do? Solve the problem in as generic a way as possible, of course! I’ll give the computer some data and some instructions about how to do the tedious stuff (managing initiatives, monster health, combatant status, that sort of thing). Then, I can focus on the fun part—interacting with my players.

And as I like Unix, this means simple text files and a text mode interface. No Web servers or browsers needed—I want this to run offline and not kill my laptop’s battery.

So, in this talk I’ll be discussing some tools I’ve put together to make running an OGL d20 tabletop RPG easier. They may / may not be useful for anyone else. But hopefully they’ll be interesting on their own.

[From the YAPC::NA Blog.]

Perl tutorials suck (and cause serious damage)

Before reading this entry, please note that this problem has been solved. You can now find fresh tutorials at the:

Perl Tutorial Hub



And now back to your scheduled rant:


PREFACE

On monday a blog post made the rounds that claimed "Perl users were unable to write programs more accurately than those using a language designed by chance." Naturally that is not the entire truth. As it turns out they "trained" their test subjects using examples of code that they considered representative of what a user would find when trying to learn Perl from the internet. That code looked like this:

$x = &z(1, 100, 3);

sub z{
    $a = $ [0];
    $b = $ [1];
    ...
    for ($i = $a; $i <= $b; $i++){
    ...
    if ($d > $e) {
        $d;
    }
    $e;
}

About finding module dependencies

Yet again I stumble upon the question: What modules do I have to install?

I found a recent discussion on stackoverflow, an old discussion of perlmonks, and some modules (Perl::PrereqScanner, used by Dist::Zilla; Module::ScanDeps, used by PAR; and CPAN::FindDependencies, as seen on http://deps.cpantesters.org/).

PrereqScanner does only static checking (i.e. it looks at the source), ScanDeps does both static and dynamic checking (i.e. it first looks at the source and then runs it). FindDependencies seems to examine Makefile.PL and Build.PL.

And then there's the something between the static and dynamic checking: Load a file, don't run it, and print %INC. (Since in the perl world "loading a module" means running code, this is definitely on the dynamic side.)

Neither of these approaches does what I want: Look at sources and tell me what modules I have to install. ScanDeps comes close: it excludes modules from the Perl distro. From its output I have to guess what modules to install: I guess that I get

Perl Tutorial and the Internet

In response to Mithaldu's blog post, How do newbies find Perl learning materials online? Dave Cross, one of the best Perl trainers, have checked out what are the top results when searching for "perl tutorial".

I was very happy to see he thought my Perl tutorial is worth sharing with others.

My little experimentation into the world of promoting web sites lead to the belief that if I want to promote my web site I need to create content that people will want to link to. Also, I need to make it easy and fairly obvious how to link to the web site. That is, what should be the anchor text.

OTOH if you'd like to help promoting a web site or a specific web page make sure to include the expression people will likely use to find that specific thing.

i-nigma

i-nigma :

i-nigma is one of the better QR Code readers for Windows Phone. Most importantly, it handles vCards. Since we’re using a lot of QR Codes at YAPC::NA 2012, do yourself a favor and get i-nigma, if you’re a Windows Phone user.

[From the YAPC::NA Blog.]

Introducing Sub::Spec::HTTP::Server: Perl functions over HTTP, the dead easy way

Below is one way to serve function call requests (e.g. providing API service) using just one line.

Modules hitting CPAN mirrors as we speak (metacpan link: Sub::Spec::HTTP::Server):

# example module to export to HTTP, provides sprintfn()
$ cpanm Text::sprintfn

# module to do the magic, provides 'servepm'
$ cpanm Sub::Spec::HTTP::Server

$ servepm Text::sprintfn

$ wget -O- -q 'http://localhost:5000/api/Text::sprintfn?args:j=["Agent %(num)03d",{"num":7}]'
[200,"OK","Agent 007"]

Features:
  • Plack/PSGI-based
  • Support HTTPS natively, as well as Unix sockets (using Gepok PSGI server)
  • by default support JSON/YAML/PHP/text input/output (support complex arguments instead of just scalars)
  • more than just function call: usage, spec, list modules, list subroutines
  • propagates Log::Any log messages from server
  • use middleware to add authentication, authorization, etc.
  • support proxying

I also wrote Sub::Spec::Use, to easily use a remote module:

use Sub::Spec::Use "http://localhost:5000/api/Text::sprintfn" => qw(:all);
printfn "%(num)03d\n", {num=>7};

Document Driven Development

Maybe the most ibnteresting talk I held this season was about this DDD. This is just a sneak preview since I give it once more in Vienna and my concept will be much better after it. Then i will publish here entirely.

I borrowed the term a bit from the django-guys, even Al Iho (the a in awk) tought 20 years ago this way. (thanks cromatic to bring this to my attention). it solves several issues documentation and test driven development face (if your honest). And I don't think it eats up any exra time. Maybe at the beginning a bit but it pays of hugely.

the basic ideas are 2:

1. write docs before the tests, than the code. this way you refelct more and hav your docs always complete, up to date and ready to ship.

2. rewriting docs is part of every refactoring

i think we should write a clean perl book. just for the fun of the title. i really lough at the less upright from c't magazine that apologize at the beginning of a perl tutorial that it isn't hip.

in other news: my tutorial lerning programming with perl is still in the making and needs evey (German) hand it gets.

Announcing Alien::GSL 0.03_04 plus some Module::Build questions

Hello everyone,

This note is to announce that Alien::GSL dev release 0.03_04 has be uploaded to CPAN and should be available shortly.

After lots of good feedback from Rob (Sisyphus) and learning lots about the warts in Module::Build, I think I have a more robust system in place now.

New features include:

  • smarter warnings for missing configure_requires dependencies
  • parse gsl.pc to get up-to-date compiler flag, no longer depends on hard coding things like -lgsl
  • rewrite gsl.pc before installing to provide correct paths relative to share_dir location
  • new gsl_pkgconfig_location function provides the path to the folder containing the rewritten gsl.pc file
  • includes gsl-config.pl which should behave like gsl-config but relies on Alien::GSL and its notion of the GSL libraries (this still considered work-in-progess)
  • more tests!! (required adding the ability to hook into $Alien::GSL::share_dir, since tests happen before install, and thus before placement into the location that File::ShareDir expects)

Some notes on Module::Build:

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.