Reducing spam comments to your blogs.perl.org blog

Since I’ve never used MT before I signed up to blogs.perl.org, it’s only recently that I found that MT does have some spam settings, which unfortunately are not turned on or default to the most conservative value. Along with other settings, you can reduce the number of spam comments being posted/notified to you.

  1. You can increase spam detection aggressiveness (Preferences → Spam). By default this is set to 0 which allows many spams to pass through. I set this now to 5 which seems to be okay (so far only 2 spams after a couple of days).

  2. You can disallow anonymous comments (Preferences → Comments → Setup Registration) or at least require email verification. By default anonymous comments are turned on and email verification is not required.

  3. You can use CAPTCHA! (Preferences → Comments). By default this is off, and unfortunately when I tried to turn it on (either using MT’s own CAPTCHA or reCaptcha), no image is displayed and yet all comments got rejected with the message “Text entered is not correct”. I guess this is currently a bug.

Migrating an Enterprise across 14 Perl Releases

Steffen Mueller will give a talk at YAPC::NA 2012 described as:

Booking.com is the world’s leading online travel agent for hotel reservations. It is a wildly successful enterprise that was built with Perl at its heart. The company’s IT team runs millions of lines of Perl code on thousands of servers.

In this presentation, we will outline how we migrate(d) one of the world’s biggest users of Perl across 14 stable releases of Perl from 5.8.5 to 5.14.2, why we did that, what bit us, and what we learned from it.

[From the YAPC::NA Blog.]

GitHub-friendly README files with ExtUtils::MakeMaker and Module::Build

GitHub is a great place to host open-source projects and expose them to a wide community of developers, so it's not surprising that more and more Perl modules are making it their home.

One of the features of GitHub is that it checks if a repository has a README file in its root directory, and displays it on the home page of the repository. This makes the README file a good place to introduce your project to the public.

GitHub also understands a number of markup languages, such as Markdown and Textile, and if the README file is in one of these formats, it will be transformed into nicely formatted HTML. One of the supported formats is POD, which means that the standard documentation of a Perl module can be used as its README file and serve as the repository's home page (much like on CPAN).

How to Parse HTML

This is the first of a series of posts that will detail a Marpa-based "Ruby Slippers" approach to parsing liberal and defective HTML. As an example, let's look at a few lines taken more or less at random from the middle of the perl.org landing page. That page is exactly 400 lines long. Here is line 200 and some lines lines to either side of it.


</td>
<td>
<div class="module">
<a href="http://www.perlfoundation.org/">
<img alt=""
    src="http://mc-cdn.pimg.net/images/icons/onion.vee5cb98.png"
    width="45" height="45" />
</a>

<h4>
<a href="http://www.perlfoundation.org/">The Perl Foundation</a>
</h4>
<p>
The Perl Foundation is dedicated to the advancement
of the Perl programming language through open discussion,
collaboration, design, and code.

For readability, I've rearranged the whitespace, but otherwise the above is untouched. My more-or-less-random extract is part of a table, and captures the end tag of one cell and the beginning of another.

No YAPC::Cuba

A very tiny handful of you may know that I was trying to push YAPC::Cuba. Later I expanded the idea to be a more general open source conference in Cuba as that would likely be a better fit. Sadly, it appears that it's not to be (or at least, not to be through me). There was a fair amount of excitement at the idea from those I spoke with. Quite a few said they wanted to be involved and would contribute time and effort to it, but as is often the case with volunteers, time is at a premium and dedicating volunteer time to a long-shot opportunity is understandably low on their priority list.

And of those who I spoke with who said they wouldn't attend? They were invariably not US citizens. They expressed concern about repercussions from the US government for attending a conference they were legally allowed to attend.

Isn't that sad? People are afraid of the US and it kills the chance to have an interesting conference at a time when it seems perfect for Cuba and the world to be talking.

Thank You Sponsors!

We’d like to thank our sponsors for stepping up to support us. We really couldn’t do this without their support.

You too could sponsor YAPC.

[From the YAPC::NA Blog.]

Thanks to krimdomu and Rafael Kitover

Net::SSH2 (ssh client library based off libssh2) now has agent support, something that i've been wanting for a while and had just sat down to write. Very happy it had already been done! Thanks fellas!

DBD::SQLite 1.35 released

DBD::SQLite 1.35 has been released to the CPAN. If your mirror has not updated yet, you can install it via pip or cpanm from the following URL.

http://svn.ali.as/cpan/releases/DBD-SQLite-1.35.tar.gz

Normally the release schedule of DBD::SQLite is tied to that of SQLite update recommendations, as this module is used in an enormous number of places and having relatively large gaps between releases is considered an advantage for downstream distributions and corporate users in particular that have very large testing burdens for each release.

This is the first DBD::SQLite in a long time that was not done as the result of an update recommendation from the SQLite maintainers.

In addition to a number of Perl level bug fixes, this release gains the SQLite 3.7.8 and 3.7.9 updates, the former of which contains a new merge sort for indexing resulting in an order of magnitude performance improvement to indexing and performance improvements to any queries that do index lookups.

Looking for Ilja Tabachnik

I'm looking for Ilja Tabachnik.

I want to fix his only module on CPAN (POSIX::RT::MQ), but his public email address no longer exists. If I can not reach him I will ask the PAUSE admins for permission to take over this module.

Linode has blown my mind again by increasing their sponsorship...



Linode has blown my mind again by increasing their sponsorship of YAPC::NA 2012 to the Platinum level. I can’t say enough good about them, not only as a sponsor of YAPC, but also as a great hosting company. Thank you Linode!

Recently named by Inc. magazine as one of the top 500 fastest growing private companies in America, Linode delivers virtualized cloud services from six regions across the U.S., Europe, and Asia to some of the most innovative companies in the world, such as The Onion and Creative Commons. The company’s proven IaaS (Infrastructure as a Service) offering enables customers to deploy and manage Linux virtual servers in the Linode Cloud with the ability to scale deployments to meet business demands - paying only for what they use with no long-term commitments. For more information, visit http://www.linode.com/.

[From the YAPC::NA Blog.]

Whither perlsphere.net?

Hi Folks

Does anyone know why perlsphere.net is off the air? Is it just because I'm in Melbourne (Aust)? Is it temporary?

TIA.

Falling in love with Pod::Weaver

I've been working on Redis::Client for a while now. It's not ready for production use yet, and there's a lot of work yet to be done, but it's much better than anything else on CPAN right now for talking to Redis.

I hate boilerplate with a burning passion, and I will often go to extreme lengths to avoid typing it. (I typed it once already, dammit! Leave me alone!)

After having a great time learning to mess with Dist::Zilla, I decided to give another of Ricardo's projects, Pod::Weaver a try. Here's the cool stuff I was able to do after not a lot of work.

Marpa and the Ruby Slippers

In a previous post, I listed the four ideas that are essential to Marpa. This post delves into one of them: Ruby Slippers parsing. In Ruby Slippers parsing, the parser imagines ("wishes") that the language it is parsing is easier to parse than it actually is. The part of the application that handles input (the "lexer") manipulates the input to make the parser's "wishes" come true.

As an example, take liberal HTML. "Liberal HTML" is HTML as it is found "in the wild", with missing and spurious tags. I've written a Marpa-powered liberal HTML parser which uses the Ruby Slippers as its primary technique. The grammar behind Marpa::HTML assumes a fantasy world, one where no element ever occurs out of place, and where all HTML elements have both start and end tags.

I’m grateful that Liquid Web Inc. has become a sponsor of...



I’m grateful that Liquid Web Inc. has become a sponsor of YAPC::NA 2012. They’re a great hosting company with reasonable prices. They do a full range of both dedicated servers and VPS.

Liquid Web Inc. is a managed hosting company operating out of two regions in the Central and Western US. Having been named to INC 5000’s fastest growing companies five years running, we’re in the midst of a rapid ascent to a position of prominence and recognition amongst the Hosting field.

How Soon Is Now?

The YAPC Conference Surveys site has now been updated with the results of the Pittsburgh Perl Workshop and the German Perl Workshop.

The site has also been update to provide a tabbed display of the different types of event, to make it a little easier to find results. Over the next month or so I am looking to get more of the past data online, as well as the feedback that I normally send to just the organisers. I have lots of data waiting in the wings, and its only been my lack of free time that has prevented me from finishing off the sanity checks.

Reminder: Tel Aviv Perl Mongers Meeting this Wednesday, 30-November-2011

This is a reminder for the upcoming meeting.

(The Hebrew text will be followed by an English one).

Introductions May Be in Order

So I thought I’d kick off my inaugural Perl blog post by answering the question I’m sure you’re asking right about now: who am I, and why should you care?

Of course, the short answer is: “you shouldn’t.” I have another blog whose title sums up how I feel about blogs.  The short version is, they’re crystallizations of other people’s opinions, and, as we used to say in grade school, opinions are like assholes: everybody’s got one, they’re all different, and they all stink.

But notice how that didn’t keep me from starting a blog myself.  Also note that there are 83 posts on said blog.  So obviously I’m a big ol’ hypocrite.

29 ways to get started in open source today

Andy Lester will give a talk at YAPC::NA 2012 described as:

We all love open source software, but to many it seems you have to be a rock star programmer to contribute to your favorite projects. In reality, most projects are easy to join, if you know where to look.

In this presentation, I’ll deal with the common questions and problems of those looking to help out on projects:

  • “I wouldn’t know where to start!”
  • “What’s a good project to start on?”
  • “How good a programmer do I have to be?” 
  • “I’m just a nobody, they won’t be able to use me.”
  • “They probably have enough people already.”

You’ll learn about different ways people of all experience levels can pitch in. From coding and documentation to devops and project management to publicity and community, there’s a place for everyone in the open source ecosystem.

If you’ve never had the joy of improving the software you use every day, seeing your work published for the world to see and use, this is the session for you.

[From the YAPC::NA Blog.]

Sorting with DBD::SQLite and Mac OS X

At least in my Mac OS X (Leopard) the perllocale and the perl collations that DBD::SQLite make available do not work to properly sort UTF. Or that, or I am doing something wrong.

Nevertheless, I found a simple way to do that, thanks to the Unicode::Collate module. Just add a few lines of code after you open your database connection:

my $collator = Unicode::Collate->new();
$DBD::SQLite::COLLATION{mine} = sub { $collator->cmp(@_) };

and then use the mine collation:

$sth = $dbh->prepare("SELECT * FROM somewhere ORDER BY key COLLATE mine");

Now I just need a way to make Perl not complain about the usage of DBD::SQLite::COLLATION just once. I can set no warnings around it, but I would prefer a cleaner solution. Maybe suggest a define_collation method for DBD::SQLite.

More thought, less dogma please

I recently came across a link to an old article by MJD. The sections "On Forking", "New Versions", "NP Complete Problems", and "Why I Hate strict" are particularly worth reading. His basic point in each section is that you should think about the problem you're trying to solve when you write code, and stay mindful of why you are doing certain things. I wish there were more smart, thoughtful people like MJD in the Perl community nowadays, and fewer dogmatists.

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.