Coy.3pm

Langue: en

Version: 2007-07-30 (debian - 07/07/09)

Section: 3 (Bibliothèques de fonctions)

NAME

     Coy - like Carp only prettier
 
 

SYNOPSIS

     # In your application:
     # ====================
 
 
             use Coy;
 
 
             warn "There seems to be a problem";
 
 
             die "Looks like it might be fatal";
 
 
     # You can add vocab in the $HOME/.coyrc file:
     # ===========================================
 
 
             noun RESET; # REMOVE EXISTING noun VOCAB
                         # WORKS FOR OTHER SPECIFIERS TOO
 
 
             noun {
                         wookie =>
                         {
                                 category => [ Sentient ],
                                 sound    => [ "roars", "grunts", "bellows" ],
                                 act      =>
                                 {
                                         sits   => { location => Arborial },
 
 
                                         fights => { minimum => 2,
                                                     association => "argument",
                                                   },
                                 },
                         },
 
 
                  };
 
 
             category {
                         Sentient =>
                         {
                                 act =>
                                 {
                                         quarrels =>
                                         {
                                                 associations => "argument",
                                                 location => Terrestrial,
                                                 minimum => 2,
                                                 synonyms => [qw(bickers argues)],
                                         },
                                         laughs =>
                                         {
                                                 associations => "happy",
                                                 location => Terrestrial,
                                                 non_adjectival => 1,
                                         },
                                 },
                         }
                      };
 
 
             personage "R2D2";
             personage "Darth Vader";
 
 
             place "Mos Eisley";
             place "the Death Star";
 
 
             tree "Alderaan mangrove";
             fruit_tree "Wookie-oak";
 
 
     # You can also select a different syllable counter via .coyrc
     # ===========================================================
 
 
             use Lingua::EN::Syllables::syllable;
             syllable_counter  "Lingua::EN::Syllables::syllable";
 
 
     # or
 
 
             use Lingua::EN::Syllables::syllable;
             syllable_counter  \&Lingua::EN::Syllables::syllable;
 
 
     # or
 
 
             syllable_counter  sub { return 1 };  # FAST BUT INACCURATE
 
 

DESCRIPTION

         Error messages 
         strewn across my terminal. 
         A vein starts to throb.
 
 
         Their reproof adds the 
         injury of insult to 
         the shame of failure.
 
 
         When a program dies 
         what you need is a moment 
         of serenity.
 
 
         The Coy.pm 
         module brings tranquillity 
         to your debugging.
 
 
         The module alters 
         the behaviour of C<die> and 
         C<warn> (and C<croak> and C<carp>).
 
 
         It also provides 
         C<transcend> and C<enlighten> -- two 
         Zen alternatives.
 
 
         Like Carp.pm, 
         Coy reports errors from the 
         caller's point-of-view.
 
 
         But it prefaces 
         the bad news of failure with 
         a soothing haiku.
 
 
         The haiku are not 
         "canned", but are generated 
         freshly every time.
 
 
         Once the haiku is 
         complete, it's prepended to 
         the error message.
 
 
         Execution of 
         the original call to
         C<die> or C<warn> resumes.
 
 
         Haiku and error
         message strew across my screen. 
         A smile starts to form.
 
 

EXTENDING THE VOCABULARY

         Any code placed in
         "$ENV{HOME}/.coyrc"
         runs at compile-time.
 
 
         You can use that file
         to extend Coy.pm's
         vocabulary.
 
 
         The "SYNOPSIS" at
         the start of this POD shows how
         you might set it up.
 
 
         (Eventually
          this section will detail the
          full mechanism.)
 
 

CHANGING THE SYLLABLE COUNTER

         Real haiku often <BR>
         have imperfect syllable<BR>
         counts.
 
 
         The deficiencies of<BR>
         Coy's inbuilt counter are thus<BR>
         artistic virtues.
 
 
         But some connoisseurs<BR>
         demand their syllable counts<BR>
         be always exact.
 
 
         So if you don't like<BR>
         the syllable counter, Coy<BR>
         let's you replace it.
 
 
         Coy provides a sub
         called C<syllable_counter> for
         that very purpose.
 
 
         It is passed a sub
         reference. That sub is then used
         to count syllables.
 
 
         You can also pass
         the sub's I<name> (that is, pass a
         symbolic reference).
 
 
         The new counter sub
         should take a string and return
         its syllable count.
 
 
         C<syllable_counter>
         can be called from your code, or
         from .coyrc.
 
 

BUGS AND LIMITATIONS

         In its current form, 
         the module has four problems 
         and limitations:
 
 
         * Vocabulary: 
           The list of nouns and verbs is 
           too small at present.
 
 
           This limits the range 
           of topics that the haiku 
           produced can cover.
 
 
           That in turn leads to 
           tell-tale repetition (which 
           fails the Turing test).
 
 
           Extending the range 
           of words Coy.pm can 
           use is no problem
 
 
           (though finding the time 
           and the creativity 
           required may be :-).
 
 
           Users of Coy are
           encouraged to add their own
           vocabulary.
 
 
           (See the "SYNOPSIS",
            and also "EXTENDING THE
            VOCABULARY").
 
 
         * Associations: 
           The vocabulary has 
           too few topic links.
 
 
           Hence it's often not 
           able to find relevant 
           words for a message.
 
 
           This leads to haiku 
           utterly unrelated 
           to the error text.
 
 
           Again, there is no 
           technical difficulty 
           in adding more links:
 
 
           Defining enough 
           associations isn't 
           hard, just tedious.
 
 
           User-specified
           vocabularies can solve
           this problem as well.
 
 
         * Limited grammar: 
           The number of syntactic 
           templates is too small.
 
 
           This leads to haiku 
           that are (structurally, at 
           least) monotonous.
 
 
           Yet again, this needs 
           no technical solution, 
           just time and effort.
 
 
           Of course, such enhanced 
           templates might require richer 
           vocabulary.
 
 
           For example, verb 
           predicates would need extra 
           database structure:
 
 
           Each verb entry would 
           have to be extended with 
           links to object nouns.
 
 
         * Syllable counting: 
           This is perhaps the major 
           problem at present.
 
 
           The algorithmic 
           syllable counter is still 
           being developed.
 
 
           It is currently 
           around 96% 
           accurate (per word).
 
 
           This means that correct 
           syllable counts for haiku 
           can't be guaranteed.
 
 
           Syllable counts for 
           single words are correct to 
           plus-or-minus 1.
 
 
           In a multi-word 
           haiku these errors cancel 
           out in most cases.
 
 
           Thus, the haiku tend 
           to be correct within one 
           or two syllables.
 
 
           As the syllable 
           counter slowly improves, this 
           problem will abate.
 
 
           Alteratively,
           you can choose to use your own
           syllable counter.
 
 
           (See above in the
            section titled "CHANGING THE
            SYLLABLE COUNTER".)
 
 

AUTHOR

         The Coy.pm
         module was developed by
         Damian Conway.
 
 
         Copyright (c) 1998-2000, Damian Conway. All Rights Reserved.
       This module is free software. It may be used, redistributed
       and/or modified under the terms of the Perl Artistic License
            (see http://www.perl.com/perl/misc/Artistic.html)