Some interesting modules xreffed by their subject matter

Hi Folks

Sometimes when scanning the feed of module releases from MetaCPAN, I see a module which I don't have a use for, but which I think I'd better make a note of.

I keep these notes in a TiddlyWiki, and I've just extracted them as a new page
here .

OK. Nothing amazing, but it amuses me....

Testing scripts in your distribution, portably

This is a summary of the things I had to do, to add a simple test case for a script that I added to one of my distributions. It's taken over 2 elapsed days, 3 developer releases, and two sessions on IRC, to get to the end. I'm writing this up (a) so I don't forget, and (b) in case it's useful to someone else, and (c) in case the peanut gallery can point out any further gotchas I've missed.

HTTPS-Everywhere rulesets for Perl sites

HTTPS-Everywhere is a Firefox and Chrome extension brought by the EFF to automatically use https:// URLs instead of http:// if the site supports that. Think about what happens when you type http://github.com instead of https://github.com/ in your address bar.

So I added rulesets for PAUSE, BitCard and MetaCPAN.

Design considerations for Alien::Base

Anyone who has been following my progress on Alien::Base knows that in the past few months I have been struggling to nail down the final problem, namely Mac’s library name problem. The short story is, on Mac, the library has the full path to the module baked into the library during compilation. My problem is that I don’t tell it the correct path during compilation. Why?

The comma operator

Beginners are often startled by the following Perl behavior, and I admit this is one side of Perl that is not really attractive (anymore? or ever?):

$a = 6, 1, 1, 1, 7; say $a; # 6
$a = (6, 1, 1, 1, 7); say $a; # 7
@a = (6, 1, 1, 1, 7); $a = @a; say $a; # 5

Why such seemingly inconsistent and strange behavior?

Deep Cloning

I've been using Storable's dclone for years, but there's a module on CPAN called Clone that is said to be much faster. However, it doesn't seem to work.

Parsing on your new hyper-quantum computer

If you want to build a ship, don't drum up the men to gather wood, divide the work and give orders. Instead, teach them to yearn for the vast and endless sea. -- Antoine de Saint-Exupery

[ This is cross-posted from the new home of the Ocean of Awareness blog. ]

Imagine that, the day the new machine arrives, you are maintaining a parser. Your parser is the current state of the art -- hand-written recursive descent.

The new computer will replace your staid old von Neumann box is not just a quantum computer. It's fully non-deterministic. You can superposition any time you'd like, and then "unsuperposition" to restart. And when superpositioning, you can can examine all the possibilities, not just one.

How would you rewrite your recursive descent logic to take advantage of this new hyper-quantum computer? Actually, this is exactly the same question that Marpa poses to you today. Because for all classes of grammar in practical use, including the LL(k) grammars parseable by recursive descent, Marpa is efficient non-determinism.

Perl interface to LDTP testing library

Gabor Szabo realized that it's very easy to dare me to do things and then making them available for Perl. I'm somewhat like Marty in Back to the Future - "I am not chicken!"

So, now we have LDTP. However, it needs your help. What is LDTP you ask? Good question!

Why Perl Needs Screencasts

gorilla_small.pngAfter our recent launch of a free perl hosting for dancer and other frameworks (feel free to try it out at http://1.ai or see it live in this retro page at http://hulk.1.ai/perl) I was thinking on how programmers choose one or another language to create web apps. I am not talking just about more experienced programmers that would certainly stick with what they know already - but beginners, students, the new geeks.

Fast datetimes in MongoDB

One of the most common complaints about the Perl MongoDB driver is that it tries to be a little too clever. In the current production release of MongoDB.pm (version 0.46.2 as of this writing), all datetime values retrieved by a query are automatically instantiated as DateTime objects.

The next release of MongoDB.pm will fix this problem, allowing for nearly tenfold speed increases under some circumstances. The details are available on my blog here: Fast datetimes In MongoDB.

Daily #perl6 summary now built in to irclog software

One of the best ways to connect to the Perl 6 community is to join the hub of its activity, the freenode IRC channel #perl6. Another great approach is to read the daily log for that hub. To start with the full log for today, visit today's log of the freenode IRC channel #perl6.

The original driver for this blog was publishing short(ish) "summaries" of that looong log. Since starting it a few weeks ago things have been experimental, erratic, rapidly evolving. Today things settled nicely.

From today forward, to see a "summary" (subset) of any day's log, just visit that day's log page and click the "summary" link that appears near the top, typically near Camelia. (Or, to save a click, here's a direct link to yesterday's summary.)

Q. Why is the summary blank?

A. Because neither you nor I have yet added some lines to the summary for the day you're viewing.

Q. How do I add lines to the summary for the day I'm viewing?

A. Make sure you are viewing the full log. Click the "Enable summary mode" link (below the words "All times shown according to UTC."). Click the checkbox of the line(s) you want to add. Click the "Save summary changes" link. Drink a beer.

Q. Does that mean no more #perl6 summaries at this blog?

A. Good question.

Q. Are you going to bring back the organized breakdown such as was done for 26 #perl6 summaries for 2012-09-02 or the earlier weekly summaries?

A. Do you think I should?

YAPC::Europe 2013 in Kiev, week minus 48

This week we publish an interview with one of the YAPC::Europe 2013 organisers, that was recorded for the recent Yet Another Perl Podcast on 13 September.


Dear listeners, this is the second issue of the second season of Yet Another Perl Podcast, the podcast about Perl in Russian. Here today are myself, Alexander aka Afiskon Alexeev, Dmitry Degtyarev and our today's guest, Perl's rock star Vyacheslav vti Tikhanovskiy. This issue is basically a chat with him.

-- What does it mean, a non-religious developer, as it is stated on your blog?

-- Before answering this question, let me say that a rock star is an exaggeration. As for the non-religious, there're two meanings here. First, I'm non-religious literary, second, Perl is not a religion for me, I can easily use any other programming language or any utilities, be it in Perl or not.

-- But you still think of yourself as of Perl developer, right?

-- Mostly yes, that's right. It is mainly Perl, but as I said, it is possible to go outside.

Using Catalyst::Plugin::AutoCRUD: Tutorial with Examples for Newbies

  • Introduction
  • Don't Blink!
  • As Simple As That!
  • What Next?

Loving some puppet

I do love being able to just do

cpanm Moose

But I am gaining much love for

puppet apply -e 'package { "perl-Moose": ensure => "installed" }'

#perl6 Summary for 2012-09-03

The freenode IRC channel #perl6 is the heart of the Perl 6 community. Some folk like to read the daily log. But it gets long. So...

Summary for 2012-09-03.

The above linked page is a new Summary mode built in to Moritz's irc logging software. At the time of writing, this Summary is the same as the the Full log except most of the lines are omitted. There is none of the organizing I did in previous Summaries. Using this feature of Moritz's software is MUCH quicker and is the right way forward. I'll have more to say in the next few posts to this blog (after which you'll no longer be visiting this blog for Summaries because they'll appear at the regular log location).

To provide me feedback, gmail me at raiph.mellor or use the comment feature on this blog.

Perl 5 Porters Weekly: September 3-September 9, 2012

[ Cross posted from its original blog ]

Welcome again to Perl 5 Porters Weekly, a summary of the email traffic on the perl5-porters email list. Are you tired of talking and thinking about smartmatch? P5P was dominated this week by talk of named prototypes (again.)

Since the named prototypes discussion had so many responses, they'll be put at the end of the summary. I also decided this week to start a "dusty" thread feature - some issue that's been raised on p5p but without any subsequent response on the public list traffic.

This week's dusty thread is proposed/drafted new perl docs which were part of the p5p summary in July. These docs cover metadoc, perlblurb, perladvantages, and perlresources. They're intended for newbies and language marketing purposes. You can find the docs in this git repo. If you're interested in working on them, contact Uri Guttman.

Topics this week include:

  • Swapping SV bodies between two SV heads
  • UTF-8 just turned 20 years old
  • optimising JRuby by avoiding hashes
  • :utf8 status
  • Lexical subs are ready
  • Named prototypes (again)

Chicago.PM Report - App-Prima-REPL

We had our first project night at Chicago.PM this week, where we discussed ideas and wrote code for a Perl REPL GUI program (App-Prima-REPL on Github) by David Mertens built on Prima.

There were some small ideas to make the program more user-friendly, and some larger ideas like an IRC client and guided tutorials based on the same format that http://perltuts.com uses.

I'm hoping that if I keep saying this, I'll be embarrassed into doing it: I would really love to see the Ruby Koans translated into Perl (in spirit, if not in actual content). I've started writing down ideas for chapters, but there is a lot of content to cover.

I added a -I flag and a -M flag to the prima-repl command-line launcher that work as close to perl's flags as I could get. This is one of the things I love about prove and plackup: Where it makes sense, they work like perl does. So now the prima-repl can have subs and modules imported on the command-line.

Altogether it was a wonderfully productive evening and I'm looking forward to the next one. 

Using Catalyst::Controller::REST with jqGrid: Tutorial with Examples for Newbies

  • Introduction
  • Get Started!
  • Using Catalyst::Controller::REST with Catalyst::View::JSON
  • Using Catalyst::Controller::REST without Catalyst::View::JSON
  • MySQL to SQLite
  • What's Next?

A Marpa-based HTML reformatter

[ This is cross-posted from the new home of the Ocean of Awareness blog. ]

This post is about html_fmt, a Marpa-based reformatter ("tidier") for liberal HTML. html_fmt indents HTML according to the structure of the document, which makes the HTML a lot easier to read. In the process html_fmt adds missing start and end tags and identifies "cruft".

html_fmt is ultra-liberal about its input. Like a browser's rendering engine, html_fmt never rejects a file, no matter how defective it is as an HTML document. An interesting experiment would be to compare what your favorite browser does with a random text file feed to it directly, with what it does to the same file after it has been passed through html_fmt.

3 features I would like to see in Perl

A few days ago I read Features Perl 5 Needs in 2012 by chromatic and while I thought the ideas were nice the only one I really cared about was a replacement for XS. I have tried with XS and FFI to bring in new libraries and it is just so painful. Marcus believes that Perl garbage collection needs a serious overhaul and I agree. Improved gc in a language is one of those things that helps ease development pain, specifically scalability issues. Java is always improving its gc to better meet new performance requirements. Structured core exceptions is another improvement that would be very nice. This got me thinking what would I like to see in the next version of Perl. I have never contributed to Perl core, never written a Perl book, and I do not follow p5p or Perl6 development. I have looked a little at the Perl source but nothing serious. This makes me an outsider to Perl development so I have a different viewpoint on what I should get out 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.