It’s the first Tuesday of the month, so that means it’s YAPC::NA Planning Meeting time. If you’re in the Madison area, or don’t mind a drive there is a YAPC planning meeting tonight at the Essen Haus at 7pm.
It’s just over a month to YAPC::NA so we’ve got a lot to discuss tonight. The meeting will probably last until around 9pm, but you’re free to come and go as you please.
[From the YAPC::NA Blog.]
I was hoping to announce a date last weekend but it's taken a bit longer.
The dates we're looking at are:
May 26-27
June 4-5
July 28-29
Which would be best?
Recently I have read an article finding out that the cost of technical debt can be computed, so yesterday I've written an article to show the conclusions from that article. Main conclusion, the cost of technical is on average of 3.61$ per line of code.
You can read the whole article regarding the study that concludes that here
Further digging through the internet, I found this open source plugin for sonar (which is also open source) that computes technical debt based on several assumptions.
The algorithm to compute the cost of technical debt can be found on the above url of that plugin.
They are basing their calculations with the following defaults (costs are expressed man hour):
- cost_to_fix_one_block 2
- cost_to fix_one_violation 0.1
- cost_to_comment_one_API 0.2
- cost_to_cover_one_of_complexity 0.2
- cost_to_split_a_method 0.5
- cost_to_split_a_class 8
- cost_to_cut_an_edge_between_two_files 4
All of the above facts can generate by themselves a huge amount of debate.
Sorry for writing this post in Portuguese, but if you are unable to read Portuguese it would be quite difficult to be part of this competition. Also, it was designed for the Portuguese Perl Community (for this year, at least).
A APPP está a organizar um concurso de programação Perl. Será um concurso virtual, em que os participantes são convidados a resolver pequenos problemas usando a linguagem Perl. Serão disponibilizados 6 problemas (um por dia, em vários dias de Maio) e serão recebidas soluções usando um sistema de avaliação automática.
O regulamento está disponível, e as inscrições terminam a 30 de Abril (inscrição gratuita e aberta a qualquer membro da comunidade Perl em Portugal). Existirão duas tabelas classificativas, para sócios APPP e não sócios, e prémios para os três vencedores (em cada uma das tabelas classificativas).
Contamos com a vossa participação.
We wanted to do something that, to our knowledge, has never been done before at YAPC, so I’m pleased to announce that YAPC::NA 2012 will be streamed live out to the internet for free! We will have professional videographers in all four of our main track rooms (not the workshop or hackathon rooms). Those feeds will be streamed live to the internet so that anyone who couldn’t make it to YAPC will be able to watch in real-time for free.
These feeds will also be recorded, however, we don’t know yet what to do with those recordings. We’ll probably upload them to YouTube or some other online video service, but we’re hoping to get some volunteers to help with that task, as we’d like to automate that process as much as possible. If you have experience with this, and want to help, please email admin at yapcna dot org.
[From the YAPC::NA Blog.]
The question of parsing
English and other natural languages
has come up
in the course of my work on
the Marpa parser.
As in the case of Perl,
I first posed the question of whether any
algorithm running on a Turing machine can parse
the target language.
This post contains
what I hope the reader will find to be
a rigorous demonstration
that the syntax of the English language is undecidable.
When I say “undecidable”,
I mean that term in the strict sense.
Undecidability is not vagueness or
uncertainty -- undecidability is the certainty
that a “decision” of the matter
is not possible.
I will give a specific example of
an English-language sentence which is unsyntactic if and
only if it is syntactic.
The Demonstration
I don't remember whether I blogged about Dancer::Logger::Log4perl or not, but a recent post by Ovid in Dancer's mailing list made me think that it would fit his use case. Unfortunately it seems that some of my messages did not make it into the mailing list (I didn't find them in the archived thread, anyway), so I'm blogging it here for a wider audience to bother.
If I understood Ovid's needs correctly, he needs an additional logging level in Dancer that allows to pass messages whatever the log level. Apart from the semantic level considerations here, the use case seemed to fit perfectly with using Log::Log4perl because it has a wide range of logging levels and the possibility to separate different logs in different parts.
A possible proof-of-concept is the following example:
When I was just starting out in my career a very wise person told me:
”The day you find a job you love, is the last day you’ll ever have to work.”
For me, that day was the day I discovered public speaking.
And for the past decade I’ve made my living doing almost nothing apart
from standing in front of an audience and telling them stuff.
Of course, I still code every day…just not for pay. I’ve also done
quite a bit of design over the past ten years, but again not for any direct
remuneration. It’s teaching and presenting and keynoting that pays
the bills and, conveniently, it’s those three activities that I enjoy
above all.
Tom Christiansen will give a free workshop at YAPC::NA 2012 described as:
In a world where Unicode is increasingly essential for text processing, Perl offers the best and least painful support of any major language, smoothly integrating Unicode everywhere—including in Perl’s most popular feature: regular expressions.
Simple patterns like [a-z] or \d no longer cut the mustard, partly because Unicode is such a large character set, and partly because of multiple ways of writing characters with diacritics. There are many land mines in regular expressions now that Unicode has to be taken into account.
This session details how to use Perl regular expressions on Unicode text. Augumented versions of familiar idioms now do a lot more than they used, and brand new ones have been added. Beyond these shortcuts, thousands of Unicode properties are available to let you say exactly what you mean. Learn how to tailor your own properties and character sequences, how to portably handle word and line boundaries, how to match several different kinds of grapheme clusters, and how to define your own character properties.
[From the YAPC::NA Blog.]
Forward::Routes provides routes for framework developers.
The following feature refers to the Github version and is experimental:
https://github.com/forwardever/Forward-Routes
Commit
Forward::Routes supports the nesting of routes, which can result in better performance and maintainability.
However, as your project grows, route stuctures can quickly become confusing.
The following routes:
The problem: Counting t4 configurations
The solution:
$ time perl t4.pl
total: 4783154184978
real 0m0.185s
user 0m0.176s
sys 0m0.004s
The code:
Well, I've got a lot of stuff I'd like to blog about in the various blogs of
mine, and so I'm starting with this report on the
Israeli Perl Workshop of 2012,
which had taken place in 28 February, 2012. Moreover, April Fools' Day is
approaching, and I had an idea for a Perl-related April Fools' gag, but after
telling it to RJBS (the current Perl pumpking), he and I agreed that it would
hit too many nerves. (PerlJam on IRC said he liked it, though). Maybe I'll
publish it on 2 April with a big disclaimer on top, just for kicks.
Anyway, here is the report. I had originally posted it to the Perl in Israel
mailing list for review, but did not get any reviews, so it may not be too
letter-perfect, but I guess that's life.
Randal Schwartz will give a free workshop at YAPC::NA 2012 described as:
Randal Schwartz, the uber perl monger/author and host of the FLOSS Weekly podcast, will be presenting an in depth introduction to the open source distributed version control system of the decade, Git.
Designed with an emphasis on speed by Linus Torvalds in 2005, git can be used to manage simple repositories of scripts and is used in the larger open source projects such as the Linux Kernel, Perl, and Gnome. Git’s ease of cloning complete repositories and ability to post enhnancements has led to a new generation source code hosting sites such as github and gitorious that help drive open source software innovation.
In this presentation Randal will provide a quick overview of the history, then delve into a detailed review of the features and how git can be used to manage code for various sized projects.
[From the YAPC::NA Blog.]
After practicing a proto-talk--and getting very good feedback--at the Houston Perl mongers meeting last week, I wanted to pass on some of the points that came up over beers on the patio of Velvet Melvin Pub. Discuss, or not.
Moving out from our beloved Tokyo Institute Of Technology, YAPC::Asia Tokyo 2012 is going to be held at a new location: Ito International Research Center, in University Of Tokyo.
This is a brand new facility that opens come April 1st 2012, and us Perl hackers are going to take over the place September 27, 28, 29.
This year we're inviting Tim Bunce, Adam Kennedy, and Larry Wall to the festivities. And as always, I'm sure we're going to have many many interesting talks from hackers from the far east.
If you have any questions, please let us know! If you've never been to YAPC::Asia Tokyo before, take a look at our photos and videos. You won't regret coming to visit us!
I subscribe to both blogs.perl.org and ironman.enlightenedperl.org, so whenever "JT Smith" posts something, I receive 2-3 copies, when I would rather receive 0. Today, I finally took a few minutes to fix this with one of the few useful things Yahoo has ever created: Pipes. Enjoy Perl news with less spam (RSS).
Brock Wilcox will give a talk at YAPC::NA 2012 described as:
Let’s create a sound synthesizer in about 20 minutes!
Along the way, we’ll learn a little something about digital sound, function composition, and stateful functions (generators) using lexical closures.
Oh. And we’ll make some deliciously horrible noise to amaze/annoy your friends!
[From the YAPC::NA Blog.]
I always have more ideas than time to work on them.
- Something in Mojolicious to act as a credential wallet, like LWP's
credentials. I got about half way to implementing it while learning the code base at the same time. I know I could do that on my own, but I'd like Mojo to handle it. I think it's just got to do the same things that the Cookies module does its work.
- An updated version of twiddle-regex program. John Klassa wrote this years ago. It's a Tk app that I've found it again and created the twiddle-regex github project for it.
- I thought briefly about a WWW::Mechanize based on Mojolicious, but I don't really care what the implementation is as long as it does what I want.
- There's a Parse::Yapp grammar for JavaScript on Perlmonks, but I'd like a module for that with a way to walk the structure. I could have used it in a Stackoverflow question that wanted to extract data from the script portion of a webpage.
- BBEdit allows for all sorts of "clipping" files that act as templates. I have the Perl Glossary set, but now I'm thinking I want a set of templates for particular tasks instead of a general script. The one I want right away? A script that's mostly configuring Mojo::UserAgent.
I just uploaded the latest batch of zeromq (libzmq) bindings for Perl. They will eventually replace the current binding, ZeroMQ.pm. It's a big refactor, but it's one that will allow me to provide a far more stable bindings.
Note: they are still all dev releases, so will not show up by default in your CPAN client.
If you have comments, please speak up now!
WTF is 0MQ/ZMQ/ZeroMQ ?
Read it here. It's a fairly complicated library, one that allows for a fairly complex networking framework with ease. One thing that people often get confused is that it's not a "message queue" a.la RabbitMQ/ActiveMQ/Q4M. It's a "message oriented" networking framework.
Mongrel2 is a good real-life use case. While I haven't actually seen the code, I hear that dotCloud also builds their auto-deploy infrastructure around ZMQ.
Rationale For Making All This Change
Feeling about Perl what I feel almost makes me scream at other developers things like "why the f*ck are you using X language and not Perl?".
I 'think' this kind of approach would not be very productive in terms of giving my peers the opportunity to feel the same kind of enthusiasm I feel.
I want to ask you what should an efficient Perl Teasing Presentation include?
I have expressed my opinions in this blog post.
My post was inspired by Gabor Szabo's challenge to give a 4 hour Perl Presentation
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-407609-11']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();