Wednesday, May 11, 2011

COMPUTER PROGRAMMING: FUNDAMENTALS PART4

HIGH-LEVEL LANGUAGE

The machine and assembly languages are referred to as low-level languages because they are closest to hardware. To create programs that are hardware independent, programmers have developed a new type of programming language called the high-level language. A high-level language is user-friendly because it is similar to the English language and uses words, such as PRINT and GOTO to print and jump to a particular line, respectively. Some examples of a high-level language are Basic, COBOL, C, and Pascal.
High-level languages are also called third-generation languages.
Each instruction in a high-level language is translated into multiple machine-level instructions. High-level languages have made programming an easy task, which has increased the usage of high-level languages by programmers.
Some advantages of using a high-level language are as follows:
·         Learning a high-level language is easier than learning a machine or assembly language because their instructions are more English like.
·         A programmer can easily read, write, and maintain a program written in a high-level language. This is because high-level languages vocabularies are similar to the English language.
·         The high-level language programs being hardware independent provide the feature of portability. The high-level language program written in one type of computer can easily be used on another type of computer.
Compiler
To execute a program written in a high-level language, a computer needs translation software called a compiler.
A compiler is always language-specific which means each high-level language has its own compiler, which translates the source code of that language into the object code. For example, a compiler for COBOL compiles only the programs written in COBOL. It cannot compile programs written in any other high-level language, such as FORTRAN.

The following figure shows how a compiler works:
The preceding figure shows two programs written in two different high-level languages. The programs are compiled using the respective compilers of the languages and are converted into corresponding object code.
When a compiler program translates a source code, it checks the syntax of the statements. If the compiler finds an error in the source code, it generates a list of errors. The compiler does not generate the object code until the errors are removed.

Linker
When a program is written in any programming language, it uses predefined keywords, such as Print or Accept, whose functionalities are defined in the libraries. A library is the collection of various keywords and their functionalities, which are written by experienced programmers and stored for reuse by other programmers. These predefined keywords can be reused by giving the references of libraries in the programs.
On compilation, the compiler generates the object code. To generate the executable code from the object code the functionality of the keywords also needs to be attached. The linker performs the task of linking the functionality of the keywords with the object code.
The process of linking is shown in the following figure:

Interpreter
Some high-level languages use a different type of translator program called an interpreter. An interpreter takes each instruction of the source code, converts it to a machine language instruction, executes it and does not save the generated object code. This process is repeated each time before execution. Therefore, executing the program using an interpreter is time-consuming.
Debugging is easier using an interpreter because interpreter error messages are usually specific and point out the line on which the error occurs.
PERL, BASIC, and Visual Basic languages typically use interpreter.

Examples of High-level Languages
A large number of high-level languages have been developed since the first high-level language, FLOWMATIC, was developed in 1952. Some of the common high-level languages are Beginners All Purpose Symbolic Instruction Code (BASIC), Formula Translation (FORTRAN), Common Business Oriented Language (COBOL), Pascal, and C.


BASIC
BASIC was developed in 1964 by Professor John Kemny and Thomas Kurtz at Darmouth College in the USA.
Basic is an interpreter-based language that is easy and simple to use. BASIC was one of the earliest high-level languages to be implemented on personal computers.

FORTRAN
FORTRAN is one of the oldest high-level languages. It was developed in 1957 by John Backus and his team at International Business Machines (IBM) Corporation. FORTRAN was designed to solve scientific and engineering problems. After the first version was launched, various versions of FORTRAN have been developed, such as FORTRAN II, FORTRAN IV, and FORTRAN 77. FORTRAN IV was the first language that was standardized by American National Standards Institute (ANSI).

COBOL
COBOL was initially developed by the mathematician, Grace Hopper, in 1959. It was later modified in 1959-60 by a committee of the Conference on Data Systems Languages (CODASYL). This committee defined the language specifications for COBOL.
COBOL was standardized by ANSI in 1968. Revised versions of this standard were published in 1974 and 1985, which are known as COBOL 74 and COBOL 85, respectively. Currently, the latest version of COBOL is known as COBOL 2002.
COBOL was designed to solve business data processing problems.

Pascal
Pascal was designed in 1971 by Professor Nicklaus Wirth of the Federal Institute of Technology in Zurich, Switzerland. He named it after the famous French mathematician, Blaise Pascal.
Pascal was designed to help beginners to learn good problem solving and programming practices. Today, Pascal is recognized as a language that allows programmers to write structured and modular programs. It is suitable for scientific as well as business applications.
Pascal was standardized by ANSI in 1983. Since then, different versions of Pascal are available.

C
C was developed in 1972 by Dennis Ritchie and Brian Kernighan at AT&T’s Bell Laboratories, USA. They designed C in such a way that it incorporated the features of a high-level language along with the efficiency of a low-level language.
C was standardized by ANSI in 1989. C is a compiler-based language. Therefore, C programs can be easily transferred to other computers equipped with a C compiler. It is widely used for writing word-processing programs, compilers, and operating systems. For example, the UNIX operating system is written in C.

Selecting a Programming Language
With the availability of a wide variety of programming languages, the selection of an appropriate programming language is an important issue today. The following factors should be considered when selecting a programming language:
·         The first criterion for selecting a language is the type of application that is to be developed. For example, COBOL is for solving business data processing problems.
·         If multiple languages are suitable for an application, programmers should select a language in which they are proficient.
·         If the programmers are not familiar with any language, they should select a language that is easy to learn and use

Tuesday, May 10, 2011

COMPUTER PROGRAMMING: FUNDAMENTALS PART3

ASSEMBLY LANGUAGE

To overcome the limitations of machine language, assembly language was introduced in 1952. Assembly language uses alphanumeric code and symbols instead of binary digits to represent instructions and memory addresses. For example, it uses ADD for addition and SUB for subtraction.
 NB: Alphanumeric code uses a set of letters and numbers to represent an instruction.


   These alphanumeric code and symbols make the program shorter and easier to write than machine language. They also reduce the possibility of errors. Additionally, the programs can be modified easily.

An assembly language is called a second-generation language.
A sample program snippet in an assembly language to add two numbers is shown below:
1. LD Ax, 9
            2. LD Bx, 10
3. ADD Ax,Bx
4. LD (100),Ax
5. JMP Bx
6. HLT
Here, Ax and Bx are registers. Registers are nothing but the memory locations inside a microprocessor. Every instruction and data needs to be loaded from main memory to registers before the CPU can process it.
In the above program:
The line number one loads register Ax with the value, 9.
The line number two loads register Bx with the value, 10.
The line number three adds the value of register Bx to the value of register Ax.
The line number four stores the value of register Ax in the main memory location, 100.
The line number five uses JMP to jump to register Bx to transfer the control to register Bx.
The line number six stops the program execution.

As mentioned earlier, a computer cannot understand any language other than machine language. As a result, a translation program is needed to interpret assembly language code into machine language code. This translation program is called an assembler. A code written in any programming language, which requires translation for execution, is known as source code.

Functioning of an Assembler

The assembler takes each program statement in the source code in assembly language and generates a corresponding bit stream or pattern (a series of 0s and 1s of a given length). This set of instructions in a bit stream is the output of the assembler and is called the object code. The object code can then be executed whenever required. The assembler generates a list of errors instead of object code if it finds errors in the source code.

The functioning of an assembler is illustrated in the following figure:

Functioning Of An Assembler


Advantages of the Assembly Language

Assembly language programs are easier to write and understand than machine language because they use alphanumeric code instead of binary numbers. The programmer can easily remember the opcode and alphanumeric names for the addresses of data and instructions. This saves time and effort in developing and modifying assembly language programs.

Limitations of the Assembly Language
Assembly language also has a few limitations. These are as follows:
  •  The programs created in assembly language are slower than those created in the machine language. This is because extra time is required to translate assembly language instructions into machine language instructions.
  • Programs created in assembly language are dependent on processors because the assembly language vocabulary varies for different processors. Therefore, a program written in assembly language for one processor might not run on another processor.  

    

COMPUTER PROGRAMMING: FUNDAMENTALS PART2

MACHINE LANGUAGE

All computers use the binary number system, comprising the binary digits, 0 and 1 for performing internal operations. Machine language is the only language that uses binary digits, to represent an instruction. Therefore, the computer can directly process the instructions written in machine language.
A number of languages can be used to write programs. However, the computer understands only machine language. The programs written in other programming languages need to be translated to machine language for execution.
The machine language program being written in binary digits is difficult to learn because it is difficult to read and understand. For example, a program instruction to print a number might be
1011001111101001   1110110011001111
NB: The binary number system uses the base of 2. For example, 101 in the binary system is equal to 5 in the decimal system.
The conversion can be done as:
101=1*22 + 0*21+ 1* 20 =1*4 + 0*2 + 1*1 = 4 + 0 + 1=5
Machine language is also called a first-generation language.

Advantage of the Machine Language
The main advantage of the machine language is that computer programs written in a machine language execute fast. This is possible because machine instructions are in binary form, which are directly understood by the computer and no translation of the instructions is required.

Limitations of the Machine Language
Machine language has the following limitations:
·         Machine language programs are difficult to write because the programmer either needs to remember all the operation code or refer constantly to the reference card of the computer. The programmer also needs to remember the memory locations of the data.
NB:A reference card is a documented form of machine instructions for a computer. It lists the binary form   of various machine language instructions such as print and read.

·         The machine language code differs from one type of computer to another. This is because the internal design of each type of computer varies from other types and needs different signals to operate.
·         Machine language programs are error-prone because it is difficult to write a machine language program. A single error of a 0 or 1 can change the interpretation of the program.
Programs written in a machine language are difficult to modify because of their complexity.

COMPUTER PROGRAMMING: FUNDAMENTALS PART1

INTRODUCING PROGRAMMING LANGUAGES

A language is a means of communication between people. Similarly, a programming language is a means of communication between a programmer and a computer. A programmer writes a set of instructions in a programming language to instruct the computer to perform a task. A set of logically related instructions is called a program.
Every language is nothing but a collection of words and symbols, which are understood by users of the language. This collection of words and symbols is called the vocabulary of a language.
The vocabulary of a programming language is not as vast as the vocabulary of a commonly spoken communication language. Like any other communication language, all programming languages have a set of rules, called the syntax of the language.
Programming languages can be classified into three broad categories:
·         Machine language                                             
·         Assembly language
·         High-level language
As stated earlier, a program written in any programming language is a set of logically related instructions. These instructions have two parts, as shown in the following figure:
Format Of A Programming Language

·         Operation code (opcode): This part instructs a computer about the operation to be performed.
·         Operand: This part instructs the computer about the location of the data on which the operation specified by the opcode is to be performed.
For example, in the instruction Add A and B, Add is the Opcode and A and B are operands. 
Each computer has its own set of opcode. The opcode in the instruction set can perform the following operations:
·         Logical operations: These operations involve the comparison of data and the result is either True or False.
·         Arithmetic operations: These operations involve mathematical calculations.
·         Branch operations: These operations involve transfer of control a memory location given in an operand field.
·         Data movement operations: These operations involve data transfer between the memory and the processor or between the input/output devices and the computer.

It must be understood here that the objective of writing a program is to generate the predefined output with the use of computers. However, programs can be long and complex. There are tools available to programmers that help them minimize the time taken to get a program up and running. Depending on the standards followed by their organization, programmers use flowcharts or pseudocode during the planning phase of problem solving. There are also specialized tools available for representing complex logic like decision tables and decision trees.
     

Friday, May 6, 2011

FIGHTING CYBER SQUATTING


WHAT IS ACPA? OVERVIEW
The Anti Cyber Squatting Consumer Protection Act is a federal law that took effect on November 29, 1999.  This new domain name dispute law is intended to give trademark and service mark owner’s legal remedies against defendants who obtain domain names "in bad faith" that are identical or confusingly similar to a trademark or service mark.  If a mark is a famous mark, the same remedies are available if the domain name is identical to, confusingly similar to or dilutive of the mark.
  
Cyber Squatting Evidence

The plaintiff must prove the following elements to be convicted of cyber squatting:
The Defendant has a bad faith intent to profit from that mark, including a defendant name which is protected as a mark; 
Registers, traffics in, or uses a domain name that--
(I)           In the case of a mark that is distinctive at the time of registration of the domain name, is identical or confusingly similar to that mark;
 
(II)         In the case of a famous mark that is famous at the time of registration of the domain name, is identical or confusingly similar to or dilutive of that mark; or
 
(III)       Is a trademark, word, or name protected by reason of 18 U.S.C. § 706 (the Red Cross, the American National Red Cross or the Geneva cross) or 36 U.S.C. § 220506

*The key element that needs to be proven is that the defendant has bad faith intent to profit from the mark.


Determining Bad Faith

The ACPA gives the court some guidance when deciding whether ‘bad faith,” exists or not.  This should make it easier for the courts to follow the “rubric,” in a sense and determine “bad faith.”  “Bad faith,” is a mandatory requirement to award the plaintiff with statutory awards of any kind.
1.      The trademark or other intellectual property rights of the defendant, if any, in the domain name;
2.      The extent to which the domain name consists of the legal name of the defendant or a name that is otherwise commonly used to identify the defendant;
43.      The defendant's prior use, if any, of the domain name in connection with the bona fide offering of any goods or services;
.      The defendant's bona fide noncommercial or fair use of the mark in a site accessible under the domain name;
5.      The defendant's intent to divert consumers from the mark owner's online location to a site accessible under the domain name that could harm the goodwill represented by the mark, either for commercial gain or with the intent to tarnish or disparage the mark, by creating a likelihood of confusion as to the source, sponsorship, affiliation, or endorsement of the site;
6.      The defendant's offer to transfer, sell, or otherwise assign the domain name to the mark owner or any third party for financial gain without having used, or having an intent to use, the domain name in the bona fide offering of any goods or services, or the defendant's prior conduct indicating a pattern of such conduct;
7.      The defendant's provision of material and misleading false contact information when applying for the registration of the domain name, the defendant's intentional failure to maintain accurate contact information, or the defendant's prior conduct indicating a pattern of such conduct;
8.      The defendant's registration or acquisition of multiple domain names which the defendant knows are identical or confusingly similar to marks of others that are distinctive at the time of registration of such domain names, or dilutive of famous marks of others that are famous at the time of registration of such domain names, without regard to the goods or services of the parties; and
9.      The extent to which the mark incorporated in the defendant's domain name registration is or is not distinctive and famous within the meaning of Section 1125(c) (1) of the Lanham Act.
Bad faith intent will not be found in situations where the plaintiff believed they were acting lawfully and not in bad faith.


Violation Remedies
The Act authorizes a court to order the forfeiture or cancellation of a domain name or the transfer of the domain name to the owner of the mark.  In lieu of actual damages, the plaintiff may elect statutory damages and the court has discretion to award damages of a minimum of $1,000 and maximum of $100,000 per domain name, as the court considers just.

 WHAT IS ICANN? OVERVIEW

The contract for ICANN came from the US Department of Commerce and all other bidders were excluded from being involved.  The tasks delegated included managing the assignment of domain names and IP addresses.  Currently Paul Twomey heads ICANN and is the CEO.  Public participation was decided to be excluded on March 14, 2002, in a public meeting in Accra, in Ghana.

ICANN is the Internet Corporation for Assigned Names and Numbers.  Located in California, it is a non-profit corporation that consists largely of Internet society members.  It was created on September 18, 1998 in order to take over a number of Internet-related tasks previously performed on behalf of the US Government.

ICANN holds their periodic public meetings with the intent of staying in touch with its members.  Critics site that the locations of the meetings are often in countries with small Internet access and far away from locations that the majority of the Internet-using public can afford to reach, therefore making public input and participation quite limited.  Some other people criticize ICANN as playing into the hands of US interests, given that the Internet is a worldwide resource and its formation was created through contributions from worldwide scientists.  Meanwhile, ICANN is seeking to privatize itself, withdrawing from its connections to the US Government and US Department of Commerce.

 FUTURE OF CYBER SQUATTING

The importance of cyber squatting to corporations has been growing since the creation of the ACPA and will continue to grow as time goes on.  We predict that cyber squatting will be an issue involved in e-commerce law in the future although the complainant may shift from big businesses to smaller businesses based on recent court decisions.  In addition, there are various amendments that could be made to the current cyber squatting acts in order to increase their effectiveness as well as fairness.  These changes will need to occur as the Internet expands and online businesses continue to flourish.

There are many current cases which challenge both the powerful individuals’ and businesses’ right to a domain name, as well as challenging the individual’s right to hold the domain for personal use.  Earlier this month, a case was tried in the U.S. Court of Appeals in regards to the use of the domain “fallwell.com” as a critical site to the preaching of televangelist Jerry Falwell.  Jerry Falwell accused the owner of this site of infringing on trademarks and cyber squatting but his claims were rejected when the courts decided that the site could not be confused with Jerry Falwell’s official domain “falwell.com” due to differences in both appearance and content.

This case is a major victory for individuals who wish to criticize public figures or organizations through the use of the Internet.  In the future, granted that the individuals who own and operate the domain have no intent to profit from its use, there is very slim chance that a court could find in favor of either a powerful individual or a large corporation.  This lack of “bad faith” intent involved with the operation of a site is used to protect individuals from being bullied out of cyberspace by large businesses.


Bad Faith in the Future

“Bad faith” has been used as a defense for many small businesses and has provided them with a layer of security when their use of the domain does not infringe upon the larger company’s trademark.  Non-profit use is one of the strongest defenses and its inclusion in the ACPA is one of the greatest strengths of the act.  Many other aspects of the ACPA allow big businesses to push smaller ones out of the Internet market and simply having larger exposure and a larger name has allowed them to bully others out of the e-commerce market [19].

The ability of large companies to force smaller ones to give up domain rights is being challenged by many court cases and the victories of some of these small businesses is paving the way for others in the future.  These results are also being looked at in many states as they look to clarify and improve the cyber squatting laws.  This is because as we stand now, the Internet may not be able to survive only on the acts which have been passed in the last few years.  With the Internet rapidly expanding into new domains, such as “.biz”, “.edu”, “.in”, and many others, the chances of registering common domains increases greatly.  Along with this, many individuals and companies are becoming more educated on the technical aspects of cyber squatting.  This is only increasing the complicated nature of cases and making it harder for courts to come to a decision regarding the rightful ownership of a domain name.


Changes

Problems can be dealt with through the expansion of the acts that currently deal with cyber squatting.  The ACPA, in conjunction with the ICANN, has power over the domain names that are registered and can influence the decisions made in regards to them.  By enhancing the ACPA with more individual-friendly sanctions, the government can help to protect the rights of an individual to own and operate a site that may be common to a corporation’s trademark.  In addition to this, the ICANN and other such organizations have the authority to sell the rights to a domain to anyone who pays for it, but also have gained the power to transfer these rights to another party if they deem fit.  These decisions can be appealed and taken to court; however, a failure to promptly file an appeal with the domain registrar can lead to a loss in court no matter what arguments are brought about.

In order to prevent these organizations from unfairly dictating the law of the Internet, legislation must be passed in order to amend the ACPA in order to correct the flaws that have been found in recent court hearings.  This will undoubtedly gather much opposition from large businesses and influential individuals who wish to protect their own rights without concerning the right of the common individual.  These laws in the United States act to override the laws of foreign nations and also act to undermine the authority of international efforts such as ICANN in order to avoid complex and costly international lawsuits.  The ACPA has received much opposition and typically gains complaints including such grounds as legislative overkill, free speech concerns, and reverse domain hijacking.  The future of the ACPA holds legal ramifications that will affect not only U.S citizens, but also foreign citizens and businesses.  This holds true in the case of the International Olympic Committee which has used the ACPA as a weapon in order to prevent the use of domains remotely associated with the Olympics.

CONCLUSION
Cyber squatting has been an active threat since the early 1990’s and has increased in severity ever since.  The prevention of cyber squatting revolves mainly around two acts, the UDRP and the ACPA.  The UDRP was adopted by ICANN in order to provide a mechanism for trademark holders to obtain domain names from cyber squatters.  The UDRP states that before a domain name registrar will cancel, suspend, or transfer a domain name that is the subject of a trademark-based dispute, it must have an agreement signed by the parties, a court order, or an arbitration award.  The development of the UDRP created a "cyber arbitration" procedure to quickly resolve domain name ownership disputes that involve trademarks.  All owners of “.com”, “.net”, and “.org” domain names are subject to the UDRP by virtue of the registration agreements at the time of acquiring their domain names.

The ACPA is a valuable tool intended to protect the infringement of trademarks online and to protect the credibility of a company through the protection of their name as a domain.  However, it is also a weapon used by corporations in order to force smaller businesses out of the e-commerce market.  For this reason, the ACPA must be modified in order to account for some of the unfair court cases which have been decided in the past years.  The rights of the individual must be protected and as it currently stands, courts have been favouring the businesses with the largest name and largest pockets regardless of the intent of the individual who owns the domain.

Both of these systems have their advantages, but they must be used properly in order to achieve the desired result.  The UDRP provides a method for quick resolution of a dispute whereas the ACPA allows for an extended legal battle with the potential of large monetary settlements being awarded.  However, both systems help to provide security and structure to the complicated and widespread problem of cyber squatting.  These acts, along with the legal system, are the only protection available to those who wish to defend themselves from cyber squatters. 

Since cyber squatting is going to shift from larger businesses to small businesses in the future, modifications to the cyber squatting acts will need to be made in order to   increase protection.  The ACPA will need to be modified to protect individuals who own a cite similar to a corporation's trademark because currently the act favours big businesses.  Cyber squatting problems are going to continue to develop because of the rapid growth and expansion of the Internet.  The issue cannot simply be ignored or else it may hurt the economy.  Its important to learn from the victims of cyber squatting so we can prepare ahead of time for the issues to come.

    

ARE YOU A VICTIM OF CYBER SQUATTING?

DEFINITION

Cyber squatting (also known as domain squatting), according to the United States federal law known as the  Anti cyber squatting Consumer Protection Act, is registering, trafficking in, or using a domain name with bad faith intent to profit from the goodwill of a trademark belonging to someone else. The cyber squatter then offers to sell the domain to the person or company who owns a trademark contained within the name at an inflated price.
INTRODUCTION
After the dot com boom, it became apparent to business owners how vital the Internet would be to their success.  At this time there were few people ahead of those business owners who found a way to use this to their own advantage.  These people, or cyber squatters, realized the importance of the Internet as a part of business, and knew the business owners would soon wise up as well.  If you own a trademark and find that someone is holding it hostage as a domain name until you pay a large sum for it, according to www.nolo.com, you may be a victim of cyber squatting. 
 Victims of cyber squatting are protected under the 1999 federal law known as the Anti-Cyber Squatting Consumer Protection Act.  Victims can sue or initiate arbitration proceedings under the authority of the Internet Corporation of Assigned Names and Numbers (ICANN) and win the name back.  This became known as the Uniform Domain Name Dispute Resolution Policy.  
In this report the beginnings of cyber squatting are outlined and discussed, some of the laws and acts that were born as a result of this problem compared and contrasted, example cases over domain names briefed, and our future outlook on cyber squatting is predicted as follows.

                                                                                                        I.            HISTORY OF CYBER SQUATTING


Before 1999, the business world was still resisting the need for the Internet as a tool for success.  They didn’t see the need to register their trademarks as domain names.  However, cyber squatters did see the increasing importance of the Internet, and saw the businesses making the mistake of ignoring it.  This is how cyber squatting was born and began causing problems.  Cyber squatters took advantage of those companies by registering domain names identical or similar to the business’ trademarks.  Domain name registrars accept all applications for domain names by applicants unless that exact identical name is in use. After the cyber squatter has the domain name registered, the company can no longer have their trademark as their domain name.  This causes a problem since customers and clients frequently try to find businesses online. 

One of the first cyber squatters were Dennis Toeppen in the early 90’s who registered some very famous marks before companies did.  He then demanded a ransom of $13,000 for each domain name.  This type of cyber squatting causes firms to lose money not only by paying cyber squatters to get their domain names, but as a loss of profit for what they could be making with an effective website.  Some of the cyber squatters made websites to slam a business using their own mark as a domain name for that page.  This could ruin the reputation of a company and now take away from business they had at one point.  Cyber squatting causes monetary losses and damaged reputations.  Businesses were not happy when these issues become apparent to them.  They have wised up since the beginning of cyber squatting, and now realize the harm it can cause to their business and customers.  They have learned of the important benefits of owning their trademark domain names. Congress decided to take action in 1999 to help out businesses and stop cyber squatting.  The laws and acts passed helped businesses battle the increase in cyber squatting from 1999 on.


                                                                                                                     II.            Recognizing Cyber Squatting


How do you know if the domain name you want is being used by a cyber squatter? Follow these steps to find out.Check where the domain name takes you. As a general rule, first check to see if the domain name takes you to a website. If it does not take you to a functioning website, but instead takes you to a site stating "this domain name for sale," or "under construction," or "can't find server," the likelihood increases that you are dealing with a cyber squatter. The absence of a real site may indicate that the domain name owner's only purpose in buying the name is to sell it back to you at a higher price.

Of course, absence of a website does not always mean the presence of a cyber squatter. There may also be an innocent explanation and the domain name owner may have perfectly legitimate plans to have a website in the future.

If the domain takes you to a functioning website that is comprised primarily of advertisements for products or services related to your trademark, you may also have a case of cyber squatting. For example, if your company is well-known for providing audio-visual services and the website you encounter is packed with ads for other company's audio-visual services, the likelihood is very strong that the site is operated by a cyber squatter who is trading off your company's popularity to sell Google ads to your competitors.
If the domain name takes you to a website that appears to be functional, has a reasonable relation to the domain name, but does not compete with your products or services, you probably aren't looking at a case of cyber squatting. For example, if your trademark is "Moby Dick" for fine art dealing with whaling, and the website you encounter (www.mobydick.com) is for road cleaning machines, you do not have a case of cybersquatting. You may, under certain circumstances, have a case of trademark infringement. 

Contact the domain name registrant. Before jumping to any conclusions, contact the domain name registrant. To find the name and address of a domain name owner, you can use the "WHOIS Lookup" at whois.net. Find out whether there is a reasonable explanation for the use of the domain name, or if the registrant is willing to sell you the name at a price you are willing to pay.

Pay, if it makes sense. Sometimes, paying the cyber squatter is the best choice. It may cheaper and quicker than filing a lawsuit or initiating an arbitration hearing.
However there are some options available to help fighting Cyber Squatting:
  • Sue under the provisions of the Anti-cyber squatting Consumer Protection Act (ACPA).
  • Use an international arbitration system created by the Internet Corporation of Assigned Names and Numbers (ICANN).
Trademark experts consider the ICANN arbitration system to be faster and less expensive than suing under the ACPA and the procedure does not require an attorney.