WWW::betfair - a Perl API for the World's largest betting exchange

Recently I released version 1.00 of WWW::betfair. It provides an OO Perl Programming interface to the betfair API.

betfair is a sports betting services provider best known for hosting the largest sports betting exchange in the world. The sports betting exchange works like a marketplace: betfair provides an anonymous platform for individuals to offer and take bets on sports events at a certain price and size; it is the ebay of betting. Unfortunately betfair is not available in all countries including the US. I hope that will change in the future.

Check out the module's documentation for more information about betfair and the available API methods

Another reason I love Perl ;-)

You don't see news like this about camels:

http://www.timescolonist.com/four-foot-ball-python-on-the-loose-in-north-vancouver-b-c-1.572484

Missing YAPC::Europe

I was really looking forward to YAPC::Europe next week in Kiev. The talks looked great and I was looking forward to seeing the Perl community. However, for work reasons I won't make it. This sucks.

What conferences should I go to instead?

A Simple (Minded?) Windows sudo Substitute for Cygwin in Perl

With a little Win32::FileOp magic, it is easy to whip up a simple (minded?) Windows sudo(1) substitute for Cygwin:

#!/usr/bin/env perl

# ------ pragmas
use strict;
use warnings;
use Win32::FileOp;

Win32::FileOp::ShellExecute( runas => "cmd.exe", "/k " . join(' ', @ARGV) );

Apart from how you start it, a similar approach should work for Strawberry Perl once Win32::FileOp is installed.

Do your piece to fix TIOBE or stop talking about it

Many people talk about TIOBE and how it's bad, or irrelevant, or broken, or many other vague descriptors of why it should be ignored.

All people talking about TIOBE miss one crucial point: It is software, it has an algorithm, and it is not "bad", it is buggy. That means it can be fixed.

So either fix it, or stop talking about it.

Here's why you can fix it

The TIOBE algorithm is to search for "[language] programming" on a number of search engines, then apply a weight to the resulting count, based on the search engine, and sum the results up to get a score.

Perl 5 Porters Weekly: July 29-August 4, 2013

Welcome to Perl 5 Porters Weekly, a summary of the email traffic of the perl5-porters email list.

Topics this week include:

  • perl 5.18.1-RC2 is now available
  • Perl 5.18 and Regexp::Grammars
  • Empty regular expression does not match in some cases
  • Using braces on 'if'
  • refactoring of regex execution / calling

Interview with Dave Miller, the leader of the Bugzilla project

The weekly Perl Maven Show continues. This time an interview with Dave Miller, the leader of the Bugzilla project.

Avialable as a YouTube video or as an mp3 file.

Actually, there is even an RSS feed suitable for podcatchers. In case you'd like to listen to the earlier episodes while driving to work, check it out on the Perl Maven TV page.

shortcomings of perl

Today TIOBE roll out his Programming Community Index for August 2013. Since it added many new searching engines perl slide rapidly down from 9 to 11 compared to last year.

I’m not surprised seeing this happened. it’s 2013, not 2003. except regex, I can’t see perl has any unique feature can dominate any common programming field. (yes, we have CPAN, but you can’t ask a newbie can adeptly choose parts in it to assemble in a canon. ;) ) With more knowing perl, I can more an more understand perl’s shortcomings.

Announce CloseBargains.com

It has been said that we need more Perl startups. I agree and have written CloseBargains.com - what better way to get a heapin helpin of local coupons than Perl, Mojolicious, Linux, and some 8coupons API goodness served up by hypnotoad. The frontend is done in jQuery Mobile; another buzzword that needs adding is that Backbone.js needs to be integrated for coolness factor.

Misconceptions & Misunderstandings

While there are many who really appreciate the work of CPAN Testers, and value the feedback it gives, but it would seem there are still several people who are less than complimentary. One recently posted about what they see as wrong with the project, while continually making incorrect and misguided references. What follows is my attempt to explain and clarify many often mistaken facts about CPAN Testers.

New Dancer 2 release: 0.07

(this is the email sent to the Dancer users mailing list, updating on recent releases)

Hey everyone,

I would like to get back into the habit of letting everyone know what's going on with Dancer. This means keeping you up to date on releases and our plans for the future.

On dependency version pinning

Two ways of using a module or perl API function:

First way:

1. Read documentation. Check changelog, check open bugs. Use only "good" modules.
3. Decide which API of module/perl function to use and how.
3. Write code, write tests. Write assertions in production code. Write proper error handling.
4. Test on several perl versions and several module versions.
5. If tests fail somewhere, investigate, change minimum version requirements or workaround problem.
6. Write down strict minimum dependencies in makefile etc.

Second way:

1. Briefly read documentation.
2. Write code
3. Test manually.
4. pin module version
5. always use one version of perl, use perlbrew, never upgrade.


So I think Second Way just introduces a technical debt. You save time during development, but the end
you have no idea how your code works and where.


I see lot's of advices to use perlbrew instead of system perl, because system perl can be broken (it can, indeed), articles about Gemfile-lock-like systems.

I've been patching Config::Tiny

Hi All

As per Neil's list (not, presumably, connected with Craig's list), I'm adopting Config::Tiny, unless someone else insists.

I've patched it re the RT tickets, but if anyone has further suggestions, please feel free to comment....

The Key to Database Normalization

The Key to Database Normalization, in one phrase:
  "If you have more than one of them, it probably needs its own table."

(Inspired by Ovid's How to Fake a Database Design and Robin Smidsrød's comment thereupon at 2013-07-25T09:46:25+00:00.)

Mapping the MOP to Moose

I spent much of last week on vacation with the family so very little actual coding got done on the p5-mop, but instead I did a lot of thinking. My next major goal for the p5-mop is to port a module written in Moose, in particular, one that uses many different Moose features. The module I have chosen to port is Bread::Board and I chose it for two reasons; first, it was the first real module that I wrote using Moose and second, it makes heavy use of a lot of Moose's features. I actually expect this port to be much more involved and require more actual design changes then the other ports have, simply because not all the Moose features used will be easily translated into MOP idioms. So in preparation for this I have been doing a lot of thinking about mapping the MOP to Moose and even started writing some documentation for it.

A Marpa-powered C parser

Jean-Damien Durand has just released MarpaX::Languages::C::AST, which parses C language into an abstract syntax tree (AST). MarpaX::Languages::C::AST has been tested against Perl's C source code, as well as Marpa's own C source.

[ This is cross-posted from its home on the Ocean of Awareness blog. ]

UAV::Pilot v0.5 Released, Now Supports Real Time Video

UAV::Pilot, a Perl library for controlling the Parrot AR.Drone, has released version 0.5.

This was the big one. With the ffmpeg library installed, you can decode the h.264 video stream coming right off the drone, in real time. This is where UAV::Pilot starts to get really interesting, opening up applications like augmented reality games and object recognition.

Demo video

I'm going to be taking a short break from working on UAV::Pilot for a while. After lazing about, I'll start work on the next release, which will mostly be cleaning up the API and bugs.

Also, I'll be giving a presentation on UAV::Pilot in September for the Madison Perlmongers Group, which I plan on recording.

[via my blog]

CPAN candidates for adoption

Following on from a blog post here last year, I've come up with an improved measure for identifying CPAN distributions that are potential candidates for adoption. I've put a list of the top 1000 adoption candidates online, and you can read more about the scoring measure on my blog. What else could I factor into the score?

Update: I've had lots of good feedback, and am working on the next version, which will hopefully have not so many false positives.

I've added a Questhub quest stencil for adopting a module.

Pod Outline

I just found out I needed a tool to printout the outline of a POD file (its section structure) in order to study its conceptual structure, and notice if I need to change sections depths or just move them around.

I installed Pod::Outline but it seems it is something else.

So I put my hands on work, and wrote this: https://gist.github.com/ambs/6124610
I know it has many ways to fail, but will work on most normal cases, and is being already useful.

Hope it can be useful for some of you, too.

Mojolicious::Plugin::AutoRoute - Mojolicious Plugin to create routes automatically

I release Mojolicious::Plugin::AutoRoute. This is plugin which create route automatically. You can create web application with only writing template. It is understandable if you think This is plugin which embbed PHP featre to Mojolicious.

Mojolicious::Plugin::AutoRoute

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.