What I've been Working on Lately
One of the advantages of being unemployed is that I can afford to work on open-source projects a lot. Lately, I've been working on quite a few Perl projects. The first one worth mentioning is CPANHQ.
Essentially CPANHQ aims to be an open-source, unified, meta-data-enhanced, and community-driven interface to CPAN. At the moment, we have little to show for, but we've been making progress. CPANHQ was my chance to finally get my feet wet with Catalyst and DBIx-Class, and they both seem pretty nice so far.
I also did some work on File-Find-Object and File-Find-Object-Rule. In case, you don't know, File-Find-Object is an object-oriented alternative to the core File::Find module that can be instantiated, has an iterative/incremental interface and can return result objects. File-Find-Object-Rule is a port of File-Find-Rule to use File-Find-Object instead of File::Find, and lately, I've made its ->start() and ->match() methods truly iterative instead of using ->in() which just collected all the results into one humongous array and kept shifting stuff from it. This was a severe misfeature of File-Find-Rule, IMO, and was caused by the limitations of File::Find.
Lately, in order to test the extension mechanism, I ported File-Find-Rule-MMagic to File-Find-Object-Rule as File-Find-Object-Rule-MMagic. The porting turned out an incompatibility in the handling of the $_ variable in F-F-O-R and F-F-R. This is caused by the fact that File-Find-Object does not change the working directory to the inner directories in the tree like File::Find does. As a result, an internal behaviour of File::Find leaked to File-Find-Rule and forced an incompatibility.
Another thing I've done was some cosmetic work on the Build.PL files of some my CPAN distributions. Namely, I added some links to resources and keywords (that can also be thought of as tags or labels) as specified in the META.yml spec.
Resources are displayed in the distributions' pages on search.cpan.org and other sites. Author keywords (when they exist, and very few have been defined) are currently under-utilised. However, I recently added some rudimentary support for them in CPANHQ (see above), and I hope that they will soon become more popular.
A different aspect of my cleanup was clarifying the licensing terms of the distributions. My original distributions are under the MIT/X11 licence, but I wrote "All rights reserved" there as well, which I was told was incompatible with it (or with "the same terms as Perl" licensing for that matter). I also added a COPYING file where appropriate.
I've finished reading Mastering Perl by brian d foy. I read it by "fork"ing its GitHub repository, reading the PODs and making some corrections in the process. After I pushed my changes to my GitHub repository, and made a pull request, brian d foy pulled the changes.
I wrote a review of the book on my homepage. Like I said there, the book did not teach me too many new things, but I felt it was nonetheless accurate, interesting and a good read for less experienced programmers. Maybe it means I have already mostly "mastered" Perl 5.
I did some other work on the CPAN modules that I maintain. See the CPAN listing of my modules ordered by date for more information.
Recently an IRC friend of mine and I started working on our own project from scratch, also using Catalyst and DBIx::Class. As a result, I'm learning even more about them now. The project is currently in its infancy, but we both agreed we are going to license it under the MIT/X11 Licence because we both like it.
As a result of experimenting with various Perl-based technologies, I've been building many CPAN distributions as RPM packages on my Mandriva Linux system. I found this small Bash function useful:
function up() { urpmi "perl($1)" ; }
So I can say "up MyModule::Sub" and it will install the package containing the Perl package "MyModule::Sub".
Sometimes, building the packages was straightforward, but often I needed to apply some patches to the build's .spec or the module's tests. You can find the results on my homepage
On the non-Perl related (but still open-source) front, I've been working on Freecell Solver, which is an ANSI C library to solve certain variants of card solitaire. I released a stable version only to discover its build process was severely broken (especially on Windows), so I had to release a x.y.1 release. Since then, the Subversion trunk has acquired some other changes, and I'm trying to see when I could get some time to work on two substantial changes that I have in mind.