Swiss Perl Workshop 2015

We are excited to announce Swiss Perl Workshop 2015.
Join us in Olten, Friday 28. and Saturday 29. August 2015.

For further information, please have a look at the workshop website.

Thanks to our sponsors:
www.oetiker.ch | www.perl-academy.de | www.bloonix.de | www.eventrix.ch

Sydney-PM February 2015

If you happen to be in Sydney Australia this month, please join us for a night of Perl and conversation.

SiteSuite have again offered to host us this month, thanks be to Cees Hek for setting the wheels in motion. Note: SiteSuite have moved, so check the new North Sydney address below!

What: Sydney PM
Date: Tuesday, 10th February 2015
Time: 6-9:30pm
Where: SiteSuite, Suite 202, 53 Walker St North Sydney

Speakers are needed!

Here are some ideas:

  • perlprew, perlcritic, perltidy, podweaver, any of these sorts of tools
  • Anything related to Mojolicious/Catalyst/Dancer
  • Anything to do with rapid creation or consumption of rest/soap/xmlrpc/other apis
  • Getting started on perl testing
  • Queue things like beanstalkd, gearman
  • Using perl in funky cloud services like digitial ocean, codio, heroku etc
  • Maybe something on logging, log4perl, Log::Any, Log::Dispatch
  • Something cool that you did, just a fun little tool or something

There is a projector with all the usual trimmings and wifi access may be available.

Lightning talks would also be really great!

Meeting after that?

At this weeks meeting, everyone seemed happy to plan for the month after as well. So if you can't make this month - look out for March!

Questions are best sent to the Sydney-PM email list.

A survey of table rendering packages

So far I've found:

a perl5 to perl6 translator - update

I've moved the "perlito" perl5 to perl6 compiler to a new home:
http://www.perlito.org/perlito/perlito5to6.html

There are minor improvements in the compiler since last post, such as:
  • scalar(@a) is @a.elems
  • $a[-1] is @a[*-1]
  • fix "map" syntax
  • eval-string is EVAL

Web scraping continued

I recently gave a talk at AmsterdamX.pm about web scraping. I provided a few examples of scraping (most of them on my Github repo), and amongst them, a few relating to the January assignments page Neil has put up.

CPAN Cleaning Day 2457044: Compiler::Lexer

In my quest to clean up my CPAN distributions and to normalize them, I've been working on CPAN::Critic, my unreleased tool that looks at my directory and complains about things I don't like. That's going nicely for the most part, but I ran into a small problem that's taken me down a bit of a rabbit hole of C++. All this in the same week I wrote a Python program.

I want to check that the minimum version of Perl the code requires is the same as the MIN_PERL_VERSION. We have two modules to do that, the PPI-based Perl::MinimumVersion and the Compiler::Lexer-based Perl::MinimumVersion::Fast.

However, I'm in love with postfix dereferencing, a v5.20 feature. PPI reports 5.004 and Compiler::Lexer thinks 5.008 because neither handle the latest syntax enhancements:

Practical FFI with Platypus

At YAPC::NA 2014 I talked about FFI and Perl. FFI is an alternative to XS that I think is worthy of consideration. My talk was well attended, I think primarily because I jokingly subtitled my talk "Never Need To Write XS Again". So there is a market for this idea. I mostly talked about FFI::Raw, which was a great way to experiment with FFI and to write real live CPAN modules with FFI right then and there. The question of performance inevitably came up, so at the Pittsburgh Perl Workshop last year I talked about that.

The Perl QA Hackathon 2015

The Perl Quality Assurance Hackathon (hereafter QAH) is an annual 4-day gathering of the people who work on the core CPAN toolchain and associated systems & services. This gives them dedicated time to work on these systems together, solving hard problems and working out how to move everything forward.

Like pretty much everything in the Perl world, these are all volunteers, so our approach is to get sponsorship to cover expenses (travel, accommodation, working space, meals) for as much of the gathering as possible. If your company relies on Perl, ask yourself how much you rely on the toolchain working smoothly? Perhaps you could persuade someone to sponsor the QAH this year?

The CPAN toolchain isn't glamorous, so generally doesn't get much press, but it's an essential part of our world. So over the next few weeks we'll be posting some short articles to raise awareness and hopefully encourage some sponsorship.

My January's Pull Request Challenge (part 2)

In the previous post I discussed my January Pull Request Challenge contribution. It's only part 1 because there's another part: the contributions others made during their PRC which were related to projects I'm in charge of.

OpenWest 2015 - Call for Papers

I just noticed on the SLC-PM Facebook that the OpenWest Conference 2015 has called for Papers.

Last year it had a whole track for Perl topics. The content was excellent and can be viewed on YouTube.

And since I am posting stuff from their Facebook page, here is a talk from last months SLC-PM meeting.

Managing SQL Data with Yertl

Every week, I work with about a dozen SQL databases. Some are Sybase, some MySQL, some SQLite. Some have different versions in dev, staging, and production. All of them need data extracted, transformed, and loaded.

DBI is the clear choice for dealing with SQL databases in Perl, but there are a dozen lines of Perl code in between me and the operation that I want. Sure, I've got modules and web applications and ad-hoc commands and scripts that perform certain individual tasks on my databases, but sometimes those things don't quite do what I need right now, and I just want something that will let me execute whatever SQL I can come up with.

Yertl (ETL::Yertl) is a shell-based ETL framework. It's under development (as is all software), but included already is a small utility called ysql to make dealing with SQL databases easy.

Create presentation programmatically with Presentation::Builder

You can generate your presentation slides programmatically with Perl 5 inside Docker container.

Source code example (left) and generate reveal.js slides (right) of my "Git (FS and DVCS)" course" presentation (full git-course-mj41 source code):
git-course-example.png

Already on GitHub github.com/mj41/prbuilder-docker. It's proof-of-concept but it worked well for me. Patches/pull requests welcome.

My January's Pull Request Challenge (part 1)

While I was focused on the social aspects of the PR Challenge, such as the IRC channel (opping literally everyone), the guides (wrote several), the repo (plus organization), and lately even a small parser for the web page Neil created (which will appear in another post), I still had my own responsibilities - mainly, my own PR challenge, and taking care of others' PR challenge contributions that fell under my purview.

I gave this talk about Automated Scoring Systems at MadMongers...



I gave this talk about Automated Scoring Systems at MadMongers last week. This is part of the new crowd funding system we launched at The Game Crafter this week.

[From my blog.]

"Short and sweet, but definitely a good value PR!"

Hello,

As Neil categorized it in the title of this post, My first PR Challenge ( Poe::Component::DirWatch ) was definitely short , sweet and packed with value. When I attempted to work on this module I didn't find any issues to work on via the bug list. This lead me to jump into the PR Challenge irc chat where I got help from rjbs and ether on what I can do to submit my first pull request for this module. Of course the obvious answer was "Use the module" but while in the chat room rjbs did point out a bug ( documented here Moose::Classes ) that I ( without much experience on Moose) would not have been able to point out right away. After knowing this, I read some more Moose documentation and worked on my PR Challenge code .

This PR Challenge allow me to learn about Moose, namespace::clean and Test::CleanNamespaces ( The last 2 modules seem to be a better solution for my PR but I haven't installed the modules yet ) .


Thanks to everyone who pointed me in the right direction for my first PR Challenge.

How OBVIOUS things get missed to be done... or seen...

Happy New Year!..

Oh my bad! I missed to post here that I made a Grant proposal.

It often happens. It obviously happens so obviously often during the last 15-20 years that the other day a guy (C# programmer) on Facebook commented: "CMS in Perl?!? "It will scale with your business" hahahaha". We obviously miss to say explicitly obvious things.

Yes, he does not know this is just a "Piece of cake" for us. Yes, it is so much "Piece of of cake" that almost nobody in the Perl community bothers to do it. Yeah, we have CPAN, we have CPANTESTERS, We have tied variables that some languages find very cool and trendy, and we even find them old fashioned, We are modern, we have Mo /o /se, ORMs and all the stuff, BUT "We suck at marketing".

Grants Committee 2014

I have posted a formal version of the Grants Committee 2014 report.

Here is another, a bit less formal and more personal version.

Here I am

I took over the position of the Grants Committee secretary at the beginning of this year. I wanted to try a lot of things, some of which went great, but others were challenging.

People change

Besides me,

  • Daisuke Maki joined the committee as the first voting member from Japan. Perl community in Japan is often "invisible" and TPF is invisible in Japan due to the language barrier and he has been working hard to increase the visibility.
  • Mark Jensen joined us as a grant manager. I am sure a number of you enjoy his grant updates already. Behind the scene, he spends good amount of time to help the grants run smoothly.

Grant rules change

  • The grant evaluation is conducted every 2 months. It was quarterly until 2013.
  • The grant limit was raised from $3,000 to $10,000.

Can't be a bad thing.

Challenge 1: Marketing

Call for help with open source project "CLPM"

CLPM is my “Command Line Project Manager”. It’s a tool I wrote and have been using myself for several years now, and I am releasing it in the hope that others might find it useful.

Also, if you have been looking for an open source project to contribute to, here’s your chance! I don’t care what your level of experience is, if you think you have a useful comment or contribution, I’d like to hear from you!

There is a Todo section in the README, but I want to add a couple notes here:

  1. It’s currently not packaged, nor does it have an installer. This probably makes it much less likely to be adopted.
  2. I’m not sure how to promote it to make sure its audience (developers/sysadmins maybe) at least get a chance to see it, even if it ends up that it’s useful to nobody but me.

The project page has more details: https://github.com/tinypigdotcom/clpm

The original blog post is here.

A note about X500::DN and X500::DN::Marpa

Firstly, some history: Many, many years ago, I released a module called X500::DN. It was very crudely written, and only handled the few DNs I had personally seen.

My Attempt at CPAN PR Challenge for 01/2015

When I was reading through Perl Weekly newsletter the other day, I realized that there is a challenge named 'CPAN Pull Request Challenge'. Everyone was invited to join, and I decided to give it a go. It was organized by Neil Bowers, who explained the details right here.

The idea was simple: For each month in 2015, each participant will be assigned a CPAN module. Then they will be asked to contribute to the code. Be it improving documentation, writing more tests to improve test coverage, fixing a bug or actually implementing a new feature, you were to do something and then submit a pull request on GitHub. As this challenge was open to 'anyone', there were several documents explaining how GitHub works, and how to submit your first pull request and what not. If you have a look at blogs.perl.org, you'll see several of them. Even if you're not going to participate, they are still pretty decent how-to documents, and having a look will not hurt.

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.