<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5006455826685622224</id><updated>2012-02-16T12:36:14.515+05:30</updated><title type='text'>sujeev</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sujeev84.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5006455826685622224/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sujeev84.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>sujeeve</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5006455826685622224.post-3026849000848586354</id><published>2010-01-15T15:44:00.000+05:30</published><updated>2010-01-15T15:50:58.816+05:30</updated><title type='text'>Auto insurance quotes Florida</title><content type='html'>Florida Car Insurance - Auto Insurance Quote in FL&lt;br /&gt;Florida's State motto: "In God we trust"&lt;br /&gt;&lt;br /&gt;Finding low cost auto insurance rates in Florida has never been easier. CarInsurance.com offers the best Online Insurance Marketplace™ to help you comparison shop for the lowest local car insurance rates available. We offer one convenient place to get a quote and buy a policy in 20 minutes or less. In addition, we have all the resources you need to make informed decisions about your car insurance. You get great service from over a dozen of the most reliable and affordable insurance companies in Florida, so the only thing you do is shop to save money. The best rate in Florida last year, is not the best rate in Florida this year!&lt;br /&gt;Florida Car Insurance Requirements&lt;br /&gt;&lt;br /&gt;Florida state law does require PIP, in addition to Property Damage Liability coverage with a minimum limit of $10,000. This basic coverage is often referred to as a PIP/PD. Even if state law does not require a minimum coverage for Bodily Injury Liability coverage, you may be required to get this coverage once you have been in an accident. It is advised that you get at least the minimum Bodily Injury Liability coverage.&lt;br /&gt;Florida Insurance Coverage:&lt;br /&gt;Property Damage Liability: $10,000 Limit&lt;br /&gt;Personal Injury Protection: $10,000 Limit&lt;br /&gt;&lt;br /&gt;The state of Florida follows a No-Fault system meaning your insurance company will make payments for your injury claims regardless of fault, up to a specified limit. Typically, you lose some of your rights to sue under a No-Fault system. Details of a no-fault system vary from state to state.&lt;br /&gt;&lt;br /&gt;Personal Injury Protection (PIP) helps pay for "reasonable and necessary" medical expenses for you and your passengers. Florida state law requires a minimum Personal Injury Protection coverage of $10,000.&lt;br /&gt;&lt;br /&gt;You can get Uninsured/Underinsured Motorist Bodily Injury coverage to cover bodily injury caused by an uninsured and/or underinsured driver (depending on the state). Florida does not require drivers to purchase this coverage, but you should consider purchasing this valuable coverage.&lt;br /&gt;&lt;br /&gt;When you get a quote at CarInsurance.com, our coverage page will give you the option of choosing the Minimum State Required package, more wide-ranging coverage packages, or you can customize every limit and deductible to fit your needs. If that is too complicated, CarInsurance.com's insurance agents are licensed in Florida and available to help you all the way through the quote and purchase process.&lt;br /&gt;&lt;br /&gt;See how Florida's car insurance quotes are trending. CarInsurance.com's Average Premium Trend Tool shows these changes in Florida auto insurance rates, over the past few months. The arrow shows the montly trend and the graph shows the change in Florida's average car insurance rates over the past few months. Hold your mouse over the points to see Florida's annual average premium.&lt;br /&gt;&lt;br /&gt;Get your free car insurance quotes in minutes.&lt;br /&gt;&lt;br /&gt;Get multiple quotes from trusted car insurance companies. With CarInsurance.com, it is easy to compare multiple auto insurance company rates, purchase online, and save $500 a year or more on car insurance!&lt;br /&gt;&lt;br /&gt;Because we offer multiple company insurance rates and the ability to purchase each insurance company's auto insurance quote from one place, we are ahead of other online insurance companies. Start your quote to see how companies compete for your business.&lt;br /&gt; Some of our available online car insurance companies:&lt;br /&gt;Progressive Auto Insurance or GMAC&lt;br /&gt;Esurance Insurance&lt;br /&gt;Safeco Insurance&lt;br /&gt;Direct General Insurance or GEICO&lt;br /&gt;Meritplan Insurance&lt;br /&gt;Travelers Insurance&lt;br /&gt;The Hartford&lt;br /&gt;Infinity Car Insurance&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Our online car insurance quote takes a few minutes and then we provide rates directly from multiple insurance companies in 60 seconds or less. You can purchase insurance online through CarInsurance.com or licensed agents in our professional sales center are available to help you purchase your car insurance policy immediately.&lt;br /&gt;&lt;br /&gt;Our goal is to give consumers all the information and resources they need to make informed auto insurance decisions. We are your Online Car Insurance Marketplace&lt;br /&gt;&lt;br /&gt;The best way find low cost, quality auto insurance in Florida is to obtain free quotes from multiple companies in order to find out which company will offer you the lowest rates.&lt;br /&gt;&lt;br /&gt;OnlineAutoInsurance.com allows you to compare rates in Florida with one simple process. state of Florida&lt;br /&gt;&lt;br /&gt;Whether looking for "full coverage" or "liability coverage", motorists can obtain the cost of premiums instantly and easily from top companies such as Drive from Progressive, AIG, Unitrin and more. This can be extremely useful in helping individuals locate the right policy from a reliable provider at a price they can afford.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    * Auto Insurance Quotes&lt;br /&gt;    * State Resources&lt;br /&gt;    * Companies&lt;br /&gt;    * Auto Insurance Info&lt;br /&gt;    * About Us&lt;br /&gt;    * Blog&lt;br /&gt;    * Contact Us&lt;br /&gt;&lt;br /&gt;Florida Auto Insurance&lt;br /&gt;&lt;br /&gt;Florida auto insurance regulations are based on two major laws: the No Fault Law and the Financial Responsibility Law. All vehicle owners in the state are required to maintain insurance policies that will cover both the injuries and damages to themselves and to the other parties in the event of an accident. Florida does not take insurance violations lightly. All car owners and drivers in the state are encouraged to abide by the laws to avoid heavy fines and suspension.&lt;br /&gt;&lt;br /&gt;Florida's Financial Responsibility Law covers damage to other individuals or vehicles and does not relate to injuries or damages of your own. According to state law, drivers must carry the required minimal policies under any of the following circumstances: a DUI citation and license revocation, license revocation of a habitual traffic offender, a crash that you caused and that involved injuries, or a suspended license resulting from too many points.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5006455826685622224-3026849000848586354?l=sujeev84.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sujeev84.blogspot.com/feeds/3026849000848586354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sujeev84.blogspot.com/2010/01/auto-insurance-quotes-florida.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5006455826685622224/posts/default/3026849000848586354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5006455826685622224/posts/default/3026849000848586354'/><link rel='alternate' type='text/html' href='http://sujeev84.blogspot.com/2010/01/auto-insurance-quotes-florida.html' title='Auto insurance quotes Florida'/><author><name>sujeeve</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5006455826685622224.post-8583302159759328031</id><published>2010-01-12T10:29:00.001+05:30</published><updated>2010-01-12T10:30:18.862+05:30</updated><title type='text'>new york hotels</title><content type='html'>Millennium UN Plaza Hotel New York&lt;br /&gt;&lt;br /&gt;One UN Plaza, Midtown, Manhattan (New York) Show map&lt;br /&gt;&lt;br /&gt;With stunning views of the Empire State Building and East River, this hotel offers unique facilities in Manhattan's East Side, within steps of the city's Grand Central Terminal. &lt;br /&gt;&lt;br /&gt;Crowne Plaza Times Square&lt;br /&gt;&lt;br /&gt; 1605 Broadway Avenue, Times Square, Manhattan (New York) Show map&lt;br /&gt;&lt;br /&gt;With a prime location right in Times Square, this luxurious midtown Manhattan hotel offers exciting on-site dining and comfortable guestrooms just steps from a variety of city attractions&lt;br /&gt;&lt;br /&gt;Empire Hotel&lt;br /&gt;&lt;br /&gt;44 West 63rd Street, Central Park, Manhattan (New York) &lt;br /&gt;Show map&lt;br /&gt;&lt;br /&gt;This New York City hotel is located in Manhattan's upper west side, near Lincoln Center and Central Park. The hotel offers a rooftop pool and a full-service spa&lt;br /&gt;&lt;br /&gt;New York Maps&lt;br /&gt;Use the New York area maps below to find the best way to get to and from New York - with all the major roads marked, along with domestic and international New York airports. You can find information on airports, airport car parking, car rental and public transport in the relevant sections of our New York city guide.&lt;br /&gt;New York, New York Hotels and City Guide&lt;br /&gt;New York Hotels and New York Guide with New York maps, top attractions, room reservations and hotel deals at a wide range of the best New York hotels&lt;br /&gt;&lt;br /&gt;# InterContinental The Barclay New York&lt;br /&gt;#&lt;br /&gt;2&lt;br /&gt;Best Western Convention Center Hotel&lt;br /&gt;#&lt;br /&gt;3&lt;br /&gt;Best Western Hospitality House&lt;br /&gt;#&lt;br /&gt;4&lt;br /&gt;Best Western President Hotel&lt;br /&gt;#&lt;br /&gt;5&lt;br /&gt;Four Seasons New York&lt;br /&gt;#&lt;br /&gt;6&lt;br /&gt;Mandarin Oriental New York&lt;br /&gt;#&lt;br /&gt;7&lt;br /&gt;Ritz Carlton Battery Park&lt;br /&gt;#&lt;br /&gt;8&lt;br /&gt;Ritz Carlton Central Park&lt;br /&gt;#&lt;br /&gt;9&lt;br /&gt;Sofitel New York&lt;br /&gt;&lt;br /&gt;Ritz-Carlton New York, Central Park&lt;br /&gt;&lt;br /&gt;Ritz-Carlton New York, Central Park&lt;br /&gt;Check Availability for this HotelThis 33 story, five star and AAA five-diamond hotel offers the ultimate cosmopolitan experience, with fine elegance. The hotel offers guests 260 rooms, including 49 suites. The hotel boasts captivating views of central park, a short walk to attractions such as Fifth Avenue, Broadway, and Rockefeller Centre.&lt;br /&gt;&lt;br /&gt;Guest rooms are spacious, (425 square feet), and equipped with the finest furnishings, such as 400-thread count fine linen, marble bath with soaking tub and separate stall shower and silk and plush terry robes, and exclusive Frédéric Fekkai amenities. Additional facilities within rooms include dvd player and 27-inch Sony flat screen TV, in room safe, mini bar, cordless telephone, high speed internet.     &lt;br /&gt;&lt;br /&gt;The hotel also offers guests the Star Lounge, which services afternoon teas, cocktails, and light fare. In summer 2007 the hotel will be opening the new BLT Market, featuring a rotating seasonal menu. The hotel also offers guests spa treatments with the latest La Prairie products, a fitness centre,  with sauna and steam rooms.&lt;br /&gt;&lt;br /&gt;The hotel also accommodates for business guests with 4 state-of-the-art conference rooms, with capacity of up to 150.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5006455826685622224-8583302159759328031?l=sujeev84.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sujeev84.blogspot.com/feeds/8583302159759328031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sujeev84.blogspot.com/2010/01/new-york-hotels.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5006455826685622224/posts/default/8583302159759328031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5006455826685622224/posts/default/8583302159759328031'/><link rel='alternate' type='text/html' href='http://sujeev84.blogspot.com/2010/01/new-york-hotels.html' title='new york hotels'/><author><name>sujeeve</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5006455826685622224.post-7181631635853064304</id><published>2010-01-11T11:19:00.000+05:30</published><updated>2010-01-11T13:45:07.657+05:30</updated><title type='text'>SSL is not secure anymore</title><content type='html'>Nov&lt;br /&gt;09&lt;br /&gt;SSL is not secure anymore - Serious vulnerability identified in v3 &amp; previous versions&lt;br /&gt;A serious vulnerability in SSL v3 and previous versions of SSL protocol has been identified and made public on November 4, 2009.&lt;br /&gt;This makes every SSL site vulnerable to serious man-in-middle (MITM) attacks related to renegotiation.&lt;br /&gt;&lt;br /&gt;This vulnerability is due to the design of "session resumption" feature of SSL protocol.&lt;br /&gt;&lt;br /&gt;Who Gets affected?&lt;br /&gt;&lt;br /&gt;The impact of this issue is potentially significant. below are some points extracted from issue details,&lt;br /&gt;&lt;br /&gt;    * This attack has been demonstrated against recent versions of Apache httpd and Microsoft IIS, with a variety of clients.&lt;br /&gt;&lt;br /&gt;    * Most existing installations which currently rely on client certificates for authentication appear to be vulnerable.&lt;br /&gt;&lt;br /&gt;    * Shared hosting environments which allow untrusted customers served from the same IP to configure any aspect of their encryption parameters appear to be vulnerable.&lt;br /&gt;&lt;br /&gt;    * Most or all server applications built on TLS(Transport Layer Security) implementations which honor client-initiated renegotiation are vulnerable.&lt;br /&gt;&lt;br /&gt;    * Early research suggests that digital certificates embedded on smart cards are equally vulnerable to the client certificate authentication attacks.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What is a Man-in-the-middle (MITM) Attack?&lt;br /&gt;&lt;br /&gt;A man in the middle attack is one in which the attacker intercepts messages in a public key exchange and then retransmits them, substituting his own public key for the requested one, so that the two original parties still appear to be communicating with each other.&lt;br /&gt;&lt;br /&gt;Though MITM attacks are very common on HTTP, these could also be done over an https connection using the same technique; the only difference consists in the establishment of two independent SSL sessions, one over each TCP connection. The browser sets a SSL connection with the attacker, and the attacker establishes another SSL connection with the web server. In general the browser warns the user that the digital certificate used is not valid, but the user may ignore the warning because he doesn’t understand the threat. In some specific contexts it’s possible that the warning doesn’t appear, as for example, when the Server certificate is compromised by the attacker or when the attacker certificate is signed by a trusted CA and the CN is the same of the original web site.&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_sRus23-q9HQ/S0q8O_39ewI/AAAAAAAAABc/UJ3mrFMwftk/s1600-h/Man-in-the-middle-attack-pic.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 226px;" src="http://1.bp.blogspot.com/_sRus23-q9HQ/S0q8O_39ewI/AAAAAAAAABc/UJ3mrFMwftk/s320/Man-in-the-middle-attack-pic.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5425355666971523842" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Below is a simple example of a successful MITM attack in simple terms (extracted from Wikipedia)&lt;br /&gt;&lt;br /&gt;Suppose Alice wishes to communicate with Bob. Meanwhile, Mallory wishes to eavesdrop on the conversation, or possibly deliver a false message to Bob&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    1/ Alice sends a message to Bob, which is intercepted by Mallory&lt;br /&gt;    Alice --hi bob, it's alice, give me your key--&gt; Mallory Bob&lt;br /&gt;&lt;br /&gt;    2/ Mallory relays this message to Bob; Bob can't tell it's not&lt;br /&gt;    really from Alice&lt;br /&gt;    Alice Mallory --hi bob, it's alice, give me your key--&gt; Bob&lt;br /&gt;&lt;br /&gt;    3/ Bob responds with his encryption key&lt;br /&gt;    Alice Mallory &lt;--ok, here is bob's key:bob's key-- Bob&lt;br /&gt;&lt;br /&gt;    4/ Mallory replaces bob's key with his own, and relays this to&lt;br /&gt;    Alice, claiming that it is Bob's key&lt;br /&gt;    Alice &lt;--ok, here is bob's key:MALLORY's key-- Mallory Bob&lt;br /&gt;&lt;br /&gt;    5/ Alice now encrypts a message with what she believes to&lt;br /&gt;    be Bob's key, thinking that only Bob can read it...&lt;br /&gt;    Alice --msg encrypted with Mallory's key--&gt; Mallory Bob&lt;br /&gt;&lt;br /&gt;    6/ However, as it was actually encrypted with Mallory's key,&lt;br /&gt;    Mallory can decrypt it, read it, modify it (if desired),&lt;br /&gt;    re-encrypt with Bob's key, and forward it to Bob&lt;br /&gt;    Alice Mallory --msg encrypted with Bob's key--&gt; Bob&lt;br /&gt;&lt;br /&gt;    7/ Bob thinks that this message is a secure communication&lt;br /&gt;    from Alice.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What is the Solution/Mitigation?&lt;br /&gt;&lt;br /&gt;First of all judging from recent experience, it is anticipated that the problem domain will continue to evolve in the coming weeks. Therefore there is no clear fool-proof solution suggested by researchers yet.&lt;br /&gt;&lt;br /&gt;Mitigation of the HTTPS client certificate attacks is difficult and involves tradeoffs.&lt;br /&gt;&lt;br /&gt;One scenario for mitigation involves web developers reorganizing their sites to strictly separate areas of each site into zones based on their differing requirements for authentication, with zones being served from distinct IP addresses. One can imagine the high costs of such a transition, although there are ways to partially or fully automate this separation.&lt;br /&gt;&lt;br /&gt;Other mitigations involve protocol changes, but again, they generally have their own issues.In some cases, compatibility with old client software is broken completely.&lt;br /&gt;&lt;br /&gt;The right long-term solution to the renegotiation problem involves a much more careful binding between TLS(Transport Layer Security) and upper protocol layers. This could be handled in a variety of ways, including breaking and backwards-compatible changes.&lt;br /&gt;&lt;br /&gt;Some Helpful References &amp; Resources&lt;br /&gt;&lt;br /&gt;    * Sun is evaluating the impact of the issue on various products which make use of the TLS librarieshttp://blogs.sun.com/security/entry/vulnerability_in_tls_protocol_during&lt;br /&gt;&lt;br /&gt;    * Sun Security Blog&lt;br /&gt;&lt;br /&gt;    * Vulnerability identified in SSL v3&lt;br /&gt;&lt;br /&gt;    * Some helpful SSL protocol diagrams&lt;br /&gt;&lt;br /&gt;    * Man-in-the-middle attack&lt;br /&gt;&lt;br /&gt;    * Wikipedia Definition : Man-in-the-middle attack&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5006455826685622224-7181631635853064304?l=sujeev84.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sujeev84.blogspot.com/feeds/7181631635853064304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sujeev84.blogspot.com/2010/01/nov-09-ssl-is-not-secure-anymore.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5006455826685622224/posts/default/7181631635853064304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5006455826685622224/posts/default/7181631635853064304'/><link rel='alternate' type='text/html' href='http://sujeev84.blogspot.com/2010/01/nov-09-ssl-is-not-secure-anymore.html' title='SSL is not secure anymore'/><author><name>sujeeve</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_sRus23-q9HQ/S0q8O_39ewI/AAAAAAAAABc/UJ3mrFMwftk/s72-c/Man-in-the-middle-attack-pic.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5006455826685622224.post-4824581066125360430</id><published>2010-01-11T11:02:00.000+05:30</published><updated>2010-01-11T11:10:33.704+05:30</updated><title type='text'>Software</title><content type='html'>Computer software, or just software is a general term primarily used for digitally stored data such as computer programs and other kinds of information read and written by computers. Today, this includes data that has not traditionally been associated with computers, such as film, tapes and records.[1] The term was coined in order to contrast to the old term hardware (meaning physical devices); in contrast to hardware, software is intangible, meaning it "cannot be touched".[2] . Software is also sometimes used in a more narrow sense, meaning application software only.&lt;br /&gt;&lt;br /&gt;Examples:&lt;br /&gt;&lt;br /&gt;    * Application software, such as word processors which perform productive tasks for users.&lt;br /&gt;    * Firmware, which is software programmed resident to electrically programmable memory devices on board mainboards or other types of integrated hardware carriers.&lt;br /&gt;    * Middleware, which controls and co-ordinates distributed systems.&lt;br /&gt;    * System software such as operating systems, which govern computing resources and provide convenience for users.&lt;br /&gt;    * Software testing is a domain dependent of development and programming. Software testing consists of various methods to test and declare a software product fit before it can be launched for use by either an individual or a group.&lt;br /&gt;    * Testware, which is an umbrella term or container term for all utilities and application software that serve in combination for testing a software package but not necessarily may optionally contribute to operational purposes. As such, testware is not a standing configuration but merely a working environment for application software or subsets thereof.&lt;br /&gt;    * Video games (except the hardware part)&lt;br /&gt;    * Websites&lt;br /&gt;Software characteristics&lt;br /&gt;&lt;br /&gt;    * Software is developed and engineered.&lt;br /&gt;    * Software doesn't "wear-out".&lt;br /&gt;    * Most software continues to be custom built.&lt;br /&gt;    * Software is constantly outdated.&lt;br /&gt;Types of software&lt;br /&gt;&lt;br /&gt;Practical computer systems divide software systems into three major classes[citation needed]: system software, programming software and application software, although the distinction is arbitrary, and often blurred.&lt;br /&gt;[edit] System software&lt;br /&gt;&lt;br /&gt;System software helps run the computer hardware and computer system. It includes a combination of the following:&lt;br /&gt;&lt;br /&gt;    * device drivers&lt;br /&gt;    * operating systems&lt;br /&gt;    * servers&lt;br /&gt;    * utilities&lt;br /&gt;    * windowing systems&lt;br /&gt;&lt;br /&gt;Programming software&lt;br /&gt;&lt;br /&gt;Programming software usually provides tools to assist a programmer in writing computer programs, and software using different programming languages in a more convenient way. The tools include:&lt;br /&gt;&lt;br /&gt;    * compilers&lt;br /&gt;    * debuggers&lt;br /&gt;    * interpreters&lt;br /&gt;    * linkers&lt;br /&gt;    * text editors&lt;br /&gt;&lt;br /&gt;An Integrated development environment (IDE) is a single application that attempts to manage all these functions.&lt;br /&gt;[edit] Application software&lt;br /&gt;&lt;br /&gt;Application software allows end users to accomplish one or more specific (not directly computer development related) tasks. Typical applications include:&lt;br /&gt;&lt;br /&gt;    * industrial automation&lt;br /&gt;    * business software&lt;br /&gt;    * computer games&lt;br /&gt;    * quantum chemistry and solid state physics software&lt;br /&gt;    * telecommunications (i.e., the internet and everything that flows on it)&lt;br /&gt;    * databases&lt;br /&gt;    * educational software&lt;br /&gt;    * medical software&lt;br /&gt;    * military software&lt;br /&gt;    * molecular modeling software&lt;br /&gt;&lt;br /&gt;The Lanka Software Foundation is a Free and Open Source R&amp;D Non-Profit organization with the objective of giving fellowships and internships to talented developers who would like to contribute to FOSS. Notable contributions from Lanka Software Foundation have been the Apache AXIS project, other Apache Web Services projects and the Sahana Disaster Management System.&lt;br /&gt;Offshore Software Development and Outsourcing&lt;br /&gt;&lt;br /&gt;Offshore software development is a cost effective alternative to developing software in-house. We safeguard your intellectual property, proprietary software and new development specifications with very high levels of security and you retain full ownership, of all intellectual property rights and software source code at the completion of the project.&lt;br /&gt;&lt;br /&gt;List of portable software&lt;br /&gt;Portable software is a class of software that is suitable for use on portable drives such as a USB (thumb) drive or digital audio player or PDA with "drive mode", although any external hard drive can be used. [1] [2] The concept of carrying one's favored applications, utilities, and files on a portable drive for use on any computer is one which has evolved considerably in recent years.&lt;br /&gt;&lt;br /&gt;Programs in this category (also known as portable applications) are typically 'lite' versions of their parent software, but there are many exceptions.&lt;br /&gt;&lt;br /&gt;To be considered portable, for purpose of this list, a software program must:&lt;br /&gt;&lt;br /&gt;   1. Not require any kind of formal installation onto a computer's permanent storage device to be executed, and can be stored on a removable storage device such as USB flash drive, enabling it to be used on multiple computers.&lt;br /&gt;   2. Settings are stored with, and can be carried around with, the software (i.e., they are written to the USB drive). If the registry is used to store settings, the application's configuration isn't portable, and must be set up on every PC it is used on&lt;br /&gt;   3. Leaves a zero (or near-zero) "footprint" on any PC it's run on after being used. i.e., All temporary files/registry settings should be removed once the program has exited, and files created by the user can be saved directly to the same removable media as the application is stored on.&lt;br /&gt;A serious vulnerability in SSL v3 and previous versions of SSL protocol has been identified and made public on November 4, 2009.&lt;br /&gt;This makes every SSL site vulnerable to serious man-in-middle (MITM) attacks related to renegotiation.&lt;br /&gt;&lt;br /&gt;This vulnerability is due to the design of "session resumption" feature of SSL protocol.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5006455826685622224-4824581066125360430?l=sujeev84.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sujeev84.blogspot.com/feeds/4824581066125360430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sujeev84.blogspot.com/2010/01/software.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5006455826685622224/posts/default/4824581066125360430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5006455826685622224/posts/default/4824581066125360430'/><link rel='alternate' type='text/html' href='http://sujeev84.blogspot.com/2010/01/software.html' title='Software'/><author><name>sujeeve</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5006455826685622224.post-7818971043025772276</id><published>2010-01-11T10:47:00.000+05:30</published><updated>2010-01-11T10:58:23.180+05:30</updated><title type='text'>Hotels</title><content type='html'>Featured Hotels in Dubai &lt;br /&gt;Dubai Marina , Dubai Marina, Dubai Show map&lt;br /&gt;&lt;br /&gt;Overlooking the famous Dubai Marina, the Dusit Residence offers exclusive fully-serviced apartments within easy reach of Internet City, Media City and Knowledge Village&lt;br /&gt;I liked the hotel very much And more is the team they have High morality I lived such a short period, but I want to make a hotel -Dusit Residence Dubai Marina - is my home in Dubai.…   More&lt;br /&gt;— Yazeed (Riyadh )&lt;br /&gt;Oasis Beach Tower Apartments&lt;br /&gt;&lt;br /&gt;Al Sufouh Road, Dubai Marina, Dubai Show map&lt;br /&gt;&lt;br /&gt;Overlooking the white sands of Jumeirah Beach and the Dubai Marina complex, the luxurious Oasis Beach Tower offers elegant and modern apartments with beautiful sea views. More… &lt;br /&gt;&lt;br /&gt;Kempinski Hotel Mall of the Emirates&lt;br /&gt;&lt;br /&gt;Sheikh Zayed Road, Al Barsha, Dubai Show map&lt;br /&gt;&lt;br /&gt;The impressive Kempinski Hotel Mall of the Emirates is the world's third largest indoor ski resort. It has one of the world's longest indoor ski slopes and the biggest covered snow park. &lt;br /&gt;&lt;br /&gt;Chelsea Tower Suites &amp; Apartments&lt;br /&gt;&lt;br /&gt;Sheikh Zayed Road, Trade Centre 1, Dubai Show map&lt;br /&gt;&lt;br /&gt;Chelsea Tower is ideally located on Sheikh Zayed Road, just a 10-minute drive from Dubai Mall, Jumeirah Beach, and close to metro links. More… &lt;br /&gt;&lt;br /&gt;Four Points by Sheraton Sheikh Zayed Road&lt;br /&gt;&lt;br /&gt;Sheikh Zayed Road, Trade Centre 1, Dubai Show map&lt;br /&gt;&lt;br /&gt;This 4-star hotel is easily accessible and ideally placed on Sheikh Zayed Road, near the Financial and Exhibition Centre, Dubai World Trade Centre, major shopping malls, and Jumeirah Beach Park. More… &lt;br /&gt;&lt;br /&gt;Habtoor Grand Resort &amp; Spa&lt;br /&gt;&lt;br /&gt;Al Sufouh Road, Dubai Marina, Dubai Show map&lt;br /&gt;&lt;br /&gt;The 446 rooms and suites at Habtoor Grand Resort &amp; Spa enjoy amazing views over the sea or the tropical gardens. All of them are beautifully furnished with a touch of Arabic style. More… &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Welcome to Burj Al Arab&lt;br /&gt;&lt;br /&gt;Arrive in absolute awe, stay individually inspired.&lt;br /&gt;&lt;br /&gt;In its relatively short tenure on the Dubai coastline this legendary and symbolic hotel has attracted international attention and awe, ensuring its place as one of the most photographed structures in the world. Designed to resemble a billowing sail, Burj Al Arab soars to a height of 321 metres, dominating the Dubai skyline. Illuminated at night by choreographed lighting representing water and fire – Burj Al Arab is simply individual, inspired, impressive.&lt;br /&gt;&lt;br /&gt;This all-suite hotel reflects the very finest that the world has to offer. With a discreet in-suite check-in, private reception desk on every floor and a brigade of highly trained butlers, you can be assured of the ultimate in personal service throughout your stay. Upgrade your experience with your chauffeur driven Rolls Royce.&lt;br /&gt;&lt;br /&gt;View Jumeirah Hotels &amp; Resorts online directory and Set Your Imaginations On Fire.&lt;br /&gt;&lt;br /&gt;Stay individually inspired.&lt;br /&gt;&lt;br /&gt;Designed to provide maximum comfort, our unique service levels mean that even your check-in will be in the privacy of your suite.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;THASL is the trade association that represents many of the leading hotels in Sri Lanka. At present this site is designed to help you to quickly find and contact reputable hotels that meet your needs. The site is new and we are bringing you more functionality. If there is a particular feature that you would like to see on our site please do tell us. All of us at THASL would take this opportunity of wishing you a wonderful holiday in Sri Lanka.&lt;br /&gt;Ceylon Hotels Corporation, having commenced business in 1967, boasts a diverse collection of 19 hotels, rest houses, resorts and restaurants throughout Sri Lanka, many of which offer an old world charm providing clients with something quintessentially local in the most picturesque and prominent locations known to man. Many are within a few kilometers to renowned historical sites and attractions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5006455826685622224-7818971043025772276?l=sujeev84.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sujeev84.blogspot.com/feeds/7818971043025772276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sujeev84.blogspot.com/2010/01/hotels.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5006455826685622224/posts/default/7818971043025772276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5006455826685622224/posts/default/7818971043025772276'/><link rel='alternate' type='text/html' href='http://sujeev84.blogspot.com/2010/01/hotels.html' title='Hotels'/><author><name>sujeeve</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5006455826685622224.post-6344410079963631330</id><published>2010-01-11T10:37:00.000+05:30</published><updated>2010-01-11T10:45:11.047+05:30</updated><title type='text'>Mortgage</title><content type='html'>A mortgage is the transfer of an interest in property (or the equivalent in law - a charge) to a lender as a security for a debt - usually a loan of money. While a mortgage in itself is not a debt, it is the lender's security for a debt. It is a transfer of an interest in land (or the equivalent) from the owner to the mortgage lender, on the condition that this interest will be returned to the owner when the terms of the mortgage have been satisfied or performed. In other words, the mortgage is a security for the loan that the lender makes to the borrower.&lt;br /&gt;&lt;br /&gt;This comes from the Old French "dead pledge," apparently meaning that the pledge ends (dies) either when the obligation is fulfilled or the property is taken through foreclosure.[1]&lt;br /&gt;&lt;br /&gt;In most jurisdictions mortgages are strongly associated with loans secured on real estate rather than on other property (such as ships) and in some jurisdictions only land may be mortgaged. A mortgage is the standard method by which individuals and businesses can purchase real estate without the need to pay the full value immediately from their own resources. See mortgage loan for residential mortgage lending, and commercial mortgage for lending against commercial property.&lt;br /&gt;&lt;br /&gt;Participants and variant terminology&lt;br /&gt;&lt;br /&gt;Legal systems in different countries, while having some concepts in common, employ different terminology. However, in general, a mortgage of property involves the following parties.&lt;br /&gt;[edit] Mortgage lender&lt;br /&gt;&lt;br /&gt;A mortgage lender is an investor that lends money secured by a mortgage on real estate. Typically, the purpose of the loan is for the borrower to purchase that same real estate. The borrower, known as the mortgagor, gives the mortgage to the lender, known as the mortgagee. As the mortgagee, the lender has the right to sell the property to pay off the loan if the borrower fails to pay.&lt;br /&gt;&lt;br /&gt;The mortgage runs with the land, so even if the borrower transfers the property to someone else, the mortgagee still has the right to sell it if the borrower fails to pay off the loan.&lt;br /&gt;&lt;br /&gt;So that a buyer cannot unwittingly buy property subject to a mortgage, mortgages are registered or recorded against the title with a government office, as a public record. The borrower has the right to have the mortgage discharged from the title once the debt is paid.&lt;br /&gt;[edit] Borrower&lt;br /&gt;&lt;br /&gt;A mortgagor is the borrower in a mortgage—they owe the obligation secured by the mortgage. Generally, the debtor must meet the conditions of the underlying loan or other obligation and the conditions of the mortgage. Otherwise, the debtor usually runs the risk of foreclosure of the mortgage by the creditor to recover the debt. Typically the debtors will be the individual home-owners, landlords or businesses who are purchasing their property by way of a loan.&lt;br /&gt;[edit] Other participants&lt;br /&gt;&lt;br /&gt;Because of the complicated legal exchange, or conveyance, of the property, one or both of the main participants are likely to require legal representation. The terminology varies with legal jurisdiction; see lawyer, solicitor and conveyancer.&lt;br /&gt;&lt;br /&gt;Because of the complex nature of many markets the debtor may approach a mortgage broker or financial adviser to help him or her source an appropriate creditor, typically by finding the most competitive loan.&lt;br /&gt;&lt;br /&gt;The debt is, in civil law jurisdictions, referred to as hypothecation, which may make use of the services of a hypothecary to assist in the hypothecation.&lt;br /&gt;[edit] Default on divided property&lt;br /&gt;&lt;br /&gt;When a tract of land is purchased with a mortgage and then split up and sold, the "inverse order of alienation rule" applies to decide parties liable for the unpaid debt.&lt;br /&gt;&lt;br /&gt;When a mortgaged tract of land is split up and sold, upon default, the mortgagee first forecloses on lands still owned by the mortgagor and proceeds against other owners in an 'inverse order' in which they were sold. For example, A acquires a 3-acre (12,000 m2) lot by mortgage then splits up the lot into three 1-acre (4,000 m2) lots (A, B, and C), and sells lot B to X, and then lot C to Y, retaining lot A for himself. Upon default, the mortgagee proceeds against lot A first, the mortgagor. If foreclosure or repossession of lot A does not fully satisfy the debt, the mortgagee proceeds against lot B, then lot C. The rationale is that the first purchaser should have more equity and subsequent purchasers receive a diluted share.&lt;br /&gt;&lt;br /&gt;A mortgage loan is a loan secured by real property through the use of a document which evidences the existence of the loan and the encumbrance of that realty through the granting of a mortgage which secures the loan. However, the word mortgage alone, in everyday usage, is most often used to mean mortgage loan.&lt;br /&gt;&lt;br /&gt;A home buyer or builder can obtain financing (a loan) either to purchase or secure against the property from a financial institution, such as a bank, either directly or indirectly through intermediaries. Features of mortgage loans such as the size of the loan, maturity of the loan, interest rate, method of paying off the loan, and other characteristics can vary considerably.&lt;br /&gt;&lt;br /&gt;In many countries, though not all (Iran and Bali, Indonesia are two exceptions[1]), it is normal for home purchases to be funded by a mortgage loan. Few individuals have enough savings or liquid funds to enable them to purchase property outright. In countries where the demand for home ownership is highest, strong domestic markets have developed.&lt;br /&gt;&lt;br /&gt;Mortgage Loan Calc&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Use this calculator to generate an amortization schedule for your current mortgage. Quickly see how much interest you will pay and your principal balances. You can even determine the impact of any principal prepayments! Press the "View Report" button for a full yearly or monthly amortization schedule. &lt;br /&gt;&lt;br /&gt;What will your monthly mortgage payment be?&lt;br /&gt;&lt;br /&gt;A house is the largest purchase most of us will ever make so it's important to calculate what your payment will be and how much you can afford. The mortgage calculator will show you how much your monthly payment will be. It can also show the effect of adding extra payments.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5006455826685622224-6344410079963631330?l=sujeev84.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sujeev84.blogspot.com/feeds/6344410079963631330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sujeev84.blogspot.com/2010/01/mortgage.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5006455826685622224/posts/default/6344410079963631330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5006455826685622224/posts/default/6344410079963631330'/><link rel='alternate' type='text/html' href='http://sujeev84.blogspot.com/2010/01/mortgage.html' title='Mortgage'/><author><name>sujeeve</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5006455826685622224.post-9204570709848729871</id><published>2010-01-11T10:28:00.000+05:30</published><updated>2010-01-11T10:30:29.833+05:30</updated><title type='text'>Selling structured settlements</title><content type='html'>Sell your Structured Settlement or Annuity Payments Today&lt;br /&gt;&lt;br /&gt;Get the Best Price for your annuity-- Guaranteed--by having our Certified Funders compete to give you their Best Offers up front.&lt;br /&gt;&lt;br /&gt;Sit back and relax while We do all the Shopping for You.&lt;br /&gt;&lt;br /&gt;Get up to 6 Price Quotes without delay. Here's how:&lt;br /&gt;&lt;br /&gt;Online:&lt;br /&gt;&lt;br /&gt;   1. Complete the Form at the top of this page.&lt;br /&gt;   2. When prompted, tell us your payment dates, payment amount(s) and the name of the insurance company that pays you.&lt;br /&gt;   3. Get your Price Quotes at your designated email address usually within 1 hour and not more than 24 Hours.&lt;br /&gt;   4. Accept the highest price online and Receive your Sale Documents by Fedex within 24 hours.&lt;br /&gt;   5. Get Paid by direct Wire Transfer into your Bank Account.&lt;br /&gt;&lt;br /&gt;By Phone:&lt;br /&gt;&lt;br /&gt;   1. Contact one of our Customer Service Experts at 1-888-665-1257.&lt;br /&gt;   2. Receive assistance in requesting your Price Quotes.&lt;br /&gt;   3. Get a phone call from our Customer Service Expert as soon as the quotes have been submitted by our Certified Funders.&lt;br /&gt;   4. Accept the highest price and Receive your Sale Documents by Fedex within 24 hours.&lt;br /&gt;   5. Get Paid by direct Wire Transfer into your Bank Account.&lt;br /&gt;&lt;br /&gt;Get the Most Money and the Fastest Service in the Industry.&lt;br /&gt;The One Stop Resource For Selling A Structured Settlement&lt;br /&gt;&lt;br /&gt;If you have questions about selling your structured settlement or annuity payments, please visit our FAQ or blog section to &lt;br /&gt;read up on your rights as a structured settlement recipient. These resources are updated frequently and provide the most &lt;br /&gt;extensive content in the settlement funding industry. If you have any further questions, please feel free to contact us.&lt;br /&gt;Settlement Quotes Structured Settlement Blog Posts&lt;br /&gt;&lt;br /&gt; At J.G. Wentworth, we understand it is hard to wait for future payments from your  structured settlement or annuity when you &lt;br /&gt;need to Get Cash Now. J.G. Wentworth's knowledgeable staff can help you get the &lt;br /&gt;cash you need in a lump sum payment by purchasing all or part of your monthly annuity or structured settlement payments.&lt;br /&gt;&lt;br /&gt;We’ll work closely with you to create personalized solutions that solve your financing problems. To discover how J.G. Wentworth can help you to Get Cash Now, call 1-866-386-3102 or fill out our Request a Quote form. &lt;br /&gt;&lt;br /&gt;Sell Structured Settlements, Annuities, Lottery Payments to Woodbridge Structured Funding, LLC&lt;br /&gt;&lt;br /&gt;You don't have to wait for years to pay off your debt, purchase a house, pay for your child's college education, or start a business. You can receive a lump sum of cash from Woodbridge right away. We pay top cash when we buy structured settlements, lottery winnings, annuities, mortgages and deeds of trust.&lt;br /&gt;&lt;br /&gt;No one knows what’s better for your financial health than you do. Is selling all or part of your future payments for cash in hand the right call? Only you can decide that. But Woodbridge knows that every situation is different, and that sometimes, dreams can’t wait. That’s why Woodbridge works closely with each client to customize a plan that satisfies their specific needs. We buy structured settlements, lottery payments &amp; annuity payments when it is right for your situation. Contact Woodbridge Structured Funding, LLC today and discover the Woodbridge Advantage.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sell Annuity Payments, Structured Settlements,&lt;br /&gt;Mortgage Notes and Life Insurance&lt;br /&gt;Cash for Annuity       Senior Life Insurance Settlement&lt;br /&gt;&lt;br /&gt;Selling payments Are you serious about getting the maximum amount of cash back when you sell your structured settlement payments or annuity payments? Top Annuity Buyers will purchase some or all of your annuity payments for a discounted lump sum cash price. Lump sum offers that you receive will vary. QMAP provides a valuable service that allows clients to get multiple competitive cash quotes from top buyers, which allows you to get the maximum amount of cash back possible! &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Your Structured Settlement Should Work For You&lt;br /&gt;&lt;br /&gt;The best time to decide that a structured settlement is not right for you is before you consent to such a settlement. You may wish to press for a lump sum settlement, for periodic lump sum payments in addition to smaller annual payments, or for a lump sum to be issued at a future date when you anticipate a particular need. If you work out a settlement package that is in your best interest at the outset, you will be able to maximize the value of your settlement and get the greatest tax benefit from the structured portion of any settlement.&lt;br /&gt;&lt;br /&gt;Remember that the companies which purchase structured settlements intend to profit from the purchase of your settlement. Their profit comes out of the payments you would otherwise receive.&lt;br /&gt;&lt;br /&gt;Recall also that if your future earning capacity is impaired as a result of your injury, you should consider your future needs when you are making any decision regarding the sale of your settlement.&lt;br /&gt;Restrictions on Selling Settlements&lt;br /&gt;&lt;br /&gt;There are laws in approximately two thirds of the states which restrict the sale of structured settlements, and additional federal regulations apply to the sale of structured settlements. You should expect to have to obtain court approval for the sale, and most states have statutes in effect which regulate the transfer process. The insurance company that issued the annuities for the structured settlement may refuse to cooperate with the sale of a settlement, citing policy language and asserting that payments cannot be assigned.&lt;br /&gt;Tax Consequences&lt;br /&gt;&lt;br /&gt;As a typical structured settlement is designed to provide significant tax advantages to the injured plaintiff, there can be significant tax consequences associated with selling part or all of a settlement. It may be that, while payments made under the settlement were not taxed, the lump sum received through the sale of the settlement will be taxed.&lt;br /&gt;Shop Around For Offers&lt;br /&gt;&lt;br /&gt;If you are approached about selling your settlement, or are looking for a buyer, don't take the first offer you receive. You will almost always benefit from consulting with different brokers or buyers in relation to your settlement. You should also take care that you are working with an established, reputable buyer.&lt;br /&gt;Consult A Lawyer&lt;br /&gt;&lt;br /&gt;It is wise to consult a lawyer in relation to the sale of your settlement before signing a contract. A lawyer can help ensure that your rights are protected, and that you will not be subject to consequences for events outside of your control, for example if the company which purchases your settlement is later unable to collect payments from the insurance company which issued the annuities in your settlement package. A lawyer will be able to tell you if the terms of the purchase agreement are reasonable, and may also be able to advise you as to whether the offer made for your settlement is adequate.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5006455826685622224-9204570709848729871?l=sujeev84.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sujeev84.blogspot.com/feeds/9204570709848729871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sujeev84.blogspot.com/2010/01/selling-structured-settlements.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5006455826685622224/posts/default/9204570709848729871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5006455826685622224/posts/default/9204570709848729871'/><link rel='alternate' type='text/html' href='http://sujeev84.blogspot.com/2010/01/selling-structured-settlements.html' title='Selling structured settlements'/><author><name>sujeeve</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5006455826685622224.post-1610579612983236311</id><published>2009-06-19T18:52:00.000+05:30</published><updated>2009-06-19T18:53:44.908+05:30</updated><title type='text'>advance database designing</title><content type='html'>I began to discuss some general best practices that I have found to be particularly helpful. Again, none of it is specific to any one vendor's product and everything should, therefore, be applicable, regardless of which database implementation is being used. In this concluding article, I'll attempt to give an approachable introduction to the topic of database normalization and to the five Normal Forms. I'll also discuss other possible uses for a database in a project, such as a repository for configurational or logging data, for example.&lt;br /&gt;&lt;br /&gt;Normalization&lt;br /&gt;&lt;br /&gt;No discussion of relational database (DB) design is complete without a section on normalization. A normalized DB schema avoids certain anomalies when inserting, updating, or deleting data and, therefore, helps to keep consistent data in the database.&lt;br /&gt;&lt;br /&gt;However, the absence of anomalies is only the tangible result of a deeper benefit of normalization -- namely the correct identification and modeling of entities. The insert, update, and delete anomalies I've just referred to are the consequences of the redundancy introduced by improper or inadequate separation between distinct entities. The normalization procedure is, therefore, not just a technical chore to be done out of principle, but it can actively help to improve the understanding of the business domain.&lt;br /&gt;&lt;br /&gt;Regrettably, the treatment of normalization is often prohibitively formal, and it suffers from a special, rather non-intuitive terminology. This is unfortunate since the outcome of a normalization procedure often evokes the reaction that it all is nothing more than common sense. I will try to offer explanations of expressions that you are likely to encounter in the literature as they come up in the following discussion.&lt;br /&gt;&lt;br /&gt;Overview&lt;br /&gt;&lt;br /&gt;Normalization is a process in which an initial DB design is transformed, or decomposed, into a different, but equivalent, design. The resulting schema is equivalent to the original one in the sense that no information is lost when going from one to the other.&lt;br /&gt;&lt;br /&gt;The normalization procedure consists of a sequence of projections -- that is, some attributes are extracted from one table to form a new one. In other words, tables are split up vertically. The decomposition is lossless, only if you can restore the original table by joining its projections.&lt;br /&gt;&lt;br /&gt;Through such non-loss decompositions it is possible to transform an original schema into a resulting one that satisfies certain conditions, known as Normal Forms:&lt;br /&gt;&lt;br /&gt;The First Normal Form (1NF) addresses the structure of an isolated table. &lt;br /&gt;The Second (2NF), Third (3NF), and Boyce-Codd (BCNF) Normal Forms address one-to-one and one-to-many relationships. &lt;br /&gt;The Fourth (4NF) and Fifth (5NF) Normal Forms deal with many-to-many relationships. &lt;br /&gt;These Normal Forms form a hierarchy in such a way that a schema in a higher normal form automatically fulfills all the criteria for all of the lower Normal Forms.&lt;br /&gt;&lt;br /&gt;The Fifth Normal Form is the ultimate normal form with respect to projections and joins -- it is guaranteed to be free of anomalies that can be eliminated by taking projections.&lt;br /&gt;&lt;br /&gt;In the following discussion, any mention of keys refers to the conceptual keys formed from business data, not to any plainly technical surrogate keys which might have been defined.&lt;br /&gt;&lt;br /&gt;First Normal Form&lt;br /&gt;&lt;br /&gt;A table is said to be in First Normal Form (1NF), if all entries in it are scalar-valued. Relational database tables are 1NF by construction since vector-valued entries are forbidden. Vector-valued data (that is, entries which have more than one value in each row) are referred to as repeating groups.&lt;br /&gt;&lt;br /&gt;The following relation violates 1NF because the SupplierID forms a repeating group (here and in the following examples and text, primary key fields are in bold):&lt;br /&gt;&lt;br /&gt;{ PartID, Supplier1ID, Supplier2ID, Supplier3ID }&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Repeating groups indicate a one-to-many relationship -- in other words, a relationship which in relational databases is treated using foreign keys. Note that the problem of repeating groups cannot be solved by adding any number of fields to a record; even if the number of elements of the vector-valued data was fixed, finite, and predetermined, searching for a value in all these parallel fields is prohibitively cumbersome.&lt;br /&gt;&lt;br /&gt;To achieve 1NF, eliminate repeating groups by creating separate tables for each set of related data.&lt;br /&gt;&lt;br /&gt;To demonstrate the typical anomalies that occur in tables that are only 1NF, consider the following example:&lt;br /&gt;&lt;br /&gt;{ CustomerID, OrderID, CustomerAddress, OrderDate }&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note the following problems:&lt;br /&gt;&lt;br /&gt;Insert: It is not possible to add a record for a customer who has never placed an order. &lt;br /&gt;Update: To change the address for a customer, this change has to be repeated for all of the customer's existing orders. &lt;br /&gt;Delete: Deleting the last order for a customer loses all information about the customer. &lt;br /&gt;Functional dependency&lt;br /&gt;&lt;br /&gt;The Second and Third Normal Forms address dependencies among attributes, specifically between key and non-key fields.&lt;br /&gt;&lt;br /&gt;By definition, a key uniquely determines a record: Knowing the key determines the values of all the other attributes in the table row, so that given a key, the values of all the other attributes in the row are fixed.&lt;br /&gt;&lt;br /&gt;This kind of relationship can be formalized as follows. Let X and Y be attributes (or sets of attributes) of a given relationship. Then Y is functionally dependent on X if, whenever two records agree on their X-values, they must also agree on their Y-values. In this case, X is called the determinant and Y is called the dependent. Since for any X there must be a single Y, this relationship represents a single-valued functional dependency. If the set of attributes in the determinant is the smallest possible (in the sense that after dropping one or more of the attributes from X, the remaining set of attributes does no longer uniquely determine Y), then the dependency is called irreducible.&lt;br /&gt;&lt;br /&gt;Note that functional dependency is a semantic relationship: It is the business logic of the problem domain, represented by the relation, which determines whether a certain X determines Y.&lt;br /&gt;&lt;br /&gt;Second Normal Form&lt;br /&gt;&lt;br /&gt;A table is in Second Normal Form (2NF) if every non-key field is a fact about the entire key. In other words, a table is 2NF if it is 1NF and all non-key attributes are functionally dependent on the entire primary key (that is, the dependency is irreducible).&lt;br /&gt;&lt;br /&gt;Clearly, 2NF is only relevant when the key is composite (that is, consisting of several fields). The following example describes a table which is not 2NF since the WarehouseAddress attribute depends only on WarehouseID but not on PartID:&lt;br /&gt;&lt;br /&gt;{ PartID, WarehouseID, Quantity, WarehouseAddress }&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To achieve 2NF, create separate tables for sets of values that apply to multiple records and relate these tables through foreign keys. The determinants of the initial table become the primary keys of the resulting tables.&lt;br /&gt;&lt;br /&gt;Third Normal Form&lt;br /&gt;&lt;br /&gt;A relation is in Third Normal Form (3NF) if it is 2NF and none of its attributes is a fact about another non-key field. In other words, no non-key field functionally depends on any other non-key field. (Such indirect dependencies are known as transitive dependencies.)&lt;br /&gt;&lt;br /&gt;The following example violates 3NF since the Location is functionally dependent on the DepartmentID:&lt;br /&gt;&lt;br /&gt;{ EmployeeID, DepartmentID, Location }&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To achieve 3NF, eliminate fields that do not depend on the key from the original table and add them to the table whose primary key is their determinant.&lt;br /&gt;&lt;br /&gt;To summarize the normalization procedure up to and including Third Normal Form:&lt;br /&gt;&lt;br /&gt;Every field in a record must depend on The Key (1NF), the Whole Key (2NF), and Nothing But The Key (3NF).&lt;br /&gt;Boyce-Codd Normal Form&lt;br /&gt;&lt;br /&gt;Boyce-Codd Normal Form (BCNF) is an extension of 3NF in the case with two or more candidate keys which are composite and overlapping (that is, they have at least one field in common). If these conditions are not fulfilled, 3NF and BCNF are equivalent. A table is BCNF if, and only if its only determinants are candidate keys.&lt;br /&gt;&lt;br /&gt;In the following table, both {SupplierID, PartID}, as well as {SupplierName, PartID}, are candidate keys. The table is not BCNF since it contains two determinants (SupplierID and SupplierName) which are not candidate keys. (SupplierID and SupplierName are determinants, since they determine each other.)&lt;br /&gt;&lt;br /&gt;{ SupplierID, PartID, SupplierName, Quantity }&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;However, either of the following decompositions is BCNF:&lt;br /&gt;&lt;br /&gt;{ SupplierID, SupplierName } &lt;br /&gt;{ SupplierID, PartID, Quantity }&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;or&lt;br /&gt;&lt;br /&gt;{ SupplierName, SupplierID }&lt;br /&gt;{ SupplierName, PartID, Quantity }&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To achieve BCNF, remove the determinants which are not candidate keys.&lt;br /&gt;&lt;br /&gt;Many-to-many relationships and higher Normal Forms&lt;br /&gt;&lt;br /&gt;Fourth and Fifth Normal Forms apply to situations involving many-to-many relationships. In relational databases, many-to-many relationships are expressed through cross-reference tables.&lt;br /&gt;&lt;br /&gt;As an example, consider a case of class enrollment. Each student can be enrolled in one or more classes and each class can contain one or more students. Clearly, there is a many-to-many relationship between classes and students. This relationship can be represented by a Student/Class cross-reference table:&lt;br /&gt;&lt;br /&gt;{ StudentID, ClassID }&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The key for this table is the combination of StudentID and ClassID. To avoid violation of 2NF, all other information about each student and each class is stored in separate Student and Class tables, respectively.&lt;br /&gt;&lt;br /&gt;Note that each StudentID determines not a unique ClassID, but a well-defined, finite set of values. This kind of behavior is referred to as multi-valued dependency of ClassID on StudentID.&lt;br /&gt;&lt;br /&gt;Fourth Normal Form&lt;br /&gt;&lt;br /&gt;A table is in Fourth Normal Form (4NF) if it is 3NF and it does not represent two or more independent many-to-many relationships.&lt;br /&gt;&lt;br /&gt;Consider an example with two many-to-many relationships, between students and classes and between classes and teachers. Also, a many-to-many relationship between students and teachers is implied. However, the business rules do not constrain this relationship in any way -- the combination of StudentID and TeacherID does not contain any additional information beyond the information implied by the student/class and class/teacher relationships. Consequentially, the student/class and class/teacher relationships are independent of each other -- these relationships have no additional constraints. The following table is, then, in violation of 4NF:&lt;br /&gt;&lt;br /&gt;{ StudentID, ClassID, TeacherID }&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As an example of the anomalies that can occur, realize that it is not possible to add a new class taught by some teacher without adding at least one student who is enrolled in this class.&lt;br /&gt;&lt;br /&gt;To achieve 4NF, represent each independent many-to-many relationship through its own cross-reference table.&lt;br /&gt;&lt;br /&gt;Fifth Normal Form&lt;br /&gt;&lt;br /&gt;A table is in Fifth Normal Form (5NF) if it is 4NF and its information content cannot be reconstructed from several tables containing fewer attributes.&lt;br /&gt;&lt;br /&gt;Consider again the student/class/teacher example, but now assume that there is an additional relationship between students and teachers. The previous example table is now 4NF, since all the relationships it describes are interrelated. However, it is not 5NF, since it can be reconstructed from three cross-reference tables, each representing one of the three many-to-many relationships:&lt;br /&gt;&lt;br /&gt;{ StudentID, ClassID } &lt;br /&gt;{ ClassID,   TeacherID } &lt;br /&gt;{ TeacherID, StudentID }&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To achieve 5NF, isolate interrelated many-to-many relationships, introducing the required number of new tables to represent all business domain constraints.&lt;br /&gt;&lt;br /&gt;Normalization in context&lt;br /&gt;&lt;br /&gt;In practice, many databases are de-normalized to greater or lesser degree. The reason most often stated has to do with performance -- a de-normalized database may require fewer joins and can, therefore, be faster for retrievals.&lt;br /&gt;&lt;br /&gt;While this reasoning may be true, the usual caveats against premature optimization apply here as well as everywhere else. First, you should determine sufficiently that a performance problem exists and that the proposed de-normalization improves it before introducing a conceptually suboptimal design.&lt;br /&gt;&lt;br /&gt;Furthermore, a de-normalized schema can be harder to update. The additional integrity checks that are necessary in this case may offset the performance gains for queries obtained through denormalization.&lt;br /&gt;&lt;br /&gt;Finally, it should be noted that dealing with many-to-many relationships raises some issues that cannot be fully resolved through normalization (Chris Date's article, "Normalization is no Panacea," in Resources covers this topic).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;Back to top&lt;br /&gt;History tables and event logging&lt;br /&gt;&lt;br /&gt;Besides holding the data that is necessary to support the primary business purpose of the system under construction, the DB is also a possible location to record information that is useful primarily for internal technical purposes, such as adminstration and maintenance of the system itself.&lt;br /&gt;&lt;br /&gt;History tables&lt;br /&gt;&lt;br /&gt;In a production system, you may desire to preserve the history of changes to the data in the live database. This can be achieved through the use of history (or backup) tables, and the appropriate INSERT, DELETE, and UPDATE triggers.&lt;br /&gt;&lt;br /&gt;Each table in the DB should have a history table, mirroring the entire history of the primary table. If entries in the primary table are to be updated, the old contents of the record are first copied to the history table before the update is made. In the same way, deleted records in the primary table are copied to the history table before being deleted from the primary one. The history tables always have the name of the corresponding primary one, but with _Hist appended.&lt;br /&gt;&lt;br /&gt;Entries to the history table are always appended at the end. The history table, therefore, grows strictly monotonically in time. It will become necessary to periodically spool ancient records to tape for archiving. Such records may, as a result, not be immediately available for recall.&lt;br /&gt;&lt;br /&gt;The attributes of the history table should agree exactly with the attributes of the primary table. In addition, the history table records the date and type of the change to the primary table. The type is one of the following: Create, Update, or Delete.&lt;br /&gt;&lt;br /&gt;Changes to the structure of the primary table affect the history table. When an attribute is added to the primary table, it is added to the history table as well. When an attribute is deleted from the primary table, the corresponding attribute is not deleted from the history table. Instead, this field is left blank (NULL) in all future records. Consequentially, the history table not only grows in length over time, but also in width.&lt;br /&gt;&lt;br /&gt;Note that the choice to use such a history mechanism affects neither the overall DB layout, nor applications that access only the primary tables. During development, you can probably dispense with recording changes in this way and leave the creation of the history tables and the necessary triggers until installation time.&lt;br /&gt;&lt;br /&gt;Event logging for fun and profit&lt;br /&gt;&lt;br /&gt;A database can be used as an event logger. The notion of event is broad, ranging from common debugging and system specific runtime information, to events which are specific to the business domain. Possible candidates for events to be logged to the database include:&lt;br /&gt;&lt;br /&gt;Transactions making changes to persistent data &lt;br /&gt;Transactions crossing component boundaries &lt;br /&gt;Errors and exceptions &lt;br /&gt;Dispatching of messages to the user &lt;br /&gt;Events involving financial transactions &lt;br /&gt;State changes to business entities &lt;br /&gt;An EventLog table to log such information contains at least these fields to record:&lt;br /&gt;&lt;br /&gt;Timestamp &lt;br /&gt;EventType (a type code) &lt;br /&gt;Details (a descriptive string) &lt;br /&gt;Optionally, it may identify an owner or originator of the event. The owner concept can either identify a logged-in user or admin, but it may as well describe a part or module of the system itself. In applications dealing with financial transactions, additional (optional) fields identifying the from- and to-accounts can be useful.&lt;br /&gt;&lt;br /&gt;System config tables&lt;br /&gt;&lt;br /&gt;Finally, it is possible to use the database as centralized storage for configurational data. Usually this information is kept distributed in miscellaneous plain-text files, such as start-up scripts or property files. The database can provide a single, managed storage facility for such information.&lt;br /&gt;&lt;br /&gt;Besides start-up parameters, which are usually supplied to the system at boot-time, one may also think of properties that are required at runtime, such as localized strings and messages.&lt;br /&gt;&lt;br /&gt;Lastly, the database is a possible place to keep system documentation. This is most useful, of course, for information that is naturally in tabular form (rather than free text), such as lists of assigned port numbers or shared memory keys, for instance. But this approach is not limited to codes. A data dictionary, defining the permissible values for each field, is a necessity on any non-trivial project. This also can be made accessible to all developers and administrators by storing it in the database.&lt;br /&gt;&lt;br /&gt;In any case, the data is stored in simple key/value pairs. Additional table attributes can contain comments or pointers (URLs) to relevant offline documentation.&lt;br /&gt;&lt;br /&gt;The primary advantage to keeping such information in the database is that the database provides a central repository for all relevant information, as opposed to the typical approach in which data is scattered over miscellaneous files.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;Back to top&lt;br /&gt;Summary&lt;br /&gt;&lt;br /&gt;In this article I've covered database normalization and the five Normal Forms. In the normalization process, an original database design is transformed into an equivalent one, which avoids certain anomalies when inserting, updating, or deleting records. Proper normalization also helps to identify entities correctly. I also discussed the possible use of a database as a central repository for logging information or configurational data.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Resources&lt;br /&gt;&lt;br /&gt;Check out Barry Wise's "Database Normalization and Design Techniques"which gives a simple and accessible introduction to the Normal Forms and the normalization process. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Read William Kent's "A Simple Guide to Five Normal Forms in Relational Database Theory" for a thorough primer on the five Normal Forms. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Look at C.J. Date's article, "Normalization is no Panacea," which discusses some problems that cannot be solved by normalization alone, since (in his own words): "It's always important to understand the limitations of any technology on which we rely heavily." &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Avail yourself of this white paper on Simple Conditions for Guaranteeing Higher Normal Forms in Relational Databases.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;See the results of last year's survey on Winning Database Configurations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5006455826685622224-1610579612983236311?l=sujeev84.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sujeev84.blogspot.com/feeds/1610579612983236311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sujeev84.blogspot.com/2009/06/advance-database-designing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5006455826685622224/posts/default/1610579612983236311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5006455826685622224/posts/default/1610579612983236311'/><link rel='alternate' type='text/html' href='http://sujeev84.blogspot.com/2009/06/advance-database-designing.html' title='advance database designing'/><author><name>sujeeve</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5006455826685622224.post-6893410196475851662</id><published>2009-06-19T18:49:00.000+05:30</published><updated>2009-06-19T18:55:38.207+05:30</updated><title type='text'>Basic DataBase Designing</title><content type='html'>In this series, I discuss some general best practices that I have found to be particularly helpful. Nothing in it is specific to any one vendor's product and everything should, therefore, be applicable, regardless of which database implementation is being used. In this frist part of the article, I want to talk about both simple and complex datatypes, and about primary and foreign keys, which are the plumbing that holds the entire database together.&lt;br /&gt;&lt;br /&gt;Primary keys and related matters&lt;br /&gt;&lt;br /&gt;A relational database (DB) stores two kinds of information -- data and plumbing. Data comprises the customer names, inventory numbers, item descriptions, and so on, that the application uses. Plumbing refers to the primary and foreign keys that the DB needs to find database records and relate them to one another.&lt;br /&gt;&lt;br /&gt;Basic plumbing&lt;br /&gt;&lt;br /&gt;For the purpose of data modeling, the plumbing should be largely transparent. In fact, purist DB lore makes no distinction between data and plumbing. However, you will see that it is more efficient for administration and maintenance, as well as in terms of runtime performance, to have some additional fields to serve as DB keys.&lt;br /&gt;&lt;br /&gt;Every table must have a primary key: an attribute or combination of attributes that are guaranteed to be unique and not-null. It is generally helpful to introduce a surrogate key -- a table attribute which has no business meaning, but simply serves as unique identifier for each record in the table. This is the plumbing that I have been referring to.&lt;br /&gt;&lt;br /&gt;The requirements for a primary key are very strict. It must:&lt;br /&gt;&lt;br /&gt;Exist &lt;br /&gt;Be unique &lt;br /&gt;Not change over time &lt;br /&gt;Surrogate keys help to mitigate the fact that real business data never reliably fulfills these requirements. Not every person has a Social Security Number (think of those outside the U.S.), people change their names, and other important information.&lt;br /&gt;&lt;br /&gt;Business data might also simply be bad -- glitches in the Social Security Administration's system may lead to different persons having the same Social Security Number. A surrogate key helps to isolate the system from such problems.&lt;br /&gt;&lt;br /&gt;The second reason that surrogate keys are favorable has to do with efficiency and ease of maintenance, since you can choose the most efficient datatype for the surrogate key. Furthermore, the surrogate key typically is a single field (not a compound key), which simplifies the schema (particularly when the key is used in other tables as a foreign key).&lt;br /&gt;&lt;br /&gt;Every table should have a dedicated column to serve as this table's primary key. This column may be called id or pk (or possibly &lt;table_name&gt;_id or &lt;table_name&gt;_pk). Most databases are tuned for queries on integers, so it makes sense to use this datatype as primary key. Many databases, including Postgres and Oracle, also provide a special serial or sequence integer type, which generates a sequence of unique integers. Declaring a column to be of this type guarantees that a unique key is generated for each inserted row.&lt;br /&gt;&lt;br /&gt;Foreign keys are table attributes, the values of which are the primary keys of another table. It often makes sense to label foreign key columns explicitly, for instance, by adopting a naming convention such as &lt;other_table_name&gt;_fk. A referential integrity constraint (references) should be declared as part of the CREATE statement when creating the table.&lt;br /&gt;&lt;br /&gt;It bears repeating that the surrogate keys discussed earlier are part of the plumbing only -- their existence does not obviate the modeling requirement to be able to form a primary key from the business data alone. Such a business data candidate key is a subset of all attributes, the values of which are never null, and each combination of values is unique. As a check on correct data modeling, such a candidate key must exist and should be documented for every table.&lt;br /&gt;&lt;br /&gt;Strictly speaking, you may not always find a candidate key among the business data. Imagine a table recording the first and last name for each user, but having no further attributes. Now assume that there are two different persons, both of whom have the first name "Joe" and last name "Blow." In such a case, there exists no combination of table attributes that can form a suitable candidate key.&lt;br /&gt;&lt;br /&gt;The underlying problem here is whether you are talking about the uniqueness of datasets or about the uniqueness of the underlying entities -- users, in this example. It is generally more intuitive, in particular to developers used to object-oriented analysis, to model the uniqueness of the underlying entities. Surrogate keys as discussed earlier can help to achieve this.&lt;br /&gt;&lt;br /&gt;Alternate keys and visible identifiers&lt;br /&gt;&lt;br /&gt;As part of the plumbing, the surrogate key has no need to ever be visible outside the DB. In particular, it should never be revealed to the user. This allows the DB administrator to change the representation of the keys at will if necessary. If a business need arises for providing the user with a unique identifier to a particular dataset, this identifier should be considered real business data and kept separate from the plumbing. For instance, an additional column called VisibleAccountNumber or the like can be introduced. Of course, this attribute should be non-null and unique so that it forms an alternative candidate key (an alternate key). Having a separate column for visible identifiers also makes it possible to generate and format the values for this attribute in a user-friendly way so that it is easy to read over the phone to a customer support person, for instance.&lt;br /&gt;&lt;br /&gt;A borderline case is when the identifier is not directly visible, but may still be accessible to the user. Examples include hidden fields in Web pages in which an identifier is shuttled to the client to be used as a parameter in the following request. Although there is no need for the user to handle the identifier, a malicious user may read and attempt to spoof it. Using the numerical values of a primary key directly, in principle, allows any attacker to walk the entire table!&lt;br /&gt;&lt;br /&gt;Defences against this problem include either encrypting and decrypting the value of the primary key, or protecting the key by appending a Message Authentication Code (MAC). An alternative is to use a hard-to-spoof visible identifier attribute for the table, such as the hash of the record's primary key or creation timestamp. (Of course, the uniqueness of this attribute must be assured.)&lt;br /&gt;&lt;br /&gt;Whether the key is visible to the application (as opposed to the end user) depends on the specifics of the project. Using a numeric type directly carries the key's database representation straight into the application code and should be avoided to prevent coupling. In small-scale developments, a String representation of the key's value may be acceptable (all datatypes that can be stored in a DB must be able to be serialized).&lt;br /&gt;&lt;br /&gt;But a better solution is a simple wrapper object that adds very little complexity, but provides strong decoupling of the database keys' representation from their interfaces. A danger exists in making the wrapper object too smart. The intention with surrogate keys is to make them simple and efficient for the database to handle. Settings from a database value and possibly from a String, comparing with another key object, and possibly serializing are all the methods that are required. Smarts, such as the ability to verify the contents based on a checksum calculation, suggest that this object probably belongs to the business data domain (like the visible record identifiers, introduced earlier).&lt;br /&gt;&lt;br /&gt;The problem of the Universally Unique Identifier&lt;br /&gt;&lt;br /&gt;A final consideration concerns the possible need for a Universally Unique Identifier (UUID). The short answer is that relational databases do not require UUIDs at all. In fact, the entire UUID concept is somewhat unrelated to relational database management. Relational database keys -- the plumbing -- need only be unique per table, which can be achieved by using an auto-incrementing datatype such as the serial type mentioned earlier.&lt;br /&gt;&lt;br /&gt;UUIDs can have some technical difficulties. To ensure uniqueness, all UUIDs must be generated by a centralized service -- which leads to scalability problems and can become a single point of failure. (The scalability issue can be mitigated by a stratified approach in which a central master is used to give out seeds to several slaves, which in turn generate the final identifiers in batches, and so on.) To represent a UUID in a database, use either a string attribute or a compound key comprising several integer columns. Both approaches are significantly slower than operations based on keys made up of long integers. Compound keys also increase the complexity of the DB schema when used as foreign keys.&lt;br /&gt;&lt;br /&gt;In the end, whether or not a record in a database needs to have a truly globally unique ID is dictated by the business rules, not the database architecture. Some records may already contain some form of UUID (merchandise items, for instance, typically possess a Universal Product Code as barcode). Some other records, possibly corresponding to principal business entities, may otherwise already contain a unique identifier as part of their business data (such as the combination of timestamp and account name for a ledger entry). If this is not the case, a UUID can be generated and stored alongside the business data for those records that require it. In any case, UUIDs should be considered part of the business data -- not of the plumbing.&lt;br /&gt;&lt;br /&gt;Even if (and this is a big if) the object-relational mapping approach chosen requires every business object to have a persistent, unique ID, there is no need to base the internal workings of the underlying relational database engine on this fact.&lt;br /&gt;&lt;br /&gt;In summary, I argue to keep business data apart from the database's internal plumbing. Building a relational database around UUIDs breaks this principle by using attributes, which, in the end, are really part of the business data, as internal infrastructure. (For a totally different point of view on this issue and a careful discussion of the problems involved in generating UUIDs in a scalable fashion, see Scott Ambler's paper, "Mapping objects to relational databases," in Resources.)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;Back to top&lt;br /&gt;Datatypes&lt;br /&gt;&lt;br /&gt;The SQL standard defines a number of standard datatypes and most DB vendors support some additional ones which are specific to their own product. In the absence of truly compelling reasons to the contrary, avoid such extensions for the sake of portability.&lt;br /&gt;&lt;br /&gt;Strings and numbers&lt;br /&gt;&lt;br /&gt;In general, numerical types pose few problems -- just select one that is large enough to support the necessary range of values.&lt;br /&gt;&lt;br /&gt;The attempt to find the optimal width of a string column is usually not worth the effort. You can avoid a lot of confusion later on by making all text messages of type varchar(n) and limiting yourself to a few standard string lengths and introducing aliases for them, such as: 32 bytes ("Label"), 256 bytes ("Note"), and 4k ("Text").&lt;br /&gt;&lt;br /&gt;Even if other business requirements restrict the maximum length of certain fields to specific values, the DB schema is arguably not the best place to enforce these rules. By the time the data reaches the DB, it is too late to do anything about it (except reject it). Individual restrictions, stemming from business rules and requirements, should be enforced by the business logic layer, which handles user interaction and input validation. On the other hand, maintenance of the DB schema is considerably simplified if it is restricted to a handful of different string attributes.&lt;br /&gt;&lt;br /&gt;Limit the use of fixed-width strings to codes of all sorts (as opposed to variable-length strings for real text). Keep in mind however, that many seemingly fixed-length codes do actually become wider over time. The prudent DB designer tries to avoid anything similar to the Y2K problem for new development work.&lt;br /&gt;&lt;br /&gt;Time and money&lt;br /&gt;&lt;br /&gt;A type to record timestamps (date/time combinations) is always necessary and is, fortunately, covered by the SQL standard. No fully satisfying way exists to record a monetary value, however.&lt;br /&gt;&lt;br /&gt;Saving monetary values and treating them in program code as a floating-point values always leads to round-off errors. Recording the value as an exact integer of the smallest currency subdivision (such as "cent" for US dollars, as well as for Euros and other appropriate currencies) may not be sufficient either. Many values carry more digits behind the decimal point than the two for which actual coins exist (just visit your local gas station). A choice of decimal with 5 to 9 digits should work, though.&lt;br /&gt;&lt;br /&gt;It goes without saying that no monetary value should ever be recorded without also recording the currency -- even if you think your application will never handle anything but US dollars. Consider setting up a currency table and relating it to the monetary values using foreign keys rather than embedding currency information directly. This helps with internationalization (different currency names and symbols), as well as with formatting issues.&lt;br /&gt;&lt;br /&gt;Booleans and the System Types Table&lt;br /&gt;&lt;br /&gt;The use of the type bool anywhere in the design is a hint to rethink this particular module again. Very few attributes are truly limited to only two values -- even a gender column has a malicious tendency to morph towards (at least) three states -- male, female, and unknown. Allowing nulls only masks the real problem. A more flexible approach to type codes is needed.&lt;br /&gt;&lt;br /&gt;In many places in the database, attributes determine a record's type in some way. The GenderType mentioned above is such an instance. Other examples may include ItemType (such as Merchandise, Freight, Packaging, Insurance), PaymentType (Cash, Check, MoneyOrder, CreditCard, Barter), and things like StoreType, MembershipType, DeviceType, and many more. This also includes instances in which you want to store the type of an object in some applicable object model.&lt;br /&gt;&lt;br /&gt;For each type, you need some form of documentation telling you not only the name of the type, but also the characteristics associated with it; for instance, you may want to know what permissions each UserType entails. What better place to keep this information than in the database itself?&lt;br /&gt;&lt;br /&gt;Any record that has some form of type information associated with it should contain a type code column, which itself is a foreign key referencing a type code table. The foreign key constraint ensures that no records with invalid types exist. The type code table might have the following attributes:&lt;br /&gt;&lt;br /&gt;typeCode_pk &lt;br /&gt;label (unique mnemonic, such as varchar(32)) &lt;br /&gt;description (varchar(256) should be sufficient) &lt;br /&gt;uri (pointing to additional resources, where necessary) &lt;br /&gt;codeGroup_fk &lt;br /&gt;Additional attributes are, of course, conceivable -- such as a three-letter code or a visible numeric code.&lt;br /&gt;&lt;br /&gt;The codeGroup_fk attribute serves to organize related type codes. For instance, all subscriber types might form a group. The codeGroup_fk attribute is a foreign key into a separate code group table. However, realizing that a code group is nothing but a type code itself, the relationship can be made recursive so that codeGroup_fk references typeCode_pk. Not only does this make the additional type code table unnecessary, but it also makes it possible to order groups in an arbitrarily deep hierarchical structure. It is best to keep the type of code system relatively simple and straightforward.&lt;br /&gt;&lt;br /&gt;Complex datatypes&lt;br /&gt;&lt;br /&gt;Finally, there are some common but complex datatypes -- such as phone numbers, postal addresses, contact information, and credit cards -- that occur in almost every database schema. Typically, such records need to be accessed from many tables in the database. In a typical eCommerce system, for instance, it might be necessary to store contact information for users, suppliers, warehouses, and admins.&lt;br /&gt;&lt;br /&gt;Rather than including those attributes in the respective user, supplier, or other record. (and thereby repeating those columns throughout the database), it makes sense to set up a single table for the contact information that is referenced through foreign keys by all other tables. This has two immediate benefits:&lt;br /&gt;&lt;br /&gt;It is easier to later change the cardinality of the relationships. &lt;br /&gt;It localizes any future changes to the complex datatype. &lt;br /&gt;Anticipating the attributes that will likely be required for each of those complex types is something of an art. My suggestion is to try to strive for completeness from the outset rather than being forced to change the schema each time an additional field becomes necessary.&lt;br /&gt;&lt;br /&gt;A sampling of possible attributes for postal addresses includes:&lt;br /&gt;&lt;br /&gt;Department &lt;br /&gt;Company &lt;br /&gt;Mail Stop &lt;br /&gt;Address Line 1 &lt;br /&gt;Address Line 2 &lt;br /&gt;Address Line 3 &lt;br /&gt;City &lt;br /&gt;State &lt;br /&gt;Postal Code ("Zip") &lt;br /&gt;Country &lt;br /&gt;Full contact information might include the following attributes:&lt;br /&gt;&lt;br /&gt;Title &lt;br /&gt;First Name &lt;br /&gt;Middle Name (or Initial) &lt;br /&gt;Last Name &lt;br /&gt;Suffix (such as jr. or sr.) &lt;br /&gt;Home address &lt;br /&gt;Work address &lt;br /&gt;Home Phone &lt;br /&gt;Work Phone &lt;br /&gt;Cell Phone &lt;br /&gt;Fax &lt;br /&gt;Pager &lt;br /&gt;Email &lt;br /&gt;Finally, phone numbers should never be considered flat numbers. In fact, they break down into the following fields:&lt;br /&gt;&lt;br /&gt;CountryCode &lt;br /&gt;AreaCode (Number Plan Area) &lt;br /&gt;ExchangeCode (Prefix) &lt;br /&gt;LineNumber (Suffix) &lt;br /&gt;Extension &lt;br /&gt;In a phone number such as 987-1234, the prefix is the 987 and the suffix is the 1234. The extension is the only part of the phone number that is optional. It is probably sufficient to use char(4) for all columns, but one might consider char(6) to be on the safe side. Note that area codes in the US are limited to three digits, but this is not true for other countries.&lt;br /&gt;&lt;br /&gt;Sensitive data should be kept in encrypted form. Even if the database system itself is compromised, the data is still protected from misuse. The most famous example of this kind of data management is the Unix password system which only stores hashes of the users' passwords rather than the passwords themselves. Some data, such as credit card numbers, needs to be encrypted in a recoverable fashion; however, a one-way encryption (as for the Unix password file) will not do. This leads to the problem of encryption key management -- clearly, it should not be stored in the DB, along with the secrets, but supplied at boot-time, for instance.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;Back to top&lt;br /&gt;Summary&lt;br /&gt;&lt;br /&gt;In this article, I've discussed some general best practices when designing relational databases, including:&lt;br /&gt;&lt;br /&gt;The benefits of maintaining additional table attributes without any business meaning to serve as surrogate keys. &lt;br /&gt;The recommendation not to base the internal workings of the database on Universally Unique Identifiers. &lt;br /&gt;The use of a centralized type codes facility to express attributes with finite, predetermined ranges of values. &lt;br /&gt;Some considerations in designing complex datatypes to be used throughout the database schema. &lt;br /&gt;In the next half of this article, I'll cover database normalization and some additional uses for a database within a project, like the use of history tables and event logs.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Resources&lt;br /&gt;&lt;br /&gt;Learn about the importance of the surrogate primary key when designing stable, flexible, and well-performing enterprise databases in Mike Lonigro's article, "The Case for the Surrogate Key."&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Read the book, Translucent Databases , as Peter Wayner offers a better, deeper protection paradigm for databases, one that works by scrambling the data with encryption algorithms, using the minimal amount of encryption that ensures the database is still highly functional. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Search developerWorks' vast library for more than 1,000 articles on database design. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Discover how DB2 Relational Connect helps with information integration by allowing several databases to be viewed and manipulated as one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5006455826685622224-6893410196475851662?l=sujeev84.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sujeev84.blogspot.com/feeds/6893410196475851662/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sujeev84.blogspot.com/2009/06/database-designing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5006455826685622224/posts/default/6893410196475851662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5006455826685622224/posts/default/6893410196475851662'/><link rel='alternate' type='text/html' href='http://sujeev84.blogspot.com/2009/06/database-designing.html' title='Basic DataBase Designing'/><author><name>sujeeve</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5006455826685622224.post-5502525007156265108</id><published>2009-06-16T16:03:00.000+05:30</published><updated>2009-06-16T16:39:20.322+05:30</updated><title type='text'>Search engine optimization</title><content type='html'>&lt;h1&gt;&lt;a name="0.I. Introduction – What Is SEO |outline"&gt;&lt;/a&gt;I. Introduction –  What Is SEO &lt;/h1&gt; &lt;p&gt;Search Engine Optimization (SEO) is often considered the more technical part  of Web marketing. This is true because SEO does help in the promotion of sites  and at the same time it requires some technical knowledge – at least familiarity  with basic HTML. SEO is sometimes also called SEO copyrighting because most of  the techniques that are used to promote sites in search engines deal with text.  Generally, SEO can be defined as the activity of optimizing Web pages or whole  sites in order to make them more search engine-friendly, thus getting higher  positions in search results. &lt;/p&gt;  &lt;p&gt;One of the basic truths in SEO is that even if you do all the things that are  necessary to do, this does not automatically guarantee you top ratings but if  you neglect basic rules, this certainly will not go unnoticed. Also, if you set  realistic goals – i.e to get into the top 30 results in Google for a particular  keyword, rather than be the number one for 10 keywords in 5 search engines, you  will feel happier and more satisfied with your results. &lt;/p&gt;  &lt;p&gt;Although SEO helps to increase the traffic to one's site, SEO is not  advertising. Of course, you can be included in paid search results for given  keywords but basically the idea behind the SEO techniques is to get top  placement because your site is relevant to a particular search term, not because  you pay. &lt;/p&gt;  &lt;p&gt;SEO can be a 30-minute job or a permanent activity. Sometimes it is enough to  do some generic SEO in order to get high in search engines – for instance, if  you are a leader for rare keywords, then you do not have a lot to do in order to  get decent placement. But in most cases, if you really want to be at the top,  you need to pay special attention to SEO and devote significant amounts of time  and effort to it. Even if you plan to do some basic SEO, it is essential that  you understand how search engines work and which items are most important in  SEO.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt; &lt;h2&gt;How Search Engines Work&lt;/h2&gt; &lt;p&gt;The first basic truth you need to learn about SEO is that search engines are  not humans. While this might be obvious for everybody, the differences between  how humans and search engines view web pages aren't. Unlike humans, search  engines are text-driven. Although technology advances rapidly, search engines  are far from intelligent creatures that can feel the beauty of a cool design or  enjoy the sounds and movement in movies. Instead, search engines crawl the Web,  looking at particular site items (mainly text) to get an idea what a site is  about. This brief explanation is not the most precise because as we will see  next, search engines perform several activities in order to deliver search  results – &lt;i&gt;crawling&lt;/i&gt;, &lt;i&gt;indexing&lt;/i&gt;, &lt;i&gt;processing&lt;/i&gt;, &lt;i&gt;calculating  relevancy&lt;/i&gt;, and &lt;i&gt;retrieving&lt;/i&gt;. &lt;/p&gt; &lt;p&gt;First, search engines &lt;b&gt;crawl&lt;/b&gt; the Web to see what is there. This task is  performed by e piece of software, called a &lt;i&gt;crawler&lt;/i&gt; or a &lt;i&gt;spider&lt;/i&gt; (or  Googlebot, as is the case with Google). Spiders follow links from one page to  another and index everything they find on their way. Having in mind the number  of pages on the Web (over 20 billion), it is impossible for a spider to visit a  site daily just to see if a new page has appeared or if an existing page has  been modified. Sometimes crawlers will not visit your site for a month or two,  so during this time your SEO efforts will not be rewarded. But there is nothing  you can do about it, so just keep quiet. &lt;/p&gt; &lt;p&gt;What you can do is to check what a crawler sees from your site. As already  mentioned, crawlers are not humans and they do not see images, Flash movies,  JavaScript, frames, password-protected pages and directories, so if you have  tons of these on your site, you'd better run the &lt;b&gt;Spider Simulator&lt;/b&gt; below  to see if these goodies are viewable by the spider. If they are not viewable,  they will not be spidered, not indexed, not processed, etc. - in a word they  will be non-existent for search engines. &lt;/p&gt;&lt;br /&gt;&lt;table style="border-collapse: collapse;" bgcolor="#f3f3f3" border="1" bordercolor="#808080" cellpadding="5" cellspacing="3" width="100%"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt; &lt;form action="http://www.webconfs.com/search-engine-spider-simulator.php" method="post" target="_blank"&gt; &lt;p&gt; &lt;/p&gt;&lt;center&gt;&lt;span class="defaultfont"&gt;&lt;b&gt;Spider Simulator&lt;/b&gt;&lt;/span&gt;&lt;/center&gt;  &lt;p&gt;&lt;span class="defaultfont"&gt;&lt;b&gt;Enter URL to Spider&lt;/b&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;input size="60" value="http://" name="url"&gt;&lt;/p&gt;&lt;input value="submit" name="submit" type="hidden"&gt;  &lt;p&gt;&lt;input value="submit" name="submit" type="submit"&gt;&lt;/p&gt;&lt;/form&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;After a page is crawled, the next step is to &lt;b&gt;index&lt;/b&gt; its content. The  indexed page is stored in a giant database, from where it can later be  retrieved. Essentially, the process of indexing is identifying the words and  expressions that best describe the page and assigning the page to particular  keywords. For a human it will not be possible to process such amounts of  information but generally search engines deal just fine with this task.  Sometimes they might not get the meaning of a page right but if you help them by  optimizing it, it will be easier for them to classify your pages correctly and  for you – to get higher rankings. &lt;/p&gt; &lt;p&gt;When a search request comes, the search engine &lt;b&gt;processes&lt;/b&gt; it – i.e. it  compares the search string in the search request with the indexed pages in the  database. Since it is likely that more than one pages (practically it is  millions of pages) contains the search string, the search engine starts  &lt;b&gt;calculating the relevancy&lt;/b&gt; of each of the pages in its index to the search  string. &lt;/p&gt; &lt;p&gt;There are various algorithms to calculate relevancy. Each of these algorithms  has different relative weights for common factors like keyword density, links,  or metatags. That is why different search engines give different search results  pages for the same search string. What is more, it is a known fact that all  major search engines, like Yahoo!, Google, MSN, etc. periodically change their  algorithms and if you want to keep at the top, you also need to adapt your pages  to the latest changes. This is one reason (the other is your competitors) to  devote permanent efforts to SEO, if you'd like to be at the top. &lt;/p&gt; &lt;p&gt;The last step in search engines' activity is &lt;b&gt;retrieving&lt;/b&gt; the results.  Basically, it is nothing more than simply displaying them in the browser – i.e.  the endless pages of search results that are sorted from the most relevant to  the least relevant sites.&lt;br /&gt;&lt;/p&gt; &lt;h2&gt;Differences Between the Major Search Engines &lt;/h2&gt; &lt;p&gt;Although the basic principle of operation of all search engines is the same,  the minor differences between them lead to major changes in results relevancy.  For different search engines different factors are important. There were times,  when SEO experts joked that the algorithms of Yahoo! are intentionally made just  the opposite of those of Google. While this might have a grain of truth, it is a  matter a fact that the major search engines like different stuff and if you plan  to conquer more than one of them, you need to optimize carefully. &lt;/p&gt; &lt;p&gt;There are many examples of the differences between search engines. For  instance, for Yahoo! and MSN, on-page keyword factors are of primary importance,  while for Google links are very, very important. Also, for Google sites are like  wine – the older, the better, while Yahoo! generally has no expressed preference  towards sites and domains with tradition (i.e. older ones). Thus you might need  more time till your site gets mature to be admitted to the top in Google, than  in Yahoo!. &lt;/p&gt;&lt;!--    &lt;p&gt;The purpose of these examples is to illustrate that search engines    do differ and if you are really a professional, you need to consider    optimizing for two or three of them, rather than just for Google.     The &lt;b&gt;Google Vs Yahoo Graph&lt;/b&gt; Tool below illustrates that optimizing     your site for both engines is not a very easy thing to do, but not impossible.    &lt;/p&gt;    &lt;br /&gt;   &lt;table border="1" width="100%" bordercolor="'#808080'" bgcolor="'#F3F3F3'" style="'border-collapse:" cellpadding="5" cellspacing="3"&gt;    &lt;tr&gt;    &lt;td&gt;    &lt;form method="GET" action="http://www.seobench.com/google-yahoo-graph/index.php" target="_blank"&gt;      &lt;p&gt;&lt;center&gt;&lt;span class="defaultfont"&gt;&lt;b&gt;Google Vs Yahoo Graph&lt;/b&gt;&lt;/span&gt;&lt;/center&gt;&lt;/p&gt;      &lt;p&gt;&lt;span class="defaultfont"&gt;&lt;b&gt;Enter Keyword&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p&gt;&lt;input type="text" name="sq" value="My Keyword" size="60"&gt;&lt;/p&gt;      &lt;input type="submit" value="submit" name="submit"&gt;    &lt;/form&gt;    &lt;/td&gt;    &lt;/tr&gt;    &lt;/table&gt;    --&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;!-- google_ad_client = "pub-7240210938834352"; google_ad_width = 468; google_ad_height = 60; google_ad_format = "468x60_as"; google_ad_type = "text"; google_ad_channel =""; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "9c0808"; google_color_url = "000000"; google_color_text = "000000"; //--&gt;&lt;/script&gt;&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt; &lt;/script&gt;&lt;script src="http://pagead2.googlesyndication.com/pagead/expansion_embed.js"&gt;&lt;/script&gt;&lt;script src="http://pagead2.googlesyndication.com/pagead/render_ads.js"&gt;&lt;/script&gt;        &lt;script&gt;window.google_render_ad();&lt;/script&gt; Keywords – the Most Important Item in SEO&lt;br /&gt;&lt;p&gt;Keywords are the most important SEO item for every search engine – actually  they are what search strings are matched against. So you see that it is very  important that you optimize your site for the right keywords. This seems easy at  first but when you get into more detail, it might be a bit confusing to  correctly determine the keywords. But with a little research and thinking the  problem of selecting the right keywords to optimize for can be solved. &lt;/p&gt;&lt;br /&gt;&lt;h2&gt;&lt;a name="1. Choosing the Right Keywords to Optimize For|outline"&gt;&lt;/a&gt;1.  Choosing the Right Keywords to Optimize For&lt;/h2&gt; &lt;p&gt;It seems that the time when you could easily top the results for a one-word  search string is centuries ago. Now, when the Web is so densely populated with  sites, it is next to impossible to achieve constant top ratings for a one-word  search string. Achieving constant top ratings for two-word or three-word search  strings is a more realistic goal. If you examine closely the dynamics of search  results for popular one-word keywords, you might notice that it is so easy one  week to be in the first ten results and the next one– to have fallen out of the  first 30 results because the competition for popular one-word keywords is so  fierce and other sites have replaced you. &lt;/p&gt; &lt;p&gt;Of course, you can include one-word strings in your keywords list but if they  are not backed up by more expressions, do not dream of high ratings. For  instance, if you have a site about dogs, “&lt;i&gt;dog”&lt;/i&gt; is a mandatory keyword but  if you do not optimize for more words, like “&lt;i&gt;dog owners”&lt;/i&gt;, “&lt;i&gt;dog  breeds”&lt;/i&gt;, “&lt;i&gt;dog food”&lt;/i&gt;, or even “&lt;i&gt;canine”&lt;/i&gt;, success is unlikely,  especially for such a popular keyword. The examples given here are by no means  the ultimate truth about how to optimize a dog site but they are good enough to  show that you need to think broad when choosing the keywords. &lt;/p&gt; &lt;p&gt;Generally, when you start optimization, the first thing you need to consider  is the keywords that describe the content of your site best and that are most  likely to be used by users to find you. Ideally, you know your users well and  can guess correctly what search strings they are likely to use to search for  you. One issue to consider is synonyms. Very often users will use a different  word for the same thing. For instance, in the example with the dog site,  “&lt;i&gt;canine”&lt;/i&gt; is a synonym and it is for sure that there will be users who  will use it, so it does not hurt to include it now and then on your pages. But  do not rush to optimize for every synonym you can think of – search engines  themselves have algorithms that include synonyms in the keyword match,  especially for languages like English. &lt;/p&gt; &lt;p&gt;Instead, think of more keywords that are likely to be used to describe your  site. Thinking thematically is especially good because search engines tend to  rate a page higher if it belongs to a site the theme of which fits into the  keyword string. In this aspect it is important that your site is concentrated  around a particular theme – i.e. dogs. It might be difficult to think of all the  relevant keywords on your own but that is why tools are for. For instance, the  &lt;b&gt;Website Keyword Suggestions Tool&lt;/b&gt; below can help you to see how search  engines determine the theme of your web site and what keywords fit into this  theme. You can also try Google's &lt;a href="https://adwords.google.com/select/KeywordToolExternal" target="_blank"&gt;Keyword Tool&lt;/a&gt; to get more suggestions about which keywords are  hot and which are not. &lt;/p&gt;&lt;br /&gt;&lt;table style="border-collapse: collapse;" bgcolor="#f3f3f3" border="1" bordercolor="#808080" cellpadding="5" cellspacing="3" width="100%"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt; &lt;form action="http://www.webconfs.com/website-keyword-suggestions.php" method="post" target="_blank"&gt; &lt;p&gt; &lt;/p&gt;&lt;center&gt;&lt;span class="defaultfont"&gt;&lt;b&gt;Website Keyword  Suggestions&lt;/b&gt;&lt;/span&gt;&lt;/center&gt;  &lt;p&gt;&lt;span class="defaultfont"&gt;&lt;b&gt;Enter Website URL / Domain&lt;/b&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;input size="60" value="http://" name="url"&gt;&lt;/p&gt;&lt;input value="submit" name="submit" type="hidden"&gt;  &lt;p&gt;&lt;input value="submit" name="submit" type="submit"&gt;&lt;/p&gt;&lt;/form&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;When choosing the keywords to optimize for, you need to consider not only  their relevancy to your site and the expected monthly number of searches for  these particular keywords. Very often narrow searches are more valuable because  the users that come to your site are those that are really interested in your  product. If we go on with the dog example, you might discover that the “adopt a  dog” keyphrase brings you more visitors because you have a special section on  your site where you give advice on what to look for when adopting a dog. This  page is not of interest of current dog owners but to potential dog owners only,  who might be not so many in number but are your target audience and the overall  effect of attracting this niche can be better than attracting everybody who is  interested in dogs in general. So, when you look at the numbers of search hits  per month, consider the unique hits that fit into the theme of your site. &lt;/p&gt; &lt;h2&gt;&lt;a name="2. Keyword Density|outline"&gt;&lt;/a&gt;2. Keyword Density&lt;/h2&gt; &lt;p&gt;After you have chosen the keywords that describe your site and are supposedly  of interest to your users, the next step is to make your site keyword-rich and  to have good &lt;i&gt;keyword density&lt;/i&gt; for your target keywords. Keyword density is  a common measure of how relevant a page is. Generally, the idea is that the  higher the keyword density, the more relevant to the search string a page is.  The recommended density is 3-7% for the major 2 or 3 keywords and 1-2% for minor  keywords. Try the &lt;b&gt;Keyword Density Checker&lt;/b&gt; below to determine the keyword  density of your website.&lt;/p&gt;&lt;br /&gt;&lt;table style="border-collapse: collapse;" bgcolor="#f3f3f3" border="1" bordercolor="#808080" cellpadding="5" cellspacing="3" width="100%"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt; &lt;form action="http://www.webconfs.com/keyword-density-checker.php" method="post"&gt; &lt;p&gt; &lt;/p&gt;&lt;center&gt;&lt;span class="defaultfont"&gt;&lt;b&gt;Keyword Density Checker&lt;/b&gt;&lt;/span&gt;&lt;/center&gt;  &lt;p&gt;&lt;span class="defaultfont"&gt;&lt;b&gt;Enter a URL&lt;/b&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;input size="60" value="http://" name="url"&gt;  &lt;/p&gt;&lt;p&gt;&lt;input value="submit" name="submit" type="submit"&gt;&lt;/p&gt;&lt;/form&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Although there are no strict rules, try optimizing for a reasonable number of  keywords – 5 or 10 is OK. If you attempt to optimize for a list of 300, you will  soon see that it is just not possible to have a good keyword density for more  than a few keywords, without making the text sound artificial and stuffed with  keywords. And what is worse, there are severe penalties (including ban from the  search engine) for &lt;i&gt;keyword stuffing&lt;/i&gt; because this is considered an  unethical practice that tries to manipulate search results. &lt;/p&gt; &lt;h2&gt;&lt;a name="3. Keywords in Special Places|outline"&gt;&lt;/a&gt;3. Keywords in Special  Places&lt;/h2&gt; &lt;p&gt;Keywords are very important not only as quantity but as quality as well –  i.e. if you have more keywords in the page title, the headings, the first  paragraphs – this counts more that if you have many keywords at the bottom of  the page. The reason is that the URL (and especially the domain name), file  names and directory names, the page title, the headings for the separate  sections are more important than ordinary text on the page and therefore, all  equal, if you have the same keyword density as your competitors but you have  keywords in the URL, this will boost your ranking incredibly, especially with  Yahoo!. &lt;/p&gt; &lt;h5&gt;&lt;a name="a. Keywords in URLs and File Names|outline"&gt;&lt;/a&gt;a. Keywords in URLs  and File Names&lt;/h5&gt; &lt;p&gt;The domain name and the whole URL of a site tell a lot about it. The  presumption is that if your site is about dogs, you will have “dog”, “dogs”, or  “puppy” as part of your domain name. For instance, if your site is mainly about  adopting dogs, it is much better to name your dog site “dog-adopt.net” than  “animal-care.org”, for example, because in the first case you have two major  keywords in the URL, while in the second one you have no more than one potential  minor keyword. &lt;/p&gt; &lt;p&gt;When hunting for keyword rich domain names, don't get greedy. While from a  SEO point of view it is better to have 5 keywords in the URL, just imagine how  long and difficult to memorize the URL will be. So you need to strike a balance  between the keywords in the URL and site usability, which says that more than 3  words in the URL is a way too much.&lt;br /&gt;Probably you will not be able to come on  your own with tons of good suggestions. Additionally, even if you manage to  think of a couple of good domain names, they might be already taken. In such  cases tools like the Tool below can come very handy. &lt;/p&gt; &lt;p&gt; &lt;table style="border-collapse: collapse;" bgcolor="#f3f3f3" border="1" bordercolor="#808080" cellpadding="5" cellspacing="3" width="100%"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt; &lt;form action="http://www.webconfs.com/keyword-rich-domain-suggestions.php" method="post" target="_new"&gt; &lt;p&gt;&lt;br /&gt;&lt;span class="defaultfont"&gt;&lt;b&gt;Enter Keyword&lt;/b&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;input size="60" name="keyword"&gt;&lt;/p&gt; &lt;p&gt;&lt;span class="defaultfont"&gt;Choose Your Domain Extensions:&lt;/span&gt;&lt;br /&gt;&lt;table border="0"&gt; &lt;tbody&gt; &lt;tr class="defaultfont"&gt; &lt;td&gt;&lt;input checked="checked" value="com" name="tld[]" type="checkbox"&gt;.com  &lt;/td&gt; &lt;td&gt;&lt;input checked="checked" value="net" name="tld[]" type="checkbox"&gt;.net  &lt;/td&gt; &lt;td&gt;&lt;input value="org" name="tld[]" type="checkbox"&gt;.org  &lt;/td&gt; &lt;td&gt;&lt;input value="info" name="tld[]" type="checkbox"&gt;.info  &lt;/td&gt;&lt;/tr&gt; &lt;tr class="defaultfont"&gt; &lt;td&gt;&lt;input value="biz" name="tld[]" type="checkbox"&gt;.biz  &lt;/td&gt; &lt;td&gt;&lt;input value="us" name="tld[]" type="checkbox"&gt;.us  &lt;/td&gt; &lt;td&gt;&lt;input value="name" name="tld[]" type="checkbox"&gt;.name  &lt;/td&gt; &lt;td&gt;&lt;input value="in" name="tld[]" type="checkbox"&gt;.in   &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;input value="submit" name="submit" type="hidden"&gt;  &lt;p&gt;&lt;input value="submit" name="submit" type="submit"&gt;&lt;/p&gt;&lt;/form&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt; &lt;p&gt;File names and directory names are also important. Often search engines will  give preference to pages that have a keyword in the file name. For instance &lt;a href="http://mydomain.com/dog_adopt.html"&gt;http://mydomain.com/dog-adopt.html&lt;/a&gt;  is not as good as &lt;a href="http://dog-adopt.net/dog-adopt.html"&gt;http://dog-adopt.net/dog-adopt.html&lt;/a&gt;  but is certainly better than &lt;a href="http://mydomain.com/animal-care.html"&gt;http://mydomain.com/animal-care.html&lt;/a&gt;.  The advantage of keywords in file names over keywords in URLs is that they are  easier to change, if you decide to move to another niche, for example. &lt;/p&gt; &lt;h5&gt;&lt;a name="b. Keywords in Page Titles|outline"&gt;&lt;/a&gt;b. Keywords in Page  Titles&lt;/h5&gt; &lt;p&gt;The page title is another special place because the contents of the  &lt;/p&gt;&lt;h5&gt; tag usually gets displayed in most search engines, (including  Google). While it is not mandatory per the HTML specification to write something  in the &lt;/h5&gt;&lt;h5&gt; tag (i.e. you can leave it empty and the title bar of the  browser will read “Untitled Document” or similar), for SEO purposes you may not  want to leave the &lt;/h5&gt;&lt;h5&gt; tag empty; instead, you'd better write the the  page title in it. &lt;p&gt;&lt;/p&gt; &lt;p&gt;Unlike URLs, with page titles you can get wordy. If we go on with the dog  example, the &lt;/p&gt;&lt;/h5&gt;&lt;h5&gt; tag of the home page for the &lt;a href="http://dog-adopt.net/"&gt;http://dog-adopt.net&lt;/a&gt; can include something like  this: &lt;/h5&gt;&lt;h5&gt;Adopt a Dog – Save a Life and Bring Joy to Your  Home&lt;/h5&gt;, &lt;h5&gt;Everything You Need to Know About Adopting a  Dog&lt;/h5&gt; or even longer. &lt;p&gt;&lt;/p&gt; &lt;h5&gt;&lt;a name="c. Keywords in Headings|outline"&gt;&lt;/a&gt;c. Keywords in Headings&lt;/h5&gt; &lt;p&gt;Normally headings separate paragraphs into related subtopics and from a  literary point of view, it may be pointless to have a heading after every other  paragraph but from SEO point of view it is extremely good to have as many  headings on a page as possible, especially if they have the keywords in them.  &lt;/p&gt; &lt;p&gt;There are no technical length limits for the contents of the &lt;/p&gt;&lt;p&gt;tags but common sense says that too long  headings are bad for page readability. So, like with URLs, you need to be wise  with the length of headings. Another issue you need to consider is how the  heading will be displayed. If it is Heading 1 , generally this means  larger font size and in this case it is recommendable to have less than 7-8  words in the heading, otherwise it might spread on 2 or 3 lines, which is not  good and if you can avoid it – do it.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;h1&gt;&lt;a name="0.III. Links – Another Important SEO Item|outline"&gt;&lt;/a&gt;III. Links –  Another Important SEO Item&lt;/h1&gt;&lt;br /&gt;&lt;h2&gt;&lt;a name="1. Why Links Are Important|outline"&gt;&lt;/a&gt;1. Why Links Are  Important&lt;/h2&gt; &lt;p&gt;Probably the word that associates best with Web is “links”. That is what  hypertext is all about – you link to pages you like and get linked by pages that  like your site. Actually, the Web is woven out of interconnected pages and  spiders follow the links, when indexing the Web. If not many sites link to you,  then it might take ages for search engines to find your site and even if they  find you, it is unlikely that you will have high rankings because the quality  and quantity of links is part of the algorithms of search engines for  calculating relevancy. &lt;/p&gt; &lt;h2&gt;&lt;a name="2. Inbound and Outbound Links|outline"&gt;&lt;/a&gt;2. Inbound and Outbound  Links&lt;/h2&gt; &lt;p&gt;Put in layman's terms, there are two types of links that are important for  SEO – inbound and outbound links. &lt;i&gt;Outbound links&lt;/i&gt; are links that start  from your site and lead to another one, while &lt;i&gt;inbound links&lt;/i&gt;, or  &lt;i&gt;backlinks&lt;/i&gt;, come from an external site to yours, e.g. if a.com links to  mydomain.com, the link from a.com is an inbound link for mydomain.com. &lt;/p&gt; &lt;p&gt;Backlinks are very important because they are supposed to be a measure of the  popularity of your site among the Web audience. It is necessary to say that not  all backlinks are equal. There are good and bad backlinks. Good backlinks are  from reputable places - preferably from sites with a similar theme. These links  do boost search engine ranking. Bad backlinks come from suspicious places – like  link farms – and are something to be avoided. Well, if you are backlinked  without your knowledge and consent, maybe you should drop the Webmaster a line,  asking him or her to remove the backlink. &lt;/p&gt; &lt;p&gt;If you are not heavily backlinked, don't worry - buying links is an  established practice and if you are serious about getting to the top, you may  need to consider it. But before doing this, you should consider some free  alternatives. For instance, some of the good places where you can get quality  backlinks are Web directories like &lt;a href="http://dmoz.org/" target="_blank"&gt;http://dmoz.org&lt;/a&gt; or &lt;a href="http://dir.yahoo.com/" target="_blank"&gt;http://dir.yahoo.com&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;First, look for suitable sites to backlink to you using the &lt;b&gt;Backlinks  Builder&lt;/b&gt; below. After you identify potential backlinks, it's time to contact  the Web master of the site and to start negotiating terms. Sometimes you can  agree to a barter deal – i.e. a link exchange – they will put on their site N  links to your site and you will put on your site N links to their site - but  have in mind that this is a bad, risky deal and you should always try to avoid  it. &lt;/p&gt;&lt;br /&gt;&lt;table style="border-collapse: collapse;" bgcolor="#f3f3f3" border="1" bordercolor="#808080" cellpadding="5" cellspacing="3" width="100%"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt; &lt;form action="http://www.webconfs.com/backlink-builder.php" method="post" target="_blank"&gt;&lt;span class="defaultfont"&gt; &lt;center&gt;&lt;b&gt;Backlink Builder&lt;/b&gt;&lt;/center&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="defaultfont"&gt;&lt;b&gt;Enter Keyword (Theme)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;input size="60" name="keyword"&gt;&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;&lt;span class="defaultfont"&gt;Number of Results per Keyphrases  Category&lt;/span&gt;&lt;/td&gt; &lt;td&gt;  &lt;br /&gt;&lt;/td&gt; &lt;td&gt;&lt;span class="defaultfont"&gt;Display &lt;/span&gt;&lt;/td&gt; &lt;td&gt;&lt;select class="defaultfont" name="n"&gt; &lt;option value="10" selected="selected"&gt;10  results&lt;/option&gt; &lt;option value="20"&gt;20 results&lt;/option&gt;&lt;/select&gt;  &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;input value="submit" name="submit" type="submit"&gt;&lt;/p&gt;&lt;/form&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;Internal links (i.e. links from one page to another page on the same site)  are also important but not as much as backlinks. In this connection it is  necessary to say, that using images for links might be prettier but it is a SEO  killer. Instead of having buttons for links, use simple text links. Since search  engines spider the text on a page, they can't see all the designer miracles,  like gradient buttons or flash animations, so when possible, either avoid using  them, or provide a meaningful textual description in the &lt;alt&gt; tag, as  described next. &lt;/alt&gt;&lt;/p&gt; &lt;h2&gt;&lt;a name="3. Anchor text|outline"&gt;&lt;/a&gt;3. Anchor text&lt;/h2&gt; &lt;p&gt;Anchor text is the most important item in a backlink. While it does matter  where a link comes from (i.e. a reputable place or a link farm), what matters  more is the actual text the link starts from. Put simply, &lt;i&gt;anchor text&lt;/i&gt; is  the word(s) that you click on to open the hyperlink – e.g. if we have &lt;a href="http://www.google.com/" target="_blank"&gt;the best search engine&lt;/a&gt;, than  “the best search engine” is the anchor text for the hyperlink to google.com. You  see that you might have a backlink from a valuable site but if the anchor text  is something like “an example of a complete failure”, you will hardly be happy  with it. &lt;/p&gt; &lt;p&gt;When you check your backlinks, always check what their anchor text is and if  there is a keyword in it. It is a great SEO boost to have a lot of backlinks  from quality sites and the anchor text to include our keywords. Check the anchor  text of inbound backlinks is with the &lt;b&gt;Backlink Anchor Text Analyzer&lt;/b&gt; tool  below. Besides the anchor text itself, the text around it is also important.  &lt;/p&gt;&lt;br /&gt;&lt;table style="border-collapse: collapse;" bgcolor="#f3f3f3" border="1" bordercolor="#808080" cellpadding="5" cellspacing="3" width="100%"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt; &lt;form action="http://www.webconfs.com/anchor-text-analysis.php" method="post" target="_blank"&gt;&lt;br /&gt;&lt;span class="defaultfont"&gt; &lt;center&gt;&lt;b&gt;Backlink Anchor Text Analyzer&lt;/b&gt;&lt;/center&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="defaultfont"&gt;&lt;b&gt;Domain Name&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;input size="60" value="www.yourdomain.com" name="domainname"&gt;&lt;/p&gt;&lt;span style="color:red;"&gt;&lt;b&gt;Note*&lt;/b&gt; &lt;/span&gt;Results may vary if prefixed with www.&lt;br /&gt;&lt;input value="1" name="p" type="hidden"&gt;  &lt;p&gt;&lt;input value="submit" name="submit" type="submit"&gt;&lt;/p&gt;&lt;/form&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;h2&gt;&lt;a name="4. Link Practices That Are To Be Avoided|outline"&gt;&lt;/a&gt;4. Link  Practices That Are To Be Avoided&lt;/h2&gt; &lt;p&gt;Similar to keyword stuffing, purchasing links in bulk is a practice to be  avoided. It gets suspicious if you bartered 1000 links with another site in a  day or two. What is more, search engines keep track of link farms (sites that  sell links in bulk) and since bought links are a way to manipulate search  results, this practice gets punished by search engines. So avoid dealing with  link farms because it can cause more harm than do good. Also, outbound links  from your site to known Web spammers or “bad guys” are also to be avoided. &lt;/p&gt; &lt;p&gt;As mentioned, link exchange is not a clean deal. Even if it boosts your  ranking, it can have many other negative aspects in the long run. First, you do  not know if the other party will keep their promise – i.e. they might remove  some of the links to you. Second, they might change the context the link appears  into. Third, it is really suspicious if you seem to be “married” to another site  and 50% or more of your inbound and outbound links are from/to this direction.  &lt;/p&gt; &lt;p&gt;When links are concerned, one aspect to have in mind is the ratio between  inbound and outbound links. Generally speaking, if your outbound links are ten  times your inbound links, this is bad but it also varies on a case by case  basis. If you have a site that links to news sources or has RSS feeds, then  having many outbound links is the inevitable price of fresh content.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;IV. Metatags&lt;/p&gt;&lt;p&gt;A couple of years ago tags were the primary tool for search  engine optimization and there was a direct correlation between what you wrote  there and your position in search results. However, algorithms got better and  today the importance of metadata is decreasing day by day, especially with  Google. But still some search engines show metadata (under the clickable link in  search results), so users can read what you have written and if they think it is  relevant, they might go to your site. Also, some of the specialized search  engines still use the metatags when ranking your site. &lt;/p&gt; &lt;p&gt;The meta Description tag is are one more way for you to write a description  of your site, thus pointing search engines to what themes and topics your Web  site is relevant to. It does not hurt to include at least a brief description,  so don't skip it. For instance, for the dog adoption site, the meta Description  tag could be something like this: &lt;/p&gt; &lt;p&gt;A potential use of the meta Keywords tags is to include a list of keywords  that you think are relevant to your pages. The major search engines will not  take this into account but still it is a chance for you to emphasize your target  keywords. You may consider including alternative spellings (or even common  misspellings of your keywords) in the meta Keywords tag. For instance, if I were  to write the meta keywords tag for the dog adoption site, I would do it like  that:  It is a small boost to search engine  top ranking but why miss the chance? &lt;/p&gt; &lt;p&gt;The meta Robots tag deserves more attention. In this tag you specify the  pages that you do NOT want crawled and indexed. It happens that on your site you  have contents that you need to keep there but you don't want it indexed. Listing  this pages in the meta Robots tag is one way to exclude them (the other way is  by using a robots.txt file and generally this is the better way to do it) from  being indexed. &lt;/p&gt;V. Content Is King&lt;br /&gt;&lt;p&gt;If you are new to SEO, it might be a surprise for you that text is one of the  driving forces to higher rankings. But it is a fact. Search engines (and your  readers) love fresh content and providing them with regularly updated, relevant  content is a recipe for success. Generally, when a site is frequently updated,  this increases the probability that the spider will revisit the site sooner. You  can't take for sure that if you update your site daily, the spider will visit it  even once a week but if you do not update your contents regularly, this will  certainly drop you to from the top of search results. &lt;/p&gt; &lt;p&gt;For company sites that are not focused on writing but on manufacturing  constantly adding text can be a problem because generally company sites are not  reading rooms or online magazines that update their content daily, weekly or  monthly but even for company sites there are reasonable solutions. No matter  what your business is, one is for sure – it is always relevant to include a news  section on your site – it can be company news or RSS feeds but this will keep  the ball rolling. &lt;/p&gt; &lt;h2&gt;&lt;a name="1. Topical Themes or How to Frequently Add Content to Your Site|outline"&gt;&lt;/a&gt;1.  Topical Themes or How to Frequently Add Content to Your Site&lt;/h2&gt; &lt;p&gt;If you are doing the SEO for an online magazine, you can consider yourself  lucky – fresh content is coming all the time and you just need to occasionally  arrange a heading or two or a couple of paragraphs to make the site  SEO-friendly. But even if you are doing a SEO for an ordinary company site, it  is not all that bad - there are ways to constantly get fresh content that fits  into the topic of the site. &lt;/p&gt; &lt;p&gt;One of the intricacies of optimizing a company site is that it has to be  serious. Also, if your content smells like advertising and has no practical  value for your visitors, this content is not that valuable. For instance, if you  are a trade company, you can have promotional texts about your products. But  have in mind that these texts must be informational, not just sales hype. And if  you have a lot of products to sell, or frequently get new products, or make  periodical promotions of particular products and product groups – you can post  all this to your site and you will have fresh, topical content. &lt;/p&gt; &lt;p&gt;Also, depending on what your business is about, you can include different  kinds of self-updating information like lists of hot new products, featured  products, discounted items, even online calculators or order trackers. Unlike  promotional pages, this might neither bring you many new visitors, nor improve  your ratings but is more than nothing. &lt;/p&gt; &lt;p&gt;One more potential traffic trigger for company sites are news sections. Here  you can include news about past and coming events, post reports about various  activities, announce new undertakings, etc. Some companies even go further –  their CEO keeps a blog, where he or she writes in a more informal style about  what is going in the company, in the industry as a whole, or in the world in  general. These blogs do attract readers, especially if the information is true,  rather than the official story. &lt;/p&gt; &lt;p&gt;An alternative way to get fresh free content are RSS feeds. RSS feeds are  gaining more and more popularity and with a little bit of searching, you can get  free syndicated content for almost any topic you can think of. &lt;/p&gt; &lt;h2&gt;&lt;a name="2. Bold and Italic Text|outline"&gt;&lt;/a&gt;2. Bold and Italic Text&lt;/h2&gt; &lt;p&gt;When you have lots of text, the next question is how to make the important  items stand out from the crowd – for both humans and search engines. While  search engines (and their spiders – the programs that crawl the Web and index  pages) cannot read text the way humans do, they do have ways of getting the  meaning of a piece of text. Headings are one possibility, bold and italic are  another way to emphasize a word or a couple of words that are important. Search  engines read the &lt;b&gt; and &lt;i&gt; text and get the idea that what is in  bold and/or italic is more important than the rest of the text. But do not use  bold and italic too much – this will spoil the effect, rather than make the  whole page a search engine favorite. &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;h2&gt;&lt;b&gt;&lt;i&gt;&lt;a name="3. Duplicate Content|outline"&gt;&lt;/a&gt;3. Duplicate Content&lt;/i&gt;&lt;/b&gt;&lt;/h2&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;When you get new content, there is one important issue – is this content  original? Because if it is not, i.e. it is stolen from another site, this will  get you into trouble. But even if it is not illegal, i.e. you obtained it for  free from an article feed, have in mind that you might not be only one on the  Web, who has this particular stuff. If you have the rights to do it, you can  change the text a little, so it is not an exact copy of another page and cannot  be labeled “duplicate content” by search engines. If you don't manage to escape  the duplicate content filter that search engines have imposed recently in their  attempts to filter stolen, scrapped, or simply copied contents, your pages could  be removed from search results! &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;Duplicate content became an issue when tricky webmasters started making  multiple copies of the same page (under a different name) in order to fool  search engines that they have more content than they actually do. As a result of  this malpractice, search engines responded with a duplicate content filter that  removes suspicious pages. Unfortunately, this filter sometimes removes quite  legitimate pages, like product descriptions given from a manufacturer to all its  resellers, which must be kept exactly the same. &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;You see, duplicate content can be a serious problem. But it is not an  obstacle that cannot be overcome. First, you need to periodically check the Web  for pages that are similar to yours. You can use &lt;a href="http://copyscape.com/"&gt;http://copyscape.com&lt;/a&gt;. If you identify pages  that are similar to yours (and it is not you who have illegitimately copied  them), you could notify the webmaster of the respective site(s) to remove them.  Also, you could change a little the text on your site, hoping that this way you  will avoid the duplicate content penalty. Even with product descriptions, you  can add commentary or opinion on the same page and this could be a way out. &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;Try the &lt;b&gt;Similar Page Checker&lt;/b&gt; to check the similarity between two URLs.  &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;table style="border-collapse: collapse;" bgcolor="#f3f3f3" border="1" bordercolor="#808080" cellpadding="5" cellspacing="3" width="100%"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt; &lt;form action="http://www.webconfs.com/similar-page-checker.php" method="post"&gt; &lt;p&gt;&lt;span class="defaultfont"&gt; &lt;center&gt;&lt;b&gt;Similar Page Checker&lt;/b&gt;&lt;/center&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;&lt;span class="defaultfont"&gt;&lt;b&gt;Enter First URL&lt;/b&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;input size="60" name="url1"&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;span class="defaultfont"&gt;&lt;b&gt;Enter Second URL&lt;/b&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;input size="60" name="url2"&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;input value="submit" name="submit" type="submit"&gt;&lt;/p&gt;&lt;/form&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;VI. Visual Extras and SEO&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;As already mentioned, search engines have no means to index directly extras  like images, sounds, flash movies, javascript. Instead, they rely on your to  provide meaningful textual description and based on it they can index these  files. In a sense, the situation is similar to that with text 10 or so years ago  – you provide a description in the metatag and search engines uses this  description to index and process your page. If technology advances further, one  day it might be possible for search engines to index images, movies, etc. but  for the time being this is just a dream. &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;h2&gt;&lt;b&gt;&lt;i&gt;&lt;a name="1. Images |outline"&gt;&lt;/a&gt;1. Images &lt;/i&gt;&lt;/b&gt;&lt;/h2&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;Images are an essential part of any Web page and from a designer point of  view they are not an extra but a most mandatory item for every site. However,  here designers and search engines are on two poles because for search engines  every piece of information that is buried in an image is lost. When working with  designers, sometimes it takes a while to explain to them that having textual  links (with proper anchor text) instead of shining images is not a whim and that  clear text navigation is really mandatory. Yes, it can be hard to find the right  balance between artistic performance and SEO-friendliness but since even the  finest site is lost in cyberspace if it cannot be found by search engines, a  compromise to its visual appearance cannot be avoided. &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;With all that said, the idea is not to skip images at all. Sure, nowadays  this is impossible because the result would be a most ugly site. Rather the idea  is that images should be used for illustration and decoration, not for  navigation or even worse – for displaying text (in a fancy font, for example).  And the most important – in the &lt;alt&gt; attribute of the &lt;img src="" /&gt; tag,  always provide a meaningful textual description of the image. The HTML  specification does not require this but search engines do. Also, it does not  hurt to give meaningful names to the image files themselves rather than name  them image1.jpg, image2.jpg, imageN.jpg. For instance, in the next example the  image file has an informative name and the alt provides enough additional  information: &lt;img src="http://www.blogger.com/%E2%80%9Cone_month_Jim.jpg%E2%80%9D" alt="“A" /&gt;. Well, don't go to extremes like writing 20-word  &lt;alt&gt; tags for 1 pixel images because this also looks suspicious and  starts to smell like keyword-stuffing. &lt;/alt&gt;&lt;/alt&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;h2&gt;&lt;b&gt;&lt;i&gt;&lt;a name="2. Animation and Movies |outline"&gt;&lt;/a&gt;2. Animation and Movies &lt;/i&gt;&lt;/b&gt;&lt;/h2&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;The situation with animation and movies is similar to that with images – they  are valuable from a designer's point of view but are not loved by search  engines. For instance, it is still pretty common to have an impressive Flash  introduction on the home page. You just cannot imagine what a disadvantage with  search engines this is – it is a number one rankings killer! And it gets even  worse, if you use Flash to tell a story that can be written in plain text, hence  crawled and indexed by search engines. One workaround is to provide search  engines with a HTML version of the Flash movie but in this case make sure that  you have excluded the original Flash movie from indexing (this is done in the  robots.txt file but the explanation of this file is not a beginners topic and  that is why it is excluded from this tutorial), otherwise you can be penalized  for duplicate content. &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;There are rumors that Google is building a new search technology that will  allow to search inside animation and movies and that the .swf format will  contain new metadata that can be used by search engines, but until then, you'd  better either refrain from using (too much) Flash, or at least provide a textual  description of the movie (you can use an &lt;alt&gt; tag to describe the movie).  &lt;/alt&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;h2&gt;&lt;b&gt;&lt;i&gt;&lt;a name="3. Frames |outline"&gt;&lt;/a&gt;3. Frames &lt;/i&gt;&lt;/b&gt;&lt;/h2&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;It is a good news that frames are slowly but surely disappearing from the  Web. 5 or 10 years ago they were an absolute hit with designers but never with  search engines. Search engines have difficulties indexing framed pages because  the URL of the page is the same, no matter which of the separate frames is open.  For search engines this was a shock because actually there were 3 or 4 pages and  only one URL, while for search engines 1 URL is 1 page. Of course, search  engines can follow the links to the pages in the frameset and index them but  this is a hurdle for them. &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;If you still insist on using frames, make sure that you provide a meaningful  description of the site in the &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;&lt;i&gt; tag. The following example is  not for beginners but even if you do not understand everything in it, just  remember that the tag is the place to provide an alternative  version (or at least a short description) of your site for search engines and  users whose browsers do not support frames. If you decide to use the   tag, maybe you'd like to read more about it before you start  using it. &lt;/p&gt; &lt;p&gt;Example:  &lt;p&gt; This site is best viewed in a browser  that supports frames. &lt;/p&gt;&lt;p&gt; Welcome to our site for prospective  dog adopters! Adopting a homeless dog is a most noble deed that will help save  the life of the poor creature. &lt;/p&gt;&lt;/i&gt;&lt;/b&gt;&lt;p&gt;&lt;/p&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;h2&gt;&lt;b&gt;&lt;i&gt;&lt;a name="4. JavaScript|outline"&gt;&lt;/a&gt;4. JavaScript&lt;/i&gt;&lt;/b&gt;&lt;/h2&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;This is another hot potato. It is known by everybody that pure HTML is  powerless to make complex sites with a lot of functionality (anyway, HTML was  not intended to be a programming languages for building Web applications, so  nobody expects that you can use HTML to handle writing to a database or even for  storing session information) as required by today's Web users and that is why  other programming languages (like JavaScript, or PHP) come to enhance HTML. For  now search engines just ignore JavaScript they encounter on a page. As a result  of this, first if you have links that are inside the JavaScript code, chances  are that they will not be spidered. Second, if JavaScript is in the HTML file  itself (rather than in an external .js file that is invoked when necessary) this  clutters the html file itself and spiders might just skip it and move to the  next site. Just for your information, there is a &lt;noscript&gt; tag that  allows to provide alternative to running the script in the browser but because  most of its applications are pretty complicated, it is hardly suitable to  explain it here.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;VII. Static Versus Dynamic URLs&lt;/p&gt;&lt;p&gt;Based on the previous section, you might have gotten the impression that the  algorithms of search engines try to humiliate every designer effort to make a  site gorgeous. Well, it has been explained why search engines do not like image,  movies, applets and other extras. Now, you might think that search engines are  far too cheeky to dislike dynamic URLs either. Honestly, users are also not in  love with URLs like &lt;span style="color:blue;"&gt;&lt;u&gt;http://domain.com/product.php?cid=1&amp;amp;pid=5&lt;/u&gt;&lt;/span&gt; because  such URLs do not tell much about the contents of the page. &lt;/p&gt; &lt;p&gt;There are a couple of good reasons why static URLs score better than dynamic  URLs. First, dynamic URLs are not always there – i.e. the page is generated on  request after the user performs some kind of action (fills a form and submits it  or performs a search using the site's search engine). In a sense, such pages are  nonexistent for search engines, because they index the Web by crawling it, not  by filling in forms. &lt;/p&gt; &lt;p&gt;Second, even if a dynamic page has already been generated by a previous user  request and is stored on the server, search engines might just skip it if it has  too many question marks and other special symbols in it. Once upon a time search  engines did not index dynamic pages at all, while today they do index them but  generally slower than they index static pages. &lt;/p&gt; &lt;p&gt;The idea is not to revert to static HTML only. Database-driven sites are  great but it will be much better if you serve your pages to the search engines  and users in a format they can easily handle. One of the solutions of the  dynamic URLs problem is called &lt;i&gt;URL rewriting&lt;/i&gt;. There are special tools  (different for different platforms and servers) that rewrite URLs in a  friendlier format, so they appear in the browser like normal HTML pages. Try the  &lt;b&gt;URL Rewriting Tool&lt;/b&gt; below, it will convert the cryptic text from the  previous example into something more readable, like &lt;span style="color:blue;"&gt;&lt;u&gt;http://mydomain.com/product-categoryid-1-productid-5&lt;/u&gt;&lt;/span&gt;.  &lt;/p&gt;&lt;br /&gt;&lt;table style="border-collapse: collapse;" bgcolor="#f3f3f3" border="1" bordercolor="#808080" cellpadding="5" cellspacing="3" width="100%"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt; &lt;form action="http://www.webconfs.com/url-rewriting-tool.php" method="post" target="_blank"&gt; &lt;p&gt;&lt;span class="defaultfont"&gt; &lt;center&gt;&lt;b&gt;URL Rewriting Tool&lt;/b&gt;&lt;/center&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;&lt;span class="defaultfont"&gt;&lt;b&gt;Enter Dynamic URL&lt;/b&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;input size="60" value="http://mydomain.com/product.php?categoryid=1&amp;amp;productid=5" name="url"&gt;  &lt;/p&gt;&lt;input value="submit" name="submit" type="hidden"&gt;  &lt;p&gt;&lt;input value="submit" name="submit" type="submit"&gt;&lt;/p&gt;&lt;/form&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;!-- google_ad_client = "pub-7240210938834352"; google_ad_width = 468; google_ad_height = 60; google_ad_format = "468x60_as"; google_ad_type = "text"; google_ad_channel =""; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "9c0808"; google_color_url = "000000"; google_color_text = "000000"; //--&gt;&lt;/script&gt;&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt; &lt;/script&gt;&lt;script src="http://pagead2.googlesyndication.com/pagead/expansion_embed.js"&gt;&lt;/script&gt;&lt;script src="http://pagead2.googlesyndication.com/pagead/render_ads.js"&gt;&lt;/script&gt;        &lt;script&gt;window.google_render_ad();&lt;/script&gt; &lt;h1&gt;&lt;a name="0.VIII. Promoting Your Site to Increase Traffic|outline"&gt;&lt;/a&gt;VIII.  Promoting Your Site to Increase Traffic&lt;/h1&gt;&lt;br /&gt;&lt;p&gt;The main purpose of SEO is to make your site visible to search engines, thus  leading to higher rankings in search results pages, which in turn brings more  traffic to your site. And having more visitors (and above all buyers) is  ultimately the goal in sites promotion. For truth's sake, SEO is only one  alternative to promote your site and increase traffic – there are many other  online and offline ways to do accomplish the goal of getting high traffic and  reaching your target audience. We are not going to explore them in this tutorial  but just keep in mind that search engines are not the only way to get visitors  to your site, although they seem to be a preferable choice and a relatively easy  way to do it. &lt;/p&gt; &lt;h2&gt;&lt;a name="1. Submitting Your Site to Search Directories, forums and special sites|outline"&gt;&lt;/a&gt;1.  Submitting Your Site to Search Directories, forums and special sites&lt;/h2&gt; &lt;p&gt;After you have finished optimizing your new site, time comes to submit it to  search engines. Generally, with search engines you don't have to do anything  special in order to get your site included in their indices – they will come and  find you. Well, it cannot be said exactly when they will visit your site for the  first time and at what intervals they will visit it later but there is hardly  anything that you can to do invite them. Sure, you can go to their Submit a Site  pages in submit the URL of your new site but by doing this do not expect that  they will hop to you right away. What is more, even if you submit your URL, most  search engines reserve the right to judge whether to crawl your site or not.  Anyway, here are the URLs for submitting pages in the three major search  engines: &lt;a href="http://www.google.com/addurl/?continue=/addurl" target="_blank"&gt;Google&lt;/a&gt;, &lt;a href="http://search.msn.com/docs/submit.aspx?FORM=WSDD2" target="_blank"&gt;MSN&lt;/a&gt;,  and &lt;a href="http://submit.search.yahoo.com/free/request" target="_blank"&gt;Yahoo&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;In addition to search engines, you may also want to have your site included  in search directories as well. Although &lt;i&gt;search directories&lt;/i&gt; also list  sites that are relevant to a given topic, they are different from search engines  in several aspects. First, search directories are usually maintained by humans  and the sites in them are reviewed for relevancy after they have been submitted.  Second, search directories do not use crawlers to get URLs, so &lt;i&gt;you&lt;/i&gt; need  to go to them and submit your site but once you do this, you can stay there  forever and no more efforts on your side are necessary. Some of the most popular  search directories are DMOZ and Yahoo! (the directory, not the search engine  itself) and here are the URLs of their submissions pages: &lt;a href="http://dmoz.org/add.html" target="_blank"&gt;DMOZ&lt;/a&gt; and &lt;a href="https://ecom.yahoo.com/dir/submit/intro" target="_blank"&gt;Yahoo!&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;Sometimes posting a link to your site in the right forums or special sites  can do miracles in terms of traffic. You need to find the forums and sites that  are leaders in the fields of interest to you but generally even a simple search  in Google or the other major search engines will retrieve their names. For  instance, if you are a hardware freak, type “hardware forums” in the search box  and in a second you will have a list of sites that are favorites to other  hardware freaks. Then you need to check the sites one by one because some of  them might not allow posting links to commercial sites. Posting into forums is  more time-consuming than submitting to search engines but it could also be  pretty rewarding. &lt;/p&gt; &lt;h2&gt;&lt;a name="2. Specialized Search Engines|outline"&gt;&lt;/a&gt;2. Specialized Search  Engines&lt;/h2&gt; &lt;p&gt;Google, Yahoo!, and MSN are not the only search engines on Earth, nor even  the only general-purpose ones. There are many other general-purpose and  specialized search engines and some of them can be really helpful for reaching  your target audience. You just can't imagine for how many niches specialized  search engines exist – from law, to radiostations, to educational one! Some of  them are actually huge sites that gather Webwide resources on a particular topic  but almost all of them have sections for submitting links to external sites of  interest. So, after you find the specialized search engines in your niche, go to  their site and submit your URL – this could prove more trafficworthy than  striving to get to the top of Google. &lt;/p&gt; &lt;h2&gt;&lt;a name="3. Paid Ads and Submissions|outline"&gt;&lt;/a&gt;3. Paid Ads and  Submissions&lt;/h2&gt; &lt;p&gt;We have already mentioned some other alternatives to search engines – forums,  specialized sites and search engines, search directories – but if you need to  make sure that your site will be noticed, you can always resort to paid ads and  submissions. Yes, paid listings are a fast and guaranteed way to appear in  search results and most of the major search engines accept payment to put your  URL in the Paid Links section for keywords of interest to you but you also must  have in mind that users generally do not trust paid links as much as they do  with the normal ones – in a sense it looks like you are bribing the search  engine to place you where you can't get on your own, so think twice about the  pros and cons of paying to get listed. &lt;/p&gt;&lt;br /&gt;&lt;/noscript&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5006455826685622224-5502525007156265108?l=sujeev84.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sujeev84.blogspot.com/feeds/5502525007156265108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sujeev84.blogspot.com/2009/06/search-engine-optimization.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5006455826685622224/posts/default/5502525007156265108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5006455826685622224/posts/default/5502525007156265108'/><link rel='alternate' type='text/html' href='http://sujeev84.blogspot.com/2009/06/search-engine-optimization.html' title='Search engine optimization'/><author><name>sujeeve</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5006455826685622224.post-5604050256971857880</id><published>2009-06-13T11:20:00.000+05:30</published><updated>2009-06-13T11:22:18.425+05:30</updated><title type='text'>What Happens When You Send Email?</title><content type='html'>You typed in your message and clicked on the Send button in your mailer. What happens next? How does email find its way to the final recipient? &lt;br /&gt;&lt;br /&gt;Outgoing SMTP Server&lt;br /&gt;Your Internet Service Provider has a special computer called mail server, which is responsible for collecting mail from their customers. When you click the send button, your computer connects to the mail server and transmits the message along with the list of recipients.&lt;br /&gt;&lt;br /&gt;The message is transmitted with Simple Mail Transfer Protocol (SMTP). SMTP is a language that your mail program uses to speak to the mail server. SMTP lets your mail program specify the list of recipients and the text of the message.&lt;br /&gt;&lt;br /&gt;The mail server that understands SMTP is frequently called Outgoing SMTP Server. &lt;br /&gt;&lt;br /&gt;Destination SMTP Server&lt;br /&gt;Your destination recipient also has an Internet Service Provider. They have a mail server too.&lt;br /&gt;&lt;br /&gt;When your SMTP server decides that it's time to send your email, it connects to the destination mail server and transmits the message to it. They use SMTP to speak to each other. Therefore the destination mail server is frequently called Destination SMTP Server.&lt;br /&gt;&lt;br /&gt;Destination SMTP server stores the email message until your recipient decides to check if some email arrived.&lt;br /&gt;&lt;br /&gt;Incoming POP3 Server&lt;br /&gt;When the recipient decides to check the email, his email program connects to the destination SMTP server and retrieves mail from the server. This time, they use Post Office Protocol Version 3 (POP3), which is a language used to receive mail. Therefore, this server is usually called Incoming POP3 Server.&lt;br /&gt;&lt;br /&gt;Destination SMTP server for you is Incoming POP3 server for your recipient. When your recipient replies, the situation reverses - now your mail server becomes a Destination SMTP server from the viewpoint of the reply sender.&lt;br /&gt;&lt;br /&gt;POP3 service is not necessary. There are other means to access mail on the destination mail server. For example, you can use Web browser to access Hotmail® or Yahoo Mail without downloading all the mail to your computer.&lt;br /&gt;&lt;br /&gt;MX Records&lt;br /&gt;One thing remains unclear. There are millions of SMTP servers all around the world. How your SMTP server knows where to send the message?&lt;br /&gt;&lt;br /&gt;This information is stored in so called MX records. MX is not an abbreviation, it doesn't mean anything. The MX record shows which destination SMTP server must be used for the specific email address. For example, the MX record for aysoft@aysoft.com points to the server called slim.aysoft.com.&lt;br /&gt;&lt;br /&gt;The database of MX records is maintained by a network called Domain Name Service (DNS). To get access to the MX records, you must have access to the DNS server and have a permission to retrieve MX records.&lt;br /&gt;&lt;br /&gt;You can look up MX records for any e-mail address with special software, such as AY Spy. &lt;br /&gt;&lt;br /&gt;Relay&lt;br /&gt;As you might have noticed, there are two SMTP servers involved in sending each message. Your outbound SMTP server is working as a relay - it accepts your message and relays it to the other server.&lt;br /&gt;&lt;br /&gt;When Internet just started, any SMTP server used to work as relays - the message used to be passed from server to server freely. As the email system got abused by spammers, fewer and fewer servers were working this way. Now all open relays are closed. The only server that will relay for you is the one given to you by your Internet Service Provider.&lt;br /&gt;&lt;br /&gt;It is also possible to bypass all relays and send email directly to the destination server. For more details see our article about direct send.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5006455826685622224-5604050256971857880?l=sujeev84.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sujeev84.blogspot.com/feeds/5604050256971857880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sujeev84.blogspot.com/2009/06/what-happens-when-you-send-email.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5006455826685622224/posts/default/5604050256971857880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5006455826685622224/posts/default/5604050256971857880'/><link rel='alternate' type='text/html' href='http://sujeev84.blogspot.com/2009/06/what-happens-when-you-send-email.html' title='What Happens When You Send Email?'/><author><name>sujeeve</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5006455826685622224.post-3871543387456912265</id><published>2009-06-12T15:00:00.000+05:30</published><updated>2009-06-12T15:02:20.632+05:30</updated><title type='text'>my e-mail sending project in java image attachment sourse code</title><content type='html'>package mailexamples;&lt;br /&gt;&lt;br /&gt;import java.io.UnsupportedEncodingException;&lt;br /&gt;import java.net.MalformedURLException;&lt;br /&gt;import java.net.URL;&lt;br /&gt;import java.util.Date;&lt;br /&gt;import java.util.Properties;&lt;br /&gt;&lt;br /&gt;import javax.activation.DataHandler;&lt;br /&gt;import javax.activation.DataSource;&lt;br /&gt;import javax.activation.FileDataSource;&lt;br /&gt;import javax.activation.URLDataSource;&lt;br /&gt;import javax.mail.Authenticator;&lt;br /&gt;import javax.mail.BodyPart;&lt;br /&gt;import javax.mail.Message;&lt;br /&gt;import javax.mail.MessagingException;&lt;br /&gt;import javax.mail.PasswordAuthentication;&lt;br /&gt;import javax.mail.Session;&lt;br /&gt;import javax.mail.Transport;&lt;br /&gt;import javax.mail.internet.AddressException;&lt;br /&gt;import javax.mail.internet.InternetAddress;&lt;br /&gt;import javax.mail.internet.MimeBodyPart;&lt;br /&gt;import javax.mail.internet.MimeMessage;&lt;br /&gt;import javax.mail.internet.MimeMultipart;&lt;br /&gt;&lt;br /&gt;public class HtmlJavaMail {&lt;br /&gt;&lt;br /&gt;    public static void main(String[] args) {&lt;br /&gt;        HtmlJavaMail mjm = new HtmlJavaMail();&lt;br /&gt;        mjm.sendMail();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public HtmlJavaMail() {}&lt;br /&gt;&lt;br /&gt;    public void sendMail() {&lt;br /&gt;        Properties props = new Properties();&lt;br /&gt;&lt;br /&gt;        props.put("mail.smtp.host", "mail.syerra.com");&lt;br /&gt;        props.put("mail.debug","true");&lt;br /&gt;        Session session = Session.getDefaultInstance(props, new ForcedAuthenticator());&lt;br /&gt;&lt;br /&gt;        Message message = new MimeMessage(session);&lt;br /&gt;&lt;br /&gt;        try {&lt;br /&gt;            message.setFrom(new InternetAddress("sujeev@theoturnermedia.com",&lt;br /&gt;                    "sujeeve"));&lt;br /&gt;&lt;br /&gt;            message.setRecipient(Message.RecipientType.TO, new InternetAddress(&lt;br /&gt;                    "kashun@theoturnermedia.com"));&lt;br /&gt;&lt;br /&gt;            message.setSubject("subject");&lt;br /&gt;&lt;br /&gt;            MimeMultipart multipart=new MimeMultipart();&lt;br /&gt;           &lt;br /&gt;            BodyPart msgBodyPart=new MimeBodyPart();&lt;br /&gt;            msgBodyPart.setContent("&lt;h1&gt;Hi! &lt;/h1&gt;&lt;img src="\" width="\" hight="\" /&gt;","text/html");&lt;br /&gt;           &lt;br /&gt;            BodyPart embedImage=new MimeBodyPart();&lt;br /&gt;            DataSource ds=new URLDataSource(new URL("http://www.theoturnermedia.com/bulkemail/cri.JPG"));&lt;br /&gt;//                      DataSource ds=new FileDataSource("C:/Documents and Settings/Anura/Desktop/New Folder (4)/opti.JPG");&lt;br /&gt;            embedImage.setDataHandler(new DataHandler(ds));&lt;br /&gt;            embedImage.setHeader("Content-ID","&lt;logo&gt;");&lt;br /&gt;                       &lt;br /&gt;//            multipart.addBodyPart(msgBodyPart);&lt;br /&gt;            multipart.addBodyPart(embedImage);&lt;br /&gt;                       &lt;br /&gt;            message.setContent(multipart);&lt;br /&gt;&lt;br /&gt;            message.setSentDate(new Date());&lt;br /&gt;&lt;br /&gt;            Transport.send(message);&lt;br /&gt;&lt;br /&gt;        } catch (AddressException e) {&lt;br /&gt;            // TODO Auto-generated catch block&lt;br /&gt;            e.printStackTrace();&lt;br /&gt;        } catch (MessagingException e) {&lt;br /&gt;            // TODO Auto-generated catch block&lt;br /&gt;            e.printStackTrace();&lt;br /&gt;        } catch (UnsupportedEncodingException e) {&lt;br /&gt;            // TODO Auto-generated catch block&lt;br /&gt;            e.printStackTrace();&lt;br /&gt;        } catch (Exception e) {&lt;br /&gt;            // TODO Auto-generated catch block&lt;br /&gt;            e.printStackTrace();&lt;br /&gt;        }&lt;br /&gt;               &lt;br /&gt;    }&lt;br /&gt;           &lt;br /&gt;    class ForcedAuthenticator extends Authenticator {&lt;br /&gt;                    public PasswordAuthentication getPasswordAuthentication() {&lt;br /&gt;                    return new PasswordAuthentication("sujeev@theoturnermedia.com","sujeev123");&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5006455826685622224-3871543387456912265?l=sujeev84.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sujeev84.blogspot.com/feeds/3871543387456912265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sujeev84.blogspot.com/2009/06/my-e-mail-sending-project-in-java-image.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5006455826685622224/posts/default/3871543387456912265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5006455826685622224/posts/default/3871543387456912265'/><link rel='alternate' type='text/html' href='http://sujeev84.blogspot.com/2009/06/my-e-mail-sending-project-in-java-image.html' title='my e-mail sending project in java image attachment sourse code'/><author><name>sujeeve</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
