This is "speak" which was originally written by Dave Buxbaum and later
modified by Ken Marx and Nick Johnson.  See CHANGELOG for Nick's changes.
Permission has been obtained from Dave and Ken to distribute the code under
the BSD license.

Some notes from Ken Marx:

    Speak is just a barely glorified [sic!] mad-libs. It's just
    that the effect is so nice. The fact that its crude design so
    well mimics the real world speak, beautifully reflects just how
    insipid the real stuff is. Anything more elegant would give more credit
    than is due...
    
    Some friends of mine have also played with variants on this -
    speak-lexicon generators for different fields (e.g., biology) etc.
    A goldmine for cynical linguists.
    
Here are the contents of the original tarball's "speak.info.mail" file:

-----------------------------<snip>--------------------------------------------

Please excuse the form-letter:

This is all originally from dave buxbaum's "speak" program,
with a few features that i've added since.

(Also see: http://tesla.csuhayward.edu/cgi-bin/speak.cgi)

It constructs random phrases of the form:

	<power-leadin> <action> and <statement-of-work> <noun>

And an occasional exclamatory statement of the form:

	<statement-of-work> <noun>!!

The synopsis for speak is:

	speak [-n] [-split] [-search <regex>] [N]

where 'N' is the number of phrases to construct (default is 1).  

The '-split' option tells speak to break its output into separate lines instead
of the default which is to output one line that may wrap over the end of a
terminal's display line. (This is useful for things such as sigdaemon, 
described below.)

The '-search <regex>' tells speak to look for speak phrases containing
a given regular expression. It's crude: speak simply continues to generate
internal phrases until a match is found, at which point the matching
phrase is printed. Speak gives up after about 10,000 tries.

The '-n' option conveniently numbers the output lines (in the manner
of 'cat -n' more or less).

For example:

    speak -n -split -search "cow|duck" 10

will hopefully print 10 numbered speak phrases containing the words cow 
and/or duck.  Each phrase will contain newlines on or before the 80th 
column of output.

Speak has it's own internal lists, but it will use external lists if you put
a "setenv SPEAKPATH ~kmarx/lib" (or whatever) in your environemnt.
that way you can add new shit to your speak lists without recompiling.
Note that this is not a fully enabled search path - only one directory
can be specified.

You can find most recent source for speak in:

    ~kmarx/src/speak/{speak,regex}.c	# Makefile there has entries for these

And pharse lists in:

    ~kmarx/lib/speak.{nouns,actions,leadins,wrk}

Binaries are:

    ~kmarx/bin/{solaris,sunos}/speak	# pick your platform

Also, ~kmarx/.elm/sigdaemon is a stupid shell script I wrote
that I run in background. Every N seconds it grabs the first line
from my .signature file and adds one line of 'speak' output.
You need to use elm as your email program for this to work. 
I haven't investigated tag line stuff for other mailers, so you're
on your own there. Elm is easy to use:

Just type elm and see what happens (typing 'o' for options and '>' for
save config, will give you an elmrc file to edit for enabling the 
.signature stuff. You're welcome to look at mine in ~kmarx/.elm/elmrc.)

Hope somebody's holding your corporate ladder for you,

k.
-------------------------------------------------------------------------------
