This is not tolerated

There had been several posts recently about disgusting sexist idiotic behavior on PerlMonks. Most people know my opinion on these issues very well, but I don't think that's good enough. I think we need to actually bring it up and discuss it. I want to thank all the people who wrote about it and specifically Joe McMahon who both spoke of it on blogs.perl.org and on Perlmonks here. No, this is not to be taken lightly. And no, I will not shut up about this. And yes, my post is probably gonna be long. I'm sorry, but I need to put it out there.

my $perl_blog;

I use perl, at home, at work, and I've been using it for over a decade. I recently switched job titles and had to relearn The Web outside of the old CGI forms that I used to know back in the crusty old days of web 1.0.

Handrolled mysql connections and 50k lines of code aren't good practice anymore - not that they ever were, but it was at least accepted and common practice. I've started using MongoDB as well, and its collection of documents metaphor makes a lot of sense when you can pair JSON and perl data types so easily.

to say schwern++ is simply too simple

Yeah, another emotional bla and even lengthy - but might be insightful and its not tiring, promise.

Yesterday listened to Schwerns talk on youtube and it triggered some memories of things I wanted talk about over and over again but mostly kept quit. I mean my talk about Perl articles in Wikipedia some years ago that was largely motivated by the dysfunctional community there and how prevent this in Perl realm - but the actual talk was mainly about Perl, presenting Perl, writing wiki texts and how to get along inside Wikipedia.

To Be or Not To Be part of the community

I feel as a part of the community. I feel welcome in most forums, irc channels, conferences, perl monger meetings.
Sometimes I see or hear things that make me and others feel a bit uncomfortable.
This has been discussed also here and here.

Let me make one thing clear: I wouldn't use the term "offended" here. Offense is something more personal for me. Maybe it's just a linguistic thing. I can't be offended by such a comic, and I won't be shocked and start to cry or anything. Feeling uncomfortable is the best I can describe it as a non native english speaker.

Domain-Specific Languages made simpler

[ This is cross-posted from the new home of the Ocean of Awareness blog. I have given in to the lure of static blogging. ]

Writing your own language

Creating your own language has been A Big Deal (tm). What if you could create a simple language in hours or minutes? There's been a serious obstacle up to now. No practical parser "just parsed" BNF. With Marpa, that restriction is lifted.

In this post, I will describe a small, sample Marpa domain-specific language (DSL). In designing it I am inspired by Mark Dominus's description of the "Worse is Better" philosophy, and its implementation in the form of Blosxom. This DSL is feature-poor, but short, simple and extensible.

A calculator

Creating a Perl web application on dotCloud

I've been working on a project for a client that is being hosted on dotCloud. And as part of the process I have spent a good deal of time familiarizing myself with this PaaS provider. My experiences thus far have been quite positive. I've found dotCloud to be highly receptive to working with Perl developers, and they seem to value building a relationship with the Perl community.

A few weeks ago I gave a presentation to Thousand Oaks Perl Mongers, and last night another presentation to Los Angeles Perl Mongers discussing using dotCloud with Perl. There were a few simple examples based on Mojolicious.

The Libre Office Impress slides along with a working example are on Github. Another working example, the Perl Regex Tester also has a public Github repo.

The presentation's slides (which were reviewed by dotCloud for accuracy) are viewable on slideshare.

How many ways can I use thee, module?

What are all the different ways that a dependency on a module can be introduced?

    use Foo::Bar;
    require Foo::Bar;
    use parent 'Foo::Bar';
    use base 'Foo::Bar';

And if you're using Moose:

    extends 'My::Parent'      => { -version => 0.01 },
            'My::OtherParent' => { -version => 0.03 };
    
    with 'My::Role'      => { -version => 0.32 },
         'My::Otherrole' => { -version => 0.23 };

Or the aliased module:

    use aliased 'Foo::Bar' => 'Foobar';
    $foobar = Foobar->new;

Or the namespace module:

Q: When not to use Regexp? A: HTML parsing

It always starts out as something simple and innocent and then the Internet ruins it.

So I am giving a data mining talk at Ohio LinuxFest 2012 and surprise, surprise there is going to be a nice helping of Perl. So I am on the internet doing research looking for some simple scrapers and collectors to mention in my talk. I always prefer to give multiple examples for any problem since programming does not have a one size fits all model. To make a long story short I found a bunch of different social media scapers. The problem I found with most of them was the same. Things like this Ruby example:

another Ruby example (the comment is from the original source):

The Python ones I found were a little more deceptive. Here is what I found on the surface:

So I see BeautifulSoup included and I am thinking that must be like HTML::Parser right? Wrong. Instead I find these:

What about HTMLParser? More of the same:

Marrying MetaCPAN to the search.cpan.org search engine

I generally like MetaCPAN better than search.cpan.org, but as fREW mentioned in Using search.cpan.org AND metacpan, the latter’s search result ranking algorithm is far superior to the former’s. So fREW’s idea was to use GreaseMonkey – or actually not GreaseMonkey – to rewrite the links in search.cpan.org search results so that he could use that site for searching, but go to MetaCPAN for everything else. In fact though, he used dotjs and took advantage of the built-in jQuery it ships with. Thus his script does not work with vanilla GreaseMonkey.

Here is a version that does. As a bonus, above and beyond fREW’s version, it also only rewrites the distribution and author links rather than just the module links.

YAPC::EU 2012 - an organizers' view - Day 0

We read on Twitter etc. that many attendees were on their way to
Frankfurt. Now we knew that YAPC::EU arrived ;-) Our crew met at the venue to prepare the event: check the rooms, build the paper seats, prepare registration desk, print a lot of stuff like the name badges, hang the signs and banners, prepare conference bags with proceedings and the eGENTIC flyers and much more.

After the preparations we headed to the pre-conference meeting at Café Extrablatt where we enjoyed the weather and cool drinks. We assume that there were about 200 Perl people at the meeting. Those pre-conf meetings are always a good chance to chat with old friends and conference newbies ;-)

New feature: front page pagination

Some of you may have noticed that the blogs.perl.org front page recently acquired a new “Page 2” link. This is a feature we’ve been wanting for quite some time, to help readers scan back through the thousands of entries our users have posted in the nearly three years we’ve been running.

As ever, we’d be delighted to hear about any problems you find with this (or any other aspect of the site), as well as your ideas for making the site better. Please get in touch with us, or raise an issue on GitHub.

Why I'm considering dropping Perlmonks

A couple days ago, a comic strip was posted to Perlmonks that really got up my nose. For those of you who don’t want to bother linking through, the strip compares Perl with Moose to Perl having a “boob job”, then wanders off into creepy territory because sexualization and creepiness are really, really funny, right?

This bothers me, as it’s not friendly to the women in our community – and I said so. You can read the response I’ve gotten so far. They’re all pretty much ignoring the fact that sexualizing a computer program (with the added implication of large breasts being equivalent to personal value) is exactly the kind of thing that makes women feel unwelcome by focusing on “well, ‘boob job’ is a perfectly fine term” and “I bet you do feel uncomfortable imagining you’re female!”. (By the way, no, I don’t. This is that funny thing called “empathy”.)

Perl courseware for the web using client-side perl

This is an idea I've discussed with Gabor (szabgab++) during the last conferences - we could use perlito as a tool to write educational pages about perl, that would embed executable code that can be modified by the reader.

There is a possible alternate implementation, use remote execution in the server. But I like the idea of running the code in the browser.

This perl in the browser would be a "full" perl implementation (not necessarily fast), with I/O redirected to local variables or even local storage. Modules would be loaded from a remote "lib" using HTTP requests.

Here is an older article that shows the basic idea. This is in portuguese, it was written for Sao_Paulo.pm using perlito6.

2 weeks of perl

It all started with the Cluj.pm summer meeting on the 9th of August. I happened to be around there, so popped in. Cluj.pm is a refreshingly young perl monger group (I might even have been older than the average age there, that's a first for me). At first I didn't know anyone, other than the guest speaker Mark Keating, but after my presentation I had lots of people approaching me and I had a brilliant evening.

A short week later I flew to Germany, for the Perl Reunification Summit in Perl. Like Schwern I arrived a day earlier than most, so I had a calm start of the meetup. It was mostly a gathering of familiar to me faces, though a significant number I hadn't really spoken to before, specially the Perl 6 guys, -Ofun attracts awesome people. I spent most of the PRS talking to people, and doing a little coding (both related and unrelated). It was a very enlightening meetup.

YAPC::EU::2012, the good parts

I think some people did not interpret my last post correctly, I think I hated YAPC::EU::2012 (or at least, that is what I understand from Gabor comment on his Perl Weekly). Well, no, the post points three things I did not like, meaning that everything else was fun.

But I would like to point some details. First, congratulations to the organizers for the courage to prepare proceedings. Of course I was angry because the article I took some time to write was not there. Also, because although I mailed the organizers, they did not answer or said anything. Nevertheless, I like the idea of having proceedings for YAPC::EU. Not like the mojolicious article with screenshots of the slides, but like mostly all the others articles. And the proceedings are with great quality, both in printing, paper and design. I hope they make the final PDF available as well (paper is hard to find after some months).

Input Plugins for the Kindle Reader

Perlybook.org serves you all the docs available on CPAN as a handy ebook. For the Kindle Reader it achieves this with the help of the module EBook::MOBI.

This module now got an update (v0.5). Before it was just useful for translating POD into an ebook (which is awesome). But now its even better... you can write plugins for any input format.

So is there anybody interested in the ability for converting e.g. Markdown directly into an ebook? If you feel like such a feature would be cool, you are very welcome to contribute a plugin (for what ever format you like).

For now there is just a plugin for POD. More would be great.

Please see the modules documentation for more information or directly join the project at github. Feel free to contact the modules author (me) if you have questions.

thx

Playing with Perl5 syntax

At some point in YAPC::Europe I was showing the perlito5 compiler to stevan++, and we discussed how it could be used to prototype grammar extensions to Perl5.

Perlito grammar is mostly written in simple perl, without extensions (in some places there are still remains of the original perl6 grammar, but these are being cleaned up.)

I've shown stevan++ how named arguments were implemented in perlito6, and how to port the feature to perlito5. We also discussed how to run perlito5 over perl5 using a source filter, in the same way that "v6.pm" works.

Later, leont++ on #p6p5 was investigating how to add macros to perl5, and we discussed briefly how macros could be added to perlito5. The compiler already uses macros internally, so it should be a matter of exposing this as a language feature.

Tapper release "Columbo"

From now on we try to regularly post release announcements of our Tapper test infrastructure here.

For now let's start with the latest release. It actually happened in May 2012 but we had some polishing cycles to get the CPANTESTERS matrix green. Thanks to the CPAN testers people for helping us there. The rest was quite the usual amount of work thet made me forget the announcement.

Here we go:


  • She's mad at everybody. She's even mad at the ice cream man. "Why does the ice cream truck have to come just before lunch or just before dinner, spoil the children's appetite?" I have to listen to that. I hear that 3 time a week, you know that's 12 times a month.

    Columbo, "The Most Crucial Game" (1972)

Tapper release 4.0 codename "Columbo" 2012-05

Automation

YAPC::Europe 2012

I'm now back in Paris after a week in Germany. I was attending YAPC::Europe 2012 and the only negative thing I can say is that it was hot. Sitting in stuffy rooms on a hot day with no air conditioning is not fun, but obviously this is not something the organizers had any control over.

Corion did a fantastic job of organizing the conference and when the main hotel wasn't available for me, he found a hotel close to a zoo so that my wife and daughter could have something to do. I wish I could have joined them, but skipping conference days wouldn't have been very respectful given the work the conference did to have me there.

Perl Reunification Summit

As some of you may know, my partner Wendy van Dijk and me organized a Perl Reunification Summit on the Friday and Saturday before the YAPC::Europe. Organizing this started in May already, when I tried to contact as many people face to face to discuss this, before finalizing the plan. When the plans more or less got final, I basically sent this email to the people I had not been able to contact personally yet. Since it explains a lot of my reasoning for having the Perl Reunification Summit, I thought I’d share this mail with you.


As of April this year, I’m on indefinite sabbatical. So I have time to worry about other things than $work. And I worry about the future of Perl.

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.