A survey report on software watermarking technique with graph coloring approach
Abstract
In the recent times the main aspect of any service provider or any product provider is the security. Everybody is very much conscious about the security of contents because in this internet savvy world, hacking information is nowadays just a matter of joke to the professional hackers. Nowadays digitization of information is a very important because digital can be used very efficiently and it can be sent through internet in a few seconds to anywhere of this world. So, there is a need to protect the digital content. Software watermarking is a unique process that gives a digital content protection from the hackers. Several processes are invented to make a digital content software watermarked. This survey report covers the prestigious work that has been done on software watermarking using graph-coloring approach.
1. Introduction
This article surveys the software watermarking [1] technique with graph coloring approach. The primary object of this software watermarking is to prevent any digital content from being tampered. The main advantage of this software watermarking approach is,
·It prove the ownership of the content
·It make the content an anti-pirated
By the software watermarking technique we can prevent the pirates using reverse algorithm and de-compilation technique to steal software.
Intellectual property protection or IPP [7] is basically a theoretical framework to evaluate watermarking techniques. The main aspects of any efficient watermarking technique are credibility and overhead.
Software Watermarking? [1] is basically a way of hiding the digital information into a digital content (Cover Text) to prevent piracy. In this approach watermark is a special data structure and cover text is a software program. The hidden digital information is invisible to the user. It is of two types,
·Static
·Dynamic
There are two main types of approach in software watermarking,
· Frequency domain approach
· Path Based
·Graph-Based
In graph theory’s term, graph coloring [6] is a special case of “graph labeling”. Graph coloring is of several types,
Vertex Coloring is to color a graph in such a way that no two adjacent vertices share the same color. Edge Coloring is to Color a graph in such a way that no two adjacent edges share the same color. Face Coloring is to Color a planer graph in such a way that no two faces that share a boundary have the same color. The chromatic polynomial counts the number of ways a graph can be colored using no more than a given number of colors. The smallest number of colors needed to color a graph G is called its chromatic number, ?(G). Graph coloring is computationally hard. It is NP-complete to decide if a given graph admits a k-coloring for given k except for the cases k = 1 and k = 2. Especially, it is NP-hard to compute the chromatic number. Graph coloring remains NP-complete even on planer graphs of degree at most 4.The graph coloring problem is, Given an Undirected Graph G=(V , E) where V= Set of? Vertices and E=Set of Edges , it is required to find out an assignment of colors to vertices, such that no two vertices which are connected by an edge would? get the same color. The main idea behind the solution is, once a vertex is assigned a color then all the vertices which are connected to that are refrained from using the same color. This basic idea is used in software watermarking [7] approaches. Whenever the system get an 1(of the main content) color it and when in case of 0 color it with different color or color the MISes with different but minimum color to make it a distinguished one. The approaches of watermarking techniques for graph coloring problem both credibility and overhead are maintained properly.
2. Software Watermarking approaches
A static algorithm [3] recognizes the watermark by examining the (source or compiled) code of the watermarked program. A dynamic algorithm recognizes the watermark by examining the state of the program after it has been executed with a special finite input sequence (i1,………in). Thus, for a dynamic algorithm the recognizer will have the signature R(Pw[i1,………in])) -> W where P[I] is the state of program P after input I.
Mr. Stern, Hachez, Koeune and Quisquater [2] invented an algorithm for frequency domain software watermarking approach , this approach is called SHKQ algorithm [8].
The basic performance of SHQK algorithm stated below,
1. Watermarks can be embedded by re-ordering parts of the code [9], where such re-ordering can be shown to be semantics preserving.
2. Watermarks can be embedded by inserting new (non-functional) code in the program, such that this code encodes a watermark number.
The three algorithms [2] Vector Extraction, Watermark Embedding, and Watermark Extraction below formalize these steps.
Vector Extraction:
1. Define n as a security parameter.
2. Define a vector S= (s1,...........sn) of n ordered groups of machine language instructions.
3. For each group i in S, count the frequency c of the group in the code, and form the vector c = (c1,..........cn). Return c.
Watermark Embedding:
1. Apply the vector extraction step to obtain a vector c of length n.
2. Choose an n-coordinate vector w= (w1,.................wn) whose coefficients are randomly distributed following a normal law with standard deviation ?
3. Modify the code in such a way that the new extracted vector c ? = c + w
Watermark Extraction
1. Set a detection threshold ? , (0 < ? < 1).
2. Apply the vector extraction step to obtain a vector c from the original (non watermarked) application.
3. Apply the extraction step to obtain a vector d from the watermarked application.
4. Compute a similarity measure Q between d-c and w.
5. If Q is higher than then the algorithm outputs marked, else it outputs unmarked.
C. Collberg, E. Carter, S. Debray, A. Huntwork, C. Linn, M. Stepp [5] discussed path-based watermarking where the basic idea is to embed the mark in the branching structure of the program.
There are some consequences of this approach,
First, the forward branches that a program takes are an essential part of what makes the program unique. This makes branches inherently difficult to change or remove, making path-based watermarks resilient to many distortive attacks.
Second, branches are inherently binary in nature (they are either taken or not taken), which makes it easy to embed a bit-string.
Third, path-based watermarking lends itself well to error-correction and tamper proofing.
Fourth, branches are ubiquitous in real programs, hopefully making path-based marks insusceptible to statistical attacks.
Two basic algorithms [3] have been discussed below for graph-based approach,
Venkatesan et. al. [10] discussed The Graph-Theoretic Watermark (GTW) algorithm whose main objective is to embed a watermark by inserting a code segment which has no semantic effect
Fig.1: The GTW algorithm. Dashed control flow edges connect the watermark graph G with the cover control flow graph P. The watermark nodes of Pw are marked to distinguish them from the nodes of P
The basic embedding technique is stated below,
1. Encode the integer watermark value W as a control-flow graph (CFG) G ? e(W).
2. Construct the watermarked program Pw by combining G and the program CFG P.
3. Connect G and P by adding bogus control-flow edges.
4. Mark the nodes (basic blocks) of G.
This process is illustrated in Figure 1. In order for the watermark to be stealthy G and P should be tightly integrated. Integration is achieved by performing a random walk over the nodes of G and P and adding edges until Pw is uniformly dense.
The watermark is extracted from Pw as follows:
1. Make the nodes of the watermark graph G is the set of marked blocks from
2. Make the edges of G be the set of control-flow edges between marked blocks in .
3. Compute the watermark using the decoder d (G).
Collberg and Thomborson [11] discussed the algorithm that embeds the watermark in a dynamically built, linked, graph structure.
Fig. 2: The Collberg-Thomborson watermarking algorithm
1. At A, the watermark number is encoded into a graph G.
2. At B, G is split into a number of sub graphs.
3. At C, each sub graph is converted into a code sequence that builds the graph. Pw is constructed by inserting the graph-building statements along a special execution path? <P1,P2,P3,P4> of the program.
4. At D, the recognition sequence is started by executing with a special input sequence. This causes the program to follow the execution path Pw and the watermark graph G to be built on the heap.
5. At E, G is extracted from the heap and decoded into W.
In graph based approach two main techniques are discussed below,
A] Graph theoretic approach
B] Graph coloring approach
Christian Collberg, Andrew Huntwork, Edward Carter, Gregg Townsend [4] discussed this approach to achieve a technique for software watermarking; in this approach the GTW algorithm has been used. The GTW embedding algorithm takes as input application code P, watermark code W, secret keys w1 and w2 , and integers m and n. GTWSM uses a smaller and simpler set of parameters. Values of m and n are inferred from P, W, and w1. The clustering step is unkeyed, so w1 is unused. Thus, our implementation takes as input application code P, a secret key w, and a watermark value.
1.The watermark value v is split into k values, { v1,………, vk-1}
2.The split values are encoded as directed graphs { G1,………, Gk-1}
3.The generated graphs are converted into CFGs? {W1,………, Wk-1} by generating executable code for each basic block.
4.The applications clusters are identified
5.The watermark is merged with the application by adding control-flowed edges to the graphs.
6.Each basic block is marked to indicate whether it is part of the watermark.
Embedding:
In GTWSM we accept an integer value for transformation into a watermark CFG. The recognition process performs the inverse transformation from CFG to integer. First, the embedding process involves several steps; secondly, splitting the watermark value into small integers; thirdly, constructing directed graphs that encode these values; generating code that corresponds to the graphs; and connecting the code to the program.
Watermark Value Splitting:
GTWSM splits a watermark value v into a multiset S of k integers, k >? 2. Empirically, we have determined that values of k between 5 and 15 produce watermark methods that are neither overly large nor overly numerous.
A watermark value v is split as follows:
1. Compute the minimum exponent l such that v can be represented using k-1digits of base 2l.
2. Split the value v into digits (v0, v1,……,vk-2) such that 0 <? vj < 2l v = ?k-2j=02jlvj. and
3. Encode the digits in the multi set {s0, s1,……,, sk-1} where s0 = l-1 si = si-1 + vi-1. and
Encoding Integers as Graphs:
-
Each integer is converted into a graph for embedding in the application. Several issues must be considered when choosing a graph encoding:
2. The graph must have the structure of a valid CFG. It should have a header node within-degree zero and out degree one from which every node is reachable, and it should have a footer node without-degree zero that is reachable from every node.
3. The graph should have a maximum out-degree of two.
4. The graph should be reducible [12] because true Java code produces only reducible graphs.
5.The control structures represented by the graph should not be deeply nested, because real programs seldom nest deeply.
Mr Gang Qu and Mr. Miodrag Potkonjak [7] analyzed ‘adding edge’ watermarking techniques for graph coloring problem. Suppose a random graph G(V,E) has been given. A randomly selected message M V is the vertex set of graph G where V = {v0, v1,........, vn-1}. Convert the message M into binary (using ASCII) M=m0m1.............. for embedding.
Now, the message M have to be embed into graph G by the following manner,
lCopy the graph G(V,E) to G'(V,E').
lFor each bit mi , take two nearest bit of vi that are not connected, i.e. vi1 and vi2 in such a manner that? i2 > i1 > i (mod n) and (vi,vi2),(vi,vi1) ? E and (vi,vj) ? E for all i < j < i1 , i1 < j < i2 (mod n).
lIf mi=0 then add edge (vi,vi1)
else if mi=1 then add edge (vi,vi2)
Those edges are extra edges and connected vertex has to be colored by different colors that may not be essential at all in the original graph.
Mr Gang Qu and Mr. Miodrag Potkonjak [8] demonstrate technique to recover the hiding signatures from the colored graph, which is basically watermarked content.
The approach for recovery from the colored graph, which is embedded by the “adding edge” technique, is as follows,
lAfter embedding the message to the original graph several new edges have been created and the vertex pair may be colored by different colors.
lFor each pair {vi, vj} we can receive one bit of information by counting how many nodes are in between (i.e. Nodes with indices between i and j) vi and vj are not connected with vi.
lIf the difference is 0 then the hidden bit is 0 and if the difference is 1 then the hidden is 1. Otherwise if the difference is more than 1 then reverse the order of vi and vj and try the above steps.
lBy this single binary information the whole binary string can be made. That string is basically the hidden message.
Mr Gang Qu and Mr. Miodrag Potkonjak [7] analyzed ‘selecting MIS’ watermarking techniques for graph coloring problem. MIS means Maximal independent set. MIS of a graph means it is a subset of vertex set S such that the vertex in MIS are not connected and those are not in S is connected with at least one vertex of the graph. Main advantage of this technique is all the vertex of one MIS be labeled by one single color.
Suppose a random graph G(V,E) has been given. A randomly selected message M for embedding. V is the vertex set of graph G where V={v0, v1…………, vn-1}.Convert the message M into binary (using ASCII) M=m0m1..............
Now, the message M have to be embed into graph G by the following manner,
lThe idea of selecting no of MISes according to M.
lTake vi as the first vertex of the MIS where the binary exponent of i log2 n bits of M. coincides the first
lCut the vi and it's neighbors as they can't be in same MIS as vi.
lReorder the vertex and get the next MIS.
lColor each MIS with separate colors.
lConstruct the MIS till the M has not been completely embedded.
Mr Gang Qu and Mr. Miodrag Potkonjak [8] demonstrate technique to recover the hiding signatures from the colored graph, which is basically watermarked content. The technique to recover the hidden signature from the colored graph embedded by “selecting MIS” approach is as follows,
In this approach several number of MISes are generated. The selected MIS with a particular order of vertex represent the watermark. Binary string can be retrieved from that MIS by reconstruction.
lSuppose the graph contain 11 vertex and 3 MISes have been generated colored by 3 different colors.The binary string needed is 11111.
lTake a certain MIS like {v7, v4, v1, v10 }.
lThe first vertex is v7. As (7)10=(111)2, then the binary string we retrieved is 111.
Now remove v7 and it's neighbors from the original graph.
lThe second vertex in the MIS is v4 and the binary string we retrieved is 11.
lRemove v4 and its neighbors from the original graph. Only v1 and v10 are remained lonely.
lSo, desired result 11111 has been retrieved.
The above technique shows the uniqueness of the selected MIS in determining the credibility.
Mr Gang Qu and Mr. Miodrag Potkonjak [8] analyzed one more technique ‘adding edge and nodes’ along with previous two for hiding signature in a digital content.
Suppose a random graph G(V,E) has been given. A randomly selected message M for embedding. V is the vertex set of graph G where V={v0, v1…………, vn-1}.Convert the message M into binary (using ASCII) M=m0m1..............
Now, the message M have to be embed into graph G by the following manner,
lA new node v has been introduced.
lTake the first ?log n? bits from M.
lFind the corresponding vertex v' and connect it to v.
lTake the next ?log n-1? bits and locate the next vertex to which v is connected.
lRepeat the previous step until np edges have been added and a new graph Gn+1, p have been generated.
lIntroduce a new node until M has been totally embedded.
lColor the new graph.
Mr Gang Qu and Mr. Miodrag Potkonjak [8] demonstrate the approach in behind to recover the hidden signature from a embedded, colored graph generated by “adding edges and nodes” technique is as follows, as by this technique a new node and it's associate edges has been created and they remain invisible. To exhibit the hidden signature we have to go through the signature embedding technique once again and encrypted signatures can be added to the colored graph as edges to the newly inserted vertex. Different binary strings can be generated in the same way from the same colored graph. So to get a valid result a comparison in between every result is necessary.
Mr Gang Qu and Mr. Miodrag Potkonjak [7] discussed some technical aspects of? “adding edge” approach,
The signature or message that have to embed can be anything but that should capable of protecting the ownership.
Encrypt the message, which is converted to binary using cryptographic hash function or stream cipher. Assume that the final binary bit stream is random.
A basic assumption on this approach,
lTo color Gn, p, we need exactly X color where X is given by,
X ( Gn, p ) = é n/(2logbn) ù ...(i)
lAfter embedding k bits into the main graph Gn,p there are extra k edges added to the watermarked content, the resulting graph remains random with the same number of vertex and a new edge probability,
p' = p + (2k/n(n-1))
So, formula (i) for the chromatic number still holds and this number is denoted by X'. The overhead is defined by the X’-X (i.e. total no of extra color need to color the watermarked graph).
Some theorem have been deduced on contrary of the technical concept of the above approach,
Theorem 1.1: Adding k (n) edges to a random graph Gn,p , limn-> μ X'-X= μ
if and only if k (n) ? ?( n log n)
Corollary 1.2: (1 color overhead) Adding k(n) edges to graph Gn,p , if
limn->μ (k(n)/n log n) = l then limn-> μ X'-X <= 1+ é l/(1-p) ù .? In particular
k (n) ? o( n log n). The overhead is at most 1.
Theorem 1.3: Adding k(n) edges to a random graph Gn,p , let & be the event that
these edges are added randomly, then limn->μ Prob[?]=0 if k (n) ? ?( n/ log n).
Mr Gang Qu and Mr. Miodrag Potkonjak [7] discussed some technical aspects of “selecting MIS” approach,
Whenever a MIS has been removed from the original graph, the graph became a random one again with the same edge probability.
·To generate a random graph Gn+1,p , add one new vertex into a random graph Gn,p and add an new edge in between the new vertex and the old vertex in Gn,p with probability P.
·The first vertex of any MIS have been selected randomly and the next vertex’s choices are restricted to (1-p)n=qn as pn neighbors of the first vertex have been eliminated.
Therefore following theorems have been deduced,
Lemma 2.1: Given random graph Gn,p , almost all randomly selected MIS is of size logb n, where b = 1/(1-p).
To create a convincible watermarking a large graph, we have to add w(n/log n) edges by the first technique.
Theorem 2.2: Given a random graph Gn,p, Let ? be the event that in a random solution, all vertices in this MIS have the same color. By selecting one vertex from an n-vertex graph, we can embed ?log2 n? bits.
From lemma 2.1, at most log2 n log b n bits of information could be embedded into the MIS. To embed long messages, we have to construct more MISes, which may result in huge overhead.
Theorem 2.3 : Given a random graph Gn,p , if we select k(n) MISes ,assign each MIS one color and color the rest of the graph, then the overhead is at most k(n) and k(n/2) on average at least.
Mr Gang Qu and Mr. Miodrag Potkonjak [7] discussed some technical aspects of “adding edges and nodes” 8 approach the technical aspects are,
· k new edges have been added into the initial graph Gn,p and transformed into Gn+k,p.
· The formula for implying overhead is,
X`-X= é (n+k)/2logb(n+k) ù. - é n/2logbn ù where b=1/1-p
· The watermarked potential for the graph Gn,p as WP(Gn,p) = X(Gn,p) – n/(2logbn)
The theorems deduced for this technique’s aspect are,
Theorem 3.1: Given a random graph Gn,p, we introduce k (n) new vertex and associate edges based on the signature, then for almost all Gn,p , the overhead is at most 1 if
k(n) ? o(log n).
Theorem 3.2: We build graph Gn+1,p from a given random graph Gn,p np edges. A coloring scheme to the initial Gn,p is obtained by coloring by introducing one new vertex and
Gn+1,p. Let ? be the event:
·Add a vertex v to the colored graph Gn,p .
·Connect v to np random vertex.
3. Conclusion
Two most important criteria of any watermarked content is low overhead and high credibility. Previously discussed three techniques have been fully analyzed and we can conclude that, those techniques are totally capable to provide high credibility with at most 1 color overhead. For large graphs (i.e. Random graphs, DIMACS challenge graph, Graphs generated from real life problems).
Numerical data from simulation have been analyzed and confirms the result.
Fingerprinting is one of the most efficient method to provide security to any content. The technique? can be implemented in NP complete GC(graph coloring)problem. Fingerprinting in the random graphs introduces overhead while for graphs generated from real life register problem.
In the QP algorithm which is basically a algorithm for constraint based watermarking algorithm, the graph coloring problem can be used to embed a watermark (edge adding) in the registry allocation.
5. References
[1]? Mohanty S. P. . “Digital Watermarking : A tutorial View “ .A technical report. Indian Institute of Science,1999
[2]? Sahoo T. R., Collberg C. . “Software Watermarking in the Frequency Domain: Implementation, Analysis, and Attacks”. Technical report TR04-07, Dept.of computer science, University of Arizona, March, 2004
[3]? Collberg C., Kobourov S. , Carter E. .“Error-Correcting Graphs for Software Watermarking” . In workshop on graph theoretic concepts in computer science. 2003
[4]?? Collberg C., Huntwork A. , Carter E., Townsend G. . ”Graph Theoretic Software Watermarks: Implementation, Analysis, and Attacks” . In 6th International Information Hiding Workshop, March, 2004
[5]?? Collberg C. , Carter E. , Devroy S. , Huntwork A. , Linn C., Stepp. M. “Dynamic Path Based Software Watermarking”. In proceedings of the conference on programming language and implementation, 2004
[6] http://en.wikipedia.org/wiki/Graph_coloring
[7] Qu G. and Potkonjak M. . “Analysis of Watermarking Techniques for Graph Coloring Problem”. In IEEE/ACM International Conference of Computer aided design, Pages 190-193, November, 1998.
[8] Stern J. P., Hachez G., Koeune F., and Quisquater J.J.. Robust object watermarking: Application to code. In Information Hiding, pages368-378,1999. http://citeseer.nj.nec.com/stern00robust.html.
[9] Davidson R.L. and? Myhrvold N. Method and system for generating and auditing a signature for a computer program. US Patent 5,559,884, Assignee: Microsoft Corporation,1996. http://www.delphion.com/details?pn=US05559884__
[10] Venkatesan R., Vazirani V. , and Sinha?? S. A graph theoretic approach to software watermarking. In 4th International Information Hiding Workshop, Pittsburgh, PA, Apr. 2001.
[11] Collberg C. and Thomborson C.. Software watermarking: Models and dynamic embeddings. In Principles of Programming Languages 1999, POPL99, San Antonio, TX, Jan. 1999.
[12] Aho V.A., Sethi R., and Ullman D.J. Compilers,Priciples,Techniques and tools. Addison-Wisely,1986.ISBN0-201-10088-6.
Posted in: java tutorial| Tags: Software Internet Security Approach Report provider technique content survey graph
How to Grow your Email List Using Doorway Pages
How to Grow Your email list using Doorway pages
The lifeblood of any Internet marketer is their list. If you have an opt in email list then you are sitting on piles of cash, if you properly use your list then your earning potential is very high.
As many people ask "How do I build a list faster?" the following points describes how you can do that using Doorway Pages, Squeeze pages and Popups for building your email list.
This kind of technique that I will describe is an advance one and requires you to use a domain name, a seperate hosting account and a Doorway software as for example the Traffic Booster Pro from TrafficBoosterPro dot com.
Those are needed so that a competitor will not report you to search engines for using Doorway pages in your site. Unfortunately there are many people out there that try to get in your positions that would do anything to get you out of their way. The technique to get a Domain and hosting just for your Doorway pages is called "Shadow Domains". Those domains are created to rank high and if they get banned it would cost you only ten bucks to get a new domain and continue your marketing on the new domain name.
Try only not to link those domains to you Main Domain.
"Shadow domains" and "mini sites" are almost the same technique in the SEO language. The purpose of this article is not to explain what are those techniques so I will not analyse it here.
Why The aim will be Doorway software for the development of e-mail list to use, you may ask? The answer may surprise you, but it is a technique that works and is very legitimate. It is not to create a stand-alone or doorway pages with practically no content, excessive with optimized keywords and a link back to the homepage. Doorway pages work but only if you know how it goes well. And this article will talk a bit about this issue as well.
Imagine you come up with several keyword phrases that generate a few monthly searches, you now can build several pages. So each page targeting a specific keyword phrase is worth traffic and not any type of traffic but it will be targeted.
So if you have one page which brings you only 1 visitor per day and you have 50 pages, you can easily receive 50 visitors per day for free. Now what about if you have a thousand of those pages? You see the potential now.
First you need to gather keywords and Keyword phrases. The strategy is to search for overlooked keyword phrases which are not too competitive and create effective doorway pages related to these keyword phrases. These pages can be promoting a product for instance.
You need to be extremely careful with keyword research so that you don't miss excellent opportunities or aim so broadly that you target phrases that will never rank well. Here are some strategies to guide you along the way:
1. Start with core words.
A core set of keywords - even if too broad - can stimulate creative thinking.
2. Look at the industry.
Examine industry trade group web sites and related newsletters to find potential keywords.
3. Study competitors.
Some companies make a bigger deal of competitors' keywords than they should, but it's still a useful strategy. Invariably, a competitor will be using a strong keyword or phrase you don't want to miss. Often, however, they load their web sites with single keywords that aren't appropriate. If Internet users are seeking cookware, their search terms shouldn't be laundry-based words. Yet we came across that very example. Be careful which words you use.
4. Be specific - add other words to your primary phrases.
If you sell toys, try plastic toys or toys import. Or, how about toys import companies? Words like services, companies, products, accessories, and many others can really pay off. Ok, everyone wants to rank #1 for terms like "toys" and "sports." It would take more time and budget than you may have to land such terms (through META updates, content adjustments and links).
5. Visit Wordtracker.
It's a great tool even if it only collects a sampling of actual searches (more than 300 million). You'll get a good sense of how frequently someone may search. The URL is: wordtracker dot com
6. Study your log files.
Web analytics is a great tool if you want to see how your visitors are searching. Study the results and you will come up with a revised set of keywords.
The Doorway pages should not be overly optimized with keywords, but they need some optimized content that is readable by your visitors and friendly to the search engines as well have. The RSS can play an important role in causing this role could keep these pages for the search engines are always fresh and always go over and over again for new content. Think of a pool of 1000 different RSS feeds that load on each side to a 2-3 series of RSS feeds in a time and randomize their text on each refresh. This makes the content of the page to be unique.
Now when a visitor search for the keywords that you have optimized for and get in to one of your pagesyou can get them to sign in you Newsletter, e-zine, or mailing list using DHTML popups that can load in each doorway page or you can send your visitor in a Squeeze page and get them to sign up or you can promise and give them a free bonus to download after they sign up. And they will do cause after all it's free and if it's related to their search they will definitely want to get it. But what is a Squeeze page or a popup? Read below to find out.
Squeeze Page
A squeeze page is a pre-letter page, you grab a person's e-mail address before they see your sales letter in practice. According to reports, it is very effective, you can also use personalized names or other details of the squeeze from the web sales letters. There is a software, you can create a name squeeze page squeeze page is generated, you can find burgainhunter Point Network Search
Pop Up
Pop up windows, particularly unique and different windows, can be very effective at persuading people to sign up for your newsletter. These can either pop up as the visitor enters your site, or when they leave, reminding them to sign up for more information. The most popular Popups lately are the DHTML Pop ups cause the pop up blockers can not block these kind of pop ups as they are part of the page and not new windows.
Sign up bonuses
Offer your visitors a bonus if they sign up for your newsletter, e.g. "20% off XYZ for readers" or a number of e-books or reports that will be of interest to them. You may give them a discount Coupon an ebook with articles about their interest or resources and links to information that will save them time.
Technologies And Design Elements To Improve Web-Site Navigation
As you browse the Web, you will find sites that implement just about every type of navigation scheme you can think of and then even some more! However, certain common factors do emerge. The use of menu bars, either horizontally or vertically oriented, are the most common way of allowing users to move through your site.
Sites with a great deal of content often implement dynamic menu bars that change to present the most relevant options on each page. Sites often use some kind of "feedback" or special effect to let users know where certain navigation elements are located, such as graphics that change colors when the users point their mouse at them.
You can use a variety of technologies and design elements to implement Web site navigation. As you consider different navigation techniques, keep the following seven basic comparison factors in mind:
Visual
Does the technique look and like a navigation element that users are accustomed to seeing? In other words, is it a button or a menu that users will recognize as a navigation element?
Feedback
Does the technique offer some form of feedback to indicate that a user has pointed at or clicked a particular navigation element? This type of feedback can be important because users often explore a site by moving their mouse around to see what happens. Navigation techniques that allow individual elements to respond to this activity make the overall navigation more likely to succeed.
Accessibility
How does the technique work when a visually impaired person attempts to use the site with a specially equipped Web browser? If this demographic is important to your company, pay special attention to this capability.
Overhead
Some techniques servers, Web data transfer to many other techniques that require the browser, Web browser is required. If the customer is using the technology to slow page loads and high overhead, likely to be bored and go to the competition to give up one, customers will access the site through a slow connection.
Scalability
Does the technique offer any particular advantages to make growing the site easier? Some navigation designs may require you to redesign the entire site every time a new feature is added. Others may simply require a few minor modifications to add several new departments to a menu.
Space
Some technical, and philosophy of your website in combination, requiring a large space on the screen. Other technology allows you to make a more extensive selection, navigation, and use less screen space. Please keep in mind that your navigation elements should not occupy the majority of the screen. This is your customer's content to grasp, rather than the menu bar.
Compatibility
How well wills this technique work within the available range of Web browsers? If one of your objectives is to have your site usable by as many customers as possible, pay attention to the techniques that offer a broad range of compatibility, and steer away those that are limited to a smaller set of browsers.
Navigation Technologies
To implement the site's navigation, you can be one of the four most important technologies. The oldest and simplest of these technologies is the basis for static HTML page. One level is higher that the static HTML page that is dynamically generated on the server. Web pages can be given more interactive possibilities with Dynamic HTML (DHTML), whether written in VBScript or JavaScript. Java offers the opportunity to use a complete, stand-alone application program as a navigation aid.
Static HTML
Static HTML links are the oldest and simplest form of navigation on the Web. They can be less exciting than their dynamic counterparts, but remain one of the most effective navigational techniques on the Web.
Dynamically Generated Static HTML
If your site is constantly growing and changing, static HTML will require a constant effort to keep the navigational elements in line with the site's growth. A common solution to this problem has been to dynamically generate the navigation elements when the page displays. When using the DHTML, you don't have to manually update elements as the site grows, because an automated process generates the navigation elements as necessary, based on the information in a database.
VBScript and JavaScript Dynamic HTML
DHTML is a technology that allows you to embed programming code in the Web pages that are sent to user's computers. DHTML code actually executes within the users Web browser, and can change the appearance and content of the Web page in response to the user's actions on the page.
In Finality
You can use the various elements of technology and design to achieve the site navigation. When you take into account the above-mentioned seven basic considerations, to compare different navigation technology to maintain. Visitors, is becoming a competitive global e-commerce e-commerce rare rare. Those who retain access to your longer so that they convert into customers. Site navigation technology to help you do so.
Technique to Make Your Job of Designing and Building a Website a Lot Easier
Website you must make allowances for the lowest possible common browser. Simply put, designing an awesome content rich website is not enough. Here’s a Fast Track Technique to make your job of designing and building a website a lot easier: A great tip to creating that website is to reply on friends who are well-versed in web designing. Not only are you selling your product or service, you’re marketing it, doing the accounting, paying the bills, answering the phones, designing and updating your website and preparing and sending out mail. Use website templates if you don't have any designing flair. To know more about it logon to www.javascript-magic.com .Began designing a website to provide health information that you like and you’re in the process of designing your website. HTML is a common language for building and designing website. Whether you are building a brand new website, or re-designing an old website, or currently using a web design company for ongoing maintenance, these tips will help to make sure you are getting the best deal.
Who are these decisions to their own design an attempt, usually begins with a website template is a small sum. Database templates also help you change your site more easily and help you change without re-create the entire page from scratch The dividends of certain elements of a simple can not be ignored in the design of charge on a website is important that the site is very attractive Li, fast loading, user-friendly, focusing on content and has a high stickiness factor to it. Planning and organization in the design of a Web site of the most critical step.
Select a HTML Editor Before you can begin designing your new website, you will need a piece of software called a HTML Editor or sometimes called Web Editor. Design depends on individual taste and designing a website from a first draft that the client will like from the start, can be a real challenge. Doing freelance graphic designing without having your own website is suicide. Designing the video jacket, website, figuring out how to market the video and get publicity all while trying to lose weight hard enough to do when you're not stressed and food is you’re only vice.? To know more about it logon to www.oversightsystem.com .Designing a site with the web standards will ensure the website backbone will not need to be redone any time soon, which reduces the amount of work on the site and the expenses of the site owner. Website redesign firms use high speed connections while designing your new store so they rarely see the increase in page load times. Most of the Designing websites start by submitting their tutorials to let users know that their website has resources that can help them.
Even the simple but elegant site needs some work to do to adjust, rather than a web designer, how HTML and graphic design work will be designed in your basic knowledge of the long road of mercy website you can be proud of. Can be customized web site production, including the web editor's function is first rate, and means that you do not have to rely on any web site design company or designer to update your website pages. Most Web designers and their designs can not be any other service other than the concept of how to make money on the Internet.
www.impacts-audio.com
www.html-lockdown.com
All About Web 2.0
Web 2.0 is a concept revealed by a discussion between O’Reilly and Media Live international in the year 2004. Most of people are confused and have been in a dilemma that web 2.0 is a development platform or a new technology, though this is not true at all.
Basically, Web 2.0 is a powerful and strong blending of different technologies, applied to raise sharing of information, user interaction, creativity, innovation and desktop experience. These combinations of high quality features make the application simpler to understand, running it at a faster and quicker pace.
The technology infrastructure of Web 2.0 includes various techniques such as:
1. Rich Internet application technique (RIA) – This skill is helpful in creating rich desktop experience by making web pages more user friendly, interactive and receptive. With out any need of refreshing or reloading, the technique can modify, change and edit the content of web pages. Also, it has the capability to render dynamic effects and animations to make web pages more eye catching and attention grabbing. Several technologies have been emerged like DHTML, AJAX, style sheets, Flex, Java, ActiveX etc. which provide rich user experience in browser based applications.
2. Mashup – The technique is a web application that incorporates the content from multitude number of resources at a single destination. For fetching information from different resources, web services (API), RSS feeds and public interfaces are used. For example – When you import the photographs from Flicker or Picasa albums by using applications based on API, it is an ideal mash up example.
3. Inter site communication technique – This is the most vital feature equipped in web 2.0. By using web services and API’s, it makes the application highly distributed and appropriate. Most popular and common programs used are SOAP and REST.
4. Content syndication – It is one another important feature in which Web 2.0 contains XML and RSS content syndication. Web 2.0 uses XML to display site content in different formats like RDF, RSS and Atom. RSS is very helpful, as the user not only gets a hyper link on the web page, instead is also subscribed. Whenever any modification is done in the web content, a notification arrives at each and every time.
Details of all Web applications, by simple, easy and attractive interactive (World Wide Web) WWW revolution is, Web 2.0 has. A variety of techniques to create a lot of storage, and distribution capabilities with Web 2.0 lending. Check for these features is the fact that I have a whole new wonderful experience.
Ajax-based Login Control Without Any Standard Database
Introduction: In this tutorial, I will present a simple Login control based on AJAX. Any login control requires a database which stores all the user profiles like passwords. Server-sided script uses that database to compare against user given strings and matches, shows errors or redirects to appropriate pages, etc. However, the proposed technique does not require any standard database like access, sql, etc. It just requires a native xml flat/text database which has the minimal complexity to implement in practice.
I was looking for this type of simple login approach and finally came up this idea while going though the asynchronous javascript and xml technique (in short AJAX). In many occasions, setting up an external database is cumbersome and not worthy in terms of minimal usages. ?The proposed login control however will help you to remove all the burden, compatibility issues and time. To make it clear, conventional and standard database implementation requires a database server, authentication and authorization before creating a database, database-string to be used in your script which is platform specific and to me always clumsy. To get rid of all the cost and efforts, the proposed approach uses a simple flat database and read the database using (AJAX) to make a nice-looking login control.
Keep reading!
Big Picture: The following figure shows the AJAX-based login to see control. The user can enter his password into the text field. For simplicity, I have all the states on behalf of the United States as passwords. If the user specified string matches with one of the passwords
In this case, string user input does not match any of the pre-fix password, the color of the text box will automatically be yellow. He says the user does not try to do so and to delete some of the characters to try again.
Necessary files: We need 4 files for this login control:
i)??????????????????? script.html
ii)?????????????????? script.css
iii)???????????????? script.js
iv)???????????????? script.xml
The html and CSS file represents the contents and design mainly to show different components. Note that the ‘submit query’ button is kept hidden from visibility. It will only appear when the user-string matches with any of the passwords stored in the xml file.
The javascript file controls the AJAX connectivity and read the password on the fly. As soon as user presses a letter on the textbox, the corresponding function works to check for any match or mismatch and behave accordingly.
While pressing a single character, the function populates all the passwords in a hidden ‘popoups’ (which actually does not popup!) ?html component. The function then matches those strings with the user-given string. If, the popups component is empty, it indicates the user-string is not a prefix of any of the passwords and makes the text box yellow.
However, in case of matching between those two strings, the submit button appears. User now can click and go directly to his desired page.
// ---------------------------- script.html ----------------------------------------
<html>
<head>
??????????? <title>Auto-fill states</title>
??????????? <link rel="stylesheet" rev="stylesheet" onClick="javascript:pageTracker._trackPageview('/outgoing/article_exit_link');" href="script.css" />
??????????? <script src="script.js" type="text/javascript">
??????????? </script>
</head>
<body>
??????????? <form action="#">
??????????????????????? Please enter your Password:
??????????????????????? <input type="text" id="searchField" autocomplete="off" /><br />
??????????????????????? <div id="popups"> </div>
??????????? <input type="submit" id="submitme" style="visibility:hidden">
??????????? </form>
</body>
</html>
// ---------------------------- script.css ----------------------------------------
#popups {
??????????? position: absolute;
??????????? visibility:hidden;
}
#searchField.error {
??????????? background-color: #FC0;
}
// ---------------------------- script.js ----------------------------------------
window.onload = initAll;
var xhr = false;
var statesArray = new Array();
var passArray = new Array();
function initAll() {
??????????? document.getElementById("searchField").onkeyup = searchSuggest;
??????????? if (window.XMLHttpRequest) {
??????????????????????? xhr = new XMLHttpRequest();
??????????? }
??????????? else {
??????????????????????? if (window.ActiveXObject) {
??????????????????????????????????? try {
??????????????????????????????????????????????? xhr = new ActiveXObject("Microsoft.XMLHTTP");
??????????????????????????????????? }
??????????????????????????????????? catch (e) { }
??????????????????????? }
??????????? }
??????????? if (xhr) {
??????????????????????? xhr.onreadystatechange = setStatesArray;
??????????????????????? xhr.open("GET", "us-states.xml", true);
??????????????????????? xhr.send(null);
??????????? }
??????????? else {
??????????????????????? alert("Sorry, but I couldn't create an XMLHttpRequest");
??????????? }
}
function setStatesArray() {
??????????? if (xhr.readyState == 4) {
??????????????????????? if (xhr.status == 200) {
??????????????????????????????????? if (xhr.responseXML) {
??????????????????????????????????????????????? var allStates = xhr.responseXML.getElementsByTagName("item");
??????????????????????????????????????????????? for (var i=0; i<allStates.length; i++) {
??????????????????????????????????????????????????????????? statesArray[i] = allStates[i].getElementsByTagName("label")[0].firstChild;
??????????????????????????????????????????????? }
??????????????????????????????????? }
??????????????????????? }
??????????????????????? else {
??????????????????????????????????? alert("There was a problem with the request " + xhr.status);
??????????????????????? }
??????????? }
}
function searchSuggest() {
??????????? var str = document.getElementById("searchField").value;
??????????? document.getElementById("searchField").className = "";
??????????? if (str != "") {
??????????????????????? document.getElementById("popups").innerHTML = "";
??????????? var flag = 0;
??????????? for (var i=0; i<statesArray.length; i++) {
??????????????????????????????????? var thisState = statesArray[i].nodeValue;
???????????
??????????? if (str == thisState) {
??????????? ?flag = 1;
??????????? }
??????????????????????????????????? if (thisState.toLowerCase().indexOf(str.toLowerCase()) == 0) {
??????????????????????????????????????????????? var tempDiv = document.createElement("div");
??????????????????????????????????????????????? tempDiv.innerHTML = thisState;
??????????????????????????????????????????????? //tempDiv.onclick = makeChoice;
??????????????????????????????????????????????? tempDiv.className = "suggestions";
??????????????????????????????????????????????? document.getElementById("popups").appendChild(tempDiv);
??????????????????????????????????? }
??????????????????????? }
??????????????????????? var foundCt = document.getElementById("popups").childNodes.length;
??????????????????????? if (foundCt == 0) {
??????????????????????????????????? document.getElementById("searchField").className = "error";
??????????????????????????????????? document.getElementById("submitme").style.visibility="hidden";
??????????????????????? }
??????????????????????? if (foundCt > 0) {
???????????????????????????????????
??????????????????????????????????????????????? if ???????? (flag == 1) {?
???????????????????????????????????????????????
??????????????????????? document.getElementById("submitme").style.visibility="visible";
???????????????????????
??????????????????????? }
??????????????????????? }
??????????? }
}
Javascript: Using window.XMLHttpRequest object, the AJAX connectivity starts. The client reads from an XML file, parse required data from it and use that information in the client end.
Then the value is compared against the given string. If it matches with the stored passwords, the ‘submit button’ appears (case B in the figure). However, any mismatch of both strings will keep the submit button hidden from viewing. Also the mismatch is shown by the yellow colour (case C in the figure). Note that case C indicates that the user-given string cannot be prefix of any stored passwords. Therefore user should delete and enter again.
// ---------------------------- states.xml (passwords) ----------------------------------------
<?xml version="1.0"?>
<choices xml:lang="EN">
??????????? <item>
??????????????????????? <label>Alabama</label>
??????????????????????? <value>AL</value>
??????????? </item>
??????????? <item>
??????????????????????? <label>Alaska</label>
??????????????????????? <value>AK</value>
??????????? </item>
??????????? <item>
??????????????????????? <label>Arizona</label>
??????????????????????? <value>AZ</value>
??????????? </item>
………………………………….
…………………………………..
</choices>
Conclusion: The advantage of this code that you do not need any kind of standard database (Access, SQL database, etc.). Make these four simple to update files on your server, or fill in the XML script with your passwords (customers) and run the html. Now, from the server (eg call with http://localhost/path ..). Its not work, right? You see all the complexity in terms of standard database connection in the server-side scripting is not required. In many cases this simple script to setup your load and external databases and SQL programming to remove in your script.
Happy simpler coding!
Manzur Ashraf
www.sacars.com.au
Posted in: javascript tutorial| Tags: Database XML Script ajax Control technique text user ajax-based loginJava: Object Oriented Programming
OOPs is a programming technique designed to simplify convoluted programming concepts. In fundamental nature, object-oriented programming revolves around the idea of user- and system-defined chunks of data, and controlled means of accessing and modifying those chunks. Object-oriented programming consists of Objects, Methods and Properties. An object is basically a black box which stores some information. Object may have a way for you to read that information and a way for you to write to, or change in sequence. It may also have other less noticeable ways of interacting with the information.
Some of the information in the object may essentially be directly easily reached; other information may necessitate you to use a method to access it - conceivably because the way the information is stored internally is of no use to you, or because only certain things can be written into that information space and the object needs to check that you're not going outside those limits. The directly reachable bits of information in the object are its properties. The difference between data accessed via properties and data accessed via methods is that with properties, you see accurately what you're doing to the object; with methods, unless you created the object yourself, you just see the effects of what you're doing.
Other JavaScripts site works will almost certainly happen too often, objects, events, methods and properties. This tutorial will learn from examples, without being too deeply into OOP terminology. However, you need a fundamental of these concepts to other JavaScript references used. Your web page document is an object. Each Web page can include table, form, button, an image or link on your site, is also an object. Each object has convinced properties. For example, the background color of the document is written document.bgColor. They would be too red, the color of your page code with scripts written in the line document.bgColor =
Most of the objects that they can have a specific collection. As another object, you can do something else you can turn on or turn off the light. This new document is opened in the documentation of the method. open () if
How To Answer Difficult Interview Questions Without Knowing The Answers
No matter how well you prepare for your interview, chances are you with questions you do not know how to face the answer. In this case, do not be nervous about. You have to accept that they are not invincible. And sometimes it is perhaps just a trick to use to test your interviewer how you respond to difficult and uncomfortable questions on the spot. You want to watch your behavior under embarrassing and difficult situations.
Use the Seek-And-Reply technique. It allows you to
- Understand more clearly the interviewers' question.
- Gain rapport with your interviewers and engage them in your presentation
- Take control of your answer presentation to achieve your desired performance
How to use the Seek-And-Reply technique?
Each time, the question according to the procedure, the encounter did not know how to answer:
Think of the best PRELIMINARY answer to the question.
Break down your PRELIMINARY answer into 2 to 3 points.
The first to use diplomatic language, like a politician, your answers. For example, "I do not have a complete picture, but I think .....
Here is a demonstration:
I do not have the "COMPLETE PICTURE", so "to the best of my UNDERSTANDING AND COMPREHENSION", I would like to express my opinion herein as..........................................
You can go to the first point to explain your answer then reserve. Create a one point after a short pause, the interview questions:
"CAN YOU FOLLOW WHAT I AM SAYING?"
"AM I IN THE RIGHT DIRECTION?"
"DO YOU HAVE ANY COMMENTS SO FAR?"
You are now passing the
Your strategy is to find out what is on their minds when they ask the hard question.
So give your fair "share" of the answer and ask them for their "share" as well.
Repeat the above procedures for point 2 and 3 of your preliminary answer.
Of course, you can adapt your answers to the information under the guidance of your contribution immediately. How now, and know the answers to difficult questions by using the techniques seek to reply.
Seek their minds before your Reply to their questions.
Use this technique to take control of a job interview.
Posted in: interview questions| Tags: Interview Question Control answer technique point use reply preliminary presentation