Randomization

From Documentation
Jump to: navigation, search

What is Randomization ?

Randomization is a special feature that allows to change the contents of a text message randomly, while retaining its meaning. For example, consider the following phrase:

Hello, I want to be your friend!

We could re-write this phrase in hundreds of different ways, while keeping the original meaning, for example:

  • Hi, would like to make friends with you!
  • How are you, need a friend?
  • Wanna make some friends? Me too!
  • etc...

The Randomization feature is designed to help you as much as possible with re-writing different messages, like in the example above.

When and why use Randomization ?

The reasons to use Randomization are very close to those discussed in the article on Impersonation. In short, some websites may be using special filtering techniques that disallow identical or similar messages. While being an important and necessary part of the spam-protection techniques, such filters have a number of disadvantages and in some cases may exhibit undesirable behavior.

Consider the following example. You have over 20 friends in your contact list (be it a social network, E-mail client or some other messaging system). You are planning a party and would like to invite all your friends. You don't like wasting time to write unique messages to each of your friends, instead you create a single template and send it to all 20. Once you click the "Send" button, the message starts its journey towards the 20 different E-mails through a number of servers and relays, each having some sort of spam-protection. Once a spam protection algorithm sees that you send the same exact message to 20 recipients, it starts wondering - could this be a spam? And it marks your message as "suspicious" or "potentially a spam". The next relay in the chain also has some sort of spam protection. It sees the "suspicious" mark and adds to it, using its own understanding of what is a spam. By the time the message gets to your recipients, it may have the "spam score" high enough for the recipient's software to reject it or put in the Spam box. We see this all the time - lots and lots of harmless and useful messages get sent to spam, and sometimes even get lost on the way, just because some spam protection algorithm decides so.

One way to work around the problem and make sure that your messages are not treated as a repeated spam, is to use Randomization. Randomization ensures that each message you send is unique and there are no two identical messages. Sounds good, but imagine how much time it would take to compose unique message for each of your friends! Fortunately, our software allows to automate this completely. You need to write the message only once, and the Randomization feature will generate as many unique instances of the message as you need.

How does it work ?

To be precise, Randomization is not a separate feature. It is rather a combination of different techniques, such as tokens and text functions.

Tokens

Token is a keyword that expands to a random phrase from the given set of phrases

In other words, a token represents a number of synonyms (phrases with the same meaning but different spelling). Each time you use a token - it is replaced by a random phrase from the list you defined.

For example, let's take a simple sentence - Hello, my friend!. Let's send it to 3 people, but make it different each time. One way to do that is to replace the word "hello" by something like "Hi", "Good day", "Nice to see you" etc. For this purpose, we create a new token. Let's give it a name "greeting". The name of the token isn't really important, because it will not affect the resulting messages. It's just for you to remember what the token is about. Next, we add 3 phrases to this token: "Hi", "Good day" and "Nice to see you". We also call these phrases token variations. Once that is done, we can reference our token in the sentence, like this:

{greeting}, my friend!

Notice how we use the token - the name is embedded into the curly braces, there are no spaces or other characters between the name of the token and the braces, and the token name is spelled exactly as we defined it, in the same exact case.

Now, each time this sentence is sent, it will be expanded to one of the following:

Hi, my friend!
Good day, my friend!
Nice to see you, my friend!

This is a very simple example and allows you to generate only 3 unique sentences. If you try to send this message to your 4th friend - the randomizer will have to repeat one of the variants, because it ran out of options. Fortunately, we can dramatically increase the number of unique sentences by adding 2nd, 3rd etc token. Each new token in the phrase greatly increases the number of unique variations. For example, if you use 3 tokens in the phrase, and each token has 5 variations, then the total number of unique phrases you can generate will be 5*5*5=125 phrases!

There are no limits on a number of variations you can define per token, or number of tokens you can use in a phrase. There are also no limits on the length of the token variation. You can tokenize few words or few pages - the choice is yours. You can also use tokens in hypertext (HTML), and use HTML inside token variations.

Another great extension of the tokens functionality is nested tokens. Nested tokens allow you to further randomize text inside token variations. There isn't any limit on the depth of such nesting.

For example, consider the following tokenized HTML message:

 <p>{preamble} 
 <p>{message}
 <p>{signature}

where the token {preamble} is defined as follows:

{greeting}
{welcome} to our online web shop!

and the tokens {greeting} and {welcome} have their own definitions, that may also contain tokens, etc.

Inline tokens (spintax)

This feature is sometimes also referred to as "text spinning" or "spintax". It's useful if you just need to quickly define a couple of variations in the text and intend to use them only once, like this:

{Hi|Hello}, how are you?

The output will be one of:

Hi, how are you?
Hello, how are you?

There is also no limit to the number of variations you can use in the inline tokens. You can use inline tokens inside regular tokens, and you can use regular tokens inside inline tokens. You can even use inline tokens inside inline tokens, without any nesting limit. So something like this will work, too:

 My {{dad|mom|{sibling}}{pet}} was looking for you!

where token {sibling} has its own variations, like "sister", "brother" etc.

Thesaurus

This feature is useful if you want to quickly add synonyms to any word, using online thesaurus.

To use the feature, you need to highlight any word in the software's editor, right-click and select "Mutate" from the drop-down menu. New window will open and the software will start looking for the synonyms. Once complete, you can select all or some synonyms from the list and add them to the "Variations" box. When you click "OK" in this box, a new token will be created for the selected word, with the selected synonyms as its variations.

Text functions

Text functions allow to generate some random text or to process text in certain way. Text function call starts with the dollar sign ($), immediately followed by the name of the function and the list of parameters in curly braces. No spaces or other symbols are allowed between the $, the name of the function and the curly braces. The names are case-sensitive. If the function does not take any parameters, then the opening curly brace is immediately followed by the closing curly brace, like this: {}. Example:

$randomchars{5}

Below are the most common errors when using text functions. These are the examples of how you should NOT be using text functions:

  • $ randomchars{5} - space between $ and function name is not allowed
  • $randomchars - text function must be followed by {} if it has no parameters
  • $randomchars {7} - space between function name and { is not allowed
  • $randomchars{ 7 } - spaces inside list of parameters are not allowed

The following text functions are currently supported (click on the function to see examples):

$randomchars{...} 
expands to a number of random letters/digits.
$randomtext{...} 
expands to a number of random words
$randomint{...} 
expands to a random integer number

Variables

Variables allow you to insert context-specific information into your messages. For example, if you are posting a message from account Bob Marley to account Jenifer Jason, then there will be 4 variables that you can use in your message:

  • $from_firstname (will expand to Bob in this example)
  • $from_lastname (will expand to Marley in this example)
  • $to_firstname (will expand to Jenifer in this example)
  • $to_lastname (will expand to Jason in this example)

So the following message template

 $from_firstname $from_lastname here, greetings to $to_firstname $to_lastname !

will be sent as

 Bob Marley here, greetings to Jenifer Jason !

As you noticed, every variable starts with the dollar sign ($), immediately followed by the name of the variable. If the variable has to do with the sending account, it starts with $from_. Variables that describe receiving accounts start with $to_. The list of available variables depends on the context (i.e. what accounts you post from and where you post to). In this article you can find (almost) complete list of variables available in the software.