in reply to Eating your own dog food

It's interesting. I've contributed a small number of modules to CPAN and they very much fall into two camps: those I wrote to answer a short term need, and a couple that it turns out I keep coming back to.

Of interest (to me anyway) is Video::Dumper::QuickTime which has only recently fallen into the second camp by virtue of a work mate prompting me to dig it out to solve a rather different problem than first envisaged. The module facilitates pulling apart movie files. It turns out QuickTime is something of a misnomer as it actually works for many of the standard movie file formats. We needed to investigate how subtitle tracks were being managed for a tool we were writing and Video::Dumper::QuickTime turned out to be just the tool to do that. Then we found we needed to make a minor post-processing edit to the movie file, and it further turned out that a trivial class derived from the module's class did what we needed! To say I was a somewhat pleased may perhaps have been understating the case a little!

The module that I use all the time is Win32::MSI::HighLevel which provides a wrapper around the Windows MSI installer API. The module is a vital part of our automated build system and has had a reasonable amount of attention. I find it pleasing that other people have reported bugs in it. At least that means that half a dozen other people have at least tried to use it hard enough to encounter bugs! I'm slightly worried by the fact that some of those bugs have been reported by big military manufacturers and space agencies.

The last "dog food" module is one that I have "in production". Win32::PEFile was written initially to provide access to version information in "Portable Executable" files - Windows .exe and .dll files and other files of that format. In some future iteration of the production system that uses it I need to be able to edit a PE file, at least to the extent of adding a cryptographic signature to it. What makes that an interesting exercise is that the signing has to be done on a Linux box for a Windows executable file. The module is pure Perl, cross-platform and endien agnostic (at least in principle - I've not got a big endien machine to test it on).

The rest of my CPAN modules are very much of the short term interest sort. Some of them I've intended to go back and have a play with because they were fun, but unless someone files a bug report or feature request for them, I probably won't get around to it.

I do find though, that even for the small interest modules I've written and contributed to CPAN, the payback of getting a few other people using the modules and reporting bugs (along with fixes in a few cases) is quite worth while and does justify the effort of a little polishing and placing them in CPAN (even in the eyes of the boss for, as it happens, all the "dog food" ones).

True laziness is hard work

Replies are listed 'Best First'.
Re^2: Eating your own dog food
by locked_user sundialsvc4 (Abbot) on Apr 05, 2011 at 17:54 UTC

    I’m slightly worried by the fact that some of those bugs have been reported by big military manufacturers and space agencies.

    I likewise briefly wondered why the Norwegian Department of Defense bought =CLASSIFIED= copies of a product that I wrote.   (But I sold it to them anyway.)

      Yeah, i'm in a similar (but yet a bit different) situation: I work for a big automotive supplier, helping to build 4x4 vehicles. So, in effect, my boss and my end customers pay me to help them pollute the planet.

      Now, i myself don't even own a car anymore - i decided to ride a bike and use public transportation for longer trips. (Talk about using your own products...)

      Well, from what i see, all we can do is to promote responsible use of our products. But ultimately, what the customer does with that products is out of our control... Even if the brick manufacturer makes bricks so customers can build houses, the customer can still use that brick to kill someone. What can the brick manufacturer do about it... except to continue making bricks and putting food on the table for his family.

      I think that is the true price of having a free, open market, where the only thing that counts is shareholder value.

      Don't use '#ff0000':
      use Acme::AutoColor; my $redcolor = RED();
      All colors subject to change without notice.

        Well, I didn’t mean to make a political statement here (and, perhaps, neither did you).   (And if anybody else wants to, “let’s not.”)   Government agencies use a lot of computers and databases, and “defense stuff” is one of their many legitimate concerns.   But it does make you ... wonder ... sometimes.

Re^2: Eating your own dog food
by Jenda (Abbot) on Apr 07, 2011 at 13:38 UTC

    The effort you put into polishing the code and updating the docs before a planned release to CPAN is worth while even if in the end you do not release the module.

    If you know someone else will look at your code and read your docs, you generally do a better job. Especially with the docs.

    Jenda
    Enoch was right!
    Enjoy the last years of Rome.