Perl Maven in Brazilian Portuguese

Slowly, but the Perl Maven site is gaining popularity among people looking for information about Perl. I'll write about the stats later.

Last week Felipe Leprevost asked me if I'd agree for him to translate the Perl Tutorial to Portuguese. I was happy to say yes as I believe having a decent introduction to Perl in your native language can make a big difference, even if later on you'll need to improve your English.
He made the translation and we already made the first article public: Instalando o Perl, imprimindo "Olá Mundo".

There were also several people who offered their help. This is awesome!
Thanks Felipe for your initiative!

The source of Perl Maven on Github

In order to make it easier for us to collaborate I set up Github repository for the Brazilian Portuguese files, and I also made the source of Perl 5 Maven available to make it easier for him to fetch the original English sources. The format is the horrific result of combining PODish with XMLish.

Web Directory Utilizes Perl for Image Rotation

One of the most challenging aspects of website design is presenting information to users in such a way that appeals to the majority. But when advertisers are also part of the equation, a balance needs to be made between the end user's experience and the needs of advertisers. Because of this, we decided to use Perl for our image rotation needs.

Although in the past we used Perl on a variety of websites to rotate images, this task was a bit more complex. We needed a lightweight solution to serve rotated banners to tens of thousands of visitors daily. With an overhaul of our previous rotation code, now written for 5.16.3, we were able to develop a server friendly image rotator that works well in a shared hosting environment.

German Perl Workshop: My Day 3

Again a lovely bike ride to the venue, this time with some air pressure trouble in the front wheel. Then a great day with talks, chatting and again excellent food.

And then it was already over.

THANK YOU ORGANISERS!

gpw_2013_organisers.jpg
Thank you Wendy for the photo.

And thank you sponsors.

See you in Bern next week,
:m)

Deprecated modules warn when they are used

chris fedde asks How do we know when a CORE module is deprecated?. I don't know what was there originally, but it set off a lot of fingerpointing and posturing, and nobody answered the Perl question for the rest of the universe that finds it that post through Google!

perlpolicy says

As of Perl 5.12, deprecated features and modules warn the user as they're used.

There's the deprecate module which provides this warning. A module is deprecated for at least one cycle before it's actually removed. That doesn't help much if you skip over several perl versions.

Module::CoreList tracks deprecated modules too.

And, as one commenter, mentioned, the fallback is for people to read the perldelta pages to find the changes between the version they are using and the version they want to upgrade too.

The information is out there, and as programmers, we have everything we need to play with it however we like. :)

I love CPANtesters and Travis-CI

I have mentioned before how much I like CPANtesters! Here is another story.

Yesterday I got an email from them listing a number of failures from Galileo, my CMS. I had recently pushed some bugfix releases, but it had some new, and as yet unused code and tests for that code in it. The tests passed on all my Linux systems, so I wasn’t worried about the release. Yet the failures came in. Some on Linux, some on other platforms, but not all the tests were failures and I couldn’t figure out a pattern. CPANtesters put me on to a problem but for this I needed faster results.

How do we know when a CORE module is deprecated?

I have edited this down to just the single real question.

08:57:05 < mst> cfedde: CGI.pm is deprecated and scheduled to be removed from
the core as a terrible idea by 5.22 at the latest


I check the module doc and I don't find a deprecation notice in it. Neither does there appear to be an "official CORE" deprecation list.

Is IRC where we go to find out that a module is deprecated?

Social bookmarking in Mojolicious

I've spent the last year or so of my daily commute building a social bookmarking site that for me has now replaced my use of delicious, and I think offers more than other services such as diigo, Google Bookmarks et al.

The original site at bkmrx.com was mainly built in PHP & MySQL, however since finishing that site I've taught myself how to use Mojolicious, and did a fairly comprehensive rewrite of the website into a Mojolicious and MongoDB stack. As such it's not a full replication of the features available on bkmrx.com (see the about page for a comparison).

Now with a new job on the horizon, I want to spend less time on building out a better bookmarking service, but at the same time don't want it to stagnate.

To that end, I've released the code for bkmrx.org on Github, and uploaded a live version of the site at bkmrx.org.

This is the first time I've released a relatively big project onto Github and since I'm by no means a full time developer, go easy on me :) However I'm hoping there are others in the Perl community who might be interested in contributing to, forking or otherwise using the code.

You can read more details on my blog if you're interested.

Recursive deferred promises

Hey, "recursive deferred promises" might sound like a smashingly complex idea, but really, it isn't. Here's the what, why and how.

Discoverable tests and creating testing standards

I like writing code. I like writing tests. I don't like:

  • Trying to figure out where the tests are
  • Writing boilerplate
  • Finding yet another package without tests

That last one is particularly vexing when you discover that your code is failing because another package doesn't load, but it doesn't have tests. So I fixed that.

Some of what follows is a repeat of things written in previous posts, but it's important enough that it bears repeating.

Chicago.PM - Mojolicious

February's meeting was about the Mojolicious Web Framework. Joel Berger has written a minimal Perl CMS called Galileo, and agreed to give a talk about the benefits of Mojolicious.

Best of all, the talk itself was written in Mojolicious! As Joel was talking, he was able to edit the code and display the results, showing off various features of Mojolicious like:

  • Websockets
  • Easy testing (even of websockets)
  • Helper scripts
  • Mojo templates

There are quite a few interesting parts of Mojolicious that make it worth giving a look to, and I hope to be able to do so with some web projects that have been sitting in my queue for a while (I wrote a nice ticket tracker with AngularJS, but the backend is Python, I'd like to fix that glaring mistake).

German Perl Workshop: My Day 2

Today I was quite busy $working. I was a bit tired, too, because a group of young and cheerful boys and girls (possible future Perl hackers?) had their small hotel party on the floor outside my room. After a short bicycle ride (numerous places of interest again) I reached the Betahaus (many current Perl hackers).

Just because I was curious I took a peek at various fellow Perler's computers displays. Quite familiarly with hacker's displays there was lots of text; not a small amount white on black.
Today however I learned that there are people using light-blue to dark-blue on black as their favourite colour scheme. Like so:

readable_perl.png

Introducing Platform

So, what's the big idea?

Perl projects have all manner of ways of declaring their dependencies. CPAN releases usually include a file called META.yml or META.json listing their dependencies (though Makefile.PL or Build.PL is also supposed to generate a list of dependencies when it runs; this allows the release to dynamically decide on different dependencies based on the machine it's running on). Non-CPAN projects can declare their CPAN dependencies using cpanfile too.

Once the dependencies are declared, this information is used by CPAN clients, by metacpan.org (to show the list of a release's dependencies), by http://deps.cpantesters.org/ and so on.

However, this only works where you want to declare dependencies on CPAN modules, or on a minimum version of Perl itself.

The CPAN Unknown Usage problem

To help CPAN authors keep track of who is using their modules, we could introduce two concepts: "follow module" and "I'm using this module". Both would be similar to the 'following' and +1 features found in nearly all social media services, and ++ in MetaCPAN.

Mason - A Template system for us programmers

Templating Modules are a bit like editors. Every web application developer has a favourite one. And every template system is someone's favorite.

Mine is Mason. But not because the Perl MVC tutorials are full of examples using Mason. Not because it's the fastest (use xSlate if you want to trade speed for flexibility). Not because it's the most popular. It's my favourite for a very plain reason: It makes me more productive and allows me to develop web GUIs using all the powerful features a programmer should biterly miss if they are taken away. That includes writing Perl code :P

I never heard of a business that went down because they didn't have fast enough CPUs, so I'm not fussy about trading a few CPU cycles for elegance, ease and speed of development.

Enough talking. Here's my contribution to the template holy war.

German Perl Workshop: My Day 1

Yesterday evening I got onto the City Night Line and spent a most comfortable night in my small single cabin, sleeping to the soft rocking of the moving train.

After arriving in a freezing cold Berlin I rode my bike along Brandenburger Tor, Checkpoint Charly and a dozen other places of interest to the Betahaus where the Workshop takes place.

Thanks to the organisers, I immediately saw many signposts which guided me to the venue.

gpw_2013_day_1_crowd.jpg

Strawberry Perl 5.16.3.1 + 5.14.4.1 released

Strawberry Perl 5.16.3.1 + 5.14.4.1 are available at http://strawberryperl.com
(all editions: MSI, ZIP, PortableZIP for both: 32/64bit MS Windows)

More details in Release Notes:
http://strawberryperl.com/release-notes/5.16.3.1-32bit.html
http://strawberryperl.com/release-notes/5.16.3.1-64bit.html
http://strawberryperl.com/release-notes/5.14.4.1-32bit.html
http://strawberryperl.com/release-notes/5.14.4.1-64bit.html

Docs for SQLite's foreign_key_list($table)

AFAICT SQLite's foreign_key_list($table_name) pragma returns a list of 8 elements in this order (i.e. with these interpretations):

1: COUNT
2: KEY_SEQ
3: FKTABLE_NAME
4: PKCOLUMN_NAME
5: FKCOLUMN_NAME
6: UPDATE_RULE
7: DELETE_RULE
8: UNKNOWN

If anyone can explain the last item, or offer corrections, please advise.

A couple of ideas for improving commenting/reviewing CPAN modules

I love browsing and/or buying books on Amazon.com. Part of the reason is that there are no lack of ratings/reviews on the books, helping me decide on which books to choose on a certain topic. On CPAN however, despite cpanratings.perl.org having been online for more than a decade, most modules have no reviews.

I've done my share of commenting/reviewing modules, but some things could be improved.

First, whenever some other modules are mentioned in a review, it should perhaps be shown as reviews/mentions for that module. For example, just minutes ago I added four reviews each for Text::ASCIITable::TW, Text::CharWidth, Text::VisualWidth, and Text::VisualWidth::PP. Basically I just wanted to say that Text::CharWidth is my preferred way. I should've been able to enter just one review article, which mentions all 4 modules, which cpanratings could show for all those 4 modules.

Second, there should perhaps be an indexing service to index blog/web articles which mention Perl modules. Neil's articles, for example. All in all, those articles could translate to hundreds of module reviews/comments.

Joined CPAN-API (metacpan) Team

We're honored that we, PrePAN developers, can announce we just joined CPAN-API organization!

We're going to make the site better as possible. Please keep eyes on us and send pull requests to our repository.

Whats wrong with the Perl Community?

Hi There,

this is my first post here. I never thought about blogging here, because i just didn't felt to do so. But the last weeks made me to think over this.

More and more i read negative stuff about Perl coming from the people using Perl. This irritates me. On the one side, i think it's a good characteristic to be critical about what you use, what you love and the tools you use. On the other side, i don't really understand why we keep to propagate the bad things about Perl and the economy around it all the time here in public?

If we wanted to attract new programmers to do some Perl coding, they probably don't want to read about all the quirks that exist. They want to read about cool stuff thats possible with Perl, success stories and the like.

So i would love to read more entries which are written in a more positive way than always complaining about stuff that doesn't work.

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.