RECENT ENTRIES
As is plain to see I haven't blogged in a while. These days I mostly tweet. I have no idea if I will ever blog on this site again, but it likely won't be soon.
MetaCPAN seems to be an attempt at a more open CPAN. It even has what looks to be a very nice API (link to beta docs). I'll have to give that a try. I have updated CPAN related links to the right to point to MetaCPAN instead of the older CPAN website. It may still be a little rough around the edges but it seems to work well enough for my purposes right now.
So I am now on twitter. I've convinced myself that I will be doing so just to follow a few interesting people. I may tweet from time to time. I certainly can't be any worse at tweeting than I am at blogging...right? If you wanna, follow me.
The latest perl has shown up on CPAN. See the perldelta perldoc for information about what's new.
Some highlights:
* Builtin array and hash container functions accept references.
* Assignment to $0 sets the legacy process name with prctl() on Linux. This is actually something I blogged about awhile ago.
* Non-destructive substitution. How many times have I needed this?
And here it is (tarball). Surprisingly little about it so far.
PSGI is a very useful and needed project. Apparently there are those that don't see the point. Chris Prather has written a useful response.
I haven't seen a test release of Catalyst in a while, but I am really looking forward to Catalyst with PSGI replacing Catalyst::Engine.
Last week I completed a project I had been working on for a little more than three months. The project replaced nearly every element of a currently existing system. The release went very well. Not one serious problem. A big reason for this was Moose. Using Moose I was able to create a framework that I used throughout much of the code. I wrote a whole host of tests that exercise the framework as well as each role that the framework can use. Using Moose made this easy-peasy (is that how you spell that?).
One interesting thing that I discovered was that Moose, despite people constantly saying so, does not seem to add a significant startup penalty. A not insignificant part of this project is a suite of command-line tools that people use every day. These tools rely on the previously mentioned framework. Most of these tools consume at least a half dozen roles, if not many more. Moose and various MooseX modules are used liberally throughout this system. Yet my tests show that the startup time is not significantly different from the previous system. More importantly there have been no complaints about startup time from the users. Very impressive.
This was the first major project I have ever used Moose on. Using Moose and other elements of the Modern Perl approach I was able to completely rewrite a non-trivial system, make that system significantly better, and do it in a reasonable amount of time. I cannot be happier with the results.
An informative post that attempts to compare accessor speed for different object systems (and some non-object systems). The benchmarking is hardly perfect (read the comments for complaints) but I think it may spark a good discussion.
I found this review of Perl Best Practices (Chapter 15) to be of interest. Considering the reviewer, Dave Rolsky , is a major contributor to Moose (along with a lot of other great modules) it comes from a voice of some authority.
There are some objections (remember inside-out objects?), but overall PBP does quite well according to Mr. Rolsky. I don't have much to add as I agree with his review (I still don't like separate read / write accessors though).
Exporter::Declare: After yammering about how much I like Sub::Exporter I discover another exporter that, until today, I had not heard of. It looks very promising and I plan on testing it out "sometime soon".
I finally read the third novel in the uplift novels by David Brin (I reviewed the second novel last year). I liked this one much more than the last one. I even liked it more than Sundiver which I thought was a pretty decent book.
The only disappointing thing is that there is no resolution to the events that occurred in Startide Rising. The events from that book aren't ignored, in fact the implications of those events weighs heavily in the motivation for various important elements in this book. I'm just impatient.
This book, unlike the last book, makes me want to read the rest of the Uplift books.
About a month or so ago I finished reading Childhood's End by Arthur C. Clarke. I haven't read many Clarke novels but I think his Rendezvous With Rama novel is one of the best sci-fi books I have ever read. Having said that, I did not particularly like Childhood's End. A number of the story threads are seemingly forgotten for lengthy stretches (although a number of them do come back at the end of the story). And the conclusion to the story I found depressing. Perhaps it was meant to be depressing, but I don't believe that to be the case.
Hopefully I won't be giving too much away by saying that one of the main themes of the book, in fact what I took to be the primary theme, is one of 'transcendent evolution'. If the evolutionary path described in the book is supposed to be transcendent or uplifting I have to say I want off that train right now. I simply cannot believe that the loss of individuality and an ultimate merging with a galactic supermind is a promising path for humanity.
In a nutshell I found the narrative disjoint and the main theme to be ridiculous.
Sub::Exporter: I've started using this module when writing modules that have symbols to be exported. It is much better than the standard Exporter and its documentation has a handy comparison to other CPAN export modules. I've found it to be very easy to use and extremely powerful. It was used as the exporter for Moose for a reason. It is simply the best exporter available.
A site named perltraining.com.au is publishing three short articles about Perl best practices. Two have already been published. The first one looks pretty good. The second mentions Try::Tiny but otherwise I didn't find it very interesting.
PERL BLOGS