1This is "speak" which was originally written by Dave Buxbaum and later 2modified by Ken Marx and Nick Johnson. See CHANGELOG for Nick's changes. 3Permission has been obtained from Dave and Ken to distribute the code under 4the BSD license. 5 6Some notes from Ken Marx: 7 8 Speak is just a barely glorified [sic!] mad-libs. It's just 9 that the effect is so nice. The fact that its crude design so 10 well mimics the real world speak, beautifully reflects just how 11 insipid the real stuff is. Anything more elegant would give more credit 12 than is due... 13 14 Some friends of mine have also played with variants on this - 15 speak-lexicon generators for different fields (e.g., biology) etc. 16 A goldmine for cynical linguists. 17 18Here are the contents of the original tarball's "speak.info.mail" file: 19 20-----------------------------<snip>-------------------------------------------- 21 22Please excuse the form-letter: 23 24This is all originally from dave buxbaum's "speak" program, 25with a few features that i've added since. 26 27(Also see: http://tesla.csuhayward.edu/cgi-bin/speak.cgi) 28 29It constructs random phrases of the form: 30 31 <power-leadin> <action> and <statement-of-work> <noun> 32 33And an occasional exclamatory statement of the form: 34 35 <statement-of-work> <noun>!! 36 37The synopsis for speak is: 38 39 speak [-n] [-split] [-search <regex>] [N] 40 41where 'N' is the number of phrases to construct (default is 1). 42 43The '-split' option tells speak to break its output into separate lines instead 44of the default which is to output one line that may wrap over the end of a 45terminal's display line. (This is useful for things such as sigdaemon, 46described below.) 47 48The '-search <regex>' tells speak to look for speak phrases containing 49a given regular expression. It's crude: speak simply continues to generate 50internal phrases until a match is found, at which point the matching 51phrase is printed. Speak gives up after about 10,000 tries. 52 53The '-n' option conveniently numbers the output lines (in the manner 54of 'cat -n' more or less). 55 56For example: 57 58 speak -n -split -search "cow|duck" 10 59 60will hopefully print 10 numbered speak phrases containing the words cow 61and/or duck. Each phrase will contain newlines on or before the 80th 62column of output. 63 64Speak has it's own internal lists, but it will use external lists if you put 65a "setenv SPEAKPATH ~kmarx/lib" (or whatever) in your environemnt. 66that way you can add new shit to your speak lists without recompiling. 67Note that this is not a fully enabled search path - only one directory 68can be specified. 69 70You can find most recent source for speak in: 71 72 ~kmarx/src/speak/{speak,regex}.c # Makefile there has entries for these 73 74And pharse lists in: 75 76 ~kmarx/lib/speak.{nouns,actions,leadins,wrk} 77 78Binaries are: 79 80 ~kmarx/bin/{solaris,sunos}/speak # pick your platform 81 82Also, ~kmarx/.elm/sigdaemon is a stupid shell script I wrote 83that I run in background. Every N seconds it grabs the first line 84from my .signature file and adds one line of 'speak' output. 85You need to use elm as your email program for this to work. 86I haven't investigated tag line stuff for other mailers, so you're 87on your own there. Elm is easy to use: 88 89Just type elm and see what happens (typing 'o' for options and '>' for 90save config, will give you an elmrc file to edit for enabling the 91.signature stuff. You're welcome to look at mine in ~kmarx/.elm/elmrc.) 92 93Hope somebody's holding your corporate ladder for you, 94 95k. 96------------------------------------------------------------------------------- 97