killed dh_testversion
[filters.git] / README
CommitLineData
cd3ff89e 1This is a collection of filters to do all sorts of strange things to text.
2B1ff, the Swedish Chef, and an eleet filter are included.
7e3afbba 3
cd3ff89e 4Since the original versions of these filters have copyright problems, I have
5done a "clean room" re-implementation of the original lex filters in perl. I
6did this without looking at the original code to the filters at all, I
7simply observed their output and drew my own conclusions, and wrote my own
8code. Then I compared the output of the original and new filters when ran on
9large bodies of text, and fixed the things I had missed.
7e3afbba 10
cd3ff89e 11Here are the results of my investigations of how the filters work:
7e3afbba 12
cd3ff89e 13eleet:
14 This is the simplest filter to figure out. The letters a-z of
15 the alphabet are replaced with the following letters:
16 4 b c d 3 f g h 1 j |< l /\/\ /\/ 0 p q r 5 + u \/ \/\/ >< y z
17 Note that the equivalent translation is done on upper-case letters.
7e3afbba 18
cd3ff89e 19chef:
20 Personally my favorite filter. This took a bit of work to figure
21 out, and I doubt I have everything correct. Note that due to a bug
22 or an odd feature of the original program, it doesn't seem to think
23 that the first letter of the first word is really the first letter
24 of a word and so some of the words below don't trigger for that first
25 word. I did not emulate this behavior because I think it's probably a
26 bug.
7e3afbba 27
cd3ff89e 28 The word "bork" is never changed, no matter what any of these
29 rules may say. Neither is "Bork".
7e3afbba 30
cd3ff89e 31 The following translations only happen to letters that are the first
32 letter of a word of at least 2 letters in size:
33 o -> oo
34 O -> Oo
7e3afbba 35
cd3ff89e 36 These happen to letters that are not the last letter of a word:
37 a -> e
38 A -> e
7e3afbba 39
cd3ff89e 40 These translations only happen if the letter is not the first letter
41 of a word:
42 f -> ff
43 i -> ee (but only the first `i' per word)
44 o -> u
45 u -> oo
7e3afbba 46
cd3ff89e 47 These translations always happen:
48 v -> f
49 V -> F
50 w -> v
51 W -> V
52 an -> un
53 An -> Un
54 au -> oo
55 Au -> Oo
56
57 Any occurrence of "e" at the end of a word is changed to "e-a".
58
59 Any occurrence of "e" and the beginning of a word is changed to "i".
60 Same with capitals.
61
62 Any occurrence of "the" is changed to "zee", any occurrence of
63 "The", to "Zee".
64
65 Any occurrence of "tion" in a word, to "shun".
66
67 Any "th" at the end of a word is changed to "t".
68
69 Any "en" at the end of a word is changed to "ee".
70
71 Any "ow" at the end of a word is changed to "oo".
72
73 And of course, after any `.', `?', or `!' that is at the end of a
74 line, the Chef prints out a new line, and then the famous
75 "Bork Bork Bork!", and then another newline.
76
77 Known bugs in this implementation:
78 - says "frunch", not "french".
79 - still quite buggy in general.
80
81b1ff:
82 Unlike the other filters, b1ff does not try to be an exact duplicate
83 of its predecessor.
84
85 After upper-casing everything, b1ff does some word and sub-word
86 substitutions, most of them misspellings.
87
88 B1ff also changes punctuation - All commas become periods; all
89 semicolons, commas. Question and exclamation marks are changed to
90 things like "!!!!1!" and "?!?!?!". It looks like the original filter
91 decided how long a sequence to print based on the text input before
92 the end of sentence. I took a simpler route and just randomized it.
93
94Written by Joey Hess <joey@kitenet.net>
This page took 0.016498 seconds and 4 git commands to generate.