<?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-27521655</id><updated>2011-12-14T18:57:02.993-08:00</updated><category term='Php Vulnerability'/><title type='text'>Techno WeBlog</title><subtitle type='html'>blogging about tech, the tech, and everything tech, for techno addicts!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>29</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-27521655.post-6707920733531386523</id><published>2008-07-28T23:40:00.000-07:00</published><updated>2008-07-28T23:42:19.037-07:00</updated><title type='text'>Passing multiple Arguments to a JavaScript Function at Runtime</title><content type='html'>&lt;p&gt;Today I came across with a scenario in Javascript functions that the number of parameters would change in the runtime. When I searched in google I found that, In JavaScript we can pass any number of parameter and get these parameter at run time.&lt;/p&gt; JavaScript functions have a special property called arguments.... &lt;a style="font-weight: bold;" href="http://blog.codlib.com/2008/07/28/passing-multiple-arguments-to-a-javascript-function-at-runtime/"&gt;Read More&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27521655-6707920733531386523?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.codlib.com/2008/07/28/passing-multiple-arguments-to-a-javascript-function-at-runtime/' title='Passing multiple Arguments to a JavaScript Function at Runtime'/><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/6707920733531386523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=6707920733531386523' title='36 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/6707920733531386523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/6707920733531386523'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2008/07/passing-multiple-arguments-to.html' title='Passing multiple Arguments to a JavaScript Function at Runtime'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><thr:total>36</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27521655.post-1139989282913097651</id><published>2008-06-25T02:56:00.000-07:00</published><updated>2008-06-25T03:00:05.120-07:00</updated><title type='text'>PHP Header Location - Page Not found Error.</title><content type='html'>&lt;p&gt;Recently I faced a weird issue with the PHP header location function. I had a line of code in my file like,&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;Code: header(’location:mypage.php’);&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;In firefox/geeko browsers it is working fine. but in IE when it tries to redirect the page it is showing a “page not found error”. I am pretty sure that the page is exist in my server and I checked the spelling and case also. everything is fine. following is the header call i am using. I searched in google and asked few of my friends. Also I&lt;br /&gt;found lots of post related to this in forums and all. But didn’t see a good solution anywhere. Finally, from the Php header manual page itself, I got the solution... &lt;a href="http://blog.codlib.com/2008/06/25/php-header-location-page-not-found-error/"&gt;Read More&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27521655-1139989282913097651?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.codlib.com/2008/06/25/php-header-location-page-not-found-error/' title='PHP Header Location - Page Not found Error.'/><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/1139989282913097651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=1139989282913097651' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/1139989282913097651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/1139989282913097651'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2008/06/php-header-location-page-not-found.html' title='PHP Header Location - Page Not found Error.'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27521655.post-3204529525901558931</id><published>2008-02-19T04:50:00.000-08:00</published><updated>2008-02-19T04:52:31.155-08:00</updated><title type='text'>Download Acer Laptop !!!!</title><content type='html'>&lt;p&gt;Now you can download an Acer Laptop…………&lt;/p&gt; &lt;p&gt;Unbelievable?  See the Google Ads  Link………….&lt;/p&gt;&lt;a href="http://blog.codlib.com/2008/02/19/download-acer-laptop/"&gt;Click here to see the picture.......&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27521655-3204529525901558931?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.codlib.com/2008/02/19/download-acer-laptop/' title='Download Acer Laptop !!!!'/><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/3204529525901558931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=3204529525901558931' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/3204529525901558931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/3204529525901558931'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2008/02/download-acer-laptop.html' title='Download Acer Laptop !!!!'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27521655.post-8897382034634726789</id><published>2008-01-30T02:10:00.000-08:00</published><updated>2008-01-30T02:11:40.830-08:00</updated><title type='text'>Second Kerala BarCamp - In Cochin</title><content type='html'>&lt;p&gt;Following the success of the first barcamp in Kerala (It was held at Techno Park, Trivandrum), the second one is going to take place in kerala. This time it will be at Cochin.&lt;/p&gt;Where         : DOE Hall, CUSAT, Cochin&lt;br /&gt;When          : 3rd of February 2008.&lt;br /&gt;Route Map : &lt;a href="http://maps.google.com/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=doe,+cusat,+Cochin&amp;amp;sll=9.927708,76.266918&amp;amp;sspn=0.462632,0.637207&amp;amp;ie=UTF8&amp;amp;ei=4QagR9CEDoqeqwKg8InMCg&amp;amp;sig2=VJvuaocDMEytN12cWaJQjQ&amp;amp;cd=1&amp;amp;cid=10045292,76325284,501736308347094565&amp;amp;li=lmd&amp;amp;z=17&amp;amp;t=m" target="_blank"&gt;click Here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.codlib.com/2008/01/29/second-kerala-barcamp-in-cochin/"&gt;Read More......&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27521655-8897382034634726789?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.codlib.com/2008/01/29/second-kerala-barcamp-in-cochin/' title='Second Kerala BarCamp - In Cochin'/><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/8897382034634726789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=8897382034634726789' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/8897382034634726789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/8897382034634726789'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2008/01/second-kerala-barcamp-in-cochin.html' title='Second Kerala BarCamp - In Cochin'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27521655.post-4430863931844830714</id><published>2008-01-03T19:32:00.000-08:00</published><updated>2008-01-03T19:33:45.335-08:00</updated><title type='text'>How to surf the web even if web browsers are disabled</title><content type='html'>Ever find yourself sitting in front of a computer that's been locked down by an IT administrator who won't let you install any software or even open Internet Explorer or Firefox? If that PC is running Windows XP, there's a good chance you can still visit your favourite sites... &lt;a href="http://blog.codlib.com/2008/01/03/how-to-surf-the-web-even-if-web-browsers-are-disabled/"&gt;click here to read more&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27521655-4430863931844830714?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.codlib.com/2008/01/03/how-to-surf-the-web-even-if-web-browsers-are-disabled/' title='How to surf the web even if web browsers are disabled'/><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/4430863931844830714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=4430863931844830714' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/4430863931844830714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/4430863931844830714'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2008/01/how-to-surf-web-even-if-web-browsers.html' title='How to surf the web even if web browsers are disabled'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27521655.post-6552090510639557762</id><published>2007-12-16T22:29:00.000-08:00</published><updated>2007-12-16T22:30:37.001-08:00</updated><title type='text'>Preventing Double Payments</title><content type='html'>One of the problems in e-commerce is how to protect the user from making mistakes. It’s even more critical when your protection target is on-line payments. Usually, you need to send a request to a credit authorization system, get back a transaction number, and only then charge the user’s bank account. A common scenario is that the credit authorization number is late to come back, the user becomes anxious, and he or she presses the Charge My Account button again... &lt;a href="http://blog.codlib.com/2007/12/16/preventing-double-payments/"&gt;Read More..&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27521655-6552090510639557762?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.codlib.com/2007/12/16/preventing-double-payments/' title='Preventing Double Payments'/><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/6552090510639557762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=6552090510639557762' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/6552090510639557762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/6552090510639557762'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2007/12/preventing-double-payments.html' title='Preventing Double Payments'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27521655.post-5246350462654622977</id><published>2007-12-09T22:52:00.000-08:00</published><updated>2007-12-09T22:55:43.595-08:00</updated><title type='text'>Why avoiding tables for layout is important</title><content type='html'>&lt;ol&gt;&lt;li&gt;Tables are slow&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Tables can be inflexible&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Accessibility issues are easier with CSS&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Tables don’t degrade&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Tables don’t print as well&lt;/li&gt;&lt;/ol&gt;&lt;a href="http://blog.codlib.com/2007/12/09/why-avoiding-tables-for-layout-is-important/"&gt;To read ead the complete article click here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27521655-5246350462654622977?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.codlib.com/2007/12/09/why-avoiding-tables-for-layout-is-important/' title='Why avoiding tables for layout is important'/><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/5246350462654622977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=5246350462654622977' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/5246350462654622977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/5246350462654622977'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2007/12/why-avoiding-tables-for-layout-is.html' title='Why avoiding tables for layout is important'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27521655.post-8675738391424668280</id><published>2007-12-05T00:42:00.000-08:00</published><updated>2007-12-05T00:43:24.684-08:00</updated><title type='text'>Gmail + Talk + ICQ + AIM + ?</title><content type='html'>&lt;p&gt;You can now log onto your AIM account through gmail and chat with your aim friends!  How great is that?! &lt;/p&gt; This will enable you to sign into your AIM account and chat with your AIM buddies right inside Gmail... &lt;a href="http://blog.codlib.com/2007/12/05/gmail-talk-icq-aim/"&gt;Read More...&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27521655-8675738391424668280?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.codlib.com/2007/12/05/gmail-talk-icq-aim/' title='Gmail + Talk + ICQ + AIM + ?'/><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/8675738391424668280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=8675738391424668280' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/8675738391424668280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/8675738391424668280'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2007/12/gmail-talk-icq-aim.html' title='Gmail + Talk + ICQ + AIM + ?'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27521655.post-5696873744530169475</id><published>2007-11-29T00:30:00.000-08:00</published><updated>2007-11-29T00:32:39.629-08:00</updated><title type='text'>Song about MVC…..Yeah, yeah, yeah</title><content type='html'>Model-view-controller (MVC) is an architectural pattern used in software engineering. In complex computer applications that present a large amount of data to the user, a developer often wishes to separate data (model) and user interface (view) concerns, so that changes to the user interface will not affect data handling, and that the data can be reorganized without changing the user interface.&lt;br /&gt;&lt;a href="http://blog.codlib.com/2007/11/29/song-about-mvcyeah-yeah-yeah/"&gt;&lt;br /&gt;Click here to read a poem to understand the MVC concept easily.... Cool....&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.codlib.com/2007/11/29/song-about-mvcyeah-yeah-yeah/"&gt; &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27521655-5696873744530169475?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.codlib.com/2007/11/29/song-about-mvcyeah-yeah-yeah/' title='Song about MVC…..Yeah, yeah, yeah'/><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/5696873744530169475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=5696873744530169475' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/5696873744530169475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/5696873744530169475'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2007/11/song-about-mvcyeah-yeah-yeah.html' title='Song about MVC…..Yeah, yeah, yeah'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27521655.post-4396170097661172747</id><published>2007-11-26T02:59:00.000-08:00</published><updated>2007-11-26T03:00:46.139-08:00</updated><title type='text'>window.open() Method’s Return Value</title><content type='html'>To handle references to a window properly, you should always assign the result of a window.open() call to a variable. A call to the window.open() method returns a value of the new window’s object if the window opens successfully, or null if it fails (due to low memory, for example). This value is vitally important if your script needs to address elements of that new window. After the new window is open, however, no parent-child relationship exists between the windows.... &lt;a href="http://blog.codlib.com/2007/11/26/windowopen-methods-return-value/"&gt;Read More&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27521655-4396170097661172747?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.codlib.com/2007/11/26/windowopen-methods-return-value/' title='window.open() Method’s Return Value'/><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/4396170097661172747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=4396170097661172747' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/4396170097661172747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/4396170097661172747'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2007/11/windowopen-methods-return-value.html' title='window.open() Method’s Return Value'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27521655.post-7069904867974207957</id><published>2007-11-22T22:30:00.000-08:00</published><updated>2007-11-22T22:33:14.056-08:00</updated><title type='text'>Reveal The Contents of Password Fields</title><content type='html'>&lt;p&gt;If you chose the “Remember” option for logins in webpages, you can reveal it easily. It doesn’t require any software to reveal hidden passwords under asterisks and don’t need to waste your time in cracking master password.... &lt;a href="http://blog.codlib.com/2007/11/22/reveal-the-contents-of-password-fields/"&gt;Read the article here&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27521655-7069904867974207957?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.codlib.com/2007/11/22/reveal-the-contents-of-password-fields/' title='Reveal The Contents of Password Fields'/><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/7069904867974207957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=7069904867974207957' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/7069904867974207957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/7069904867974207957'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2007/11/reveal-contents-of-password-fields.html' title='Reveal The Contents of Password Fields'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27521655.post-1853277125670076113</id><published>2007-11-20T03:41:00.000-08:00</published><updated>2007-11-20T03:42:40.128-08:00</updated><title type='text'>Body Background Color</title><content type='html'>&lt;p&gt;Avoid the usage of &lt;em&gt;document.bgColor&lt;/em&gt;. Use &lt;em&gt;document.body.style.backgroundColor&lt;/em&gt; instead.And one more thing, I don’t know how many of us are aware about this [ even me too till today &lt;img src="http://blog.codlib.com/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /&gt; ]………………&lt;/p&gt; &lt;p&gt;the following three references are equivalent.&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;document.body.style.backgroundColor&lt;br /&gt;document.body.style[’backgroundColor’]&lt;br /&gt;document[’body’][’style’][’backgroundColor’]&lt;/p&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27521655-1853277125670076113?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.codlib.com/2007/11/20/body-background-color/' title='Body Background Color'/><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/1853277125670076113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=1853277125670076113' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/1853277125670076113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/1853277125670076113'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2007/11/body-background-color.html' title='Body Background Color'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27521655.post-4962816607364952730</id><published>2007-11-15T20:40:00.000-08:00</published><updated>2007-11-15T20:41:56.191-08:00</updated><title type='text'>Need for speed : CSS Compression</title><content type='html'>&lt;p&gt;A powerful advantage of using PHP is that you can compress your files so that they take up less room on your server. There are multiple ways of achieving this, one method is as follows:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;&lt;?php&lt;br /&gt;ob_start(”ob_gzhandler”);&lt;br /&gt;?&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Just add that to the very beginning of main.php or global.php or whatever. Right now the file may be very small anyway, but in a real-world situation it would contain much more code. You’ll soon see the speed benefits of this simple file compression method.&lt;/p&gt; &lt;p&gt;You can import your CSS as a PHP file. This offers you a range of options for creating CSS on the fly using arrays and variables and means you can compress your style rules too. Just add this PHP header to the beginning of your CSS:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;&lt;?php&lt;br /&gt;ob_start (”ob_gzhandler”);&lt;br /&gt;header(”Content-type: text/css”);&lt;br /&gt;header(”Cache-Control: must-revalidate”);&lt;br /&gt;$offset = 60 * 60 ;&lt;br /&gt;$ExpStr = “Expires: ” .&lt;br /&gt;gmdate(”D, d M Y H:i:s”,&lt;br /&gt;time() + $offset) . ” GMT”;&lt;br /&gt;header($ExpStr);&lt;br /&gt;?&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Remember to save your CSS file with the PHP extension and import it properly.You can do this as follows……..&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt; @import url(mycss.php);&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;The above method, though not as clean, it is just as effective. All you need to do is place the PHP snippet from above into the top of your CSS document. Then, rename your CSS file with a ‘php’ extension, and then refer to that file when linking your css file. Thats all….&lt;/p&gt; &lt;p&gt;&lt;strong&gt; Alternative Method&lt;/strong&gt;&lt;br /&gt;=================&lt;br /&gt;The following method is cleaner and more elegant, as it does not require the addition of any extra code to your CSS file, nor do you have to change the extension of the file. Clean and simple.&lt;/p&gt; &lt;p&gt;Two steps are necessary to implement this method.&lt;/p&gt; &lt;p&gt;Step one:&lt;br /&gt;First, you want to save the snippet provided above in a file called ‘gzip-css.php’ to the directory that contains your CSS files.&lt;/p&gt; &lt;p&gt;Step two:&lt;br /&gt;Here, simply add the following to an .htaccess file and save the file to the same directory as your CSS files:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;AddHandler application/x-httpd-php .css&lt;br /&gt;php_value auto_prepend_file gzip-css.php&lt;br /&gt;php_flag zlib.output_compression On&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;This code does 3 things:&lt;/p&gt; &lt;p&gt;1. The first line tells Apache to send all .css files to the PHP script handler.&lt;br /&gt;2. The second line prepends the code snippet to your CSS file.&lt;br /&gt;3. The third line tells PHP to use its built-in negotiated output compression automatically for every page it parses. This is optional. If you use this method for compression, there is no need for having ob_start (”ob_gzhandler”); in the code snippet.&lt;/p&gt; &lt;p&gt;So in this way you can keep your CSS file as it is without any name change.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27521655-4962816607364952730?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.codlib.com/2007/11/13/need-for-speed-css/' title='Need for speed : CSS Compression'/><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/4962816607364952730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=4962816607364952730' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/4962816607364952730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/4962816607364952730'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2007/11/need-for-speed-css-compression.html' title='Need for speed : CSS Compression'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27521655.post-7588559081962297975</id><published>2007-07-01T08:18:00.000-07:00</published><updated>2007-07-01T08:22:36.784-07:00</updated><title type='text'>Yahoo Photos Begins Closing Down</title><content type='html'>Yahoo’s planned shutdown of Yahoo Photos has begun. The Yahoo blog Yodel Anecdotal reports that they have started to close accounts and transition users over to Flickr.&lt;br /&gt;&lt;br /&gt;i got an e-mail from yahoo.  it is as follows,&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Dear Yahoo! Photos user,&lt;br /&gt;&lt;br /&gt;For some time now, we’ve supported two great photo sharing services: Yahoo! Photos and Flickr. But even good things come to an end, and we’ve decided to close Yahoo! Photos to focus all our efforts on Flickr  the award-winning photo sharing community that TIME Magazine has called “completely addictive.”&lt;br /&gt;&lt;br /&gt;We will officially close Yahoo! Photos on Thursday, September 20, 2007, at 9 p.m. PDT. Until then, we are offering you the opportunity to move to another photo sharing service (Flickr, KODAK Gallery, Shutterfly, Snapfish, or Photobucket), download your original-resolution photos back to your computer, or buy an archive CD from our featured partner (for users of the New Yahoo! Photos only). All you need to do is tell us what to do with your photos before we close, after which any photos remaining on Yahoo! Photos will be deleted and no longer accessible.&lt;br /&gt;&lt;br /&gt;Of course, we hope you’ll join us at Flickr (you can even use your Yahoo! ID), but we also realize that Flickr may not be for everyone. In the end, we want you to find the service that’s right for you, and we hope you take some time to learn more about your options before making this important decision.&lt;br /&gt;&lt;br /&gt;Please give us your decision by Thursday, September 20, 2007, at 9&lt;br /&gt;&lt;br /&gt;p.m. PDT. After that time, any photos remaining in Yahoo! Photos will be deleted. Click here to make your decision, or review a list of our frequently asked questions.&lt;br /&gt;&lt;br /&gt;Thanks for being a part of the Web’s largest photo sharing service  we hope to see you over at Flickr!&lt;br /&gt;&lt;br /&gt;The Yahoo! Photos team&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27521655-7588559081962297975?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.codlib.com/2007/07/01/yahoo-photos-begins-closing-down/' title='Yahoo Photos Begins Closing Down'/><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/7588559081962297975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=7588559081962297975' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/7588559081962297975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/7588559081962297975'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2007/07/yahoo-photos-begins-closing-down.html' title='Yahoo Photos Begins Closing Down'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27521655.post-3498231136194570978</id><published>2007-06-30T08:39:00.000-07:00</published><updated>2007-06-30T08:42:25.308-07:00</updated><title type='text'>Some Useful Windows Run Commands</title><content type='html'>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;To access the RUN command prompt click START menu then click RUN&lt;/p&gt; &lt;p&gt;—&lt;br /&gt;Accessibility Controls - access.cpl Add Hardware Wizard - hdwwiz.cpl&lt;br /&gt;Add/Remove Programs - appwiz.cpl&lt;br /&gt;Administrative Tools - control admintools Automatic Updates - wuaucpl.cpl&lt;br /&gt;Bluetooth Transfer Wizard - fsquirt&lt;br /&gt;Calculator - calc&lt;br /&gt;Certificate Manager - certmgr.msc&lt;br /&gt;Character Map - charmap Check&lt;br /&gt;Disk Utility - chkdsk Clipboard&lt;br /&gt;Viewer - clipbrd Command Prompt - cmd&lt;br /&gt;Component Services - dcomcnfg&lt;br /&gt;Computer Management - compmgmt.msc&lt;br /&gt;Date and Time Properties - timedate.cpl&lt;br /&gt;DDE Shares - ddeshare&lt;br /&gt;Device Manager - devmgmt.msc&lt;br /&gt;Direct X Control Panel (If Installed)* - directx.cpl&lt;br /&gt;Direct X Troubleshooter - dxdiag Disk&lt;br /&gt;Cleanup Utility - cleanmgr&lt;br /&gt;Disk Defragment - dfrg.msc&lt;br /&gt;Disk Management - diskmgmt.msc&lt;br /&gt;Disk Partition Manager - diskpart Display Properties&lt;br /&gt;- control desktop&lt;br /&gt;Display Properties - desk.cpl&lt;br /&gt;Display Properties (w/Appearance Tab Preselected) - control color&lt;br /&gt;Dr. Watson System Troubleshooting Utility - drwtsn32&lt;br /&gt;Driver Verifier Utility - verifier&lt;br /&gt;Event Viewer - eventvwr.msc&lt;br /&gt;File Signature Verification Tool - sigverif&lt;br /&gt;Findfast - findfast.cpl&lt;br /&gt;Folders Properties - control folders&lt;br /&gt;Fonts - control fonts Fonts Folder - fonts&lt;br /&gt;Free Cell Card Game - freecell Game Controllers&lt;br /&gt;- joy.cpl&lt;br /&gt;Group Policy Editor (XP Prof) - gpedit.msc&lt;br /&gt;Hearts Card Game - mshearts&lt;br /&gt;Iexpress Wizard - iexpress&lt;br /&gt;Indexing Service - ciadv.msc I&lt;br /&gt;nternet Properties - inetcpl.cpl&lt;br /&gt;IP Configuration (Display Connection Configuration) - ipconfig /all&lt;br /&gt;IP Configuration (Display DNS Cache Contents) - ipconfig /displaydns&lt;br /&gt;IP Configuration (Delete DNS Cache Contents) - ipconfig /flushdns&lt;br /&gt;IP Configuration (Release All Connections) - ipconfig /release&lt;br /&gt;IP Configuration (Renew All Connections) - ipconfig /renew IP Configuration&lt;br /&gt;(Refreshes DHCP &amp;amp; Re - Registers DNS) - ipconfig /registerdns&lt;br /&gt;IP Configuration (Display DHCP Class ID) - ipconfig /showclassid&lt;br /&gt;IP Configuration (Modifies DHCP Class ID) - ipconfig /setclassid&lt;br /&gt;Java Control Panel (If Installed) - jpicpl32.cpl&lt;br /&gt;Java Control Panel (If Installed) - javaws&lt;br /&gt;Keyboard Properties - control keyboard Local Security Settings - secpol.msc&lt;br /&gt;Local Users and Groups - lusrmgr.msc&lt;br /&gt;Logs You Out Of Windows - logoff&lt;br /&gt;Microsoft Chat - winchat&lt;br /&gt;Minesweeper Game - winmine&lt;br /&gt;Mouse Properties - control mouse&lt;br /&gt;Mouse Properties - main.cpl&lt;br /&gt;Network Connections - control&lt;br /&gt;netconnections Network Connections - ncpa.cpl&lt;br /&gt;Network Setup Wizard - netsetup.cpl&lt;br /&gt;Notepad - notepad Nview&lt;br /&gt;Desktop Manager (If Installed) - nvtuicpl.cpl&lt;br /&gt;Object Packager - packager&lt;br /&gt;ODBC Data Source Administrator - odbccp32.cpl&lt;br /&gt;On Screen Keyboard - osk Opens AC3 Filter&lt;br /&gt;(If Installed) - ac3filter.cpl&lt;br /&gt;Password Properties - password.cpl&lt;br /&gt;Performance Monitor - perfmon.msc&lt;br /&gt;Performance Monitor - perfmon Phone and Modem Options - telephon.cpl&lt;br /&gt;Power Configuration - powercfg.cpl&lt;br /&gt;Regional Settings - intl.cpl&lt;br /&gt;Registry Editor - regedit&lt;br /&gt;Registry Editor - regedit32 Remote Desktop - mstsc&lt;br /&gt;Removable Storage - ntmsmgr.msc&lt;br /&gt;Removable Storage Operator Requests - ntmsoprq.msc&lt;br /&gt;Resultant Set of Policy (XP Prof) - rsop.msc&lt;br /&gt;Scanners and Cameras - sticpl.cpl&lt;br /&gt;Scheduled Tasks - control schedtasks Security Center - wscui.cpl&lt;br /&gt;Services - services.msc&lt;br /&gt;Shared Folders - fsmgmt.msc&lt;br /&gt;Shuts Down Windows - shutdown Sounds and Audio - mmsys.cpl&lt;br /&gt;Spider Solitare Card Game - spider SQL Client Configuration - cliconfg&lt;br /&gt;System Configuration Editor - sysedit&lt;br /&gt;System Configuration Utility - msconfig&lt;br /&gt;System File Checker Utility (Scan Immediately) - sfc /scannow&lt;br /&gt;System File Checker Utility (Scan Once At Next Boot) - sfc /scanonce&lt;br /&gt;System File Checker Utility (Scan On Every Boot) - sfc /scanboot&lt;br /&gt;System File Checker Utility (Return to Default Setting) - sfc /revert&lt;br /&gt;System File Checker Utility (Purge File Cache) - sfc /purgecache&lt;br /&gt;System File Checker Utility (Set Cache Size to size x) - sfc /cachesize=x&lt;br /&gt;System Properties - sysdm.cpl&lt;br /&gt;Task Manager - taskmgr&lt;br /&gt;Telnet Client - telnet&lt;br /&gt;User Account Management - nusrmgr.cpl&lt;br /&gt;Utility Manager - utilman&lt;br /&gt;Windows Firewall - firewall.cpl&lt;br /&gt;Windows Magnifier - magnify&lt;br /&gt;Windows Management Infrastructure - wmimgmt.msc&lt;br /&gt;Windows System Security Tool - syskey&lt;br /&gt;Windows Update Launches - wupdmgr&lt;br /&gt;Windows XP Tour Wizard - tourstart&lt;br /&gt;Wordpad - write&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27521655-3498231136194570978?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.codlib.com/2007/06/27/some-useful-windows-run-commands/' title='Some Useful Windows Run Commands'/><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/3498231136194570978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=3498231136194570978' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/3498231136194570978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/3498231136194570978'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2007/06/some-useful-windows-run-commands.html' title='Some Useful Windows Run Commands'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27521655.post-4259669794953645860</id><published>2007-06-24T00:16:00.000-07:00</published><updated>2007-06-24T00:24:50.866-07:00</updated><title type='text'>Number Validation Using JavaScript</title><content type='html'>&lt;p&gt;Usig javascript, the simplest way to check whether the details entered in a text field are numeric is to to loop through the string and compare each character to a pre-defined list of acceptable characters.&lt;/p&gt;we can also achive tthis functionality by using the regular expressions. &lt;blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;    &lt;script type="”text/javascript”"&gt;&lt;br /&gt;var userText = ‘abcde’;&lt;br /&gt;var reIntegers = /^[0-9.]*$/;&lt;br /&gt;if(userText.match(reIntegers)==null)&lt;br /&gt;{&lt;br /&gt;alert(’Not a number’);&lt;br /&gt;}else{&lt;br /&gt;alert(’This is a number’);&lt;br /&gt;}&lt;br /&gt;&lt;/script&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;in this case also, we have allowed decimal points and numbers zero through 9. using the ‘match’ function we can search the string for the regular expression pattern provided. if any mismatch occured in the patters the “match” function will return a null value.&lt;/p&gt;for more details and functions please visit&lt;br /&gt;&lt;a href="http://blog.codlib.com/2007/06/22/number-validation-using-javascript/"&gt;http://blog.codlib.com/2007/06/22/number-validation-using-javascript/&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27521655-4259669794953645860?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.codlib.com/2007/06/22/number-validation-using-javascript/' title='Number Validation Using JavaScript'/><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/4259669794953645860/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=4259669794953645860' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/4259669794953645860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/4259669794953645860'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2007/06/number-validation-using-javascript.html' title='Number Validation Using JavaScript'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27521655.post-7495078461290951325</id><published>2007-06-12T19:24:00.000-07:00</published><updated>2007-06-12T19:25:42.475-07:00</updated><title type='text'>Receiving SMS Messages Using a Computer ?</title><content type='html'>&lt;p&gt;In general, there are three ways to receive SMS messages using your computer:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;1. Connect a mobile phone or GSM/GPRS modem to a computer. Then use the computer and AT commands to get the received SMS messages from the mobile phone or GSM/GPRS modem.&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Receiving SMS messages through a mobile phone or GSM/GPRS modem has a major advantage over the other two ways — wireless carriers usually do not charge any fee for receiving incoming SMS messages with their SIM cards. The disadvantage of receiving SMS messages this way is that a mobile phone or GSM/GPRS modem cannot handle a large amount of SMS traffic. One way to overcome this is to load balance the SMS traffic with a pool of mobile phones or GSM/GPRS modems. Each mobile phone or GSM/GPRS modem will have its own SIM card and mobile phone number.&lt;/p&gt; &lt;p&gt;In terms of programming, sending and receiving SMS messages through a mobile phone or GSM/GPRS modem are similar. What you need to do is to send instructions (in the form of AT commands) to the mobile phone or GSM/GPRS modem.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;2. Get access to the SMS center (SMSC) or SMS gateway of a wireless carrier. Any SMS message received will be forwarded to your computer / PC using a protocol / interface supported by the SMSC or SMS gateway.&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;If you need a high SMS transmission rate, one way is to obtain a direct connection to the SMS center (SMSC) or SMS gateway of a wireless carrier. The connection may be made through the Internet, X.25 or dial-up.&lt;/p&gt; &lt;p&gt;To receive SMS messages through a direct connection to the SMSC or SMS gateway of a wireless carrier, usually you need to contact the wireless carrier provider to discuss the details. A wireless carrier may only provide such service to those who have huge SMS traffic and the total fee can be very high. The service may involve a one-time setup fee, a monthly subscription fee and/or a per-message fee. To know the exact cost of the service, protocols supported, network coverage and other information, usually you have to contact the wireless carrier provider.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;3. Get access to the SMS gateway of an SMS service provider. Any SMS message received will be forwarded to your computer / PC using a protocol / interface supported by the SMS gateway.&lt;/strong&gt;&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;Another way to receive SMS messages using a computer is through a connection to the SMS gateway of an SMS service provider. SMS service providers generally support two kinds of solution:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;1. SIM hosting &lt;/strong&gt;– The SMS service provider hosts a SIM card for you. All SMS messages sent to the mobile phone number of the SIM card will be forwarded to your system using a protocol / interface supported by the SMS gateway of the SMS service provider.&lt;br /&gt;&lt;strong&gt;2. Shared phone number&lt;/strong&gt; — The SMS service provider provides you a phone number that is shared by its customers for receiving SMS messages. You have to specify one or more keywords to associate with your SMS application. If an SMS message is received and its content begins with a keyword specified by you, it will be forwarded to your system using a protocol / interface supported by the SMS gateway of the SMS service provider.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Some SMS service providers also provide SMS messaging solutions that are customized to your needs. For example, if you need to receive SMS messages from users in a few countries, an SMS service provider may help you open dedicated phone numbers in those countries and forward the received SMS messages to you in a unified way. To use such SMS messaging services, you have to contact the SMS service provider to discuss the details.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;SIM Hosting&lt;/strong&gt;&lt;br /&gt;In this approach, an SMS service provider hosts a SIM card for you. The SIM card’s mobile phone number will serve as a dedicated phone number of your SMS application. To use the service, you mail your SIM card to the SMS service provider. Later if you end the service, the SMS service provider will mail the SIM card back to you. The SIM card will be put into a GSM/GPRS modem, which is connected to an SMS gateway. The SMS gateway will forward all received SMS messages to your computer using a certain protocol / interface. For example, HTTP, HTTPS, XML over HTTP/HTTPS, SMTP (SMS to email), SMPP, etc.&lt;/p&gt; &lt;p&gt;Like receiving SMS messages using your own mobile phone or GSM/GPRS modem, SIM hosting has a major weakness — it cannot handle a large amount of SMS traffic. The advantage of SIM hosting is that you do not need to buy, set up and manage the necessary equipment. Also, you do not need to write any code to control the receiving of SMS messages from a GSM/GPRS modem via low-level AT commands, which means you can concentrate on the business logic of your SMS application. The SMS service provider may provide you a detail log of the incoming SMS messages.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Shared Phone Number&lt;/strong&gt;&lt;br /&gt;In this approach, the SMS service provider rents dedicated phone numbers from wireless carriers. Each phone number will then be shared by a number of the SMS service provider’s customers for receiving SMS messages. Since the phone number is provided by a wireless carrier directly (not through a SIM card) and the SMS service provider has a high speed connection to the SMSC or SMS gateway of the wireless carrier, the SMS service provider is capable of handling a large amount of SMS messages with the phone number. As a result, the users of such shared phone number service can enjoy a higher SMS transmission rate than using SIM hosting services or using their own wireless modem. The cost of shared phone number service is less expensive than renting your own dedicated phone number from a wireless carrier. A detail log of the received SMS messages is sometimes provided by SMS service providers.&lt;/p&gt; &lt;p&gt;Like using SIM hosting service, using shared phone number service has the advantage that you do not need to buy, set up and manage any equipment (e.g. GSM / GPRS modems) and write any low-level code for receiving SMS messages. Hence, an SMS application developer can concentrate on the business logic of his/her SMS messaging application.&lt;/p&gt; &lt;p&gt;The weakness of shared phone number service is that the bandwidth is shared, i.e. the performance drops if the number of users sharing the phone number increases, or if the amount of incoming SMS traffic required by other users increases.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Registering Keywords&lt;/strong&gt;&lt;br /&gt;Since multiple users share a single phone number, when the SMS gateway of the SMS service provider receives an SMS message, it needs a way to determine which user to forward the SMS message to. SMS service providers’ engineers come up with a solution like this: First, a user registers one or more keywords to associate with his/her SMS messaging application. Later when the SMS gateway receives an SMS message that begins with one of the keywords, it will forward the SMS message to that SMS messaging application.&lt;/p&gt; &lt;p&gt;Here is an example for illustration. Suppose you want to develop an SMS messaging application that provides free ring tone download service. A user will be able to perform two functions: listing the free ring tones that are available and requesting a ring tone to be sent to a mobile phone.&lt;/p&gt; &lt;p&gt;To receive SMS messages from users, you can subscribe to the shared phone number service of an SMS service provider and register two keywords, list and download, to be associated with your SMS messaging application.&lt;/p&gt; &lt;p&gt;To request the list of free ring tones that are available on your server, the user can send the following SMS text message to the shared phone number:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;list&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;When the SMS gateway of the SMS service provider receives the above SMS text message, it parses its content and extracts the keyword list . It then searches a database to find out which SMS messaging application is associated with the keyword list. As your SMS messaging application is associated with the keyword list, the SMS text message will be forwarded to your SMS messaging application.&lt;/p&gt; &lt;p&gt;The keyword list indicates that the user wants the list of free ring tones that are available on your server. Hence, your SMS messaging application should return an SMS text message that contains something like this:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;Free ring tones available:&lt;/p&gt; &lt;p&gt;1. Ringtone ABC&lt;br /&gt;2. Ringtone CDEF&lt;br /&gt;3. Ringtone X&lt;br /&gt;4. Ringtone Y&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;To download the second ring tone, the user can send an SMS text message that looks like this to the shared phone number:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;Download 2&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Since the keyword download is also associated with your SMS messaging application, the SMS gateway will forward the above SMS text message to your SMS messaging application. This time the keyword download indicates that the user wants to download a ring tone. Your SMS messaging application should encode the second ring tone in an SMS message and send it to the user.&lt;/p&gt; &lt;p&gt;&lt;span class="post-info"&gt;http://www.developershome.com/sms/howToReceiveSMSUsingPC.asp&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/27521655-7495078461290951325?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.codlib.com/2007/06/12/receiving-sms-messages-using-a-computer/' title='Receiving SMS Messages Using a Computer ?'/><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/7495078461290951325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=7495078461290951325' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/7495078461290951325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/7495078461290951325'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2007/06/receiving-sms-messages-using-computer.html' title='Receiving SMS Messages Using a Computer ?'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27521655.post-4076584839213865208</id><published>2007-06-11T20:13:00.000-07:00</published><updated>2007-06-11T20:14:59.956-07:00</updated><title type='text'>How to Send SMS Messages from a Computer?</title><content type='html'>&lt;p&gt;In general, there are two ways to send SMS messages from a computer / PC to a mobile phone:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;1. Connect a mobile phone or GSM/GPRS modem to a computer Then use the computer / PC and AT commands to instruct the mobile phone or GSM/GPRS modem to send SMS messages.&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;The SMS specification has defined a way for a computer to send SMS messages through a mobile phone or GSM/GPRS modem. A GSM/GPRS modem is a wireless modem that works with GSM/GPRS wireless networks.&lt;/p&gt; &lt;p&gt;To send SMS messages, first place a valid SIM card from a wireless carrier into a mobile phone or GSM/GPRS modem, which is then connected to a computer. There are several ways to connect a mobile phone or GSM/GPRS modem to a computer. For example, they can be connected through a serial cable, a USB cable, a Bluetooth link or an infrared link. The actual way to use depends on the capability of the mobile phone or GSM/GPRS modem. For example, if a mobile phone does not support Bluetooth, it cannot connect to the computer through a Bluetooth link.&lt;/p&gt; &lt;p&gt;After connecting a mobile phone or GSM/GPRS modem to a computer, you can control the mobile phone or GSM/GPRS modem by sending instructions to it. The instructions used for controlling the mobile phone or GSM/GPRS modem are called AT commands. (AT commands are also used to control dial-up modems for wired telephone system.) Dial-up modems, mobile phones and GSM/GPRS modems support a common set of standard AT commands. In addition to this common set of standard AT commands, mobile phones and GSM/GPRS modems support an extended set of AT commands. One use of the extended AT commands is to control the sending and receiving of SMS messages.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Drawback &lt;/strong&gt;&lt;br /&gt;Using a mobile phone or GSM/GPRS modem to send SMS messages has a major drawback that is the SMS sending rate is too low. Only 6-10 SMS messages can be sent per minute (when the “SMS over GSM” mode is used).&lt;/p&gt; &lt;p&gt;&lt;strong&gt;2. Connect the computer / PC to the SMS center (SMSC) or SMS gateway of a wireless carrier or SMS service provider. Then send SMS messages using a protocol / interface supported by the SMSC or SMS gateway.&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;If you need a high SMS sending rate, obtaining a direct connection to the SMS center (SMSC) or SMS gateway of a wireless carrier is necessary. The connection may be made through the Internet, X.25 or dial-up. If you cannot get a direct connection to the SMSC or SMS gateway of a wireless carrier, another choice is to get a connection to the SMS gateway of an SMS service provider, which will forward SMS messages towards a suitable SMSC.&lt;/p&gt; &lt;p&gt;It can be difficult for small businesses or individual application developers to obtain a direct connection to the SMSC or SMS gateway of a wireless carrier since a wireless carrier may only provide such service to those who have huge SMS traffic. Buying SMS messages in bulk means the total fee will be very high (although the fee per SMS message will be low).&lt;/p&gt; &lt;p&gt;A more convenient way to send SMS messages is to use the SMS connectivity service of an SMS service provider. SMS service providers are also known as SMS gateway providers, SMS resellers and SMS brokers because of the following reasons:&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;strong&gt;SMS gateway providers &lt;/strong&gt;&lt;/em&gt;– An SMS service provider provides an SMS gateway for its users to send SMS messages to. This SMS gateway will then route the SMS messages to another SMS gateway or SMSC.&lt;/p&gt; &lt;p&gt;S&lt;em&gt;&lt;strong&gt;MS resellers and SMS brokers&lt;/strong&gt;&lt;/em&gt; — SMS service providers buy a large amount of SMS messages from a lot of wireless carriers at a low price per SMS message. They then sell the SMS messages at a price higher than the cost.&lt;/p&gt; &lt;p&gt;It is easy to send SMS messages with an SMS service provider. Here are the typical steps:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;1. Register for an account on the SMS service provider’s web site. (An SMS service provider may allow newly registered users to send a few free SMS messages for testing its service quality.)&lt;/p&gt; &lt;p&gt;2. Log into the account.&lt;br /&gt;3. Buy a number of credits or SMS text messages online. Many SMS service providers support credit card payment and some also support PayPal.&lt;br /&gt;4. Send SMS messages using a protocol / interface (e.g. HTTP, email, FTP) supported by the SMS service provider.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;SMS service providers can be divided into two categories depending on how they require you to pay for their SMS messaging service:&lt;/p&gt; &lt;p&gt;* &lt;em&gt;&lt;strong&gt;Credit-based&lt;/strong&gt;&lt;/em&gt; — You purchase a number of credits from the SMS service provider’s web site. Sending one SMS message will cost you one or more credits, depending on the country you send the SMS message to. For example, sending an SMS text message to India may cost you one credit while sending an SMS text message to the US may cost you two credits.&lt;br /&gt;* &lt;em&gt;&lt;strong&gt;SMS-based&lt;/strong&gt;&lt;/em&gt; — You purchase a number of SMS messages from the SMS service provider’s web site. The cost per SMS message is the same for all destinations. For example, if you purchase ten SMS messages, you can send at most ten SMS messages no matter the destination is India or the US.&lt;/p&gt; &lt;p&gt;The cost per SMS message sent depends on which SMS service provider you choose and how many SMS messages you purchase.&lt;/p&gt; &lt;p&gt;SMS gateways of SMS service providers and wireless carriers very often support one or more of the following protocols / interfaces: HTTP, HTTPS (HTTP + SSL encryption), XML over HTTP / HTTPS, SMTP (email to SMS), FTP. Some also support the SMPP protocol, which is usually used by advanced users. SMSC protocols other than SMPP are not commonly supported.&lt;/p&gt; &lt;p&gt;After receiving your HTTP request, the SMS gateway will forward your SMS text message towards the recipient. The SMS gateway will then send back an HTTP response that contains a return value. The return value indicates whether there is any error. For example, a certain SMS gateway may use the return value 0 to indicate that there is no error, the return value 1 to indicate the error “The account does not have enough credits”, the return value 2 to indicate the error “The SMS message is too long”, etc.&lt;/p&gt; &lt;p class="postinfo"&gt;Ref:- http://www.developershome.com/sms/howToSendSMSFromPC.asp&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27521655-4076584839213865208?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.codlib.com/2007/06/11/how-to-send-sms-messages-from-a-computer/' title='How to Send SMS Messages from a Computer?'/><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/4076584839213865208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=4076584839213865208' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/4076584839213865208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/4076584839213865208'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2007/06/how-to-send-sms-messages-from-computer.html' title='How to Send SMS Messages from a Computer?'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27521655.post-6723343431712109319</id><published>2007-06-08T08:02:00.000-07:00</published><updated>2007-06-08T08:06:40.378-07:00</updated><title type='text'>PHP Custom Error Messages</title><content type='html'>This is a continuation to my post &lt;a href="http://blog.codlib.com/2007/06/08/php-custom-error-messages/" title="PHP Magic constants" target="_blank"&gt;PHP Magic Constants.&lt;/a&gt;&lt;br /&gt;Here I would like to demonstrate a real time example of magic constants.&lt;br /&gt;&lt;br /&gt;I am going to write a user function for generating a user-level error/warning/notice message.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;function myErrorFunction($error_message,$line,$file)&lt;br /&gt;{&lt;br /&gt;               if($error_message!='')&lt;br /&gt;               {&lt;br /&gt;                       $error_string = "User Error : {$error_message} in&lt;br /&gt;{$file} on line  number {$line}";&lt;br /&gt;                       echo $error_string;&lt;br /&gt;                       die();&lt;br /&gt;               }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;myErrorFunction('test error message',__LINE__,__FILE__);&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Now, you can call this function any where in your&lt;br /&gt;script. It should print the error message as follows.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;User Error : test error message in H:\test\ccodlib\test.php on line number 12&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;In the above function,&lt;br /&gt;•       die() is a portable way of causing the program to crash.&lt;br /&gt;•       __FILE__ is replaced (during compilation) with the name of the file containing the code (as a string).&lt;br /&gt;•       __LINE__ is replaced (during compilation) with the current line number (as an integer constant).&lt;br /&gt;&lt;br /&gt; ------------------&lt;br /&gt;&lt;br /&gt;you can also achieve the above functionality by using the built in function “Trigger_error()” provided by PHP.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27521655-6723343431712109319?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/6723343431712109319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=6723343431712109319' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/6723343431712109319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/6723343431712109319'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2007/06/php-custom-error-messages.html' title='PHP Custom Error Messages'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27521655.post-2322555193287842878</id><published>2007-05-10T10:12:00.000-07:00</published><updated>2007-05-10T10:15:43.915-07:00</updated><title type='text'>New Blog Url</title><content type='html'>&lt;span style="font-weight: bold;"&gt;My new blog URL i&lt;/span&gt;s &lt;a href="http://blog.codlib.com/"&gt;http://blog.codlib.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.codlib.com"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_Fx5rfHL2_bU/RkNS86dFONI/AAAAAAAABFk/i_mUzjQXsGM/s200/codlib.jpg" alt="" id="BLOGGER_PHOTO_ID_5062981612531431634" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;&lt;span style="font-size:85%;"&gt;blogging about tech, the tech, and everything tech, for techno addicts!&lt;/span&gt;&lt;/h2&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27521655-2322555193287842878?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.codlib.com' title='New Blog Url'/><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/2322555193287842878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=2322555193287842878' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/2322555193287842878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/2322555193287842878'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2007/05/new-blog-url.html' title='New Blog Url'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Fx5rfHL2_bU/RkNS86dFONI/AAAAAAAABFk/i_mUzjQXsGM/s72-c/codlib.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27521655.post-4391291895257763070</id><published>2007-05-04T21:40:00.000-07:00</published><updated>2007-05-04T21:42:00.573-07:00</updated><title type='text'>New Blog</title><content type='html'>&lt;p&gt;I finally decided to start a blog in &lt;a href="http://www.wordpress.com/" title="Wordpress" target="_blank"&gt;wordpress&lt;/a&gt;. I already have two another blogs &lt;a href="http://codlib.blogspot.com/" title="Techno WebLog" target="_blank"&gt;Techno WebLog&lt;/a&gt; and &lt;a href="http://jansanjohn.blogspot.com/" title="Miles To Go" target="_blank"&gt;Miles To Go&lt;/a&gt;. Of them the first one &lt;a href="http://codlib.blogspot.com/" title="Techno WebLog" target="_blank"&gt;Techno WebLog&lt;/a&gt; is a professional blog and it is hosted in blogspot. Now i am planing to move it to here. Regarding the “&lt;a href="http://jansanjohn.blogspot.com/" title="Miles To Go" target="_blank"&gt;Miles To Go&lt;/a&gt;“, it is  my personal blog.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;About Me&lt;/strong&gt;&lt;br /&gt;I am Jansan John. I am a programmer by profession. Currently I am working at a Web Development company, &lt;a href="http://www.reubro.com/" title="Reubro International" target="_blank"&gt;Reubro International&lt;/a&gt; as a programmer in PHP. I am from India - Kerala(also known as ‘God’s own country’).&lt;/p&gt; &lt;p&gt;&lt;strong&gt;More Posts&lt;/strong&gt;&lt;br /&gt;You can expect&lt;strong&gt; &lt;/strong&gt;more posts from me now onwards.In the past, the frequency of the posts was very less. but now onwards i am planing to move with this seriously. &lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Inspiration &lt;/strong&gt;&lt;br /&gt;I have inspired by lot of my friends - &lt;a href="http://www.bin-co.com/blog/" title="Bin-Blog"&gt;binny,&lt;/a&gt; &lt;a href="http://www.blog.glad-win.com/" title="Blogger's Park"&gt;Gladwin&lt;/a&gt; etc.&lt;/p&gt; &lt;p&gt;There is still a lot of work to be done in this blog - I have to do some &lt;abbr title="Search Engine Optimisation"&gt;&lt;/abbr&gt;search engine optimization, google adsense integration work, etc. You can help by encouraging me by leaving a comments in my posts.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27521655-4391291895257763070?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.codlib.com' title='New Blog'/><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/4391291895257763070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=4391291895257763070' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/4391291895257763070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/4391291895257763070'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2007/05/new-blog.html' title='New Blog'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27521655.post-78330042082218173</id><published>2007-03-10T01:05:00.000-08:00</published><updated>2007-03-10T01:11:47.932-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Php Vulnerability'/><title type='text'>PHP Session Hijacking</title><content type='html'>&lt;span style="color:#666666;"&gt;&lt;strong&gt;What is it?&lt;/strong&gt;&lt;br /&gt;Session hijacking is the act of taking control of a user session after successfully obtaining or generating an authentication session ID. Session hijacking involves an attacker using captured, brute forced or reverse-engineered session IDs to seize control of a legitimate user's Web application session while that session is still in progress.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Why Session?&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;HTTP is stateless, so application designers had to develop a way to track the state between multiple connections from the same user, instead of requesting the user to authenticate upon each click in a Web application. A session is a series of interactions between two communication end points that occurs during the span of a single connection. When a user logs into an application a session is created on the server in order to maintain the state for other requests originating from the same user.&lt;br /&gt;&lt;br /&gt;Applications use sessions to store parameters which are relevant to the user. The session is kept "alive" on the server as long as the user is logged on to the system. The session is destroyed when the user logs-out from the system or after a predefined period of inactivity. When the session is destroyed, the user's data should also be deleted from the allocated memory space.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Session Hijacking and PHP&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Session ID hijacking can be a problem with PHP Websites. The PHP session tracking component uses a unique ID for each user's session, but if this ID is known to another user, that person can hijack the user's session and see information that should be confidential. Session ID hijacking cannot completely be prevented; you should know the risks so you can mitigate them.&lt;br /&gt;&lt;br /&gt;For instance, even after a user has been validated and assigned a session ID, you should revalidate that user when he or she performs any highly sensitive actions, such as resetting passwords. Never allow a session-validated user to enter a new password without also entering their old password, for example. You should also avoid displaying truly sensitive data, such as credit card numbers, to a user who has only been validated by session ID.&lt;br /&gt;&lt;br /&gt;A user who creates a new session by logging in should be assigned a fresh session ID using the session_regenerate_id function. A hijacking user will try to set his session ID prior to login; this can be prevented if you regenerate the ID at login.&lt;br /&gt;&lt;br /&gt;If your site is handling critical information such as credit card numbers, always use an SSL secured connection. This will help reduce session hijacking vulnerabilities since the session ID cannot be sniffed and easily hijacked.&lt;br /&gt;&lt;br /&gt;If your site is run on a shared Web server, be aware that any session variables can easily be viewed by any other users on the same server. Mitigate this vulnerability by storing all sensitive data in a database record that's keyed to the session ID rather than as a session variable. If you must store a password in a session variable (and I stress again that it's best just to avoid this), do not store the password in clear text; use the sha1() (PHP 4.3+) or md5() function to store the hash of the password instead.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;if ($_SESSION['password'] == $userpwd) { // do sensitive things here}&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The above code is not secure, since the password is stored in plain text in a session variable. Instead, use code more like this:&lt;br /&gt;&lt;br /&gt;if ($_SESSION['encryptedPwd'] == sha1($userpwd)) { // do sensitive things here}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The SHA-1 algorithm is not without its flaws, and further advances in computing power are making it possible to generate what are known as collisions (different strings with the same SHA-1 sum). Yet the above technique is still vastly superior to storing passwords in clear text.&lt;br /&gt;&lt;br /&gt;Use MD5 if you must -- since it's superior to a clear text-saved password -- but keep in mind that recent developments have made it possible to generate MD5 collisions in less than an hour on standard PC hardware. Ideally, one should use a function that implements SHA-256; such a function does not currently ship with PHP and must be found separately.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27521655-78330042082218173?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://codlib.blogspot.com/2007/03/php-session-hijacking.html' title='PHP Session Hijacking'/><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/78330042082218173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=78330042082218173' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/78330042082218173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/78330042082218173'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2007/03/php-session-hijacking.html' title='PHP Session Hijacking'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27521655.post-5831770589630771758</id><published>2006-12-07T00:38:00.000-08:00</published><updated>2006-12-07T00:41:19.911-08:00</updated><title type='text'>Taking a look at PHP 6</title><content type='html'>Nowadays in PHP world, the "noise" is about upcoming PHP6.&lt;br /&gt;While most web hosts are still in the PHP 4 era, the PHP developers are already planning and working on PHP 6. Let's have a look at what's been keeping them busy.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Unicode support&lt;/span&gt;&lt;br /&gt;When you're creating a website, you hardly have to think about the character encoding. You only have to decide how you tell the user agent what encoding you're using, but with a little help of Apache's .htaccess file, you only have to make that decision once. However, if you're building an application, the character encoding might become a problem. That's where PHP's new Unicode support comes in handy. With its support, PHP can automatically encode and decode the in and output of the script making sure both the database and the user agent receive the encoding they need without the need of any extra functions for the encoding conversion.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The big cleanup&lt;/span&gt;&lt;br /&gt;PHP is already being used for a long time, creating a big user base, but also a lot of bad habits. Bad habits often result in slow scripts or even security holes. But these bad habits are not always the cause of the developer. Of course, he (lets just assume we're dealing with a stereotype developer here for simplicity's sake) is the one who's using it in his application, but sometimes the developer is not even aware he's using it.&lt;br /&gt;&lt;br /&gt;Of course,  the register_globals, magic_quotes and safe_mode functions. These three functions are hell for every PHP programmer so I'm sure everyone will be happy to hear that these functions will disappear in PHP 6.&lt;br /&gt;&lt;br /&gt;In other related cleanup news, register_long_arrays and the long versions of the super globals like $HTTP_COOKIE_VARS are also gone in PHP 6. Same goes for zend.ze1_compatibility_mode which dealt with the backwards compatibility of PHP 5 classes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Alternative PHP Cache&lt;/span&gt;&lt;br /&gt;Caching is a very good way to improve the performance of an application. That's why there was a large demand for a good opcode cache in the default distribution of PHP. And when there's a demand, there's probably also a person or a group to meet that demand. The result is APC: Alternative PHP Cache. Of course, APC was already available a long time ago (01-07-2003), but the PHP developers have decided to include this extension in the core as the default caching framework.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;OO Functionality&lt;/span&gt;&lt;br /&gt;The improved OO model was probably the biggest improvement to PHP in version 5.0. PHP 6 tries to improve this even further by adding namespaces. If you're familiar with XML's namespaces or maybe C++', you will probably have an idea of how namespaces work. If not: Namespaces can group variables, functions or objects under a certain name. This allows the developer to use the same name for a variable, function or object multiple times. In case you'd like to learn more about the possibilities of namespaces, I find this C++ tutorial about namespaces quite useful.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Changes to the extensions&lt;/span&gt;&lt;br /&gt;PHP is basically a collection of extensions which are all put together to form what we have now. However, these extensions change and so does the collection. Take, for instance, the XML Writer extension. A great extension to write XML files. Its brother, XML Reader, was already added and enabled in the core distribution in PHP 5.1, and now XML Writer will follow its example in PHP 6, forming a great duo to easily work with XML files.&lt;br /&gt;&lt;br /&gt;Another change in the core distribution is the removal of the ereg regular expressions library which is going to be made an extension. ereg is currently used as an competitor of PCRE (preg_match, etc.), but apparently it's causing some problems. Therefore, the developers decided to remove it from the core and make it an extension.&lt;br /&gt;&lt;br /&gt;Yet another change we see is the Fileinfo extension which will be dealing with media type detection. At the moment, media type detection isn't very good in PHP. We have the mime_magic extension, but that isn't really reliable. So in PHP 6, the Fileinfo extension will take over mime_magic's place and become part of the core while mime_magic will be moved from the core and made into an extension.&lt;br /&gt;&lt;br /&gt;So we've seen quite some interesting changes so far. To me, PHP 6 doesn't really look like a massive feature update, but more as a big cleanup while improving a lot of existing functions along the way. And I think that's good! I'm working with PHP on an almost daily basis and looking at the things noted above, I'm only seeing improvements. So hopefully developers of popular applications like phpBB will make their applications work properly on PHP 5 making it easier for web hosts to switch their servers to PHP 5. But at the current state of PHP 5 support, I don't see PHP 6 becoming widely adopted if it were released today. So hopefully this will change by the time PHP 6 will be released.&lt;br /&gt;&lt;br /&gt;More references:&lt;br /&gt;&lt;br /&gt;1.) http://jero.net/articles/php6&lt;br /&gt;&lt;br /&gt;2.) http://php.net/~derick/meeting-notes.html&lt;br /&gt;&lt;br /&gt;3.) http://wiki.cc/php/PHP6&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27521655-5831770589630771758?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/5831770589630771758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=5831770589630771758' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/5831770589630771758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/5831770589630771758'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2006/12/taking-look-at-php-6.html' title='Taking a look at PHP 6'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27521655.post-7089459552362176510</id><published>2006-11-16T23:20:00.000-08:00</published><updated>2006-11-16T23:24:36.484-08:00</updated><title type='text'>The Secret behind Google Search</title><content type='html'>&lt;o:p&gt;&lt;/o:p&gt;Google runs on a distributed network of thousands of low-cost computers and can therefore carry out fast parallel processing. Parallel processing is a method of computation in which many calculations can be performed simultaneously, significantly speeding up data processing. A search which typically takes less than half a second, is the result of a complex journey that typically makes at least two stops, often thousands of miles apart. &lt;span style=""&gt; &lt;/span&gt;    &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;span style="font-weight: bold;"&gt;Crawling&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;o:p&gt; &lt;/o:p&gt;1.) Google creates its own version of internet, using its own programs called google boats, which crawl the web in search of new information. Web sites known to be important and frequently modified are scanned every few minutes. Sites less frequently updated may be scanned every few weeks.&lt;span style=""&gt;  &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;2.)&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Google boats feed key information from a web page to google’s central network URL. It includes full text of the page, reference to images and other links, &lt;st1:place&gt;Meta&lt;/st1:place&gt; data etc. &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;3.)&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;At the central network the information is indexed. Every word that could be used in a search query is listed along with information referencing websites where the word can be found. &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;4.)&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;The index is broken in to “shards” and sent to data centers. – Facilities made up of thousands of servers wired together around the world. Because centers may have slightly different versions of the index, depending upon when they received last update. So users in different places may get slightly different result for same search.&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;span style="font-weight: bold;"&gt;Searching&lt;/span&gt; &lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;When people searches google, they are asking google to find every instance of the term in its index and rank the correspondent pages by its relevance. &lt;/p&gt;    &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;1.)&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;The users type a keyword in the search box. Typically it is two or three words. This can make, finding the most relevant results challenging.&lt;span style=""&gt;  &lt;/span&gt;Also one in 10 queries may be misspelled. &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;2.)&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Before processing the keywords, google locate the user’s location using the IP address. It helps google to use the nearest server or data center for processing the keyword. It also helps google to display geographically matching ad words and advertisements.&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;3.)&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;The query or keywords are sent to central network and redirect to nearest server or data center.&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;4.)&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;    &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;At the data center the search term is run through the index. Matching terms are sent back to the central network. Then to the user with a summery of the web pages called “snippets”. &lt;/p&gt;    &lt;p style="font-weight: bold;" class="MsoNormal"&gt;Ranking&lt;/p&gt;            &lt;p class="MsoNormal"&gt;Google determines which web sites are most relevant to a search term by using its page ranking algorithm or page ranking formula, a formula that weighs more than 200 measurements, such as number of times a keyword or search term appeared on the web page. It also considers the page impressions and the popularity of the site.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27521655-7089459552362176510?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/7089459552362176510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=7089459552362176510' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/7089459552362176510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/7089459552362176510'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2006/11/secret-behind-google-search.html' title='The Secret behind Google Search'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27521655.post-1609749792985693872</id><published>2006-11-13T02:22:00.000-08:00</published><updated>2006-11-13T02:26:55.154-08:00</updated><title type='text'>100 keyboard shortcuts</title><content type='html'>CTRL+C (Copy)&lt;br /&gt;CTRL+X (Cut)&lt;br /&gt;CTRL+V (Paste)&lt;br /&gt;CTRL+Z (Undo)&lt;br /&gt;DELETE (Delete)&lt;br /&gt;SHIFT+DELETE (Delete the selected item permanently without placing the item in the Recycle Bin)&lt;br /&gt;CTRL while dragging an item (Copy the selected item) &lt;br /&gt;CTRL+SHIFT while dragging an item (Create a shortcut to the selected item)&lt;br /&gt;F2 key (Rename the selected item)&lt;br /&gt;CTRL+RIGHT ARROW (Move the insertion point to the beginning of the next word)&lt;br /&gt;CTRL+LEFT ARROW (Move the insertion point to the beginning of the previous word) &lt;br /&gt;CTRL+DOWN ARROW (Move the insertion point to the beginning of the next paragraph)&lt;br /&gt;CTRL+UP ARROW (Move the insertion point to the beginning of the previous paragraph)&lt;br /&gt;CTRL+SHIFT with any of the arrow keys (Highlight a block of text) &lt;br /&gt;SHIFT with any of the arrow keys (Select more than one item in a window or on the desktop, or select text in a document)&lt;br /&gt;CTRL+A (Select all)&lt;br /&gt;F3 key (Search for a file or a folder)&lt;br /&gt;ALT+ENTER (View the properties for the selected item) &lt;br /&gt;ALT+F4 (Close the active item, or quit the active program)&lt;br /&gt;ALT+ENTER (Display the properties of the selected object)&lt;br /&gt;ALT+SPACEBAR (Open the shortcut menu for the active window)&lt;br /&gt;CTRL+F4 (Close the active document in programs that enable you to have multiple documents open simultaneously) &lt;br /&gt;ALT+TAB (Switch between the open items)&lt;br /&gt;ALT+ESC (Cycle through items in the order that they had been opened)&lt;br /&gt;F6 key (Cycle through the screen elements in a window or on the desktop)&lt;br /&gt;F4 key (Display the Address bar list in My Computer or Windows Explorer) &lt;br /&gt;SHIFT+F10 (Display the shortcut menu for the selected item)&lt;br /&gt;ALT+SPACEBAR (Display the System menu for the active window)&lt;br /&gt;CTRL+ESC (Display the Start menu)&lt;br /&gt;ALT+Underlined letter in a menu name (Display the corresponding menu) &lt;br /&gt;Underlined letter in a command name on an open menu (Perform the corresponding command)&lt;br /&gt;F10 key (Activate the menu bar in the active program)&lt;br /&gt;RIGHT ARROW (Open the next menu to the right, or open a submenu)&lt;br /&gt;LEFT ARROW (Open the next menu to the left, or close a submenu) &lt;br /&gt;F5 key (Update the active window)&lt;br /&gt;BACKSPACE (View the folder one level up in My Computer or Windows Explorer)&lt;br /&gt;ESC (Cancel the current task)&lt;br /&gt;SHIFT when you insert a CD-ROM into the CD-ROM drive (Prevent the CD-ROM from automatically playing) &lt;br /&gt;Dialog Box Keyboard Shortcuts&lt;br /&gt;CTRL+TAB (Move forward through the tabs)&lt;br /&gt;CTRL+SHIFT+TAB (Move backward through the tabs)&lt;br /&gt;TAB (Move forward through the options)&lt;br /&gt;SHIFT+TAB (Move backward through the options)&lt;br /&gt;ALT+Underlined letter (Perform the corresponding command or select the corresponding option)&lt;br /&gt;ENTER (Perform the command for the active option or button)&lt;br /&gt;SPACEBAR (Select or clear the check box if the active option is a check box) &lt;br /&gt;Arrow keys (Select a button if the active option is a group of option buttons)&lt;br /&gt;F1 key (Display Help)&lt;br /&gt;F4 key (Display the items in the active list)&lt;br /&gt;BACKSPACE (Open a folder one level up if a folder is selected in the Save As or Open dialog box) &lt;br /&gt;m*cro$oft Natural Keyboard Shortcuts&lt;br /&gt;Windows Logo (Display or hide the Start menu)&lt;br /&gt;Windows Logo+BREAK (Display the System Properties dialog box)&lt;br /&gt;Windows Logo+D (Display the desktop)&lt;br /&gt;Windows Logo+M (Minimize all of the windows) &lt;br /&gt;Windows Logo+SHIFT+M (Restore the minimized windows)&lt;br /&gt;Windows Logo+E (Open My Computer)&lt;br /&gt;Windows Logo+F (Search for a file or a folder)&lt;br /&gt;CTRL+Windows Logo+F (Search for computers)&lt;br /&gt;Windows Logo+F1 (Display Windows Help) &lt;br /&gt;Windows Logo+ L (Lock the keyboard)&lt;br /&gt;Windows Logo+R (Open the Run dialog box)&lt;br /&gt;Windows Logo+U (Open Utility Manager)&lt;br /&gt;Accessibility Keyboard Shortcuts&lt;br /&gt;Right SHIFT for eight seconds (Switch FilterKeys either on or off) &lt;br /&gt;Left ALT+left SHIFT+PRINT SCREEN (Switch High Contrast either on or off)&lt;br /&gt;Left ALT+left SHIFT+NUM LOCK (Switch the MouseKeys either on or off)&lt;br /&gt;SHIFT five times (Switch the StickyKeys either on or off)&lt;br /&gt;NUM LOCK for five seconds (Switch the ToggleKeys either on or off) &lt;br /&gt;Windows Logo +U (Open Utility Manager)&lt;br /&gt;Windows Explorer Keyboard Shortcuts&lt;br /&gt;END (Display the bottom of the active window)&lt;br /&gt;HOME (Display the top of the active window)&lt;br /&gt;NUM LOCK+Asterisk sign (*) (Display all of the subfolders that are under the selected folder) &lt;br /&gt;NUM LOCK+Plus sign (+) (Display the contents of the selected folder)&lt;br /&gt;NUM LOCK+Minus sign (-) (Collapse the selected folder)&lt;br /&gt;LEFT ARROW (Collapse the current selection if it is expanded, or select the parent folder) &lt;br /&gt;RIGHT ARROW (Display the current selection if it is collapsed, or select the first subfolder)&lt;br /&gt;Shortcut Keys for Character Map&lt;br /&gt;After you double-click a character on the grid of characters, you can move through the grid by using the keyboard shortcuts: &lt;br /&gt;RIGHT ARROW (Move to the right or to the beginning of the next line)&lt;br /&gt;LEFT ARROW (Move to the left or to the end of the previous line)&lt;br /&gt;UP ARROW (Move up one row)&lt;br /&gt;DOWN ARROW (Move down one row)&lt;br /&gt;PAGE UP (Move up one screen at a time) &lt;br /&gt;PAGE DOWN (Move down one screen at a time)&lt;br /&gt;HOME (Move to the beginning of the line)&lt;br /&gt;END (Move to the end of the line)&lt;br /&gt;CTRL+HOME (Move to the first character)&lt;br /&gt;CTRL+END (Move to the last character)&lt;br /&gt;SPACEBAR (Switch between Enlarged and Normal mode when a character is selected) &lt;br /&gt;m*cro$oft Management Console (MMC) Main Window Keyboard Shortcuts&lt;br /&gt;CTRL+O (Open a saved console)&lt;br /&gt;CTRL+N (Open a new console)&lt;br /&gt;CTRL+S (Save the open console)&lt;br /&gt;CTRL+M (Add or remove a console item)&lt;br /&gt;CTRL+W (Open a new window) &lt;br /&gt;F5 key (Update the content of all console windows)&lt;br /&gt;ALT+SPACEBAR (Display the MMC window menu)&lt;br /&gt;ALT+F4 (Close the console)&lt;br /&gt;ALT+A (Display the Action menu)&lt;br /&gt;ALT+V (Display the View menu)&lt;br /&gt;ALT+F (Display the File menu) &lt;br /&gt;ALT+O (Display the Favorites menu)&lt;br /&gt;MMC Console Window Keyboard Shortcuts&lt;br /&gt;CTRL+P (Print the current page or active pane)&lt;br /&gt;ALT+Minus sign (-) (Display the window menu for the active console window)&lt;br /&gt;SHIFT+F10 (Display the Action shortcut menu for the selected item) &lt;br /&gt;F1 key (Open the Help topic, if any, for the selected item)&lt;br /&gt;F5 key (Update the content of all console windows)&lt;br /&gt;CTRL+F10 (Maximize the active console window)&lt;br /&gt;CTRL+F5 (Restore the active console window)&lt;br /&gt;ALT+ENTER (Display the Properties dialog box, if any, for the selected item) &lt;br /&gt;F2 key (Rename the selected item)&lt;br /&gt;CTRL+F4 (Close the active console window. When a console has only one console window, this shortcut closes the console)&lt;br /&gt;Remote Desktop Connection Navigation&lt;br /&gt;CTRL+ALT+END (Open the m*cro$oft Windows NT Security dialog box) &lt;br /&gt;ALT+PAGE UP (Switch between programs from left to right)&lt;br /&gt;ALT+PAGE DOWN (Switch between programs from right to left)&lt;br /&gt;ALT+INSERT (Cycle through the programs in most recently used order)&lt;br /&gt;ALT+HOME (Display the Start menu) &lt;br /&gt;CTRL+ALT+BREAK (Switch the client computer between a window and a full screen)&lt;br /&gt;ALT+DELETE (Display the Windows menu)&lt;br /&gt;CTRL+ALT+Minus sign (-) (Place a snapshot of the active window in the client on the Terminal server clipboard and provide the same functionality as pressing PRINT SCREEN on a local computer.)&lt;br /&gt;CTRL+ALT+Plus sign (+) (Place a snapshot of the entire client window area on the Terminal server clipboard and provide the same functionality as pressing ALT+PRINT SCREEN on a local computer.)&lt;br /&gt;m*cro$oft Internet Explorer Navigation&lt;br /&gt;CTRL+B (Open the Organize Favorites dialog box)&lt;br /&gt;CTRL+E (Open the Search bar)&lt;br /&gt;CTRL+F (Start the Find utility)&lt;br /&gt;CTRL+H (Open the History bar) &lt;br /&gt;CTRL+I (Open the Favorites bar)&lt;br /&gt;CTRL+L (Open the Open dialog box)&lt;br /&gt;CTRL+N (Start another instance of the browser with the same Web address)&lt;br /&gt;CTRL+O (Open the Open dialog box, the same as CTRL+L)&lt;br /&gt;CTRL+P (Open the Print dialog box) &lt;br /&gt;CTRL+R (Update the current Web page)&lt;br /&gt;CTRL+W (Close the current window)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27521655-1609749792985693872?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/1609749792985693872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=1609749792985693872' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/1609749792985693872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/1609749792985693872'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2006/11/100-keyboard-shortcuts.html' title='100 keyboard shortcuts'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27521655.post-3662678503942657455</id><published>2006-11-10T20:23:00.000-08:00</published><updated>2006-11-10T20:25:04.093-08:00</updated><title type='text'>SearchEngine Optimization</title><content type='html'>&lt;span style="font-weight: bold;"&gt;What is mean by SEO?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Simply SEO means "&lt;span style="font-weight: bold;"&gt;Search Engine Optimization&lt;/span&gt;".&lt;br /&gt;&lt;br /&gt;Search engine optimization is the term used to describe the marketing technique of preparing a website to enhance its chances of being ranked in the top results of a search engine once a relevant search is undertaken. A number of factors are important when optimizing a website, including the content and structure of the website's copy and page layout, the HTML meta-tags and the submission process.&lt;br /&gt;&lt;br /&gt;i.e. SEO is the process of improving web pages so that it ranks higher in search engine for targeted keywords with the ultimate goal of generating more revenue from the web site. There are many SEO techniques. In general, these techniques can be categorized as On-Page Optimization, On-Site Optimization, and Off-Site Optimization. There are also two schools of SEO: white hat SEO and black hat SEO. White hat SEOs are those that play by the rule (actually guidelines provided by search engines). Black hat SEOs are those that pushes the limit of SEOs and employ some questionable or prohibited techniques (according to the guidelines). These black hat SEO techniques are also commonly known as spam.&lt;br /&gt;&lt;br /&gt;Following are some of the SEO tips that help the new comers to get better result.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Optional but very important:&lt;/span&gt;&lt;br /&gt;A - Own your-domain-name-dot-com&lt;br /&gt;B - Host your site on a reliable server&lt;br /&gt;&lt;br /&gt;1 - Shorten the title to 55 chars&lt;br /&gt;2 - Add the robots tag&lt;br /&gt;3 - Place the robots.txt in your root on your server&lt;br /&gt;4 - Get rid of the js in the code and put it in an external file&lt;br /&gt;5 - Use css instead of color, size and font tags&lt;br /&gt;5 - Change the link buttons or js links in to text links&lt;br /&gt;6 - Make sure to have a site map page&lt;br /&gt;7 - Make sure you have 404 page&lt;br /&gt;8 - At the bottom of each page use menus as text links&lt;br /&gt;9 - Make sure your page code is not bigger than 100 K&lt;br /&gt;10 - Submit your site to ODP, Google and Yahoo Dir, make sure to select the right category&lt;br /&gt;11 - Pay special attention to your content&lt;br /&gt;12 - Try to get as much as relevant links you can&lt;br /&gt;13 - Read each search engines guide lines and follow them strictly&lt;br /&gt;14 - Don't spam&lt;br /&gt;15 - Don't use doorway pages&lt;br /&gt;16 - Don't cloak17 - And pray hard that the big G appreciates all your efforts&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27521655-3662678503942657455?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/3662678503942657455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=3662678503942657455' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/3662678503942657455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/3662678503942657455'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2006/11/searchengine-optimization.html' title='SearchEngine Optimization'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27521655.post-6189816239868957788</id><published>2006-11-08T01:22:00.000-08:00</published><updated>2006-11-08T01:25:02.131-08:00</updated><title type='text'>Top 10 HTML Email Mistakes</title><content type='html'>Following are some of the top mistakes occurs while creating an HTML email.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mistake #1: Not testing your campaign enough.&lt;/span&gt;&lt;br /&gt;Before you send an email out to your entire list, you should have sent at least 4 or 5 tests to yourself, and to all your test accounts. Whenever we send a newsletter, we send about a dozen tests before sending the final version. You should setup as many test accounts with free email providers as possible (like Yahoo!Mail, Hotmail, and Gmail). You might consider setting up accounts with Comcast and AOL, too (AOL accounts can be setup for as low as $4.95, if you call and ask). Leave them in their default settings. Don't tweak any of their junk mail filters, and don't add yourself to their address books. Check that your email isn't spam-filtered, your images aren't broken, each and every hyperlink works, your CSS is displaying properly, and that your unsubscribe link works.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Mistake #1.5: Did we mention not testing enough?&lt;/span&gt;&lt;br /&gt;Test, test test! Remember, once you hit send, there's no "undo."&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mistake #2: Trying to send HTML email with Outlook&lt;/span&gt;&lt;br /&gt;Lots of people try sending their HTML email newsletters with Microsoft Outlook, or Outlook Express. This is a big mistake. For starters, Outlook won't send your email in "multipart-alternative" format. Multipart format means that an HTML email is sent with a plain-text alternative embedded along with it. That way, if someone's email application can't read HTML email, the plain-text version displays instead. Also, Outlook will send all your images along as attachments, which won't always work. Images in HTML email must be hosted on a web server, and your HTML code should point to them with absolute paths. Add to all that the fact that Outlook won't help you track email clicks and opens, manage unsubscribes, or process and clean bouncebacks from your list. Finally, using your desktop email application to send email marketing campaigns is a bad idea because your ISP may suspend your account after a certain amount of bandwidth has been reached.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mistake #3: Using JavaScript or ActiveX in HTML email.&lt;/span&gt;&lt;br /&gt;Just about every single email application out there blocks JavaScript and ActiveX from working, as a security measure to prevent viruses. Make sure your code doesn't contain any JavaScript or ActiveX, such as on form submit buttons, pop-up window links, image pre-loaders, Flash movies, etc. If you're copying HTML from an existing web page, make sure you clean the code of all JavaScript.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mistake #4: Embedding CSS in the wrong place.&lt;/span&gt;&lt;br /&gt;Linked CSS files won't always work in HTML email, so you've got to use inline or embedded CSS. Normally, when you code a web page, you put the embedded CSS code in between your tags. But lots of email applications (especially browser based ones) strip out the HEAD and BODY tags of your HTML email, so your CSS will get stripped too. Embed your CSS just above the content, below your BODY tag. If you design web pages for a living, that will probably make you feel "dirty" but trust us---it'll work fine in your emails.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mistake #5: Over-ambitious CSS, and CSS-P.&lt;/span&gt;&lt;br /&gt;Don't even try to use CSS positioning. Sorry, but with HTML email, you're still stuck using a lot of tables and shim.gif's (for now). If you're not an HTML coding pro, and you're letting an application generate your HTML email code for you, just be sure to look through the code and check to make sure CSS is done according to our guidelines. While you're checking the code, make sure there's no DHTML, either (that'll break too).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mistake #6: Writing like a spammer.&lt;/span&gt;&lt;br /&gt;We all get spam. You know what it looks like. The subject lines are IN ALL CAPS, letters are highlighted bright red or bright blue, they SCREAM by using lots! of! exclamation! points!!!! and they use phrases like, "viagra, hottest, best, click now! limited time only!, and act now!" Don't be like that. Keep your subject lines brief and to the point. Keep your content relevant. Don't try to use gimmicky catch phrases. Avoid spammy words.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mistake #7: Forgetting to track clicks and opens.&lt;/span&gt;&lt;br /&gt;So many people worry and fuss over their code, that when it's time to finally send their email campaign, they forget to activate click and open tracking!.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mistake #8: Not including an unsubscribe link.&lt;/span&gt;&lt;br /&gt;Never forget to include an opt-out link in your emails. It's the law. In fact, you might place it near the top of your email, so that if people don't get lazy and click their "this is spam" button instead. You'd be surprised how many opt-in recipients click "this is spam" instead of unsubscribing. They either forget they opted in, or they don't trust that your opt-out link will work. Plus, many of them don't realize that the "junk" button "communicates" with and "trains" other spam filters to ignore your emails.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mistake #9: Sending emails "out of the blue."&lt;/span&gt;&lt;br /&gt;Say you've been collecting email addresses through an opt-in form on your website for years, but you've never had the time to send them anything. One day, you finally find the time to code your beautiful email newsletter, and you're ready to "blast it out to your list." Don't do it. If this is your very first email campaign, and these people haven't heard from you via email before, you need to send a quick "warmup" or "re-invite" campaign, to tell recipients, "We're really excited about our new monthly e-letter, and we just wanted to confirm your email address before we start sending. Click here to subscribe." If people haven't heard from you in years, and you suddenly start sending them emails, they've probably forgotten who you are, nevermind that they opted in. To avoid getting reported for spamming, send a preliminary warmup email to "cold lists" to re-confirm their permission.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mistake #10: Not using full paths in your images and hyperlinks.&lt;/span&gt;&lt;br /&gt;With HTML email, you need to host all your images on your server, then use absolute paths that point back to your server.&lt;br /&gt;&lt;br /&gt;More Reference : http://www.mailchimp.com/resources/top10_html_email_mistakes.phtml&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27521655-6189816239868957788?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/6189816239868957788/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=6189816239868957788' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/6189816239868957788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/6189816239868957788'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2006/11/top-10-html-email-mistakes.html' title='Top 10 HTML Email Mistakes'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27521655.post-4266938866690573665</id><published>2006-11-03T08:11:00.000-08:00</published><updated>2006-11-03T08:18:35.590-08:00</updated><title type='text'>10 Usability Principles of web design</title><content type='html'>1. &lt;span style="font-weight: bold;"&gt;Motivate&lt;/span&gt;&lt;br /&gt;             Design your site to meet specific user needs and goals. Use motivators to draw different               user "personae" into specific parts of your site.&lt;br /&gt;  2. &lt;span style="font-weight: bold;"&gt;User task flow&lt;/span&gt;&lt;br /&gt;             Who are your users? What are their tasks and online environment? For a site to be                       usable,  page flow must match workflow.&lt;br /&gt;  3. &lt;span style="font-weight: bold;"&gt;Architecture – it's 80% of usability&lt;/span&gt;&lt;br /&gt;             Build an efficient navigational structure. Remember – if they can't find it in 3 clicks,                       they're gone.&lt;br /&gt;  4. &lt;span style="font-weight: bold;"&gt;Affordance means obvious&lt;/span&gt;&lt;br /&gt;             Make controls understandable. Avoid confusion between emblems, banners, and                           buttons.&lt;br /&gt;  5. &lt;span style="font-weight: bold;"&gt;Replicate&lt;/span&gt;&lt;br /&gt;             Why reinvent the wheel? Use ergonomically designed templates for the most common                 8-12 pages.&lt;br /&gt;  6. &lt;span style="font-weight: bold;"&gt;Usability test along the way&lt;/span&gt;&lt;br /&gt;            Test early in design using low-fidelity prototypes. Don't wait until the end when it's too                late.Know the technology limitations Identify and optimize for target browsers and user               hardware. Test HTML, JavaScript, etc. for compatibility.&lt;br /&gt;  7. &lt;span style="font-weight: bold;"&gt;Know the technology limitations&lt;/span&gt;&lt;br /&gt;             Identify and optimize for target browsers and user hardware.Test HTML, JavaScript,                   etc for compatibility.&lt;br /&gt;  8. &lt;span style="font-weight: bold;"&gt;Know user tolerances&lt;/span&gt;&lt;br /&gt;             Users are impatient. Design for a 2-10 second maximum download. Reuse header                          graphics  so they can load from cache. Avoid excessive scrolling.&lt;br /&gt;  9.&lt;span style="font-weight: bold;"&gt; Multimedia – be discriminating&lt;/span&gt;&lt;br /&gt;             Good animation attracts attention to specific information, then stops. Too much                               movement distracts, slowing reading and comprehension.&lt;br /&gt; 10. &lt;span style="font-weight: bold;"&gt;Use a stats package&lt;/span&gt;&lt;br /&gt;             Monitor traffic through your site. Which pages pique user interest? Which pages                             make  users    leave? Adjust your site accordingly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27521655-4266938866690573665?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/4266938866690573665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=4266938866690573665' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/4266938866690573665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/4266938866690573665'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2006/11/10-usability-principles-of-web-design.html' title='10 Usability Principles of web design'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27521655.post-115117428704682737</id><published>2006-06-24T11:36:00.000-07:00</published><updated>2006-10-25T11:16:25.493-07:00</updated><title type='text'>Web bugs: hack or solution?</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;What is it?&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;A &lt;span style=""&gt;Web bug&lt;/span&gt; is an object that is embedded in a Web page or e-mail and is usually invisible to the user but allows checking that a user has viewed the page or e-mail. Alternative names are &lt;i style=""&gt;&lt;span style=""&gt;Web beacon&lt;/span&gt;, &lt;span style=""&gt;tracking bug&lt;/span&gt;, &lt;span style=""&gt;pixel tag&lt;/span&gt;, and &lt;span style=""&gt;clear gif&lt;/span&gt;.&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;Typically, a Web bug is a small (usually 1×1 pixels) transparent GIF image (or an image of the same color of the background) that is embedded in an HTML page, usually a page on the Web or the content of an e-mail. Whenever the user opens the page with a graphical browser or e-mail reader, the image is downloaded. This download requires the browser to request the image from the server storing it, allowing the server to take notice of the download. As a result, the organization running the server is informed of when the HTML page has been viewed.&lt;br /&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Anything other than image is used as a web bug?&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;Yes. Also uses a trick involving IFRAMEs for tracking the user information’s&lt;b style=""&gt;.&lt;br /&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;What information is sent to a server when a Web Bug is viewed?&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;These are the major information’s that send to the server,&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;The IP address of the      computer that fetched the Web Bug &lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;The URL of the page that the      Web Bug is located on &lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;The URL of the Web Bug image &lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;The time the Web Bug was      viewed &lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;The type of browser that      fetched the Web Bug image &lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;A previously set cookie value      &lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;How can I see a Web Bug on a page?&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;A Web Bug can be found by viewing the HTML source code of a Web page and searching for IMG tags. A Web Bug will typically have its HEIGHT and WIDTH parameters in the IMG tag set to 1. Also for the tag to be a bug, the image should be loaded from a different server then the rest of the Web page.&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;What kinds of uses does a Web Bug have in an Email message?&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ol start="1" type="1"&gt;&lt;li class="MsoNormal" style=""&gt;A Web Bug can be used to find      out if a particular Email message has been read by someone and if so, when      the message was read. &lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;A Web Bug can provide the IP      address of the recipient if the recipient is attempt to remain anonymous. &lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Within an organization, A Web      Bug can give an idea how often a message is being forwarded and read. &lt;/li&gt;&lt;/ol&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;What do Web Bugs in Email messages look lile?&lt;/b&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 12pt 0.5in;"&gt;Email Web Bugs are represented as 1-by-1 pixel IMG tags just like Web Bugs for Web pages. However, because the sender of the message already knows your Email address, they also include the Email address in the Web Bug URL. The Email address can be in plain text or encrypted. For example, here are two Web Bugs sent to me in junk Email messages: &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in;"&gt;&lt;img src="http://www.m0.net/m/logopen02.asp?" vid="3&amp;catid=370153037&amp;amp;email=SMITHS%40tiac.net&amp;quot;" alt=" " height="1" width="1" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://email.bn.com/cgi-bin/flosensing?x=ABYoAEhouX" /&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;Want to see a bugged page?&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Yes. For a demonstration of a bugged Yahoo profile, see: &lt;/p&gt;  &lt;pre&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;a href="http://profiles.yahoo.com/webbug2000"&gt;http://profiles.yahoo.com/webbug2000&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;  &lt;p class="MsoNormal" style=""&gt;This profile contains a visible Web Bug image that is being loaded from a server other than Yahoo. The Web Bug provides a log of everyone who has visited the profile page.&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Finally, &lt;span style=""&gt;Is there any method of removing Web Bugs from HTML pages?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;Not really. The technical problem is that there is no method of distinguishing Web Bugs from spacer GIFs which are used on Web pages for alignment purposes. Your best defense against Web Bugs is to turn off cookies.&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;Also you can prevent the email tracking by turning of the remote image loading. Almost all the standard mail clients like yahoo, gmail etc. are supporting this.&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;The IFRAME trick cannot be disabled by the standard countermeasure of turning off remote image loading. There may not be an easy way to disable it in today’s email software, short of turning off HTML email entirely&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27521655-115117428704682737?l=codlib.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codlib.blogspot.com/feeds/115117428704682737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27521655&amp;postID=115117428704682737' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/115117428704682737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27521655/posts/default/115117428704682737'/><link rel='alternate' type='text/html' href='http://codlib.blogspot.com/2006/06/web-bugs-hack-or-solution.html' title='Web bugs: hack or solution?'/><author><name>Jansan John</name><uri>http://www.blogger.com/profile/14430057553171350247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://bp1.blogger.com/_Fx5rfHL2_bU/SD_aF9lNA3I/AAAAAAAAB7c/XLtEOSKWvWQ/S220/IMG_1335(2).jpg'/></author><thr:total>0</thr:total></entry></feed>
