Call for Presenters Open for YAPC::NA 2012

Submit a talk for YAPC::NA 2012. We’re especially interested in talks on real-world Perl apps and quintessential Perl 101 talks, but we’re open to any ideas you have. 

[From the YAPC::NA Blog.]

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.

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.

Perl 5: Today, Tomorrow, and Christmas

Ricardo Signes will give a talk at YAPC::NA 2012 that he describes as:

Year after year, Perl continues its steady march towards greater and greater Perlishness. Ancient mistakes are slowly sloughed off and long dreamed-of features are added. If Perl is evolving, toward what? Is it just a random collection of mutations, as desperate Perl hackers struggle to remain fit enough to survive, or is there an intelligent design behind the way Perl is changing?

In this session, Ricardo Signes (rjbs), the Perl 5 project lead, will discuss the future of the Perl language, the guiding principles of its ongoing design, and the specific changes toward which the Perl 5 Porters are working. It will also describe the way Perl 5 development really happens, how that is changing, and what we might want it to become.

[From the YAPC::NA Blog.]

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:

RIP John McCarthy

What a sad month.

I often forget how young the field of computing is. Computers are everywhere and it is difficult to imagine a world without them.

Computers, embedded in robotic machinery or general are so darn useful.

X They replace the calendar with a more lively one.
X They help you communicate and make new friends.
X They take down all your notes.
X They help the shopkeeper with his inventory.
X They help the doctors, take readings of the patient.
X They help a startup visualize latest trends.
X They assemble metal things with perfect accuracy to create a Ferrari.
X They help the musicians with their beats.
X They help the painter undo.
X They preserve history.
X They help the architect.
X They book your flights.
X They track your packages.
X They bring limitless information and possibilities to the bedside of every dreamer.
X They helped the thief's in ocean's 11.

What follows is an incoherent babble.

How do newbies find Perl learning materials online?

This is a very short entry, which will lead to a long one later. Right now in light of the recent hubbub about the study claiming that perl's as good as a randomized language for newbies, i am trying to find out just how a newbie searches for Perl learning materials online and what he finds first.

Right now i'm concentrating on what kind of search term a newbie would enter in Google. Luckily Google trends help a bit there, allowing me to compare between various search terms.

These are the search terms i came up with or was suggested:

perl tutorial 1.00    perl cgi 0.79    programming perl 0.45    perl examples 0.37    perl learn 0.10

perl_compare_2.png

Please help me and see if you can think of any other search terms that would be more often used than "perl tutorial". Thanks in advance.

Intro to Dancer

Mark Allen will give a talk at YAPC::NA 2012 he describes as:

This talk presents the Dancer web framework beginning with “Hello World” and progressing through a couple of easy to digest introductory applications.  All of the primary Dancer features are presented including URL routing, writing handlers, and output templating.  A selection of useful and common Dancer plugins will also be covered.  This talk is best suited for beginning and intermediate Perl programmers.

[From the YAPC::NA Blog.]

DBD::SQLite 1.35 release planned for 22nd of November

It's been a fairly quiet year for DBD::SQLite, but largely in a positive sense.

The release rate and delta of SQLite itself has been fairly tame, and in Perl land we've seen a significant reduction in the severity of bugs compared to 2010.

Because of the significance of DBD::SQLite and the need for extended testing periods, it has been my policy to allow smaller fixes to accumulate without doing a release and to release DBD::SQLite in line with SQLite releases that recommend upgrading.

The recent 3.7.8 release of SQLite does not come with an upgrade recommendation for our current SQLite version, but does suggest upgrading as optional. This release contains some significant index performance improvements (described as "orders of magnitude faster") for large CREATE INDEX commands, and DISTINCT, ORDER BY and GROUP BY
statements are now faster in all cases.

The 3.7.8 release also contains some changes to make SQLite play nicer with Windows anti-virus programs.

perlanalyst approaching ...

Last week I went to my first Perl workshop: 13. Deutscher Perl-Workshop. It has been a great experience – great talks and even greater people.

On the train to and from Frankfurt and at the workshop itself I hacked a bit on my pet project: the Perl Analyst. The goal is to build a PPI-based tool that parses your Perl documents, it may then answer your questions about your sources. The tool and the modules it consists of may also lead to refactoring tools.

There is a running prototype on github which may reach CPAN soon. Currently you may use it to search for declaration of subroutines and lexical variables as well as the use of strings. You may search for them by exact matches or regular expressions.

Extracting your archives

I'm on a bit of a roll about unpacking archives. Last week I wrote about peeking into archives and recently I was wondering about extracting archives.

The classic tool for extracting archives is Archive::Extract. This module was originally written for CPANPLUS and has been in the Perl core since 5.10.0. It tries a variety of methods for extracting archives, from pure-Perl modules such as Archive::Zip and Archive::Tar (portable but slow) to external tar and unzip commands (unportable but slightly faster).

Having played around with libarchive, a "C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats", I wondered if it would be interesting to use it instead.

Behold my newly-written module Archive::Extract::Libarchive. This uses libarchive to extract archives, extracts most archive formats and is quite fast. It requires libarchive to be installed.

How fast? Well, it depends on what you are extracting. If you happen to be extracting all the current CPAN distributions (for a total of 7.1G), then Archive::Extract (with PREFER_BIN) takes about 20 minutes while Archive::Extract::Libarchive takes about two minutes.

Yet another tool for your archive extracting toolbox...

I’m pleased to announce that Grant Street Group has...



I’m pleased to announce that Grant Street Group has decided to sponsor YAPC::NA 2012. Here’s how they describe themselves:

Grant Street Group is a Software as a Service pioneer. In 1997, our company hosted the world’s first online bond auction for the City of Pittsburgh, Pennsylvania. Since this first auction, over 3,100 clients have used our software to process financial transactions exceeding $11 trillion. 

Today, Grant Street Group is a growing company providing Software as a Service in fields such as electronic payments, auctions, and tax collection.  Our customers include banks, financial companies, and state and local governments.

Are you a Perl expert? Do you prefer programming at home instead of getting interrupted at the office?

Do you want to tackle challenging software engineering problems in a well established and fast growing company?

Do you want to work with talented and smart developers?  Build elegant and scalable solutions for large applications?  Meet the challenges of deadlines while still delighting customers? Then you’d enjoy working at Grant Street Group and we’d like to hear from you.

[From the YAPC::NA Blog.]

Introducing PrePAN - Social Reviewing Site for Perl Modules

I'll introduce PrePAN to you here. PrePAN is a website for all Perl Mongers, especially for those who have intention to upload their Perl modules to CPAN. PrePAN aims to be a good place for them to make discussion about Perl modules pre-uploaded to CPAN (`PrePAN' is named after that).

I introduced the website at YAPC::Asia 2011. Some Perl mongers have submitted their modules already. Please give a look at them at PrePAN.

What's you can at PrePAN?

  • You can submit your Perl modules and call for review.
  • ...if it's just a proposal/idea before implementation.
  • Make discussion about them by comments.
  • If you want to invite co-developers, PrePAN may be a help of you.

Motivation

Solution to Your Problem

You may wirte a useful module for your job or your own purpose. You may think it might be worthy for others. However, you may worry about something like below:

One More Record? from YAPC::Asia Tokyo 2011

YAPC::Asia Tokyo 2011 was record breaking, but I think we just broke one more record: namely, number of blog posts

We collected at least over 150 blog posts (~157) from our attendees about YAPC::Asia Tokyo 2011. We had 672 attendees total, so that means about 23% of our attendees wrote something in their blog. I'm pretty sure this will pay off in the future, as it will be much much easier for us to tell our would-be sponsors and attendees what YAPC is like

BTW, this year punytan created a simple form for people to submit the url, and a lot of people including myself just kept collecting them blog entries. punitan++.

If you're an organizer, make sure to tell your attendees that their YAPC ain't over until you blog about it!

Marpa::XS is now beta

I am very happy to announce that Marpa::XS is now beta. Marpa::XS will kept stable. Changes to its interface will be especially avoided.

What is Marpa?

Marpa is an advance over recursive descent and yacc. I hope the Marpa algorithm will become the standard parser for problems too big for regular expressions.

iTransact::Lite

I've just released a new module called iTransact::Lite. It's just a simple wrapper around the iTransact XML Connect payment gateway web service.

It does all the hard work of signing, serializing, and submitting your requests to their web service. However, I call it "Lite" because it doesn't do any document formatting or response handling. Therefore it still requires knowledge of the web service documents. Luckily, those are well documented on iTransact's web site.

If you're looking for a new payment provider, you could do worse than iTransact, and with this module, you have fairly easy access to the service. This module is in use in The Game Crafter and our forthcoming Mob Rater service.

Introducing Text::sprintfn

Hitting CPAN mirrors as we speak (metacpan link).

Just my approach of doing string formatting that supports named parameter. Instead of creating a new formatter (with a new/different syntax), I just extend sprintf a bit:

sprintfn "%d %(num)d %d", {num=>1}, 2, 3; # prints 2 1 3

Named parameter can also be used in the width and precision field:

sprintfn "%(num)(width).(prec)f", {num=>1, width=>1, prec=>4}; # prints 1.0000

Compared to other modules, this one supports all Perl's sprintf() formats (since it's just sprintf under the hood) and allows mixing of named and positional parameters.

The current implementation is a bit naive, but it'll do for now.

What do we, Perl programmers, want?

Just thinking aloud about a list of things people using Perl want.

Here is what I want:

  • Get my job done.
  • Be appreciated.
  • Improve my skills while at work.
  • Enjoy my work, make something cool.
  • Get reasonable salary/income.

What do you want?


Written by Gabor Szabo .

CPAN modules for parsing User-Agent strings

This review is now hosted elsewhere.

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.