Re: OT/advice: spam (wasRe: Klingon speaker needed in Portland, Oregon)
| From: | Wesley Parish <wes.parish@...> | 
| Date: | Thursday, May 22, 2003, 9:54 | 
That, and my "..." method should be most useful!!!
Way to go, Czhang!!!  There is always Travesty Generators - see below - which
should take some of the labour-intensive details off your back.
But great - it's always great to see good conquer evil.
Wesley Parish
On Thursday 22 May 2003 04:50 am, you wrote:
> In a message dated 2003:05:20 03:14:01 PM, sally caves writes:
> >You really have to check your email every day, maybe even twice, to keep
> >it from piling up.  AND HALF OF IT IS SPAM!
>
>     I have greatly reduced my spam-to-real-email ratio (something like 1
> spam to every 40-50 real emails) by a rather
> funny-but-once-labour-intensive method: I forward "mutated/cut-up" spam
> from Spammer A to Spammer B, spam from B to C, C to D, etc.. (Also, I abuse
> Babelfish to translate their spam into obscure languages and "collage" them
> with the originals).
>
>     I said "once-labour-intensive", right? Well, after doing the above
> trickster actions for like 2-3 months, it seems I am _persona non gratis_
> to most spammers. I even got some rather nasty email replies about how I am
> "not the least bit funny" or "Very funny, wise-ass" or that I am an
> "immature pain in the ass" or that I need to "get a life" (LMAO).
>     After my semi-automated deluge of mutilated emails, one porno-spammer
> wrote me to inform me that the porno-(web)ring he/she belongs to has put my
> email address at the very top of their "Top Not Wanted List" which is also
> known as their "hate-list" (as to opposed to their "bait-list").
>
>      ::mock-swoons:: I absolutely looooove this kind of fan mail ;)
>
> ---
> Hanuman Zhang, spamicidist
>
>     "Excess is excrement. Excrement retained in the body is poison." -
> Ursula Le Guin
>
>     "A man's character is determined by how hard he will fight for what he
> believes in." - Aben Kandel
>
> => To Thine Own Self Be True <=
#!/usr/local/bin/perl5
##########################################################
#
# travesty2.pl
#
# a third version of travesty to try to speed things up
# by Ron Starr
#
#
# Generates a text matching letter frequency of input text.
#
#
# Program does no error checking--you're on your own.
#
#
# Command-line options:
#       -g <number>     The granularity--the number of letters to use to
determine
#                       the next letter. Defaults to 3.
#       -o <number>     The number of letters to output. Defaults to 100.
#
#
# Program reads from standard input.
# All output is to standard output.
#
#
# Revision History
#       05/16/00        First version started.
#       05/18/00        ftravesty - attempt to do things w/
#                       integers
#       05/21/00        Version that constructs the table
#
###########################################################
use Getopt::Std;
getopts ("g:o:");
# Set the max letters of output.
$MAXLETTERS = ($opt_o)? $opt_o : 100;
# Set the granularity
$GRAIN = ($opt_g)? $opt_g : 3;
if( $GRAIN < 1 ) { die "granularity must be >= 1\n"; }
# Set number of letters per line in output
$LETTERS_LINE = 70;
#
# pull in the text, break it into letters, put in letter array
#
while(<>) {
        chop;
        $text = $_ . " ";
        #
        # regularize whitespace in order to split text into letters
        #
        $text =~ s/^\s+//g; # remove leading blanks
        $text =~ s/\s+/ /g; # convert any whitespace to blanks
        $text =~ s/ +/ /g;  # eliminate any multiple blanks...
        push @textletters, split (//, $text); # split text into letters
}
#
# generate the frequency table
#
# calculate outer loop limits
$loopmax = $#textletters - ($GRAIN - 2) - 1;
# go through all lists of $GRAIN letters in the text
for ($j = 0; $j < $loopmax; $j++) {
        $key_string = "";
        for ($k = $j; $k < $j + $GRAIN; $k++) {
                # build the key string (GRAIN - 1) letters
                $key_string .= $textletters[$k];
        }
        $frequency_table{$key_string} .= $textletters[$j + $GRAIN];
}
# dump the table for debugging
# foreach $key (sort keys %frequency_table) {
#        print "$key"," = ",$frequency_table{$key},"\n";
# }
#
# generate the travesty
#
# set a buffer to nada
@buffer=();
# start with a seed of the first $GRAIN letters from the text
for ($i = 0; $i < $GRAIN; $i ++) {
        push @lastletters, $textletters[$i];
        push @buffer, $textletters[$i];
}
# now, do the actual generation
for ($i = 0; $i < $MAXLETTERS; $i++) {
        # see if the current last letters are in the table
        # construct the key string from the lastletters
        $key_string = "";
        for ($j = 0; $j < $GRAIN; $j++) { $key_string .= $lastletters[$j]; }
        if ( exists $frequency_table{$key_string} ) {
                # we have possible letters
                # split the list of letters that follow the key string
                @possible = split "", $frequency_table{$key_string};
                # select the next letter
                $nextletter = $possible[rand @possible];
                # add letter to buffer and dump buffer if ready for output
                push @buffer, $nextletter;
                if($#buffer >= $LETTERS_LINE && $buffer[$#buffer] eq " ") {
                        print @buffer,"\n";
                        @buffer=();
                }
                # adjust the lastletters array
                for($l = 0; $l < $GRAIN - 1; $l++) { $lastletters[$l] =
$lastletters[$l+1]; }
                $lastletters[$GRAIN - 1] = $nextletter;
        }
        else {  # we drew a blank
                # re-seed the generation with the first $GRAIN letters from
the text
                @lastletters = ();
                for ($l = 0; $l < $GRAIN; $l++) {
                        push @lastletters, $textletters[$l];
                        push @buffer, $textletters[$l];
                }
        }
} # end $i loop
if($#buffer >= 0) { print @buffer, "\n"; @buffer = (); }
exit (0);
--
Mau e ki, "He aha te mea nui?"
You ask, "What is the most important thing?"
Maku e ki, "He tangata, he tangata, he tangata."
I reply, "It is people, it is people, it is people."