<?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; featured</title>
	<atom:link href="http://www.sajithmr.me/tag/featured/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>Facebook Graph API &#8211; The missing part</title>
		<link>http://www.sajithmr.me/facebook-graph-api-the-missing-part</link>
		<comments>http://www.sajithmr.me/facebook-graph-api-the-missing-part#comments</comments>
		<pubDate>Thu, 15 Jul 2010 08:15:39 +0000</pubDate>
		<dc:creator>Mr Me</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[album]]></category>
		<category><![CDATA[albums]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[empty string]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[functions]]></category>
		<category><![CDATA[graph]]></category>
		<category><![CDATA[graph api]]></category>
		<category><![CDATA[help]]></category>
		<category><![CDATA[missing]]></category>
		<category><![CDATA[permission]]></category>
		<category><![CDATA[photos]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[privacy]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[rest api]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.sajithmr.me/?p=840</guid>
		<description><![CDATA[As you all know recent changes in privacy issues made Facebook to change their basic API and added some security concerns. From my best practise, most of the old applications are safe, but you will be in trouble when you create new application. By default you cannot access user&#8217;s photos, profile pictures , albums etc. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-841" title="facebook_logo" src="http://www.sajithmr.me/wp-content/uploads/2010/07/facebook_logo.png" alt="facebook_logo" width="400" height="132" /></p>
<p>As you all know recent changes in privacy issues made Facebook to change their basic API and added some security concerns. From my best practise, most of the old applications are safe, but you will be in trouble when you create new application. By default you cannot access user&#8217;s photos, profile pictures , albums etc. If you continue with old REST API, you may face this problem. You will get an empty array or json string when you call <strong>photos.getAlbum</strong>s function.</p>
<p>If you test these functions from Facebook Console Tool:</p>
<p><a href="http://developers.facebook.com/docs/reference/rest/photos.getAlbums" target="_blank">http://developers.facebook.com/docs/reference/rest/photos.getAlbums</a></p>
<p>It returns real value when you select old applications and returns empty string [] if you select your newly created Facebook app.</p>
<p>To get all those support, you need to use new <a href="http://developers.facebook.com/docs/api" target="_blank">Graph API</a></p>
<p>But if you follow the same steps mentioned in that official document, you will still get this empty string problem. Because, in the basic authentication call, there is no permission type is mentioned. You can only see a basic message with Allow or Deny button.</p>
<p>According to that document, as the part of authentication, you need to call this url with your client id and redirect url and it returns an access_token after a #</p>
<pre style="margin-top: 18px; margin-right: 18px; margin-bottom: 18px; margin-left: 39px; padding-top: 7px; padding-right: 0px; padding-bottom: 7px; padding-left: 10px; outline-width: 0px; outline-style: initial; outline-color: initial; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 3px; border-style: solid; border-color: #d8dfea; line-height: 18px; font-family: monospace; color: #006000; font-size: 13px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f2f2f2; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial;">https://graph.facebook.com/oauth/authorize?
    client_id=...&amp;
    redirect_uri=http://www.example.com/oauth_redirect</pre>
<p>You need to use this access_token to request all other functions, eg:</p>
<pre style="margin-top: 18px; margin-right: 18px; margin-bottom: 18px; margin-left: 39px; padding-top: 7px; padding-right: 0px; padding-bottom: 7px; padding-left: 10px; outline-width: 0px; outline-style: initial; outline-color: initial; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 3px; border-style: solid; border-color: #d8dfea; line-height: 18px; font-family: monospace; color: #006000; font-size: 13px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f2f2f2; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial;">https://graph.facebook.com/me?access_token=...</pre>
<p>This call will work for most of the requests except photos or albums. So the mistake in these calls are the permission.</p>
<p><strong><span style="color: #ff6600;">Here is the correction:</span></strong></p>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace; margin-top: 18px; margin-right: 18px; margin-bottom: 18px; margin-left: 39px; padding-top: 7px; padding-right: 0px; padding-bottom: 7px; padding-left: 10px; outline-width: 0px; outline-style: initial; outline-color: initial; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 3px; line-height: 18px; font-family: monospace; color: #006000; font-size: 13px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f2f2f2; overflow-x: auto; overflow-y: auto; border-color: #d8dfea; border-style: solid;">https://graph.facebook.com/oauth/authorize?
    client_id=...&amp;
    redirect_uri=http://www.example.com/oauth_redirect&amp;perms=publish_stream,user_photos</pre>
<p>Here we pass perms parameter to set different permission and if you use the access_token after this request , you can access user photos and albums. You can see another permission popup with album and photo access.</p>
<p><a href="http://developers.facebook.com/docs/authentication/permissions" target="_blank">Here</a> is the list of such extended permissions in Facebook.</p>
<p>This is the problem when you use new Javascript SDK for graph API, or when you try to integrate these API in PHP or PERL or any other Server side scripting language from the scratch.</p>
<p>If you use new <a href="http://github.com/facebook/php-sdk/" target="_blank">Facebook PHP Graph SDK </a>, you cannot get these problems, but there is still another hidden problem if you continue testing code by the example provided by them.</p>
<p>It is my next POST . See you at there</p>
<p>Thanks</p>
<p>Sajith</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sajithmr.me/facebook-graph-api-the-missing-part/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Multi-language support with PHP</title>
		<link>http://www.sajithmr.me/multi-language-support-with-php</link>
		<comments>http://www.sajithmr.me/multi-language-support-with-php#comments</comments>
		<pubDate>Sun, 06 Jun 2010 10:28:08 +0000</pubDate>
		<dc:creator>Mr Me</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[arab]]></category>
		<category><![CDATA[engilsh]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[french]]></category>
		<category><![CDATA[hindi]]></category>
		<category><![CDATA[multi]]></category>
		<category><![CDATA[multi-language]]></category>
		<category><![CDATA[multi-langugage support]]></category>
		<category><![CDATA[support]]></category>

		<guid isPermaLink="false">http://www.sajithmr.me/?p=725</guid>
		<description><![CDATA[If you aim to create a multi-language  website using PHP + Mysql , remember the following tips. You can use mysql database for this purpose rather than using separate language files as usual content management system does. You can create a table with following structure for this purpose.Table: muli-lang string_id: page_id: en: arb: fr: Here [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-medium wp-image-728" title="multi-language-interface" src="http://www.sajithmr.me/wp-content/uploads/2010/06/multi-language-interface-300x197.jpg" alt="multi-language-interface" width="300" height="197" /></p>
<p>If you aim to create a multi-language  website using PHP + Mysql , remember the following tips.</p>
<ul>
<li>You can use mysql database for this purpose rather than using separate language files as usual content management system does.</li>
<li>You can create a table with following structure for this purpose.Table: muli-lang<br />
string_id:<br />
page_id:<br />
en:<br />
arb:<br />
fr:</li>
<li> Here string_id is the code for getting content  eg: welcome_message<br />
page_id is for saving in which page the content belongs to.  eg: home_page, login_page etc<br />
In field en, you have to enter the message in english,eg: Welcome to my website<br />
In arb field you can enter the corresponding translation in arab. eg: مرحبا بكم في موقعي</li>
<li>If you need to add more languages, it is just adding one more column to this table and put all translated values.</li>
<li>Write a class or functions in PHP to retrieve all the informations.<br />
eg: function get(language_id, page_id) returns corresponding message</li>
<li>Use session to save lang value. For example if you switch to french, set a variable lang= fr and use this variable to decide which column is to access from multi-lang table.eg: the sql will be , SELECT $lang FROM multi-lang WHERE string_id = &#8216;welcome_message&#8217;</li>
<li>For some string fragment like about_us, contact_us etc, it has global scope; then leave page_id as blank</li>
<li>To avoid multiple calling of functions to get translation, write a common function to get all translation for a particular page_id as array, and use this array all through the page. Thus you can avoid mysql query multiple times.<br />
eg: function get_all($page_id) returns array, say $Translate of all strings replacement. $Translate['login_message'], $Translate['login_error']</li>
<li>Additional things to remember:</li>
<li>Use this meta tab in html header<br />
<span style="color: #993300;">&lt;</span><em><span style="color: #993300;">meta</span></em><span style="color: #993300;"> http-equiv=&#8221;Content-Type&#8221; content=&#8221;text /</span><em><span style="color: #993300;">html</span></em><span style="color: #993300;">; charset=</span><em><span style="color: #993300;">UTF-8</span></em><span style="color: #993300;">&#8221; /&gt;</span><br />
to show all languages</li>
<li>Create my_sql table in UTF-8 format</li>
<li>Execute the following query before executing any retrieval queries. Otherwise you may get ????? for language like Arabic, Hindi, Chinese etc.<br />
<span style="color: #333399;">mysql_query(&#8220;SET CHARACTER SET &#8216;utf8&#8242;&#8221;, $link);</span></li>
</ul>
<p>I hope these information may help you when you develop a multi-langauge support website</p>
<p>Thank you<br />
Sajith</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sajithmr.me/multi-language-support-with-php/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Quick tips for https connection (Non secure content warning &#8211; IE)</title>
		<link>http://www.sajithmr.me/quick-tips-for-https-connection-non-secure-content-warning-ie</link>
		<comments>http://www.sajithmr.me/quick-tips-for-https-connection-non-secure-content-warning-ie#comments</comments>
		<pubDate>Mon, 17 May 2010 23:14:49 +0000</pubDate>
		<dc:creator>Mr Me</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[webworld]]></category>
		<category><![CDATA[alert]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[https warning]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[non-secure content]]></category>
		<category><![CDATA[protocol]]></category>
		<category><![CDATA[safety]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[warning]]></category>

		<guid isPermaLink="false">http://www.sajithmr.me/?p=713</guid>
		<description><![CDATA[If you are using https pages or some of the pages (payment pages etc) in your website, keep the following in your mind. In some browsers especially IE shows warning of non-secured content in secured page. This cause user the feeling that the website is not secured. Use relative url always. Relative URL means those [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-714" title="browsers_dhtml" src="http://www.sajithmr.me/wp-content/uploads/2010/05/browsers_dhtml.jpg" alt="browsers_dhtml" width="270" height="250" /></p>
<p>If you are using https pages or some of the pages (payment pages etc) in your website, keep the following in your mind. In some browsers especially IE shows warning of non-secured content in secured page. This cause user the feeling that the website is not secured.</p>
<ol>
<li>Use relative url always. Relative URL means those without starting with http:// or https://, instead use relative url.</li>
<li>If you need to use full url, use dynamic base name in with your programming language.For example in PHP, define BASE_URL = http://www.yoursite.com and use this variable in every links and forms. Change the BASE_URL value between http and https depending upon the protocol ($_SERVER['HTTP_HOST'])</li>
<li>Check  inside javascript function whether it is calling any non-secured url. (For example, sometime you may use full url inside Javascript). Check using if condition to decide, which protocol to use, like what Google Analytic does.<br />
eg:  (&#8220;https:&#8221; == document.location.protocol) ? &#8220;https://ssl.&#8221; : &#8220;http://www.&#8221;);</li>
<li> Check if there is any flash content which tries to load data from non-secured url. There is a chance to load some xml configuration files using http protocol</li>
<li> Also change the codebase parameter value in object tag (flash or other media) whether it is pointing http or https url. There is a chance for this url in flash content.<br />
<span style="color: #ff6600;">codebase=&#8221;http://download.macromedia.com/pub/shockwave /cabs/flash/swflash.cab#version=9,0,115,0&#8243;<br />
<span style="color: #000000;">Change this url to https://downoad&#8230;<br />
</span><br />
</span></li>
<li><span style="color: #ff6600;"><span style="color: #000000;">If you are using facebook connect or such integration, check the javascript initialisation code.<br />
<span style="color: #008000;">FB.init(&#8220;78bc8ffb87c41eabb6395a2045c76021&#8243;, &#8220;/xd_receiver.htm</span>&#8220;);<br />
Inside the xd_receiver.htm file, the cross platform callback will be non secured url (http)<br />
Change this to xd_reciver_ssl.htm and use new code, which is available in Facebook documentation</p>
<p></span></span></li>
</ol>
<p>Tools like Fiddler can be used to check which url is non-secured. Firebug cannot show all non-secure connections. If the above steps do not solve your problem, try disabling javascript files one by one to point out which call is making the problem. Also try this by disabling Flash objects one by one.</p>
<p>Good luck guys</p>
<p>Cheers</p>
<p>Sajith</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sajithmr.me/quick-tips-for-https-connection-non-secure-content-warning-ie/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Innovation  at its maximum &#8211; Bank Run &#8211; user interactive movie</title>
		<link>http://www.sajithmr.me/innovation-at-its-maximum-bank-run-user-interactive-movie</link>
		<comments>http://www.sajithmr.me/innovation-at-its-maximum-bank-run-user-interactive-movie#comments</comments>
		<pubDate>Sat, 08 May 2010 10:12:22 +0000</pubDate>
		<dc:creator>Mr Me</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[bank]]></category>
		<category><![CDATA[bankrun]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[free game]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[innovation]]></category>
		<category><![CDATA[interactive]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[movie]]></category>
		<category><![CDATA[rank run]]></category>
		<category><![CDATA[run]]></category>

		<guid isPermaLink="false">http://www.sajithmr.me/?p=682</guid>
		<description><![CDATA[I don&#8217;t need to explain anything about this game, sorry movie Go to :http://www.bankrungame.com/]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bankrungame.com/" target="_blank"><img class="alignnone size-full wp-image-683" title="mzl.opjzfoif.320x480-75" src="http://www.sajithmr.me/wp-content/uploads/2010/05/mzl.opjzfoif.320x480-75.jpg" alt="mzl.opjzfoif.320x480-75" width="389" height="259" /></a></p>
<p>I don&#8217;t need to explain anything about this game, sorry movie <img src='http://www.sajithmr.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Go to :<a href="http://www.bankrungame.com/" target="_blank">http://www.bankrungame.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sajithmr.me/innovation-at-its-maximum-bank-run-user-interactive-movie/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flexigrid</title>
		<link>http://www.sajithmr.me/flexigrid</link>
		<comments>http://www.sajithmr.me/flexigrid#comments</comments>
		<pubDate>Mon, 19 Apr 2010 16:38:08 +0000</pubDate>
		<dc:creator>Mr Me</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[featured]]></category>

		<guid isPermaLink="false">http://www.sajithmr.me/?p=521</guid>
		<description><![CDATA[In most of the project, we need to write a lot of queries to create admin backend. Especially for report generation.  In old days I used phpTables. But recently I started using Flexigrid, a jQuery plugin for displaying tables. It is very simple to write code and all work in Ajax Here is the url: [...]]]></description>
			<content:encoded><![CDATA[<p>In most of the project, we need to write a lot of queries to create admin backend. Especially for report generation.  In old days I used phpTables. But recently I started using Flexigrid, a jQuery plugin for displaying tables. It is very simple to write code and all work in Ajax</p>
<p>Here is the url:<a href="http://flexigrid.info/" target="_blank"> http://flexigrid.info/</a></p>
<p>If you are using Codeigniter, a good library is also available to integrate Flexigrid. You can download it from <a href="http://flexigrid.eyeviewdesign.com/index.php/flexigrid/example" target="_blank">here</a></p>
<p><img class="alignnone size-full wp-image-624" title="flexigrid" src="http://www.sajithmr.me/wp-content/uploads/2010/04/flexigrid.jpg" alt="flexigrid" width="600" height="349" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sajithmr.me/flexigrid/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Platforms for developing iPhone Application</title>
		<link>http://www.sajithmr.me/platforms-for-developing-iphone-application</link>
		<comments>http://www.sajithmr.me/platforms-for-developing-iphone-application#comments</comments>
		<pubDate>Wed, 03 Mar 2010 00:13:07 +0000</pubDate>
		<dc:creator>Mr Me</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[webworld]]></category>
		<category><![CDATA[appcelerator]]></category>
		<category><![CDATA[corona]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[monotouch]]></category>
		<category><![CDATA[os]]></category>
		<category><![CDATA[phonegap]]></category>
		<category><![CDATA[platform]]></category>
		<category><![CDATA[sdk]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://www.sajithmr.me/?p=605</guid>
		<description><![CDATA[In 2008, after Steve Jobs released a Software Development Kit  (SDK)for developing iPhone application,  the iPhone OS platform became open for all to development their own application. Xcode is the development environment for iPhone development.  Later a lot of frameworks were introduced over this platform.  The following are new platforms for developing iPhone applications. iPhone [...]]]></description>
			<content:encoded><![CDATA[<p>In 2008, after Steve Jobs released a Software Development Kit  (SDK)for developing iPhone application,  the iPhone OS platform became open for all to development their own application. Xcode is the development environment for iPhone development.  Later a lot of frameworks were introduced over this platform.  The following are new platforms for developing iPhone applications.</p>
<h3><strong>iPhone SDK</strong></h3>
<p><strong><img class="alignnone size-full wp-image-608" title="iphonesdk" src="http://www.sajithmr.me/wp-content/uploads/2010/03/iphonesdk.jpg" alt="iphonesdk" width="240" height="219" /></strong></p>
<p><strong> </strong></p>
<p>An SDK for iPhone development is released on 6<sup>th</sup> March 2008. Using this SDK, developer can develop application is iPhone and iTouch devices. It came up with an iPhone simulator  to test application. SDK requires Apple Developer Licence to launch application on any iPhone device.  Like Mac operating system, iPhone OS also based on Xcode.  The main components of this SDK are:</p>
<ol>
<li> Cocoa Touch</li>
<li>Media</li>
<li>Core Services</li>
<li>OS X kernal</li>
</ol>
<h3>MonoTouch</h3>
<p><img class="alignnone" src="http://monotouch.net/skins/monotouch/mt/mt-logo.png" alt="" width="274" height="40" /></p>
<blockquote><p>MonoTouch allows developers to create C# and .NET based applications that run on Apple&#8217;s iPhone and Apple&#8217;s iPod Touch devices, while taking advantage of the iPhone APIs and reusing both code and libraries that have been built for .NET, as well as existing skills. (MonoTouch, 2009).</p></blockquote>
<h3><strong>PhoneGap</strong></h3>
<p><strong><img class="alignnone" src="http://www.telyas.com/wordpress/wp-content/uploads/2009/04/phonegap-logo.jpg" alt="" width="241" height="84" /></strong></p>
<blockquote><p>PhoneGap basically generates native wrappers for what are still web apps. What PhoneGap provides beyond that is a bridge between JavaScript and native device APIs. So, you write JavaScript against PhoneGap APIs, and PhoneGap then makes the appropriate corresponding native call. In that respect, it is different from deploying a plain old web app. (Stackoverflow, 2009)<strong>.</strong></p></blockquote>
<h3><strong>Corona</strong></h3>
<p><strong><img class="alignnone size-full wp-image-606" title="banner-main-left-narrow" src="http://www.sajithmr.me/wp-content/uploads/2010/03/banner-main-left-narrow.gif" alt="banner-main-left-narrow" width="226" height="77" /></strong></p>
<blockquote><p>Corono is web based application development for iPhone-based devices. It supports html, javascipt, action script (flash) and a good platform for highly graphic basic applications , games etc. This is very latest platform in iPhone development world and the team releases daily updates on this SDK. Research on increasing graphic speed and flash based application integration in iPhone is progress with the Corona team. This platform is not free. A limited feature trail version is available for free. For full SDK, you need to spend 99 dollars.</p></blockquote>
<h3><strong>Appcelerator</strong></h3>
<p><strong><img class="alignnone size-full wp-image-607" title="appcelerator" src="http://www.sajithmr.me/wp-content/uploads/2010/03/appcelerator.jpg" alt="appcelerator" width="150" height="150" /></strong></p>
<blockquote><p>Appcelerator Titanium is an open source platform for developing mobile and desktop applications using web technologies. Appcelerator Titanium is frequently compared to <a href="http://en.wikipedia.org/wiki/Adobe_Integrated_Runtime">Adobe Air</a> for developing desktop applications for Windows, Mac and Linux. The tool can deploy standalone applications for Mac, Windows, and Linux from any of those platforms. It does this by submitting the source files to a proprietary server-side solution which then returns the binaries. However, to develop an iPhone application using this tool you need a Mac Os and iPhone SDK.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.sajithmr.me/platforms-for-developing-iphone-application/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Sliding menu using jQuery and ScrollTo</title>
		<link>http://www.sajithmr.me/sliding-menu-using-jquery-and-scrollto</link>
		<comments>http://www.sajithmr.me/sliding-menu-using-jquery-and-scrollto#comments</comments>
		<pubDate>Sat, 20 Feb 2010 21:38:53 +0000</pubDate>
		<dc:creator>Mr Me</dc:creator>
				<category><![CDATA[Downloads]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[menu]]></category>
		<category><![CDATA[scroll]]></category>
		<category><![CDATA[slider]]></category>
		<category><![CDATA[source code]]></category>

		<guid isPermaLink="false">http://www.sajithmr.me/?p=583</guid>
		<description><![CDATA[Recently I created a sliding menu for a project using jQuery and ScrollTo functions. See demo: Slider  Menu We can use the jQuery function $(&#8220;.menubar&#8221;).scrollTo(id_of_element) to scroll any scrollable area to a particular location. The idea behind every smooth sliding is using scroll function with overflow:hidden mode. You can download the source code from : [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-584" title="jquery-logo" src="http://www.sajithmr.me/wp-content/uploads/2010/02/jquery-logo.gif" alt="jquery-logo" width="168" height="146" /></p>
<p>Recently I created a sliding menu for a project using jQuery and ScrollTo functions.</p>
<p>See demo: <a href="http://www.sajithmr.me/downloads/slider/slider.html" target="_blank">Slider  Menu</a></p>
<p>We can use the jQuery function $(&#8220;.menubar&#8221;).scrollTo(id_of_element) to scroll any scrollable area to a particular location.</p>
<p>The idea behind every smooth sliding is using scroll function with overflow:hidden mode.</p>
<p>You can download the source code from : <a href="http://www.sajithmr.me/downloads/slider/slider.zip" target="_self">http://www.sajithmr.me/downloads/slider/slider.zip</a></p>
<p>Here div menu-bar is the scrollable div with overflow:hidden mode contains set of menu and a duplicate as a  buffer</p>
<p>At the bottom of the code, you can see a filler div, this is for filling the menu one by one to the right side menu-bar to make the sliding very smooth</p>
<p>The function setMotion(this) calls  the scroll function and it moves till the called DOM object&#8217;s id reaches</p>
<p>If you use an ajax call after the motion to load the content at the bottom, you can make this sliding menu for proper navigation purpose.</p>
<p>Thanks</p>
<p>Sajith</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sajithmr.me/sliding-menu-using-jquery-and-scrollto/feed</wfw:commentRss>
		<slash:comments>1</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>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>WordPress Announcement &#8211; Plugin</title>
		<link>http://www.sajithmr.me/wordpress-announcement-plugin</link>
		<comments>http://www.sajithmr.me/wordpress-announcement-plugin#comments</comments>
		<pubDate>Tue, 24 Jun 2008 09:20:36 +0000</pubDate>
		<dc:creator>Mr Me</dc:creator>
				<category><![CDATA[Downloads]]></category>
		<category><![CDATA[webworld]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[message]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.sajithmr.com/wordpress-announcement-plugin/</guid>
		<description><![CDATA[Do you wanna inform any important news or message to your readers ? Here is a simple plugin, WordPress Announcement Plugin. Download the plugin from : http://downloads.wordpress.org/plugin/announcement.zip Go to Admin &#62; Plugin &#62; and activate announcement plugin. After that, go to options and select Announcement. By default the plugin will be inactive. You have to [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.sajithmr.com/wp-content/uploads/2008/06/announce1.jpg" alt="Wordpress Announcement Plugin" style="margin: 10px; float: left" /></p>
<p>Do you wanna inform any important news or message to your readers ? Here is a simple plugin, WordPress Announcement Plugin.</p>
<p>Download the plugin from : <a href="http://downloads.wordpress.org/plugin/announcement.zip" target="_blank">http://downloads.wordpress.org/plugin/announcement.zip</a><a href="http://www.sajithmr.com/downloads/announcement.zip"></a></p>
<p>Go to Admin &gt; Plugin &gt; and activate announcement plugin. After that, go to options and select Announcement. By default the plugin will be inactive. You have to set your announcement and activate the  announcement by checking &#8216;Active&#8217; checkbox.</p>
<blockquote><p> Never Forgot to Run the Announcement. By Default the Announcement will be inactive</p></blockquote>
<p><img src="http://www.sajithmr.com/wp-content/uploads/2008/06/option.jpg" /></p>
<p>Enough !!! You visitors can now see your announcement. It will be displayed <strong>only one time</strong> for a particular  user .</p>
<p><strong><font color="#ff6600">(If you want to see the announcement again, for testing purpose, Clear browser cookies, or atleast cookies from your blog. Otherwise you have to wait another 24 hours to play the announcement again) </font></strong></p>
<p><img src="http://www.sajithmr.com/wp-content/uploads/2008/06/screenshot-1.png" /></p>
<p>The plugin is created with cute design and animation. It will never interrupt your blog reader.</p>
<p>Regards</p>
<p>Sajith</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sajithmr.me/wordpress-announcement-plugin/feed</wfw:commentRss>
		<slash:comments>78</slash:comments>
		</item>
	</channel>
</rss>

