Code Galore.

| No Comments

While the posts to this weblog haven't been terribly interesting or frequent lately, I've been quite busy coding away. Here is a lot of what I've done that is now public.

CPAN Modules

The links in this section are to the latest version in CPAN as of this post.

Text::BIP 0.51

The Blosxom Infrastructure Package (or simply BIP), is an object-oriented module for facilitating event-based file system indexing. Release back in January after almost a year of internal evolution and refactoring, the purpose of this module is to provide a lightweight mechanism for facilitating event-based file system indexing. In many ways it's File::Find with a slightly more specific and object-oriented interface.

When Rael Dornfest released blosxom, his lightweight yet feature-packed weblog application, I was intrigued by how much could be done with so little. The one feature that made the biggest impression on me is how blosxom used the file system as a simple hierarchical document database. I began to apply this technique in a number of my scripts whose scope was outside of the realm of the traditional weblog uses blosxom was designed to handle. To better organize and reuse my code, I created a module that implemented an extensible framework that I could begin dropping into my scripts. The result became BIP.

Text::Tiki 0.73

TikiText is a structured text formatting notation that primarily descends from wiki and plain text email conventions. It strives to more intuitive then common wiki notations by using the least amount of characters from plain text. It is easy to learn to learn the basics, but provides richer functionality for those who want to dive in. Like most text formatting engines, Tiki abstracts users from needing to know or understand markup whenever possible. It differs in that it makes valid and semantical XHTML markup easy and lets CSS do its job.

Besides internal refactoring and bug fixes, 0.7x includes functionality and hooks for wiki linking. While wikis are a part of TikiText's lineage, it was never my intention to create a new Wiki notation or tool. Based on the feedback I received from the initial releases, that changed.

XML::RSS::Parser 2.12

I released a major refactoring and enhancement to my liberal object-oriented parser for RSS feeds. Version 2.x has what I think is a much better and simpler object model then the short lived 1.x release. It supports XPath-esque queries as of 2.1.

XML::RAI 0.1

The RSS Abstraction Interface or RAI (said ray) is a bit of an experimental module for me. It is an object-oriented interface to XML::RSS::Parser trees that abstracts the user from handling namespaces, overlapping and alternate tag mappings that is common in the RSS space. Its only a 0.1 release, but I'm using it internally and it seems to be working quite well. It will be interesting to see if it lives up to its mission in the wild.

Net::Trackback 0.991

This module is an object-oriented interface for developing Trackback clients and servers. The big change in this version is that it has been fully OO-ized and hence more adaptable. This previous version (which had an upper case B) was a crude hack of the standalone Trackback client Ben and Mena Trott released. Recently I had to use it and had forgotten how poorly it was so I HAD TO rewrite it.

XML::Parser::Style::Elemental 0.40

This module is a slightly more advanced and flexible object tree style for XML::Parser. I wanted something simple and virtually transparent, but wasn't satisfied with the built-in styles of XML::Parser. I needed a reference to a node's parent and namespace support. In developing my code, I decided to go the distance and made it a reusable module I could distribute.

MT Code

mt-closure

A utility script for closing comments and pings open for a specified period of time. Is a pure MT solution and is not tied to a specific database. Not rigorously tested. (Treat as beta for now.)

XSearch 0.2

The built in search functionality in MT does fine, but at times I've found myself needing something more or different in my work. What I've wished for was a pluggable search facilities like MT's template engine.

In scratching my own itch, I've thrown down the gauntlet and finally done something about it. I've created MT::XSearch an extensible framework for creating search plugins for Movable Type.

Announced on the mt-dev mailing list, this framework is for coders. My hope is that other coders will create various search and application functionality off of this framework.

Up on deck is adding some type of template tags for navigating through large search results.

mt-publish-on 0.11

Nothing really new here, but I thought I'd mention that I fixed a bug where dependent pages (such as an index page) were not getting rebuilt with the newly published entry.

<p>While the posts to this weblog haven&#39;t been terribly interesting or frequent lately, I&#39;ve been quite busy coding away. Here is a lot of what I&#39;ve done that is now public.</p>
<h3><a id="CPANModules"></a>CPAN Modules</h3>
<p><em>The links in this section are to the latest version in CPAN as of this post.</em></p>
<dl>
<dt><a href="http://search.cpan.org/dist/Text-BIP/">Text::BIP 0.51</a></dt>
<dd>
<p>The Blosxom Infrastructure Package (or simply BIP), is an object-oriented module for facilitating event-based file system indexing. Release back in January after almost a year of internal evolution and refactoring, the purpose of this module is to provide a lightweight mechanism for facilitating event-based file system indexing. In many ways it&#39;s File::Find with a slightly more specific and object-oriented interface.</p>
</dd>
<dd>
<p>When Rael Dornfest released blosxom, his lightweight yet feature-packed weblog application, I was intrigued by how much could be done with so little. The one feature that made the biggest impression on me is how blosxom used the file system as a simple hierarchical document database. I began to apply this technique in a number of my scripts whose scope was outside of the realm of the traditional weblog uses blosxom was designed to handle. To better organize and reuse my code, I created a module that implemented an extensible framework that I could begin dropping into my scripts. The result became BIP.</p>
</dd>
</dl>
<dl>
<dt><a href="http://search.cpan.org/dist/Text-Tiki/">Text::Tiki 0.73</a></dt>
<dd>
<p>TikiText is a structured text formatting notation that primarily descends from wiki and plain text email conventions. It strives to more intuitive then common wiki notations by using the least amount of characters from plain text. It is easy to learn to learn the basics, but provides richer functionality for those who want to dive in. Like most text formatting engines, Tiki abstracts users from needing to know or understand markup whenever possible. It differs in that it makes valid and semantical XHTML markup easy and lets CSS do its job.</p>
</dd>
<dd>
<p>Besides internal refactoring and bug fixes, 0.7x includes functionality and hooks for wiki linking. While wikis are a part of TikiText&#39;s lineage, it was never my intention to create a new Wiki notation or tool. Based on the feedback I received from the initial releases, that changed.</p>
</dd>
</dl>
<dl>
<dt><a href="http://search.cpan.org/dist/XML-RSS-Parser/">XML::RSS::Parser 2.12</a></dt>
<dd>
<p>I released a major refactoring and enhancement to my liberal object-oriented parser for RSS feeds. Version 2.x has what I think is a much better and simpler object model then the short lived 1.x release. It supports XPath-esque queries as of 2.1. </p>
</dd>
</dl>
<dl>
<dt><a href="http://search.cpan.org/dist/XML-RAI/">XML::RAI 0.1</a></dt>
<dd>
<p>The RSS Abstraction Interface or RAI (said <q>ray</q>) is a bit of an experimental module for me. It is an object-oriented interface to XML::RSS::Parser trees that abstracts the user from handling namespaces, overlapping and alternate tag mappings that is common in the RSS space. Its only a 0.1 release, but I&#39;m using it internally and it seems to be working quite well. It will be interesting to see if it lives up to its mission in <q>the wild.</q></p>
</dd>
</dl>
<dl>
<dt><a href="http://search.cpan.org/dist/Net-Trackback/">Net::Trackback 0.991</a></dt>
<dd>
<p>This module is an object-oriented interface for developing Trackback clients and servers. The big change in this version is that it has been fully <q>OO-ized</q> and hence more adaptable. This previous version (which had an upper case B) was a crude hack of the standalone Trackback client Ben and Mena Trott released. Recently I had to use it and had forgotten how poorly it was so I HAD TO rewrite it.</p>
</dd>
</dl>
<dl>
<dt><a href="http://search.cpan.org/dist/XML-Parser-Style-Elemental/">XML::Parser::Style::Elemental 0.40</a></dt>
<dd>
<p>This module is a slightly more advanced and flexible object tree style for XML::Parser. I wanted something simple and virtually transparent, but wasn&#39;t satisfied with the built-in styles of XML::Parser. I needed a reference to a node&#39;s parent and namespace support. In developing my code, I decided to go the distance and made it a reusable module I could distribute.</p>
</dd>
</dl>
<h3><a id="MTCode"></a>MT Code</h3>
<dl>
<dt><a href="http://www.timaoutloud.org/code/mt/index.html#mt-closure">mt-closure</a></dt>
<dd>
<p>A utility script for closing comments and pings open for a specified period of time. Is a pure MT solution and is not tied to a specific database. Not rigorously tested. (Treat as beta for now.)</p>
</dd>
</dl>
<dl>
<dt>XSearch 0.2</dt>
<dd>
<p>The built in search functionality in MT does fine, but at times I&#39;ve found myself needing something more or different in my work. What I&#39;ve wished for was a pluggable search facilities like MT&#39;s template engine.</p>
</dd>
<dd>
<p>In scratching my own itch, I&#39;ve thrown down the gauntlet and finally done something about it. I&#39;ve created MT::XSearch an extensible framework for creating <q>search plugins</q> for Movable Type.</p>
</dd>
<dd>
<p><a href="http://groups.yahoo.com/group/mt-dev/message/300">Announced on the mt-dev mailing list</a>, <strong>this framework is for coders</strong>. My hope is that other coders will create various search and application functionality off of this framework. </p>
</dd>
<dd>
<p>Up on deck is adding some type of template tags for navigating through large search results.</p>
</dd>
</dl>
<dl>
<dt><a href="http://www.timaoutloud.org/code/mt/index.html#mt-publish-on">mt-publish-on 0.11</a></dt>
<dd>
<p>Nothing really new here, but I thought I&#39;d mention that I fixed a bug where dependent pages (such as an index page) were not getting rebuilt with the newly published entry.</p>
</dd>
</dl>

Leave a comment