Tuesday, December 27, 2011

PHP interview questions and answers

  1. What does a special set of tags <?= and ?> do in PHP? - The output is displayed directly to the browser.
  2. What’s the difference between include and require? - It’s how they handle failures. If the file is not found by require(), it will cause a fatal error and halt the execution of the script. If the file is not found by include(), a warning will be issued, but execution will continue.
  3. I am trying to assign a variable the value of 0123, but it keeps coming up with a different number, what’s the problem? - PHP Interpreter treats numbers beginning with 0 as octal.
  4. Would I use print "$a dollars" or "{$a} dollars" to print out the amount of dollars in this example? - In this example it wouldn’t matter, since the variable is all by itself, but if you were to print something like "{$a},000,000 mln dollars", then you definitely need to use the braces.
  5. How do you define a constant? - Via define() directive, like define ("MYCONSTANT", 100);
  6. How do you pass a variable by value? - Just like in C++, put an ampersand in front of it, like $a = &$b
  7. Will comparison of string "10" and integer 11 work in PHP? - Yes, internally PHP will cast everything to the integer type, so numbers 10 and 11 will be compared.
  8. When are you supposed to use endif to end the conditional statement? - When the original if was followed by : and then the code block without braces.
  9. Explain the ternary conditional operator in PHP? - Expression preceding the ? is evaluated, if it’s true, then the expression preceding the : is executed, otherwise, the expression following : is executed.
  10. How do I find out the number of parameters passed into function? - func_num_args() function returns the number of parameters passed in.
  11. If the variable $a is equal to 5 and variable $b is equal to character a, what’s the value of $$b? - 100, it’s a reference to existing variable.
  12. What’s the difference between accessing a class method via -> and via ::? - :: is allowed to access methods that can perform static operations, i.e. those, which do not require object initialization.
  13. Are objects passed by value or by reference? - Everything is passed by value.
  14. How do you call a constructor for a parent class? - parent::constructor($value)
  15. What’s the special meaning of __sleep and __wakeup? - __sleep returns the array of all the variables than need to be saved, while __wakeup retrieves them.
  16. Why doesn’t the following code print the newline properly?    <?php
                $str = ‘Hello, there.nHow are you?nThanks for visiting TechInterviews’;
                print $str;
        ?>
    Because inside the single quotes the n character is not interpreted as newline, just as a sequence of two characters - and n.
  17. Would you initialize your strings with single quotes or double quotes? - Since the data inside the single-quoted string is not parsed for variable substitution, it’s always a better idea speed-wise to initialize a string with single quotes, unless you specifically need variable substitution.
  18. How come the code <?php print "Contents: $arr[1]"; ?> works, but <?php print "Contents: $arr[1][2]"; ?> doesn’t for two-dimensional array of mine? - Any time you have an array with more than one dimension, complex parsing syntax is required. print "Contents: {$arr[1][2]}" would’ve worked.
  19. What is the difference between characters 23 and x23? - The first one is octal 23, the second is hex 23.
  20. With a heredoc syntax, do I get variable substitution inside the heredoc contents? - Yes.
  21. I want to combine two variables together:
    $var1 = 'Welcome to ';
     $var2 = 'TechInterviews.com';
    
    What will work faster? Code sample 1:
    $var 3 = $var1.$var2;
    
    Or code sample 2:

    $var3 = "$var1$var2";
    
    Both examples would provide the same result - $var3 equal to "Welcome to TechInterviews.com". However, Code Sample 1 will work significantly faster. Try it out with large sets of data (or via concatenating small sets a million times or so), and you will see that concatenation works significantly faster than variable substitution.
  22. For printing out strings, there are echo, print and printf. Explain the differences. - echo is the most primitive of them, and just outputs the contents following the construct to the screen. print is also a construct (so parentheses are optional when calling it), but it returns TRUE on successful output and FALSE if it was unable to print out the string. However, you can pass multiple parameters to echo, like:
    <?php echo 'Welcome ', 'to', ' ', 'TechInterviews!'; ?>
    and it will output the string "Welcome to TechInterviews!" print does not take multiple parameters. It is also generally argued that echo is faster, but usually the speed advantage is negligible, and might not be there for future versions of PHP. printf  is a function, not a construct, and allows such advantages as formatted output, but it’s the slowest way to print out data out of echo, print and printf.
  23. I am writing an application in PHP that outputs a printable version of driving directions. It contains some long sentences, and I am a neat freak, and would like to make sure that no line exceeds 50 characters. How do I accomplish that with PHP? - On large strings that need to be formatted according to some length specifications, use wordwrap() or chunk_split().
  24. What’s the output of the ucwords function in this example?
    $formatted = ucwords("TECHINTERVIEWS IS COLLECTION OF INTERVIEW QUESTIONS");
     print $formatted;
    What will be printed is TECHINTERVIEWS IS COLLECTION OF INTERVIEW QUESTIONS.
    ucwords() makes every first letter of every word capital, but it does not lower-case anything else. To avoid this, and get a properly formatted string, it’s worth using strtolower() first.
  25. What’s the difference between htmlentities() and htmlspecialchars()? - htmlspecialchars only takes care of <, >, single quote ‘, double quote " and ampersand. htmlentities translates all occurrences of character sequences that have different meaning in HTML.
  26. What’s the difference between md5(), crc32() and sha1() crypto on PHP? - The major difference is the length of the hash generated. CRC32 is, evidently, 32 bits, while sha1() returns a 128 bit value, and md5() returns a 160 bit value. This is important when avoiding collisions.
  27. So if md5() generates the most secure hash, why would you ever use the less secure crc32() and sha1()? - Crypto usage in PHP is simple, but that doesn’t mean it’s free. First off, depending on the data that you’re encrypting, you might have reasons to store a 32-bit value in the database instead of the 160-bit value to save on space. Second, the more secure the crypto is, the longer is the computation time to deliver the hash value. A high volume site might be significantly slowed down, if frequent md5() generation is required.

Monday, November 21, 2011

HTTP Status Code

Whenever you visit a web page, your computer will request data from a server through HTTP. Even before the requested page is displayed in your browser, the web server will send the HTTP header that has the status code. The status code provides information about the status of the request. A normal web page gets the status code as 200. But we do not see this as the server proceeds to send the contents of the page. It’s only when there is an error, we see the status code 404 Not Found.

Origin of Status Codes

As a part of the HTTP 0.9 specifications, the World Wide Web Consortium (W3C) established HTTP status codes in 1992. Tim Berners-Lee, who invented the web and the first web browser in 1990, defined the status codes.

List of Status Codes

A brief overview of HTTP status codes is given below.
Code
Meaning
Description
100
Continue
Confirms the client about the arrival of the first part of the request and informs to continue with the rest of the request or ignore if the request has been fulfilled
101
Switching Protocols
Informs the client about the server switching the protocols to that specified in the Upgrade message header field during the current connection.
200
OK
Standard response for successful requests
201
Created
Request fulfilled and new resource created
202
Accepted
Request accepted, but not yet processed
203
Non-Authoritative Information
Returned meta information was not the definitive set from the origin server.
204
No Content
Request succeeded without requiring the return of an entity-body
205
Reset Content
Request succeeded but require resetting of the document view that caused the request
206
Partial Content
Partial GET request was successful
300
Multiple Choices
Requested resource has multiple choices at different locations.
301
Moved Permanently
Resource permanently moved to a different URL.
302
Found
Requested resource was found under a different URL but the client should continue to use the original URL.
303
See Other
Requested response is at a different URL and can be accessed only through a GET command.
304
Not Modified
Resource not modified since the last request.
305
Use Proxy
Requested resource should be accessed through the proxy specified in the location field.
306
No Longer Used
Reserved for future use
307
Temporary Redirect
Resource has been moved temporarily to a different URL.
400
Bad Request
Syntax of the request not understood by the server.
401
Not Authorized
Request requires user authentication
402
Payment Required
Reserved for future use.
403
Forbidden
Server refuses to fulfill the request.
404
Not Found
Document or file requested by the client was not found.
405
Method Not Allowed
Method specified in the Request-Line was not allowed for the specified resource.
406
Not Acceptable
Resource requested generates response entities that has content characteristics not specified in the accept headers.
407
Proxy Authentication Required
Request requires the authentication with the proxy.
408
Request Timeout
Client fails to send a request in the time allowed by the server.
409
Conflict
Request was unsuccessful due to a conflict in the state of the resource.
410
Gone
Resource requested is no longer available with no forwarding address
411
Length Required
Server doesn’t accept the request without a valid Content-Length header field.
412
Precondition Failed
Precondition specified in the Request-Header field returns false.
413
Request Entity Too Large
Request unsuccessful as the request entity is larger than that allowed by the server
414
Request URL Too Long
Request unsuccessful as the URL specified is longer than the one, the server is willing to process.
415
Unsupported Media Type
Request unsuccessful as the entity of the request is in a format not supported by the requested resource
416
Requested Range Not Satisfiable
Request included a Range request-header field without any range-specifier value
417
Expectation Failed
Expectation given in the Expect request-header was not fulfilled by the server.
422
Unprocessable Entity
Request well-formed but unable to process because of semantic errors
423
Locked
Resource accessed was locked
424
Failed Dependency
Request failed because of the failure of a previous request
426
Upgrade Required
Client should switch to Transport Layer Security
500
Internal Server Error
Request unsuccessful because of an unexpected condition encountered by the server.
501
Not Implemented
Request unsuccessful as the server could not support the functionality needed to fulfill the request.
502
Bad Gateway
Server received an invalid response from the upstream server while trying to fulfill the request.
503
Service Unavailable
Request unsuccessful to the server being down or overloaded.
504
Gateway Timeout
Upstream server failed to send a request in the time allowed by the server.
505
HTTP Version Not Supported
Server does not support the HTTP version specified in the request.

Meaning of 404

When we expand the code 404, the first digit “4” represents a client error. The server indicates that you did a mistake like misspelling the URL or requesting for a page that is no longer available.
The middle digit, 0 represents a general syntax error and could indicate a spelling mistake.
The last digit, 4 refers to a specific error in the group of 40x.
The World Wide Web Consortium (W3C) states that 404 Not Found should be used in cases where the server fails to find the requested location and is unsure of its status. Whenever a page has been permanently removed, the status code used must be 410. But hardly have we seen a 410 page. Instead, 404 Not Found page has become popular and the most commonly used error page.

Content of a 404 Error Page

A 404 response code is always followed by a human readable reason phrase as per the HTTP specification. Generally, a web server issues an HTML page that has the 404 code and the “Not Found” phrase by default. You can configure a web server to display a branded page with a better description and a search form. But the protocol level phrase requires no customization as it is hidden from the user.

Soft 404s

Soft 404 errors are actually “Not Found” errors returned by a web server as a standard web page with a 200 Ok response code. In an automated process of discovering a broken link, the soft 404 errors are problematic.
The BT Group of UK has a clean feed content blocking system that returns a 404 error to the requests for content identified as illegal by the Internet Watch Foundation. Even when the user tries to access the Government censored websites, a fake 404 error will be returned.

404 Error Percentages

A sample web trends’ summary report by ARCHIVI shows the client error details for 404 Page.
Error
Hits
% of Failed Hits
000 Incomplete / Undefined
29,164
69.62%
404 Page or File Not Found
12,651
30.2%
400 Bad Request
57
0.13%
18745 Incomplete / Undefined
5
0.01%
18747 Incomplete / Undefined
4
0%
401 Unauthorized Access
4
0%
Total
41,885
100%

Although the web statistics generally vary from month to month, based on the strategy used to eliminate 404 errors, and how active the website is, the percentage of 404 errors varies. Most active websites that have frequently changed or added content generally experience a higher number of Page Not Found errors. But there are many large and busy sites that achieve zero percent 404 errors over a period. On an average, around 7% of visits to any given web site will result in a 404 error page.

Tracking and Preventing 404 Errors

  • Log Files - Web Server log files help in tracking the 404 errors. These standard log files are just ASCII text files that have each HTTP protocol transaction, whether completed or not, recorded in them. Most of the HTTP errors are recorded in the transfer log and the error log files. If you have access to the log files of your website, you can observe the HTTP status code field. This field gives you an idea about the occurrence of 404 errors, their frequencies, consistencies, and also the referred document that led to the errors. Also find out the existence of any broken link on your site and the misspelled URL that led to the error. When you know all these information, you can easily correct the link and prevent 404 errors on your website.
  • Redirects – If you find a page that is consistently getting a 404 error, you can create a redirect page using the .htaccess file that automatically takes the users from an older page to its newer replacement. You can use Permanent and Temporary Redirects to "catch" old referrals from other sites and send the visitors to their intended information.
  • Robots File - If you have a section of your site with pages that are frequently changed, you can block the search engines from indexing them in their databases using robots.txt file so that you can prevent 404 errors.


Friday, October 21, 2011

Zend Launches PHP Development Cloud / Adobe Flash exploit allows websites to access your webcam without permission

Zend Launches PHP Development CloudPHP developers, the world's fourth-largest developer group, now have an option enjoyed by other leading languages: they can collaborate on new software in the cloud, then deploy it to the cloud.Microsoft illustrated the value of software development in the cloud when it made Visual Studio tools available for collaborative use on Windows Azure. Popular platforms as a service Heroku and Engine Yard did the same..

Adobe Flash exploit allows websites to access your webcam without permission
Your webcam can be a powerful tool for communicating with loved ones or even having a conversation with a world-famous luminary. But when that power is put into someone else's hands, it can have ..

Oracle India to recruit 3,500 employees by May 2012
Oracle India has the highest number of employees outside of its Redwood Shores headquarters in California. To add to the already existing huge manpower base in India, Oracle today announced an aggress..

Tata Teleservices ties up with NEC to backhaul mobile broadband traffic
NEC Corporation has inked an agreement with Tata Teleservices Limited (TTL) to deploy NEC’s iPASOLINK platform for the transformation of TTL’s backhaul mobile transport network. The iPASOL..

BranchOut Adds Tools To Let Recruiters Go Trolling on Facebook
RecruiterConnect is the first software product for businesses ever built on top of Facebook.  Finding the right candidates to fill open positions is a perennial recruiting problem. LinkedIn ..

New Version of Gmail Coming Soon
A new version of Gmail featuring a revamped look, redesigned conversation threads and improved search is slated for pending released, according to an official video that was mistakenly posted to Googl..

DoT hangs up on 11-digit plan
The proposal to move to 11-digit mobile numbers has been shelved for good. The telecom department has accepted the short-term solution from Telecom Regulatory Authority of India (Trai) to create addit..

NaapTol Raises $25 mn from NEA, Canaan and SVB; to invest in hiring and supply chain
NaapTol Online Shopping Pvt Ltd, which operates shopping site NaapTol.com, has raised $25 million (Rs 123 crore) in an all cash deal, led by New Enterprise Associates (NEA). Earlier inv..

Amazon Throws A Minor Curveball With HTML5-Powered Kindle Format 8
Amazon has announced an update to the Kindle file format integrating many HTML5 tags and CSS attributes. Many expected a concession by Amazon in the form of an EPUB-compatible upgrade, and this comes ..

SoundCloud and Last.fm APIs Mashed Up into New Music Discovery App
A music discovery app for iOS that went live recently shows just what's possible when digital music services open up their libraries and functionality via powerful APIs. Twist Radio&nbs..

BlackBerry maker accused of infringing BBX trademark
BBX, the operating system thatResearch In Motion is counting on to revive its floundering BlackBerry franchise, has run into trouble even before the company could install the system in its smartp..

Clouds Vs. Outsourcing: The Next Battleground
IBM, HP, and other established vendors entering cloud computing are often already outsourcing partners to the firms that are now frequently looking for an infrastructure service provider. 

Sunday, August 28, 2011

Informatics Assistant (Suchna Sahayak) IA Exam 2011 Answer Key

The Answer Key Of Informatics Assistant (Suchna Sahayak) Will Be Available .The Answer Key Of IA Exam 2011 Declare By DOIT&C Department.DOIT&C Department Conduct This Exam.


Answer Key Of Series A:

1B 2B 3C 4D 5C 6B 7D 8B 9D 10D 11B 12C 13A 14D 15A 16C 17B 18B 19B 20A
21B 22B 23C 24D 25B 26A 27C 28C 29C 30D 31A 32C 33C 34A 35A 36B 37B 38B 39D 40C
41D 42A 43D 44D 45B 46B 47A 48C 49D 50D 51B 52C 53B 54B 55D 56B 57A 58D 59B 60B
61A 62C 63C 64A 65D 66B 67C 68 69B 70B 71D 72C 73A 74D 75D 76A 77C 78D 79B 80D
81C 82C 83C 84A 85B 86C 87A 88A 89D 90B 91D 92A 93B 94D 95A 96B 97A 98A 99A 100D


Answer Key Of Series B:
1B 2C 3B 4B 5C 6D 7B 8A 9C 10C 11C 12D 13B 14B 15C 16D 17C 18B 19D 20B 21D 22D 23B 24C 25D 26D 27A 28C 29B 30B 31D 32D 33A 34C 35D 36B 37D 38C 39B 40C 41B 42B 43C 44A 45A 46C 47AorC 48C 49A 50B 51D 52A 53B 54A 55A 56A 57A 58A 59C 60B 61A 62A 63B 64B 65B 66C 67C 68D 69A 70D 71D 72B 73B 74A 75C 76D 77D 78B 79C 80B 81B 82D 83B 84A 85D 86B 87D 88A 89C 90C 91A 92CorD 93B 94C 95C 96B 97A 98D 99C 100A.


Answer Key Of Series C:
1D 2B 3A 4D 5B 6C 7A 8D 9A 10C 11B 12B 13B 14C 15B 16B 17C 18D 19B 20A 21C 22C 23C 24D 25B 26B 27C 28D 29C 30B 31A 32C 33A 34D 35B 36C 37B 38B 39D 40B 41A 42D 43B 44D 45A 46C 47C 48A 49B 50B 51C 52A 53B 54D 55D 56C 57A 58D 59D 60A 62C 63B 64D 65C 66D 67C 68A 69B 70C 71A 72A 73D 74A 75A 76A 77B 78D 79A 80B 81A 82A 83A 84D 85A 86C 88A 89A 90B 91B 92B 93C 94C 95D 96A 97D 98D 100a



plz Suggest, if u see any mistake that happen.I will update the key

Information Assistant (Suchna Sahayak) Exam 2011 (Rajasthan)

The Exam Was Conduct At 10am To 1pm At Many Centers.The Admit Card Of Informatics Assistant (Suchna Sahayak) Exam Is Available At http://oasis.rkcl.in/doitc. This Is The Official Website Of IA Exam.



Tuesday, August 23, 2011

n level category Array Solutions


function categoryChild($id) {
$s = “SELECT id,title FROM category WHERE  parentid=”.$id;
$r = mysql_query($s);
$children = array();
if(mysql_num_rows($r) > 0) {
# It has children, let’s get them.
while($row = mysql_fetch_array($r)) {
# Add the child to the list of children, and get its subchildren
$children[$row['id']] = categoryChild($row['id']);
}
}
return $children;
}
$array_to_save = categoryChild(’12′);
$output = ”;
$level  = ’0′;
/*
*  Call the function to print array to file
*/
$newoutput =  mulitidimentionalArrayToFile($array_to_save,$output,$level);
function mulitidimentionalArrayToFile($multiarray,&$output,$level,$key = ”,$type=’0′){
/* Check if main array or a sub array and assign “Array” to output */
if($type==’1′){
//$output .= getTabs($level);
$output .= “$key,”;
}else{
$output .= “”;
}
foreach($multiarray as $key=>$value){
/* If value is another sub array continue traversing through sub array*/
if(is_array($value)){
mulitidimentionalArrayToFile($value,$output,$level+1,$key,”1″);
}
}
return $output;
}
echo $newoutput;
echo “<br />”;
$s = $newoutput;
$s = substr($s, 0, -1);
echo $s;
result like this -> main category = 12 and below are child category
14,19,17,
15,20,18,
16,21,22

jQuery Checkbox


<!DOCTYPE html>
<html>
<head>
<style>
div { color:red; }
</style>
<!–<script src=”http://code.jquery.com/jquery-latest.js”></script>–>
<script src=”jquery-latest.js”></script>
</head>
<body>
<span id=”total”>pawan</span>
<form>
<input type=”checkbox” name=”newsletter[]” value=”Hourly” />
<input type=”checkbox” name=”newsletter[]” value=”Daily” />
<input type=”checkbox” name=”newsletter[]” value=”Weekly” />
<input type=”checkbox” name=”newsletter[]” value=”Monthly” />
<input type=”checkbox” name=”newsletter[]” value=”Yearly” />
</form>
<div></div>
<script>
function countChecked() {
var n = $(“input:checked”).length;
$(“#total”).text(n);
//$(“div”).text(n + (n <= 1 ? ” is” : ” are”) + ” checked!”);
}
countChecked();
$(“:checkbox”).click(countChecked);
</script>
</body>
</html>

get Country from IP in PHP


<?php
function countryCityFromIP($ipAddr)
{
//function to find country and city name from IP address
//Developed by Roshan Bhattarai
//Visit http://roshanbh.com.np for this script and more.
//verify the IP address for the
ip2long($ipAddr)== -1 || ip2long($ipAddr) === false ? trigger_error(“Invalid IP”, E_USER_ERROR) : “”;
// This notice MUST stay intact for legal use
$ipDetail=array(); //initialize a blank array
//get the XML result from hostip.info
$xml = file_get_contents(“http://api.hostip.info/?ip=”.$ipAddr);
//get the city name inside the node <gml:name> and </gml:name>
preg_match(“@<Hostip>(\s)*<gml:name>(.*?)</gml:name>@si”,$xml,$match);
//assing the city name to the array
$ipDetail['city']=$match[2];
//get the country name inside the node <countryName> and </countryName>
preg_match(“@<countryName>(.*?)</countryName>@si”,$xml,$matches);
//assign the country name to the $ipDetail array
$ipDetail['country']=$matches[1];
//get the country name inside the node <countryName> and </countryName>
preg_match(“@<countryAbbrev>(.*?)</countryAbbrev>@si”,$xml,$cc_match);
$ipDetail['country_code']=$cc_match[1]; //assing the country code to array
//return the array containing city, country and country code
return $ipDetail;
}
$ip = $_SERVER['REMOTE_ADDR'];
$outip = “122.173.29.180″;
$IPDetail=countryCityFromIP(’122.173.29.180′);
echo $IPDetail['country']; //country of that IP address
echo $IPDetail['city']; //outputs the IP detail of the city
?>

Wednesday, August 17, 2011

ICANN Domain Plan: Brands Headed for Disaster?

IAB Speaks Out Against Domain Name Expansion

The Interactive Advertising Bureau (IAB) is speaking out against ICANN's decision to open the domain name floodgates by lifting restrictions on generic top-level domains.
Are the new domains a good idea? Tell us what you think.

ICANN is to start accepting applications for new gTLDs on January 12, 2012. The application period will run until April. They're expected to roll out late next year.

The IAB, however, is calling on ICANN to withdraw this plan, saying it will cause "incalculable financial damage to brand owners, including the hundreds of media brands in its membership."

The plan would allow brands to apply for domains that end in their name. Like ".webpronews" or ".pepsi" and so on. However, it would also open the door for cyber squatting, according to the IAB, as well as include what the organization calls "exorbitant fees for web publishers and brand marketers."

The plan, the IAB says, would "come at an extremely high cost to publishers and advertisers, and would also offer 'cyber squatters' an opportunity to harm a brand's integrity and/or profit greatly from their bad-faith domain registrations."

IAB President and CEO Randall Rothenberg said, "ICANN's potentially momentous change seems to have been made in a top-down star chamber. There appears to have been no economic impact research, no full and open stakeholder discussions, and little concern for the delicate balance of the Internet ecosystem. This could be disastrous for the media brand owners we represent and the brand owners with which they work. We hope that ICANN will reconsider both this ill-considered decision and the process by which it was reached."

The IAB's words follow a similar campaign from the Association of National Advertisers (ANA). Earlier this month, ANA President and CEO Robert Liodice published a letter to ICANN President Rod Beckstrom outlining the organization's concerns. In the letter, he says the plan is economically unsupportable, and likely to cause irreparable harm and damage."

The ANA is made up up over 400 companies, which represent over 10,000 brands.

"At the same time, the Program contravenes the legal rights of brand owners and jeopardizes the safety of consumers," the letter continued. "By introducing confusion into the marketplace and increasing the likelihood of cybersquatting and other malicious conduct, the Program diminishes the power of trademarks to serve as strong, accurate and reliable symbols of source and quality in the marketplace. Brand confusion, dilution, and other abuse also poses risks of cyber predator harms, consumer privacy violations, identity theft, and cyber security breaches. The decision to go forward with the Program also clearly violates sound public policy and constitutes a breach of ICANN's own Code of Conduct and its undertakings with the United States Department of Commerce as most recently embodied in the Affirmation of Commitments."

You can read it in its entirety here. Its a 9-page document.

Are these concerns overblown? 

Sean Callahan at BtoB quotes Forrester Research analyst Jeff Ernst as saying, "It is too early to tell how big the malicious threat is. $185,000 is a lot of money to spend for a cybersquatter compared to a $10 dot-com domain name at GoDaddy."

Beckstrom responded to Liodice's letter, saying, "The June 2011 decision to proceed with the program followed six years of inclusive policy development and implementation planning," and "One clear directive of the consensus policy advice on which the program is built is that TLDs should not infringe the existing legal rights of others. The objection process and other safeguards eliminate the need for 'defensive' gTLD applications because, where an infringement of legal rights can be established using these processes, an application will not be approved."

Liodice responded to the response, saying, "We are not surprised by ICANN's response although disappointed that ICANN chose to defend its process and deny any doubt as to consensus. Rather, ICANN needs to respond to the real concern from the brand owner community. There is no question that this Program will increase brand owners' costs by billions of dollars. We should not be debating if 40 or 45 comment periods were held; instead, ICANN should be justifying its economic analysis regarding the Program against the staggering costs to brands. ANA welcomes further discussions and an opportunity for further economic study to quantify the need for more TLDs and what it will mean for industry and other stakeholders, such as the public interest community who will face the same brand dilution concerns."

ANA's General Counsel Doug Wood of Reed Smith LLP added, "Now is not the time for either side to 'dig in its heels' much less defend the process, especially in a depressed economy. ANA has raised real concerns regarding economic losses, brand dilution and resultant privacy / cyber-security harms. In light of our shared goals of a safe and stable global Internet, ICANN should return to the negotiating table and work with all concerned parties, including the ANA and its members, to resolve brand owners' legitimate concerns in a manner consistent with ICANN's consensus obligations."