<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Programming Ideas, Logics, Tips and Tricks &#187; gmail</title>
	<atom:link href="http://www.sajithmr.me/tag/gmail/feed" rel="self" type="application/rss+xml" />
	<link>http://www.sajithmr.me</link>
	<description></description>
	<lastBuildDate>Mon, 23 Jan 2012 15:44:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Session/Cookie alone does not secure your web application &#8211; CSRF</title>
		<link>http://www.sajithmr.me/csrf</link>
		<comments>http://www.sajithmr.me/csrf#comments</comments>
		<pubDate>Thu, 12 Nov 2009 19:01:17 +0000</pubDate>
		<dc:creator>Mr Me</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[cookie]]></category>
		<category><![CDATA[csrf]]></category>
		<category><![CDATA[get]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[hacker]]></category>
		<category><![CDATA[post]]></category>
		<category><![CDATA[safety]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[session]]></category>
		<category><![CDATA[web application]]></category>

		<guid isPermaLink="false">http://www.sajithmr.me/?p=500</guid>
		<description><![CDATA[Guess what will happen if you add an image like below in your html page: &#60;img src=&#8221;http://mail.google.com/mail/?logout&#38;hl=en&#8221;  /&#62; It does not appear in page, but your google account in another window or another tab will get logoff. Now an external website could logout you from your gmail or orkut. IF you coded your website to [...]]]></description>
			<content:encoded><![CDATA[<p>Guess what will happen if you add an image like below in your html page:</p>
<p>&lt;img src=&#8221;http://mail.google.com/mail/?logout&amp;hl=en&#8221;  /&gt;</p>
<p>It does not appear in page, but your google account in another window or another tab will get logoff. Now an external website could logout you from your gmail or orkut.</p>
<p><img class="alignnone size-full wp-image-503" src="http://www.sajithmr.me/wp-content/uploads/2009/11/Gmail-Login-Gets-CSRF-Protection-2.jpg" alt="" width="290" height="245" /></p>
<p>IF you coded your website to delete a photo or object from the website, like this: www.domainname.com/photos/delete?id=221, you may think , since you are checking user authentication at server side, no one else can delete your file. But what if you are logged in one tab and in the second tab, you are loading another website (of hacker or attacker), he can place lots of hidden images with src = www.domainname.com/photos/delete?id=22 ( he can try with ids from 0 to 1000 or 10,000, and anyone of them may be your object)</p>
<p>Here the authentication is okay , because the cookies and session is already set in another tab, and it affects (update or delete) your content.</p>
<p>Those who think , I use POST method , so it is safe. Sorry, you are wrong. A javascript can also simulate a post method, and by using this, an external website can update your form (For example they can run a form submission for changing the email which you registered with and later they can reset password to hack your account)</p>
<p>It won&#8217;t happens if you use captcha. But for all forms it is very hard to use CAPTCHA everywhere. You can solve this attack using additional parameter (some string combination which is generated randomly) along with GET url or POST form submission.</p>
<p>For example, check the url to delete a mail in gmail.</p>
<p><span style="color: #0000ff;">http://mail.google.com/mail/?ui=2&amp;ik=42e598c952&amp;at=xn3j2ufyx273muje67ot1fsxsnbmnl&amp;<br />
view=up&amp;act=tr&amp;rt=j&amp;search=inbox</span></p>
<p>There is some extra string alone with useful information as parameter. So an external application cannot predict the exact url to delete a particular mail, so img with src= url fails here.</p>
<p>Same thing is also needed in POST method. Add one hidden field for random string and check the string before updating into database from Server.</p>
<p>This problem is called <a href="http://en.wikipedia.org/wiki/Cross-site_request_forgery" target="_blank">CSRF</a> &#8211; Cross Site Request Forgery</p>
<p>Thanks<br />
Sajith</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sajithmr.me/csrf/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How Gmail Video Chat Works ?</title>
		<link>http://www.sajithmr.me/how-gmail-video-chat-works</link>
		<comments>http://www.sajithmr.me/how-gmail-video-chat-works#comments</comments>
		<pubDate>Tue, 18 Nov 2008 10:16:29 +0000</pubDate>
		<dc:creator>Mr Me</dc:creator>
				<category><![CDATA[webworld]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[behind]]></category>
		<category><![CDATA[chat]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[gear]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[rtp]]></category>
		<category><![CDATA[toolbar]]></category>
		<category><![CDATA[udp]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.sajithmr.com/?p=368</guid>
		<description><![CDATA[Recently Gmail Introduced Video Chat. For a platform, to support the video chat you need to install the flash activex plugin. You can get the plugin from http://mail.google.com/videochat But when you click on Install voice and video chat button, Some of you see the page which shows &#8220;The installer should complete in seconds.   If you [...]]]></description>
			<content:encoded><![CDATA[<p>Recently Gmail Introduced Video Chat. For a platform, to support the video chat you need to install the flash activex plugin.</p>
<p>You can get the plugin from http://mail.google.com/videochat</p>
<p>But when you click on Install voice and video chat button, Some of you see the page which shows</p>
<p><strong><em>&#8220;The installer should complete in seconds.</em></strong></p>
<p><em> </em></p>
<p> </p>
<p><strong><em>If you are having trouble with the download, click here. &#8220; </em></strong></p>
<p>But some other see a auto installer page which downloads the Setup.exe file and automatically start installation and prompts you to restart the browser.</p>
<p><a href="http://www.sajithmr.com/wp-content/uploads/2008/11/downloading-the-chat.jpg"><img class="alignnone size-full wp-image-369" title="downloading-the-chat" src="http://www.sajithmr.com/wp-content/uploads/2008/11/downloading-the-chat.jpg" alt="" width="500" height="346" /></a></p>
<p>Who did this installation without any security problem or violation and we saw a different window which shows the progress bar of the installation. This happens only when , if you have<strong> google tool bar</strong> installed on your browser , or <strong>google desktop</strong>, or<strong> google gears</strong>. For those browsers if the above three is not present, the previous message gets result , and which provide the direct link of the GoogleVoiceAndVideoSetup.exe</p>
<p>It is<a href="http://dl.google.com/googletalk/googletalkplugin/GoogleVoiceAndVideoSetup.exe" target="_blank"> http://dl.google.com/googletalk/googletalkplugin/GoogleVoiceAndVideoSetup.exe</a></p>
<p>My Chrome browser does not support automatic installation. Because it is a new guest for my OS and the google additional plugin installation happend before its arrival. So Only Download and manual installation works in that case.</p>
<p> </p>
<p>Then what the script exectued behind is </p>
<p> </p>
<p class="MsoNormal"><span><strong><span style="color: #ff6600;">window.google.update.oneclick.install (install via click) </span></strong></span></p>
<p class="MsoNormal">and </p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"><span><strong><span style="color: #ff6600;">location.href =</span></strong><span><strong><span style="color: #ff6600;">  </span></strong></span><strong><span style="color: #ff6600;">http://dl.google.com/googletalk/googletalkplugin/GoogleVoiceAndVideoSetup.exe</span></strong> (install manually )</span></p>
<p class="MsoNormal">Note the first bit of script window.google , A new object for google, which is created as the result of any one of the above mentioned google services. My Chrome Browser (Since he is a new member) does not know about the window.google (he knows the default methods like window.location, window.document)</p>
<p class="MsoNormal">Thats allabout the installation part. </p>
<p class="MsoNormal">Now About the Video Chat. Obviously it is a flash based video chat mechanism , but the difference is it uses rtcp and udp protocol for video /audio chatting. Did you check the speed of your video chat ? Amaze  rite ?</p>
<p> </p>
<p> </p>
<p>Then lets check about the video chat request.</p>
<p>When you request someone for a video chat, google ajax posts the following data</p>
<p> </p>
<p class="MsoNormal"><span><span style="color: #3366ff;">req4_jid</span><span><span style="color: #3366ff;"> </span></span><span style="color: #3366ff;">c2143377409</span><span style="color: #3366ff;"></span></span></p>
<p class="MsoNormal"><span><span style="color: #3366ff;">req4_json</span><span><span style="color: #3366ff;">            </span></span><span style="color: #3366ff;">["jc","xyz@gmail.com","c2143377409",[["192.168.1.100","3801","video_rtp","dgE9SG8VMVdQFrYo","gyB0pRw5dkoEtq21","1","udp","0","local","0"]]]</span><span style="color: #3366ff;"></span></span></p>
<p class="MsoNormal"><span><span style="color: #3366ff;">req4_type</span><span><span style="color: #3366ff;">          </span></span><span style="color: #3366ff;">j</span><span style="color: #3366ff;"></span></span></p>
<p class="MsoNormal"><span><span style="color: #3366ff;">req5_jid</span><span><span style="color: #3366ff;"> </span></span><span style="color: #3366ff;">c2143377409</span><span style="color: #3366ff;"></span></span></p>
<p class="MsoNormal"><span><span style="color: #3366ff;">req5_json</span><span><span style="color: #3366ff;">            </span></span><span style="color: #3366ff;">["jc","xyz@gmail.com","c2143377409",[["116.68.66.85","3784","rtcp","iqV9/3HhhqkjQ4kp","wMSi7BsiOVNtnbJR","0.9","udp","0","stun","0"]]]</span><span style="color: #3366ff;"></span></span></p>
<p class="MsoNormal"><span><span style="color: #3366ff;">req5_type</span><span><span style="color: #3366ff;">          </span></span><span style="color: #3366ff;">j</span></span></p>
<p class="MsoNormal"><a href="http://www.sajithmr.com/wp-content/uploads/2008/11/chatstarts.jpg"><img class="alignnone size-full wp-image-370" title="chatstarts" src="http://www.sajithmr.com/wp-content/uploads/2008/11/chatstarts.jpg" alt="" width="230" height="374" /></a></p>
<p class="MsoNormal">Here xyz@gmail.com is the person , to whom you are going to chat. It sends the video_rtp protocol parameters. To know more about rtcp and udp go to: <a href="http://www.javvin.com/protocolRTCP.html" target="_blank">http://www.javvin.com/protocolRTCP.html</a></p>
<p class="MsoNormal"><span>Here 192.168.1.100 is my local area ip (LAN) and 116.68.66.85 is my internet IP address and the numbers starts in 3000 are the port number for the protocol</span></p>
<p class="MsoNormal">In addition to this, google also sends its usual parameters like mouse movement detector (To know the state of a chatter, idle or busy / normal )</p>
<p class="MsoNormal">It also sends the cpu speed info to google server to know about the video processing time. And your bandwidth and speed of internet is already there in google&#8217;s hand (See my post on <a href="http://www.sajithmr.com/gmail-architecture/" target="_blank">Gmail Architecture</a> to know about the 1pix speed calculation method of gmail)</p>
<p> </p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"><span><span style="color: #008080;">count</span><span><span style="color: #008080;">    </span></span><span style="color: #008080;">3</span><span style="color: #008080;"></span></span></p>
<p class="MsoNormal"><span><span style="color: #008080;">req0_evtype</span><span><span style="color: #008080;">       </span></span><span style="color: #008080;">mousemove</span><span style="color: #008080;"></span></span></p>
<p class="MsoNormal"><span><span style="color: #008080;">req0_time</span><span><span style="color: #008080;">          </span></span><span style="color: #008080;">263866</span><span style="color: #008080;"></span></span></p>
<p class="MsoNormal"><span><span style="color: #008080;">req0_type</span><span><span style="color: #008080;">          </span></span><span style="color: #008080;">i</span><span style="color: #008080;"></span></span></p>
<p class="MsoNormal"><span><span style="color: #008080;">req1_focused</span><span><span style="color: #008080;">     </span></span><span style="color: #008080;">1</span><span style="color: #008080;"></span></span></p>
<p class="MsoNormal"><span><span style="color: #008080;">req1_type</span><span><span style="color: #008080;">          </span></span><span style="color: #008080;">cf</span><span style="color: #008080;"></span></span></p>
<p class="MsoNormal"><span><span style="color: #008080;">req2_jid</span><span><span style="color: #008080;"> </span></span><span style="color: #008080;"></span></span></p>
<p class="MsoNormal"><span><span style="color: #008080;">req2_json</span><span><span style="color: #008080;">          </span></span><span style="color: #008080;">["mf","mf1.0","1.0.2.0",2,{"caps":7,"cpuSpeed":1664,"cpus":2}]</span><span style="color: #008080;"></span></span></p>
<p class="MsoNormal"><span><span style="color: #008080;">req2_type</span><span><span style="color: #008080;">          </span></span><span style="color: #008080;">j</span></span></p>
<p> </p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Gmail sends request for every 3 seconds, and if your counterpart accepts the video chat invitation, your chat iframe loads with a flash object tag .</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"><span><span style="color: #800080;">&lt;embed id=&#8221;flash_yj_c_player2&#8243; wmode=&#8221;window&#8221; pluginspage=&#8221;http://www.macromedia.com/go/getflashplayer&#8221; type=&#8221;application/x-shockwave-flash&#8221; seamlesstabbing=&#8221;false&#8221; allowfullscreen=&#8221;true&#8221; allowscriptaccess=&#8221;sameDomain&#8221; bgcolor=&#8221;#000000&#8243; flashvars=&#8221;dbg=true&amp;ap=player&amp;nm=yj_c_player2&amp;cb=Recv_yj_c_player2&amp;os=windows&amp;plugin=true&amp;&#8221; src=&#8221;im/media-player.swf?ver=1.1.6&#8243; style=&#8221;width: 100%; height: 100%;&#8221; name=&#8221;yj_c_player2&#8243; quality=&#8221;high&#8221;/&gt;</span></span></p>
<p class="MsoNormal"><a href="http://www.sajithmr.com/wp-content/uploads/2008/11/fullchat.jpg"><img class="alignnone size-full wp-image-371" title="fullchat" src="http://www.sajithmr.com/wp-content/uploads/2008/11/fullchat.jpg" alt="" width="434" height="566" /></a></p>
<p class="MsoNormal">And this flash application does the later works.  This flash application communicate with google media server with Real Time Protocol and your video chat happens that way. The flash activex plugin support helps in accessing your webcam and mic.  Good day , have a nice chat &#8230; </p>
<p class="MsoNormal">Mail Me for more information</p>
<p class="MsoNormal">Thanks and Regards</p>
<p class="MsoNormal">Sajith</p>
<p> </p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.sajithmr.me/how-gmail-video-chat-works/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Contact Grabber</title>
		<link>http://www.sajithmr.me/contact-grabber</link>
		<comments>http://www.sajithmr.me/contact-grabber#comments</comments>
		<pubDate>Thu, 06 Nov 2008 10:55:51 +0000</pubDate>
		<dc:creator>Mr Me</dc:creator>
				<category><![CDATA[Downloads]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php source code]]></category>
		<category><![CDATA[access]]></category>
		<category><![CDATA[AOL]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[contact]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[fetch]]></category>
		<category><![CDATA[get]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[grab]]></category>
		<category><![CDATA[grabber]]></category>
		<category><![CDATA[Hotmail]]></category>
		<category><![CDATA[Indiatimes]]></category>
		<category><![CDATA[Linkedin]]></category>
		<category><![CDATA[lycos]]></category>
		<category><![CDATA[MySpace]]></category>
		<category><![CDATA[orkut]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[Rediff]]></category>
		<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://www.sajithmr.com/?p=353</guid>
		<description><![CDATA[If you are a social media website developer , sometimes you might search for grabbing contacts from a particular email account if the password is given. I also did the same.  In most of the cases it did not work properly. But recently i got a contact grabber from phpclasses.org which works perfectly on Gmail, [...]]]></description>
			<content:encoded><![CDATA[<p>If you are a social media website developer , sometimes you might search for grabbing contacts from a particular email account if the password is given. I also did the same.  In most of the cases it did not work properly. But recently i got a contact grabber from <a href="http://www.phpclasses.org" target="_blank">phpclasses.org</a> which works perfectly on <strong>Gmail</strong>, <strong>Hotmail</strong>, <strong>Rediff</strong>, <strong>Yahoo</strong>, <strong>Orkut</strong>, <strong>MySpace</strong>, <strong>Indiatimes</strong>, <strong>Linkedin</strong> , <strong>AOL</strong> and <strong>lycos</strong></p>
<div id="attachment_355" class="wp-caption alignnone" style="width: 371px"><a href="http://www.sajithmr.com/wp-content/uploads/2008/11/grabber.jpg"><img class="size-full wp-image-355" title="Contact Grabber " src="http://www.sajithmr.com/wp-content/uploads/2008/11/grabber.jpg" alt="screen shot" width="361" height="225" /></a><p class="wp-caption-text">screen shot</p></div>
<p>But the zip file i got is not well arranged, so it shows some errors . I arranged it in proper way and uploaded here:</p>
<p><span style="text-decoration: underline;">Download:</span></p>
<p><a href="http://sajithmr.com/downloads/grabber.zip" target="_self"><img class="alignnone size-thumbnail wp-image-354" title="winzip_180x180" src="http://www.sajithmr.com/wp-content/uploads/2008/11/winzip_180x180-150x150.gif" alt="" width="98" height="98" /></a></p>
<p><a title="Contact Grabber" href="http://sajithmr.com/downloads/grabber.zip" target="_self">http://sajithmr.com/downloads/grabber.zip</a></p>
<p><span style="color: #808080;"><em>(Under GNU Public License)</em></span></p>
<p>Using this <strong>php code</strong> , you can <strong>export the email contacts</strong> as csv file.</p>
<p>Here is the actual source website : <a href="http://www.phpclasses.org/browse/package/3895.html" target="_blank">http://www.phpclasses.org/browse/package/3895.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sajithmr.me/contact-grabber/feed</wfw:commentRss>
		<slash:comments>46</slash:comments>
		</item>
		<item>
		<title>Find who is invisible in gmail chat (Gtalk)</title>
		<link>http://www.sajithmr.me/find-who-is-invisible-in-gmail-chat-gtalk</link>
		<comments>http://www.sajithmr.me/find-who-is-invisible-in-gmail-chat-gtalk#comments</comments>
		<pubDate>Tue, 04 Nov 2008 10:47:04 +0000</pubDate>
		<dc:creator>Mr Me</dc:creator>
				<category><![CDATA[webworld]]></category>
		<category><![CDATA[chat]]></category>
		<category><![CDATA[chatting]]></category>
		<category><![CDATA[check]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[gtalk]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[invisible]]></category>
		<category><![CDATA[off the record]]></category>

		<guid isPermaLink="false">http://www.sajithmr.com/?p=347</guid>
		<description><![CDATA[Many people already blogged about this article. I made the same experiment. It works. If you want to find say xyz@gmail.com is invisible or not. Open your gtalk app and type this email address in top search textbox Click the profile, it opens in new window as usual Click on the down arrow button in [...]]]></description>
			<content:encoded><![CDATA[<p>Many people already blogged about this article. I made the same experiment. It works.<br />
If you want to find say xyz@gmail.com is invisible or not.<br />
Open your gtalk app and type this email address in top search textbox</p>
<p>Click the profile, it opens in new window as usual</p>
<p>Click on the down arrow button in the top right corner of the window, and you can see <strong>Go off the record</strong> link there.</p>
<p>And type any chat, say &#8220;hi&#8221;</p>
<h3>You will get a red text showing the<strong><em> &#8220;person is offline , can&#8217;t receive the message right now</em></strong> &#8221; implies the  <span style="color: #800000;"><strong>person is offline</strong></span></h3>
<p>If this message does not appear, it means the <span style="text-decoration: underline;"><span style="color: #339966;"><strong>user is invisible</strong></span></span></p>
<p>To know more about gmail and gmail chat visit my post series</p>
<p><a title="Gmail Architecture" href="http://www.sajithmr.me/series/gmail-architecture/">http://www.sajithmr.me/series/gmail-architecture/</a></p>
<p>Regards</p>
<p>Sajith</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sajithmr.me/find-who-is-invisible-in-gmail-chat-gtalk/feed</wfw:commentRss>
		<slash:comments>76</slash:comments>
		</item>
		<item>
		<title>Gmail Chat Implementation</title>
		<link>http://www.sajithmr.me/gmail-chat-implementation</link>
		<comments>http://www.sajithmr.me/gmail-chat-implementation#comments</comments>
		<pubDate>Wed, 07 May 2008 10:30:34 +0000</pubDate>
		<dc:creator>Mr Me</dc:creator>
				<category><![CDATA[Downloads]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[chat]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[gtalk]]></category>
		<category><![CDATA[implementation]]></category>
		<category><![CDATA[notification]]></category>

		<guid isPermaLink="false">http://www.sajithmr.com/gmail-chat-implementation/</guid>
		<description><![CDATA[Today i implemented gmail chat window , not an ajax chat with a chat server, but its client side implementation. Here you can see the demo: http://www.sajithmr.com/gtalk/ Take this link in a new tab or window, and take any other website without closing it. After 3 seconds , (Consider it as a new chat message [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.sajithmr.com/wp-content/uploads/2008/05/screenshot.jpg" /></p>
<p>Today i implemented gmail chat window , not an ajax chat with a chat server, but its client side implementation.</p>
<p>Here you can see the demo: <font size="4"> <a href="http://www.sajithmr.com/gtalk/" title="Gmail Chat Implementation" target="_blank">http://www.sajithmr.com/gtalk/</a></font></p>
<p>Take this link in a new tab or window, and take any other website without closing it.</p>
<p>After 3 seconds , (Consider it as a new chat message arrived situation) you can see the google chat notification sound , and title changing. (I didn&#8217;t get the actual gtalk notification sound, so i used windows notify.wav file )</p>
<p>You know google (gmail) implemented its sound notification is  via swf object. Here  me too done the same.</p>
<p>I wrote two function to check whether the browser is in focus or not.</p>
<pre lang="html"></pre>
<p>Here is the functions:</p>
<pre lang="javascript">
function lostFocus()
{
document.title = 'Sajith M.R Says...';
state = 'nonfocus';

played =  0 ;

changeColorRed();

alterTitle();

}

function gotFocus()
{
document.title = 'Gmail Inbox(1)';

state = 'focus';

played = 0 ;
}</pre>
<p>The    alterTitle() function calls in 3 seconds setTimeOut manner.</p>
<pre lang="javascript">
function alterTitle()
{

if(state =='nonfocus')

{
if ( document.title == 'Gmail Inbox(1)')
{

if(played == 0)
{
soundManager.play('notify');
played = 1;
}

document.title = 'Sajith M.R Says...';

}
else
document.title = 'Gmail Inbox(1)';

setTimeout("alterTitle()",3000);

}
}</pre>
<p>The soundmanager.js file handles the swf flash object and sound triggering.</p>
<p>&lt;script type=&#8221;text/javascript&#8221; src=&#8221;script/soundmanager.js&#8221;&gt;&lt;/script&gt;</p>
<p>These three simple scripts together created this demo:<font size="4"> <a href="http://www.sajithmr.com/gtalk/" title="Gmail Chat Implementation" target="_blank">http://www.sajithmr.com/gtalk/</a></font></p>
<p>If you want the whole source code , mail me: <a href="mailto://admin@sajithmr.com">admin@sajithmr.com </a></p>
<p>Comment Please &#8230;</p>
<p>Regards</p>
<p>Sajith.M.R<br />
<a href="http://www.sajith.name/" title="Sajith">http://www.sajith.name </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sajithmr.me/gmail-chat-implementation/feed</wfw:commentRss>
		<slash:comments>36</slash:comments>
		</item>
		<item>
		<title>Stylish Gmail Chat Status</title>
		<link>http://www.sajithmr.me/stylish-gmail-chat-status</link>
		<comments>http://www.sajithmr.me/stylish-gmail-chat-status#comments</comments>
		<pubDate>Tue, 22 Apr 2008 05:16:12 +0000</pubDate>
		<dc:creator>Mr Me</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[chat]]></category>
		<category><![CDATA[emoticons]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[status]]></category>
		<category><![CDATA[stylish]]></category>
		<category><![CDATA[unicode]]></category>

		<guid isPermaLink="false">http://www.sajithmr.com/stylish-gmail-chat-status/</guid>
		<description><![CDATA[You are absolutely a gmail user, because you visited my technical blog. If you like gmail chat also, here is some small tips you can play with. Always set some attracting status message which suit to your character. 1) If you wan to make bold , just add Astrix (*) before and after a particular [...]]]></description>
			<content:encoded><![CDATA[<p>You are absolutely a gmail user, because you visited my technical blog.  If you like gmail chat also, here is some small tips you can play with.</p>
<p>Always set some attracting status message which suit to your character.</p>
<p><strong>1) </strong></p>
<p>If you wan to make <strong>bold , </strong>just add Astrix (*) before and after a particular word.</p>
<p>Eg: if you want status like below:</p>
<p><span style="color: #339966;">&#8220;The <strong>score</strong> never interested me, only the game.&#8221;</span></p>
<p>Set your status as:</p>
<p><span style="color: #993300;">&#8220;The *score* never interested me, only the game.&#8221;</span></p>
<p><strong> 2)</strong></p>
<p>If you want to make it in italics, like below</p>
<p><span style="color: #333399;"> </span><span style="color: #333399;">&#8220;The score <em>never interested</em> me, only the game.&#8221;</span></p>
<p>do this:</p>
<p><span style="color: #333399;"> </span><span style="color: #333399;">&#8220;The score  _never interested_  me, only the game.&#8221;</span></p>
<p>(dont remember the white space after _ and before _)</p>
<p>Also you can add Unicode character in your status. What to do is select some Unicode character from some website or <a href="http://biega.com/special-char.html" target="_blank">here</a> and paste on your status message . (not the Unicode number, but the character)</p>
<p>You can use gmail chat imoticons also as your status message</p>
<table border="0">
<tbody>
<tr bgcolor="#c3d9ff">
<td width="85">
<p align="center">Emoticon</p>
</td>
<td width="85">
<p align="center">Key Combination</p>
</td>
</tr>
<tr>
<td>
<p align="center"><img src="http://mail.google.com/mail/help/images/screenshots/chat/heart.gif" alt="" /></p>
</td>
<td>
<p align="left">&lt;3</p>
</td>
</tr>
<tr>
<td>
<p align="center"><img src="http://mail.google.com/mail/help/images/screenshots/chat/monkey.gif" alt="" /><br />
It&#8217;s a monkey!</td>
<td>
<p align="left"> <img src='http://www.sajithmr.me/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> |)</p>
</td>
</tr>
<tr>
<td>
<p align="center"><img src="http://mail.google.com/mail/help/images/screenshots/chat/rockout.gif" alt="" /><br />
Rock out.</td>
<td>
<p align="left">\m/</p>
</td>
</tr>
<tr>
<td>
<p align="center"><img src="http://mail.google.com/mail/help/images/screenshots/chat/shocked.gif" alt="" /></p>
</td>
<td>
<p align="left">: &#8211; o</p>
</td>
</tr>
<tr>
<td>
<p align="center"><img src="http://mail.google.com/mail/help/images/screenshots/chat/grin.gif" alt="" /></p>
</td>
<td>
<p align="left">: D</p>
</td>
</tr>
<tr>
<td>
<p align="center"><img src="http://mail.google.com/mail/help/images/screenshots/chat/frown.gif" alt="" /></p>
</td>
<td>
<p align="left">: (</p>
</td>
</tr>
<tr>
<td>
<p align="center"><img src="http://mail.google.com/mail/help/images/screenshots/chat/angry.gif" alt="" /></p>
</td>
<td>
<p align="left">x &#8211; (</p>
</td>
</tr>
<tr>
<td>
<p align="center"><img src="http://mail.google.com/mail/help/images/screenshots/chat/cool.gif" alt="" /></p>
</td>
<td>
<p align="left">B &#8211; )</p>
</td>
</tr>
<tr>
<td>
<p align="center"><img src="http://mail.google.com/mail/help/images/screenshots/chat/cry.gif" alt="" /></p>
</td>
<td>
<p align="left">: &#8216; (</p>
</td>
</tr>
<tr>
<td>
<p align="center"><img src="http://mail.google.com/mail/help/images/screenshots/chat/equal_grin.gif" alt="" /></p>
</td>
<td>
<p align="left">= D</p>
</td>
</tr>
<tr>
<td>
<p align="center"><img src="http://mail.google.com/mail/help/images/screenshots/chat/wink.gif" alt="" /></p>
</td>
<td>
<p align="left">; )</p>
</td>
</tr>
<tr>
<td>
<p align="center"><img src="http://mail.google.com/mail/help/images/screenshots/chat/straightface.gif" alt="" /></p>
</td>
<td>
<p align="left">: &#8211; |</p>
</td>
</tr>
<tr>
<td>
<p align="center"><img src="http://mail.google.com/mail/help/images/screenshots/chat/equal_smile.gif" alt="" /></p>
</td>
<td>
<p align="left">= )</p>
</td>
</tr>
<tr>
<td>
<p align="center"><img src="http://mail.google.com/mail/help/images/screenshots/chat/nose_grin.gif" alt="" /></p>
</td>
<td>
<p align="left">: &#8211; D</p>
</td>
</tr>
<tr>
<td>
<p align="center"><img src="http://mail.google.com/mail/help/images/screenshots/chat/wink_big_nose.gif" alt="" /></p>
</td>
<td>
<p align="left">; ^ )</p>
</td>
</tr>
<tr>
<td>
<p align="center"><img src="http://mail.google.com/mail/help/images/screenshots/chat/wink_nose.gif" alt="" /></p>
</td>
<td>
<p align="left">; &#8211; )</p>
</td>
</tr>
<tr>
<td>
<p align="center"><img src="http://mail.google.com/mail/help/images/screenshots/chat/nose_smile.gif" alt="" /></p>
</td>
<td>
<p align="left">: &#8211; )</p>
</td>
</tr>
<tr>
<td>
<p align="center"><img src="http://mail.google.com/mail/help/images/screenshots/chat/slant.gif" alt="" /></p>
</td>
<td>
<p align="left">: &#8211; /</p>
</td>
</tr>
<tr>
<td>
<p align="center"><img src="http://mail.google.com/mail/help/images/screenshots/chat/tongue.gif" alt="" /></p>
</td>
<td>
<p align="left">: P</p>
</td>
</tr>
</tbody>
</table>
<p>I got some more from another reader Jackie&#8217;s comment. They are:</p>
<p>~ @ ~ poop<br />
[:|] robot<br />
: ( | ) monkey<br />
: ( : ) cow<br />
V . v . V crab</p>
<p>(remove space between letters, i put space to escape from wordpress editor )</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sajithmr.me/stylish-gmail-chat-status/feed</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>Gmail Architecture</title>
		<link>http://www.sajithmr.me/gmail-architecture</link>
		<comments>http://www.sajithmr.me/gmail-architecture#comments</comments>
		<pubDate>Tue, 25 Mar 2008 19:53:31 +0000</pubDate>
		<dc:creator>Mr Me</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[webworld]]></category>
		<category><![CDATA[]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[mail]]></category>

		<guid isPermaLink="false">http://www.sajithmr.com/gmail-architecture/</guid>
		<description><![CDATA[Gmail is the best application website i ever seen. Simple implementation, Super Ajax, Cute Chatting, Status Messages, Fast Mail Checking, Live updating and its features are endless as my wordpress database wont withstand when you type: www.gmail.com, the following action will happen. See it is very interesting. Script1 It first load the javascript file : [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.sajithmr.com/wp-content/uploads/2008/03/gmail-logo1.jpg" alt="Gmail Logo" /><br />
Gmail is the best application website i ever seen. Simple implementation, Super Ajax, Cute Chatting, Status Messages, Fast Mail Checking, Live updating and its features are endless as my wordpress database wont withstand</p>
<p>when you type: www.gmail.com, the following action will happen. See it is very interesting.</p>
<p>Script1<br />
<u>It first load the javascript file : https://mail.google.com/mail?view=page&amp;name=browser&amp;ver=1k96igf4806cy</u></p>
<p>It checks the browser type, os etc</p>
<p>the function <strong>navigator.userAgent.toLowerCase()</strong> checks with <font color="#008000">opera, msie,mac,gecko,safari,palmsource,regking,windows ce,avantgo,stb,pda; sony/com2</font>  etc browsers</p>
<p>that is script 1&#8242;s job.</p>
<p><u>Script 2 calculate the round trip time for a 1 pixel image.</u> This is for finding the internet speed of the user</p>
<p><font color="#008000"><strong>function</strong></font> GetRoundtripTimeFunction(start)<br />
{<br />
<strong><font color="#008000"> return </font></strong><font color="#008000"><font color="#000000">f</font></font>unction()<br />
{<br />
<font color="#008000"><strong>var </strong></font>end = (new Date()).getTime();<br />
SetGmailCookie(&#8220;GMAIL_RTT&#8221;, (end &#8211; start));</p>
<p>}<br />
}</p>
<p><u>Since gmail uses iframes , this script also make sure to load the actual home</u><br />
<strong><font color="#008080">top.location = self.location.href</font></strong></p>
<p><strong>I</strong>t also set cookie to show which of the google service is using.</p>
<p><strong>T</strong>hen loads the login form and set focus on password field.</p>
<p><img src="http://www.sajithmr.com/wp-content/uploads/2008/03/gmail-login.jpg" alt="Gmail Login" /></p>
<p><u>Script 3 handles the https connection and cookie settings for secured login</u></p>
<p><em>Yet the web 2.0 concept is on the peak, gmail uses table layout design instad of div style designs <img src='http://www.sajithmr.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em></p>
<p>Gmail&#8217;s login form &#8216;s action is pointing to <font color="#ff6600">&#8220;https://www.google.com/accounts/ServiceLoginAuth?service=mail&#8221;</font></p>
<p>This is the general url for google account login. Here <strong>service=mail</strong> parameter indicates , this is gmail logging</p>
<p>When the logging verification done, the page is redirected into corresponding service by javascript:</p>
<p><font color="#0000ff">location.replace(&#8220;http://www.google.co.in/accounts/SetSID?&#8230;&#8230;etc etc&#8221;);</font></p>
<p>After setting proper session and cookies for login, the non secured site http://mail.google.com/mail page automatically get refresh by this meta tag:<br />
<font color="#339966"> &lt;meta content=&#8221;0;URL=http://mail.google.com/mail/&#8221; http-equiv=&#8221;Refresh&#8221;/&gt;</font></p>
<p>When loading the mail page after setting proper login sessions, around 28 ajax web request begin to start, and load all the mails, labels, channels etc</p>
<p>The above mentioned all javascript  is also here in this mail loading page</p>
<p>The first division (div) inside the body tag is that for loading. A while text &#8220;loading&#8230;&#8221; with red backgroud.<br />
<strong> &lt;div class=&#8221;msg&#8221;&gt; <font color="#000000">Loading… </font>&lt;/div&gt;</strong></p>
<p>This is the waiting symbol for all the ajax call to load</p>
<p><img src="http://www.sajithmr.com/wp-content/uploads/2008/03/loading.jpg" alt="Loading" /></p>
<p>There is also a timer is working to check the loading time of ajax requests. If it takes more time than expected  (or calculated), it show this error <em>&#8220;This seems to be taking longer than usual&#8221;</em></p>
<p>Automatically they provide navigation links for basic html version.</p>
<p>The total page of gmail is created by a set of iframes<br />
viz</p>
<p>HIST_IFRAME<br />
SOUND_IFRAME<br />
CANVAS_IFRAME<br />
JS_IFRAME</p>
<p>The Sound_Iframe session loads a flash object (shock wave file) for playing the sound , when chat works. (Google chat indicator)</p>
<p><img src="http://www.sajithmr.com/wp-content/uploads/2008/03/chatwindow.jpg" alt="Chat window" /></p>
<p><strong><font color="#339966">&lt;embed id=&#8221;flash_object&#8221; type=&#8221;application/x-shockwave-flash&#8221; pluginspage=&#8221;http://www.macromedia.com/go/getflashplayer&#8221; quality=&#8221;high&#8221; style=&#8221;position: absolute; top: 0px; left: 0px; height: 100px; width: 100px;&#8221; src=&#8221;im/sound.swf&#8221;/&gt;</font></strong></p>
<p>Gmail saves each sections- labels,  inbox, mails etc in array with a unique id. This unique id is for checking the updations on the fly using ajax.</p>
<p>For example : <font color="#0000ff">http://mail.google.com/mail/?ui=2&amp;ik=42e598c952&amp;view=tl&amp;start=50&amp;num=70&amp;auto=1&amp;ari=120&amp;rt=j&amp;search=inbox</font></p>
<p>The above url pics all the data as javascript array format. Check this link after logging in gmail. You can see your labels, your from email accounts, your settings,<br />
your last arrived 70 emails subject and from etc information in javascript array format.</p>
<p>This is the url which is to be called when you click older and newer mail (pagination below)</p>
<p>Gmail always call this url : <font color="#0000ff">http://mail.google.com/mail/channel/bind?at=xn3j2zpul6ptan694kr6javrldi43s&amp;VER=6&amp;it=93079&amp;SID=584B451AB93DBDC&amp;RID=16351&amp;zx=lniy7w-6psisw&amp;t=1</font></p>
<p>(leave the parameters value) for checking updatations. This is gmails rpc checking for new updations .</p>
<p>If there is any updation new rpc with post method automatically called to get new data. The calling url is same , the one above<br />
<font color="#0000ff"> http://mail.google.com/mail/?ui=2&amp;ik=42e598c952&amp;view=tl&amp;start=0&amp;num=70&amp;auto=1&amp;ari=120&amp;rt=j&amp;search=inbox</font></p>
<p>It results new data as javascript array format. The rest of the arrangements are handled by the script from client side.</p>
<p>Whenever you open a mail from inbox, the browser send another request for loading the sponsered links (advtisement) though this rpc<br />
<font color="#0000ff"> http://mail.google.com/mail/?ui=2&amp;ik=42e598c952&amp;view=ad&amp;th=118e57dc03d67f16&amp;search=inbox</font></p>
<p>The <strong>CANVAS_IFRAME</strong> is the main iframe contains all the layout of gmail</p>
<p>It contains the left side chat, main inbox or mails right side ads, and all the controls</p>
<p>The left side chat is created using table.</p>
<p>JS_IFRAME contains all the javascripts files for gmail full implementation. There are around <strong>89</strong> js files.</p>
<p><img src="http://www.sajithmr.com/wp-content/uploads/2008/03/chat.jpg" alt="Chat" /></p>
<p>When you chat with somebody, the url calling is : <font color="#0000ff">http://mail.google.com/mail/channel/bind?at=xn3j2zpul6ptan694kr6javrldi43s&amp;VER=6&amp;it=891&amp;SID=7D4E9A779225DC1&amp;RID=50595&amp;zx=hrsqkf-nwummu&amp;t=1</font></p>
<p>as POST method with parameters:<br />
<strong><font color="#808080"> req2_text    &lt;your chat&gt;<br />
req2_to    &lt;sender&#8217;s email address&gt;<br />
req0_type    cf<br />
req1_cmd    a<br />
req0_focused    1</font></strong></p>
<p>Now,</p>
<p><font color="#0000ff">http://mail.google.com/mail/channel/bind?at=xn3j2zpul6ptan694kr6javrldi43s&amp;VER=6&amp;it=531&amp;RID=rpc&amp;SID=48DD6BA8E1D3A326&amp;CI=1&amp;AID=176&amp;TYPE=xmlhttp&amp;zx=m0iiwn-ok5jqr&amp;t=1</font></p>
<p>the above url return the chat friends and theire status messages</p>
<p>==========================================================</p>
<p>Same url is using for getting the chat messages.</p>
<p>For example when kenney.jacob@gmail chat with me , the message comes as an array like this:</p>
<p>[184,["m","kenney.jacob@gmail.com","730DFDF6F013F640_161","active","hi da","hi da",1206444193169,</p>
<p>,,0,0,0,0,[]</p>
<p>,&#8221;square&#8221;]</p>
<p><img src="http://www.sajithmr.com/wp-content/uploads/2008/03/foster-says.jpg" alt="Foster says" /></p>
<p>Here active implies the chat is active or not (the window with orange color) and with a chat alert if the window is not active.</p>
<p><font color="#0000ff">http://mail.google.com/mail/channel/test?at=xn3j2zpul6ptan694kr6javrldi43s&amp;VER=6&amp;it=24343&amp;MODE=init&amp;zx=1vyx51-ze670&amp;t=1</font></p>
<p>The above url checks whether the chat is enable or not. which returns an array:<br />
<strong> ["b","chatenabled"]</strong></p>
<p>Gmails file uploading is another interesting thing. I already posted ajax file uploading :  <a href="http://www.sajithmr.com/upload-files-like-gmail/" title="Upload Files Like Gmail" target="_blank">http://www.sajithmr.com/upload-files-like-gmail/</a></p>
<p>I will post more about gmail architecture soon .</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sajithmr.me/gmail-architecture/feed</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>Mozilla Plugin for Gmail</title>
		<link>http://www.sajithmr.me/mozilla-plugin-for-gmail</link>
		<comments>http://www.sajithmr.me/mozilla-plugin-for-gmail#comments</comments>
		<pubDate>Fri, 14 Mar 2008 17:15:31 +0000</pubDate>
		<dc:creator>Mr Me</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[webworld]]></category>
		<category><![CDATA[better gmail]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://www.sajithmr.com/mozilla-plugin-for-gmail/</guid>
		<description><![CDATA[I personally like gmail than any other webmail service in this world. I was a regular yahoo mail user two years before, and i used yahoo messenger also. I am not blaming yahoo mail service, i don&#8217;t know the reason for this switching exactly, but i like gmail. Might be because of its simple chat, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.sajithmr.com/wp-content/uploads/2008/03/gmail-logo.jpg" alt="Gmail logo" style="margin: 20px; float: left" /></p>
<p><strong><font size="8">I</font></strong> personally like gmail than any other webmail service in this world. I was a regular yahoo mail user  two years before, and i used yahoo messenger also. I am not blaming yahoo mail service, i don&#8217;t  know the reason for this switching exactly, but i like gmail. Might be because of its simple chat, simple Ajax implementation, very simple look, etc . But the thing i want to disclose is not a mere comparison of gmail and yahoo, that is not my concern here.</p>
<p><img src="http://www.sajithmr.com/wp-content/uploads/2008/03/firefox-logo.png" alt="Firefox logo" style="margin: 20px; float: right" height="207" width="209" /></p>
<p>Some additional features i expected while using gmail are <span style="font-weight: bold">HTML signature</span>, customizing the view,  labellings,  theme ,  removal of ads ,  i am not revealing the climax of the  movie here <img src='http://www.sajithmr.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   but i got a mozilla plugin which does all the lagging features of gmail what i expected, and its name is  Better Gmail  (They could have put better name) .</p>
<p>You can download that plugin from here :<a href="https://addons.mozilla.org/en-US/firefox/addon/4866" title="Better Gmail" target="_blank"> Better Gmail </a></p>
<p>Screen shot:<br />
<img src="http://www.sajithmr.com/wp-content/uploads/2008/03/better-gmail.JPG" alt="Better Gmail Screen Shot" style="margin: 20px; float: right" /></p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/4866" title="Download Mozilla Plugin" target="_blank">Download the plugin</a> and install and refresh gmail page after making any changes in the option. Put a better html signature with images , links etc like yahoo, customize your gmail as you wish.</p>
<p><img src="http://www.sajithmr.com/wp-content/uploads/2008/03/20070417-gmail-logo.jpg" alt="Google Mail Logo" height="220" width="302" /></p>
<p>(Tips: For 100% working of this plugin, you need to switch into older gmail version)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sajithmr.me/mozilla-plugin-for-gmail/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Upload Files Like Gmail</title>
		<link>http://www.sajithmr.me/upload-files-like-gmail</link>
		<comments>http://www.sajithmr.me/upload-files-like-gmail#comments</comments>
		<pubDate>Thu, 01 Nov 2007 11:23:55 +0000</pubDate>
		<dc:creator>Mr Me</dc:creator>
				<category><![CDATA[Downloads]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php source code]]></category>
		<category><![CDATA[webworld]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[upload file]]></category>

		<guid isPermaLink="false">http://www.sajithmr.com/upload-files-like-gmail/</guid>
		<description><![CDATA[Now we can see ajax everywhere. Most of the famous websites are now enabled ajax for providing faster navigation and browsing speed. If you are a gmail user, the thing you noticed very attractively should be the file attaching part of the email composing window. If you wait for sometime you can see, your file [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sajithmr.me/wp-content/uploads/2007/11/gmail.jpg"><img class="alignnone size-full wp-image-858" title="gmail" src="http://www.sajithmr.me/wp-content/uploads/2007/11/gmail.jpg" alt="" width="573" height="297" /></a></p>
<p>Now we can see ajax everywhere. Most of the famous websites are now enabled ajax for providing faster navigation and browsing speed.</p>
<p>If you are a gmail user, the thing you noticed very attractively should be the file attaching part of the email composing window.</p>
<p>If you wait for sometime you can see, your file gets automatically uploaded without  submitting the whole form. This is not Ajax. Because XMLHttpRequest (XHR)  is not supporting multipart/form-data.</p>
<p>You can use iframe for this purpose by pointing the target of form submission towards the  iframe (you can place it as hidden style=&#8221;display:none&#8221;)</p>
<p>&lt;form target=&#8221;iframename&#8221; action=&#8221;upload.php&#8221;&gt;</p>
<p>You can write javascript at the upload.php end, you can change the file uploaded updations just like ajax</p>
<p>Sample code for this &#8220;Ajax File Upload&#8221; or Gmail-Like File Upload is here :<a title="File Upload Like Gmail" href="http://www.sajithmr.com/wp-content/uploads/2007/11/file-upload-like-gmail.rar" target="_blank"><br />
File-Upload-Like-Gmail.rar</a></p>
<p><a href="http://www.sajithmr.com/wp-content/uploads/2007/11/file-upload-like-gmail.rar" target="_blank"><img src="http://www.sajithmr.com/wp-content/uploads/2008/04/winrarlogo.jpg" alt="Winrar logo" width="52" height="52" /></a></p>
<p>Thanks and Regards</p>
<p>Sajith.M.R</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sajithmr.me/upload-files-like-gmail/feed</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Gmail Drive</title>
		<link>http://www.sajithmr.me/gmail-drive</link>
		<comments>http://www.sajithmr.me/gmail-drive#comments</comments>
		<pubDate>Thu, 01 Nov 2007 06:50:02 +0000</pubDate>
		<dc:creator>Mr Me</dc:creator>
				<category><![CDATA[webworld]]></category>
		<category><![CDATA[data storage]]></category>
		<category><![CDATA[gmail]]></category>

		<guid isPermaLink="false">http://www.sajithmr.com/gmail-drive/</guid>
		<description><![CDATA[How come i  didnt  noticed this before ??  If you have a gmail id , you can use it as a space for data storage. Yes it is absolutely online data storage for personal purpose. You can access this data from anywhere via internet !!! It looks exactly like our normal drive. Open , create [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sajithmr.me/wp-content/uploads/2007/11/gmail-drive.jpg"><img class="alignnone size-full wp-image-860" title="gmail-drive" src="http://www.sajithmr.me/wp-content/uploads/2007/11/gmail-drive.jpg" alt="" width="300" height="196" /></a></p>
<p>How come i  didnt  noticed this before ??  If you have a gmail id , you can use it as a space for data storage.<br />
Yes it is absolutely online data storage for personal purpose. You can access this data from anywhere via internet !!!</p>
<p>It looks exactly like our normal drive. Open , create folder, copy, paste , cut , drag drop etc etc are still there.<br />
If you have better bandwidth internet connection, all ok.</p>
<p>Download the executables from <a title="Gmail Drive" href="http://www.viksoe.dk/code/gmail.htm" target="_blank">http://www.viksoe.dk/code/gmail.htm</a></p>
<p>After installation, just look at your my computer , you can see a new drive there..That is gmail drive.<br />
Click on that and enter your gmail id and password. You can see a blank page . Here you can create folder and paste your files. Coool na <img src='http://www.sajithmr.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><img src="http://www.sajithmr.com/wp-content/uploads/2007/11/gmail-drive2.JPG" alt="" /></p>
<p>Special thanks to <a title="Engadget" href="http://www.engadget.com/2005/03/01/how-to-use-your-gmail-account-as-a-personal-file-server/" target="_blank">http://www.engadget.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sajithmr.me/gmail-drive/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

