Polish Those Slides: We Need 'Em

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.]

Padre, the upcoming 0.92 release...

It's been quite a while since Padre 0.90, the current development version 0.91 has been bubbling along quite nicely, with some amazing changes introduced through the hard work and effort of Ahmad Zawawi in porting Wx::Scintilla giving us an shiney Scintilla widget for the Padre text editor.

It wasn't enough to just get the module sorted out, but Ahmad went on to really improve the functionality of the editor itself. Check out just some of the goodness to come.

Adam Kennedy has again been deep into the core of Padre and its API's. It takes a lot to commit yourself to knowingly go into a code base break it and then commit to making all things work again.

Kevin Dawson has stuck around and continues to prod and poke at the code base, improving the dialogs using the new FBP process to create better dialogs ( another of Adam Kennedy's major efforts out side of Padre ).

Kevin has also introduced patch editing. In Kevins words:

Ruby like code blocks in Perl

While thinking about how to best define migrations/tables in my experimental module Forward::ORM, I realized that I might need Ruby like code blocks to keep certain things in scope:

In my first version, I used default Perl:

sub up {
    my $self = shift;

    $self->create_table('authors', sub {my $t = shift;
        $t->add_column('id', 'integer', primary_key => 1);
        $t->add_column('name', 'varchar', length => 40);
    });
}

I then noticed that Method::Signatures::Simple also works with anonymous functions and methods, so my code now looks like this:

Debugging ORA-12157

Does anyone reading this have experience with debugging ORA-12157 TNS Internal network communication error?

Googling for it isn't really helpful. I get a bunch of pages that say the same thing as the Oracle docs (turn on tracing and reproduce the issue).

The problem is that we don't see it consistently enough to even know to reproduce it properly much less create a minimal test case.

Update:
I looked in the alert.log and found a few "ORA-609 : opiodr aborting process unknown ospid" errors each with a corresponding trace file that ends with "opiino: Attach failed due to ORA-12537".

Dorm Housing Now Accepting Reservations

The University has opened the reservation process for dorms for YAPC::NA 2012. You can simply visit the reservation web site to make your reservation. You can stay from Monday, June 11th though Saturday, June 16th (leaving Sunday) or anywhere in-between. A single occupancy room is $62.95 per night, and a double occupancy room is $42.10 per person per night. You must register before Monday, May 14th, as reservations will be closed on that date.

If you don’t wish to use the web-based reservation, you can download a PDF reservation form.

There’s also a complete list of amenities that you’ll be receiving with your accommodations.

[From the YAPC::NA Blog.]

New "dot" feature

I wrote the following email to the Perl 5 Porters mailing list a few days ago. I thought you might enjoy it.

Hello Porters,

I had a dream that Perl 5 had moved from using -> to using . like most modern languages. And moved the existing . for concatenation to ~ like Perl 6. Then I wrote the code and was shocked how tiny it was.

I have this in the leonbrocard/dot branch, but is is really one commit:

http://perl5.git.perl.org/perl.git/commit/0c1fbeee

It's a very small tokenizer patch which interacts with a new "dot" feature. Then you can do things like:

Things I learned at Twin City Perl Workshop 2011

My Twin City Perl Workshop 2011 review, featuring lots of photos!

Marpa v. Perl regexes: some numbers

In this post, I pit Marpa against the Perl regex engine. The example I will use is unanchored searching for balanced parentheses. I have claimed that many problems now tackled with regexes are better solved with a more powerful parser, like Marpa. I believe the numbers in this post back up that claim.

To be very clear, I am NOT claiming that Marpa should or can replace regexes in general. For each character, all an RE (regular expression) engine needs to do is to compute a transition from one "state" to another state based on that character -- essentially a simple lookup. It's the sort of thing a modern C compiler should optimize into a series of machine instructions that you can count on the fingers of one hand.

Marpa is much more powerful than an regular expression engine, and to deliver this power Marpa makes a list of all the possibilities for each token

Building a DevOps process using Meister and Perl

Tracy Ragan will give a talk at YAPC::NA 2012 described as:

Defining a build to deploy process that can easily be passed between development operations can be a challenge with the “one off” script.  The scripts designed for the developers purpose do not meet the production control needs.  Developers are looking for speed and agility, while production looks for audit and control.  

This talk reviews how OpenMake Software leverages Perl to create a Smart Scripter language that can auto-generate build, test and deploy scripts for multiple environments across the life cycle. You will learn how Perl has been used to create a adaptable build, test and deploy process without relying on one off script driven process, moving instead to a dynamic and adaptable model driven process based on the Perl language.

[From the YAPC::NA Blog.]

(Stop) Breaking URLs

I'm doing some work with ElasticSearch and while I find Clinton Gormley's Perl interface to ElasticSearch to be excellent, the ElasticSearch docs have left me a bit confused at times. It's based on Lucene, so while trying to find examples of analyzers for non-English langauges, I found a quick introduction to Lucene.

That introduction said I could find a list of analyzers for other languages in the Lucene sandbox.

Except that's a 404.

So in hunting around some more, I find this email which explains that the sandbox has been merged with the rest of the codebase and is now at this subversion repository.

That repository has a single file named trunk_development_moved.txt and clicking on that gives me:

PerPAN Submitted to Mashup Awards 7

I just submitted PrePAN to Masup Awards 7. As they're claiming, MA7 is the Japan's No.1 web hack contest. I don't know whether it makes sense that I apply to the award, but it could be some help to announce to Japanese.

I'm glad if you'd give some look at the page.

Exclusive Perl Archive Nook

I started working on epan, a (somewhat thin) wrapper around cpanminus to create a version of CPAN trimmed down to your needs for installing specific stuff.

This is what the cool guys probably call DPAN these days, but I found that the whole concept of DarkPAN revolves much around getting your private stuff into the "normal" Perl toolchain, while in this case I need to be able to easily install modules in machines that are out of Internet reach.

To start with an example, suppose you have to install Dancer and a couple of its plugins in a machine that - for good reasons - is not connected to the Internet. It's easy to get the distribution files for Dancer and the plugins... but what about the dependencies? It can easily become a nightmare, forcing you to go back and forth with new modules as soon as you discover the need to install them.

Thanks to cpanminus, this is quite easier these days: it can actually do what's needed with a single command:

Nobody Is A Good Speaker When they Start

From guest poster brian d foy:

I speak at many Perl events, from casual Perl mongers meetings to the big conferences. I’ve even been in front of a big room at Comdex and WWDC. That’s over a long career of speaking that built up to those big events. As conference season approaches, you have a chance to stand in front of a bunch of people and say whatever you like. You’re probably nervous about that, maybe even terrified. I want to you to tame that terror. It’s not going to disappear, but you can learn to control it.

You might think that you’re not a good speaker. Well, you aren’t now, but Muhammad Ali, a great boxer and a better speaker, wasn’t the world champion boxer league he started either. Darth Vader was a lowly slave boy before he almost ruled the galaxy. Shakespeare was a short order cook in high school. Chuck Norris was probably always Chuck Norris, though.

Perl regex escapes by version

Tom Christiansen compiled a table of escape sequences by the version of Perl that introduced them. This is the sort of Perl documentation that I like. It's too bad he doesn't blog, but I don't think he'll mind me reposting this part of his private email. :)

We've come up with all sorts of good ideas for Programming Perl since we turned the book in two weeks ago.

(Download as gist 1342877)

This list is sorted by escape, but you know Perl so you can re-sort it by version yourself:

Public classes in Australia

For reasons I don't fully understand, I don't get the chance to give classes very often in my own country. And even less often do I get to give public classes. I'd certainly like to do so more frequently, but the opportunities just don't seem to arise.

So it's an unusual pleasure to be offering two classes in both Melbourne and Brisbane in the next month or so. As part of the YOW! 2011 conference, I'm running my "Perl Best Practices" class (on Nov 29 in Melbourne and Dec 7 in Brisbane) and my "Presentation Aikido" class (on Nov 30 in Melbourne and Dec 8 in Brisbane). That second class is a particular rarity, as I've never before offered it as a public class in Australia.

So if your interested in improving either your mastery of Perl or your skills as a presenter, click on the links and sign up!

Damian

Technical debt: when metaphors go wrong

I'd like to find an alternative to the term "technical debt", but I doubt I could convince people to adopt it. Technical debt is so ingrained in the programmer's consciousness that we seem to confuse metaphors with synonyms. Metaphors are to synonyms as transvestites are to my wife (and that's an analogy I'm sure she's going to bring up over the dinner table).

Technical debt bears a resemblance to actual debt, but it's not the same thing. Like actual debt, it's accrued in the same currency (skilled labor over time) that must be used to pay it off. Like actual debt, it's often desirable if you need something now and can't wait for it.

We were discussing in email at work when Abigail put the nail in the coffin of the "technical debt is actual debt" debate. Specifically:

  • Sometimes it's OK to default on technical debt (code rewrite, proof of concept, business requirements change, and so on)
  • Monetary debt has a schedule on which you must pay it. Technical debt does not.

YAPC::NA Planning Meeting Tonight

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. As always the food and beer are sponsored by Plain Black, and the room is sponsored by Essen Haus.

We’ve got a lot to discuss so the meeting will probably last until around 9pm, but you’re free to come and go as you please.

[From the YAPC::NA Blog.]

Different things should look different is not a natural language principle.

TL;DR version
"Perl has many \@grammar."
Perl is inspired from english fucking grammar, *not* english fucking language.

You see what Ich did there ? I used the word "fucking" two times. In both instances, I placed it between two different words. The communicated result is free fucking emphasis.

The idea of adding *fucking* in between two words for emphasis is a very interesting principle.

my fucking lunch.
my fucking life.
bang fucking bang.

The fact that it can be placed between two arbitrary words is *important*.

In fact, the idea of using '*' around words is also similar to THE idea of emphasis.

In the first case, we used infix notation and in the second case we use the circumflex notation.

And that my dear world, is a grammatical principle. It is a structural principle. It is a generative principle. It's inorganic chemical experiments for alphabets to do interesting things.

Released HTML::ValidationRules 0.01

I'm glad that I can announce the release of HTML::ValidationRules.

Even if we validate user inputs on client-side according to client-side form validation spec. defined in HTML5, we still need do same thing on server-side. It results that there're redundant validation rules around.

I wanna make a proposal; How about regarding client-side form validation as some common format for describing validation rules both for client-side and server-side?

This distribution consists of 2 parts modules below:

  • HTML parser to extract validation rules from given HTML file/string.
  • Plugins for existing validation module (for FormValidator::(Simple|Lite) so far, because I usually use it).

Caveats: This module hasn't supporte all the attrs defined in HTML5 spec.

Anyway, some patches or proposals are welcome.

CPAN Testers Summary - October 2011 - Some Great Reward

October was a rather quiet month publicly, but behind the scenes there has been a number of fixes, improvements and discussions.

The most notable fix was getting the summary emails running again. It is still not perfect just yet, but I'm hoping that the ongoing fine-tuning will reduce the bouce-backs and faults that I'm currently seeing. The configurations are all from what was in the database at the end of August, so apologies if you've wanted to change these. The configurations are normally exposed via the Preferences website, but as the SSL certificate for the new server hadn't been approved it has a little longer than anticipated to get it up and running again. GoDaddy have now approved this and it's all ready to go, so I'm hoping this can all be sorted in the next few days.

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.