Reposted from
a blog entry
by Mark Stosberg

Today Melody was announced
as a fork of the Perl-based Movable
Type platform
. I helped the Melody project as it prepared to
launch, in part advising on how to best to relate to the Perl
community.  One of the stated interests of Melody is to refactor
the project to use CGI::Application,
which I maintain. Tim Appnel has already spelled out a vision of
what a “CPANization” of Movable Type might look like
, and I’ve
looked in depth at what the initial
steps towards using CGI::Application
could be.

My own vision for Melody is a code base that’s very focused on
publishing and content management, with all the infrastructure
outsourced to CPAN modules
that are well-written, well-documented, and well-tested.  The
collaboration between Melody and CPAN would be a two-way code flow.
While there are more CPAN modules that Melody could make use of,
there are number of pieces of Melody which should be packaged as
independent modules on their own and released to CPAN.

One example is the great “dirification” that already exists in
Movable Type. This is the functionality that turns any given string
of words into a reasonable representation in URLs. It seems like
an easy problem on the surface, but Movable Type has a sophisticated
solution that takes into account what it means to do this well
across many different languages. I also couldn’t find any existing
CPAN module which already takes on this problem space, so I started
to extract this out of Movable Type myself and published
a draft of String::Dirify
. For that initial release, I ripped
out all the fancy multi-language support, and there is still more
significant work to be done to untangle this layer from from Movable
Type. (If you want to pick up that project and work on it, there’s
also some
discussion of testing String::Dirify
).

While Movable Type already had an open source release, I expect
Melody to have  a more adventurous evolution, and I look forward
to it becoming a shining star in the Perl community, not just for
the exterior functionality, but also because internals have an
opportunity to become an example of best practices.

Mark Stosberg
has been using programming Perl for the web for over a decade. He
is the Principal Developer at Summersault and maintains
several CPAN modules including
Titanium and
Data::FormValidator.