What are you working on in Perl?


My project list is a mile long, and I'm wondering what you're working on, too.

Here's mine, in no order:

  • Internals of Parrot, trying to get the underlying C API handle to handle const STRING *.
  • Putting out tidyp, my fork of libtidy, and HTML::Tidy which will rely on it.
  • Thinking about the plug-in API for ack 2.0.
  • Wanting to get more grep-like programs listed on betterthangrep.com.
  • Gathering together info on Plack and PSGI for an article here
  • Getting perl101.org to list both Perl 5 and Perl 6 syntax for how to do things.
  • Make an install mechanism for vim-perl so people don't have to wait for Bram to release a version of vim to get the updates.
  • Work on Perl::Critic policies for check_postgres.pl.
  • Clean out the WWW::Mechanize bug queue, especially making the live tests not run by default.
  • Work on a talk on Perl 5.10 and 5.12 for Chicago Uniforum in June.
  • Add more languages and more philosophy to bobby-tables.com.
  • Decide if I want to keep Perlbuzz in Movable Type and upgrade to the next version, or migrate to the Melody fork.

What's on your plate? Tell us in the comments.


After work, I'm actively rotating between three projects (and ignoring 29 others in the process).

  • I've wrapped up draft documentation on Reflex so that I can focus on my YAPC::NA talk about it. Reflex is a modern OO approach to event driven programming, using Moose and a little bit of Class::MOP magic.
  • What started out as an attempt to migrate POE to git became Snerp Vortex. This is a SVN exporter, currently with plugins for writing to a filesystem or to git. Avar's trying to get it to convert Mediawiki's repository, which is freakin' huge! As with most yak shaving, I haven't actually got around to its intended purpose.
  • I'm also assisting Devin Austin who is writing introductory POE documentation for mere mortals. Devin's work is part of an EPO grant proposal we're working on.

Outside of Perl, my tomatoes are doing well this year. Out of five active plants, three propagated from cuttings. Four more cuttings are rooting, but the season is already winding down here in zone 10b. Looks like I'll have more time for Perl soon. Learned this year: Cheap plastic nursery pots are great for trying upside-down growing. "Ultomato" cages are pricey but really good for right-side-up plants.

That's quite the list :-). I'm currently working on Maximus, a module manager for BlitzMax. BlitzMax is a BASIC OOP derived language. The website is a bit of a CPAN Lite, using Catalyst, DBIx::Class, Template-Toolkit and Moose. The module builder/installer is written in BlitzMax.

My Perl is a bit rusty as I don't use it on a daily basis of work. So progress is a bit slow. Last time I used mentioned frameworks (Moose is new for me) was over 2 years ago. So I have a lot of catching up to do.

Project can be found here: http://github.com/Htbaa/maximus-web

I wish the Melody project would get rid of PHP altogether and make it Perl only.

Looking for other users of WWW::Contact::GoogleContactsAPI, or indeed any version of WWW::Contact to test my improved data model.

Hi Andy

In Melbourne there is a group of people who volunteer to accompany people to court [1].

Various courts in 2 states (Victoria, Queensland) are supported.

They have a paper-based system of matching up volunteers with applicants, and asked ('wish'ed) on goodcompany [2] for help.

I have done a little bit thru goodcompany, so I granted their wish, and am now programming a CGI script in Perl etc to do the job.

Sort of like recursive volunteering...

One of their questions was nationality, and since there were no modules on CPAN with either nationality or nationalities in their name, I released Locale::Nationality::en a few minutes ago.

I have the time because I'm between contacts, and with the recession in Australia, s elsewhere, I only see about 1 new job ad per month, which is scary.

Other than that, I've been answering a huge number of emails from an American academic moving up from Perl 4, who is writing a CGI script with CGI::Application, CGI::Session, and Rose.

Then besides cleaning up my own modules, I having a months-long fight with Mark Stosberg who, despite all the good things he's done, is determined to push thru a patch to CGI::Session which would see code to save sessions to disk, being pushed out of CGI::Session into every program using that module. It's the auto-flush code in the destructor. Madness! He has a blind spot about this one.

[1] http://courtnetwork.com.au/

[2] http://goodcompany.com.au/

Hi Andy

I forgot to mention. Another project I work on thru goodcompany is advising which software to use (i.e. Open Source) for a group of Karen nationals who live in Thailand [because the psychopaths who run Myanmar (nee Burma) are trying the exterminate them].

The refugees have about 12 non-networked computers, all running (I believe) MS Windows.

I put data into a TiddlyWiki [1] and email it to an Australian who lives close to me, to manually carry to the Karen's camp when he visits.

Only in the last couple of weeks have the gotten internet access at the camp, which is supported by the Thai government.

We live in a cruel world.

[1] http://tiddlywiki.org/wiki/Main_Page

Great idea, Andy! I had more than I wanted to put in a comment, so I wrote my own blog post about it.

Well, I've worked on XML-Grammar-Fiction/Screenplay a lot recently. (I've merged the two modules). I had to forward port the changes in X-G-Fiction into X-G-Screenplay and then merge the two codebases into a few base classes and two specialised sub-classes. Then I merged different parts. While there were still some things I wanted to do in my ongoing clean-ups, I decided to upload version 0.1.0 to CPAN as it is, in order to get some CPAN testing, to "release early, release often" and because perfect is the enemy of good. I indeed got some CPAN testers failures which I have since hopefully resolved.

Most of my other CPAN modules are now in deep maintenance mode until I find features that I need or someone else requests. However, I've been monitoring some Perl help channels such as Freenode's #perl or beginners@perl.org and helping people with their ongoing Perl problems, which involved writing many small portions of code.

A bit off-topic from the question of this post, but I took a break from working on Perl code per-ce and started working on incorporating a new feature, which I nicknamed "flares" to Freecell Solver. I was able to split the code into many commits, each one passing all the existing and possibly new tests (some of which are written in Perl 5). Back in the early Freecell Solver 2.8.x-or-below-days, when I was less careful and methodical, I would have just written it in one swoop and then spend many fun hours with gdb trying to isolate and correct many bugs. But now I know better than to do that.

Today I've written some text analysis logic in ANSI C, while using only mostly standard libc/libm functions and really wished I could have done it in Perl. I wrote and refactored some testing code in Python/PyTAP, because I needed ctypes to interface with the binary shared library. In the course, I've written some pretty complex Test-Count (= a CPAN module to keep track of TAP tests' counts) code (and enjoyed the fact that I can source variable calculations from common modules, which I've added for a previous project (which I don't recall what it is now.)) I also made use of a radix tree building and compiling Perl 5 program that I wrote for managing Freecell Solver's command line arguments. So it is kinda related to Perl, I guess.

Leave a comment

Job hunting for programmers

Land the Tech Job You Love, Andy Lester's guide to job hunting for programmers and other technical professionals, is available in PDF, ePub and .mobi formats, all DRM-free, as well as good old-fashioned paper.