<?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"
	>

<channel>
	<title>Biz-n-Buzz @ Hibiscus</title>
	<atom:link href="http://hibiscustech.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://hibiscustech.com/blog</link>
	<description></description>
	<pubDate>Mon, 07 May 2012 08:52:07 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
	<language>en</language>
			<item>
		<title>Top Outsourcing Countries For IT</title>
		<link>http://hibiscustech.com/blog/2012/05/07/top-outsourcing-countries-for-it/</link>
		<comments>http://hibiscustech.com/blog/2012/05/07/top-outsourcing-countries-for-it/#comments</comments>
		<pubDate>Mon, 07 May 2012 08:44:04 +0000</pubDate>
		<dc:creator>htsblogger</dc:creator>
		
		<category><![CDATA[Running Business In India]]></category>

		<category><![CDATA[buzz]]></category>

		<category><![CDATA[android development]]></category>

		<category><![CDATA[android enterprise app]]></category>

		<category><![CDATA[android games]]></category>

		<category><![CDATA[Blackberry]]></category>

		<category><![CDATA[blackberry apps]]></category>

		<category><![CDATA[blackberry development]]></category>

		<category><![CDATA[blackberry GPS]]></category>

		<category><![CDATA[blackberry menu]]></category>

		<category><![CDATA[enterprise mobile apps]]></category>

		<category><![CDATA[Facebook apps]]></category>

		<category><![CDATA[gps mobile apps]]></category>

		<category><![CDATA[Indian outsourcing]]></category>

		<category><![CDATA[ipad]]></category>

		<category><![CDATA[ipad applications]]></category>

		<category><![CDATA[ipad apps]]></category>

		<category><![CDATA[ipad games]]></category>

		<category><![CDATA[iphne apps]]></category>

		<category><![CDATA[iphone]]></category>

		<category><![CDATA[iphone games]]></category>

		<category><![CDATA[Mobile app development]]></category>

		<category><![CDATA[mobile app outsourcing]]></category>

		<category><![CDATA[mobile google maps]]></category>

		<category><![CDATA[mobile software]]></category>

		<category><![CDATA[outsourcing]]></category>

		<category><![CDATA[software]]></category>

		<category><![CDATA[web apps]]></category>

		<category><![CDATA[web development]]></category>

		<category><![CDATA[website]]></category>

		<category><![CDATA[windows mobile]]></category>

		<guid isPermaLink="false">http://hibiscustech.com/blog/?p=56</guid>
		<description><![CDATA[
The global services market is highly dynamic environment and selecting the best outsourcing location for your operation can have a significant long-term impact. SourcingLine has compiled the most comprehensive online database of outsourcing country statistics to aid your decision making. Each country has been scored across dozens of key statistics which fall into three broad [...]]]></description>
			<content:encoded><![CDATA[<div class="view-header">
<p>The global services market is highly dynamic environment and selecting the best outsourcing location for your operation can have a significant long-term impact. SourcingLine has compiled the most comprehensive online database of outsourcing country statistics to aid your decision making. Each country has been scored across dozens of key statistics which fall into three broad areas of Cost Competitiveness, Resources &amp; Skills, and Business &amp; Economic Environment.</p>
<p><a href="http://www.sourcingline.com/outsourcing-location/india">India</a>, ranked first in our survey, provides the best mix of factors, but it is not a leader across all dimensions. It is still a highly cost competitive location, but recent wage inflation has impacted its position relative to other countries. India also has a massive resource and skill base, but educational challenges are impacting the skills of graduates and the business &amp; economic environment can prove taxing. Other leaders in the survey include numerous other countries from Asia, but also Latin America and Europe.</div>
<div class="view-content">
<table class="sticky-header" border="0">
<thead>
<tr>
<th class="views-field views-field-field-cp2010-overall-rank-value active"><a class="active" title="sort by Overall rank" href="http://www.sourcingline.com/top-outsourcing-countries?order=field_cp2010_overall_rank_value&amp;sort=desc"><img title="sort descending" src="http://www.sourcingline.com/misc/arrow-desc.png" alt="sort icon" width="13" height="13" /></a></th>
<th class="views-field views-field-title"><a class="active" title="sort by Country" href="http://www.sourcingline.com/top-outsourcing-countries?order=title&amp;sort=asc"></a></th>
<th class="views-field views-field-field-cp2010-overall-index-value"><a class="active" title="sort by Overall outsourcing index" href="http://www.sourcingline.com/top-outsourcing-countries?order=field_cp2010_overall_index_value&amp;sort=asc"></a></th>
<th class="views-field views-field-field-cp2010-cost-compet-index-value"><a class="active" title="sort by Cost competitveness index" href="http://www.sourcingline.com/top-outsourcing-countries?order=field_cp2010_cost_compet_index_value&amp;sort=asc"></a></th>
<th class="views-field views-field-field-cp2010-resourc-skill-index-value"><a class="active" title="sort by Resources &amp;amp;amp; skills index" href="http://www.sourcingline.com/top-outsourcing-countries?order=field_cp2010_resourc_skill_index_value&amp;sort=asc"></a></th>
<th class="views-field views-field-field-cp2010-biz-econ-env-index-value"><a class="active" title="sort by Business &amp;amp;amp; economic environment index" href="http://www.sourcingline.com/top-outsourcing-countries?order=field_cp2010_biz_econ_env_index_value&amp;sort=asc"></a></th>
</tr>
</thead>
</table>
<table class="views-table sticky-enabled cols-38 sticky-table" border="0">
<thead class="tableHeader-processed">
<tr>
<th class="views-field views-field-field-cp2010-overall-rank-value active"><a class="active" title="sort by Overall rank" href="http://www.sourcingline.com/top-outsourcing-countries?order=field_cp2010_overall_rank_value&amp;sort=desc">Overall rank<img title="sort descending" src="http://www.sourcingline.com/misc/arrow-desc.png" alt="sort icon" width="13" height="13" /></a></th>
<th class="views-field views-field-title"><a class="active" title="sort by Country" href="http://www.sourcingline.com/top-outsourcing-countries?order=title&amp;sort=asc">Country</a></th>
<th class="views-field views-field-field-cp2010-overall-index-value"><a class="active" title="sort by Overall outsourcing index" href="http://www.sourcingline.com/top-outsourcing-countries?order=field_cp2010_overall_index_value&amp;sort=asc">Overall outsourcing index</a></th>
<th class="views-field views-field-field-cp2010-cost-compet-index-value"><a class="active" title="sort by Cost competitveness index" href="http://www.sourcingline.com/top-outsourcing-countries?order=field_cp2010_cost_compet_index_value&amp;sort=asc">Cost competitveness index</a></th>
<th class="views-field views-field-field-cp2010-resourc-skill-index-value"><a class="active" title="sort by Resources &amp;amp;amp; skills index" href="http://www.sourcingline.com/top-outsourcing-countries?order=field_cp2010_resourc_skill_index_value&amp;sort=asc">Resources &amp; skills index</a></th>
<th class="views-field views-field-field-cp2010-biz-econ-env-index-value"><a class="active" title="sort by Business &amp;amp;amp; economic environment index" href="http://www.sourcingline.com/top-outsourcing-countries?order=field_cp2010_biz_econ_env_index_value&amp;sort=asc">Business &amp; economic environment index</a></th>
</tr>
</thead>
<tbody>
<tr class="odd views-row-first">
<td class="views-field views-field-field-cp2010-overall-rank-value active">1</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/india">India</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">7.1</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">8.3</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">6</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">4.2</td>
</tr>
<tr class="even">
<td class="views-field views-field-field-cp2010-overall-rank-value active">2</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/indonesia">Indonesia</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">6.7</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">8.6</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">4.3</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">4.4</td>
</tr>
<tr class="odd">
<td class="views-field views-field-field-cp2010-overall-rank-value active">3</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/estonia">Estonia</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">6.6</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">7.5</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">5.2</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">6.9</td>
</tr>
<tr class="even">
<td class="views-field views-field-field-cp2010-overall-rank-value active">4</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/singapore">Singapore</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">6.5</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">6.4</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">5.7</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">9.4</td>
</tr>
<tr class="odd">
<td class="views-field views-field-field-cp2010-overall-rank-value active">5</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/china">China</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">6.4</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">7</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">5.6</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">5.6</td>
</tr>
<tr class="even">
<td class="views-field views-field-field-cp2010-overall-rank-value active">6</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/bulgaria">Bulgaria</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">6.4</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">8.8</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">2.9</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">5.2</td>
</tr>
<tr class="odd">
<td class="views-field views-field-field-cp2010-overall-rank-value active">7</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/philippines">Philippines</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">6.3</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">9</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">2.8</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">3.9</td>
</tr>
<tr class="even">
<td class="views-field views-field-field-cp2010-overall-rank-value active">8</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/thailand">Thailand</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">5.9</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">8.2</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">2.3</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">5.9</td>
</tr>
<tr class="odd">
<td class="views-field views-field-field-cp2010-overall-rank-value active">9</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/lithuania">Lithuania</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">5.9</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">7</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">3.9</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">6.5</td>
</tr>
<tr class="even">
<td class="views-field views-field-field-cp2010-overall-rank-value active">10</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/malaysia">Malaysia</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">5.8</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">7.9</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">2.2</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">6.9</td>
</tr>
<tr class="odd">
<td class="views-field views-field-field-cp2010-overall-rank-value active">11</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/jordan">Jordan</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">5.7</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">7.6</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">2.7</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">5.7</td>
</tr>
<tr class="even">
<td class="views-field views-field-field-cp2010-overall-rank-value active">12</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/chile">Chile</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">5.7</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">7.2</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">3</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">6.9</td>
</tr>
<tr class="odd">
<td class="views-field views-field-field-cp2010-overall-rank-value active">13</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/egypt">Egypt</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">5.7</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">9</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">0.9</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">4.3</td>
</tr>
<tr class="even">
<td class="views-field views-field-field-cp2010-overall-rank-value active">14</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/hungary">Hungary</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">5.6</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">6.9</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">3.4</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">6.3</td>
</tr>
<tr class="odd">
<td class="views-field views-field-field-cp2010-overall-rank-value active">15</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/czech-republic">Czech Republic</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">5.6</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">6.9</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">3.2</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">6.5</td>
</tr>
<tr class="even">
<td class="views-field views-field-field-cp2010-overall-rank-value active">16</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/poland">Poland</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">5.6</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">6.8</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">3.6</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">5.5</td>
</tr>
<tr class="odd">
<td class="views-field views-field-field-cp2010-overall-rank-value active">17</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/vietnam">Vietnam</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">5.4</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">7.4</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">2.5</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">4.5</td>
</tr>
<tr class="even">
<td class="views-field views-field-field-cp2010-overall-rank-value active">18</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/sri-lanka">Sri Lanka</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">5.4</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">8.3</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">1.2</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">4.3</td>
</tr>
<tr class="odd">
<td class="views-field views-field-field-cp2010-overall-rank-value active">19</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/latvia">Latvia</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">5.4</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">7</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">2.7</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">5.6</td>
</tr>
<tr class="even">
<td class="views-field views-field-field-cp2010-overall-rank-value active">20</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/argentina">Argentina</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">5.4</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">7.5</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">2.5</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">4.4</td>
</tr>
<tr class="odd">
<td class="views-field views-field-field-cp2010-overall-rank-value active">21</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/costa-rica">Costa Rica</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">5.3</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">7.3</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">2.3</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">4.8</td>
</tr>
<tr class="even">
<td class="views-field views-field-field-cp2010-overall-rank-value active">22</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/mexico">Mexico</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">5.3</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">6.9</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">2.8</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">5.3</td>
</tr>
<tr class="odd">
<td class="views-field views-field-field-cp2010-overall-rank-value active">23</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/romania">Romania</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">5.2</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">6.8</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">2.7</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">5.2</td>
</tr>
<tr class="even">
<td class="views-field views-field-field-cp2010-overall-rank-value active">24</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/russia">Russia</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">5.2</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">6.4</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">3.4</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">4.7</td>
</tr>
<tr class="odd">
<td class="views-field views-field-field-cp2010-overall-rank-value active">25</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/jamaica">Jamaica</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">5.2</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">6.2</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">3.7</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">4.7</td>
</tr>
<tr class="even">
<td class="views-field views-field-field-cp2010-overall-rank-value active">26</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/ukraine">Ukraine</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">5</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">6.3</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">3.2</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">3.8</td>
</tr>
<tr class="odd">
<td class="views-field views-field-field-cp2010-overall-rank-value active">27</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/ghana">Ghana</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">4.9</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">7.5</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">0.9</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">4.3</td>
</tr>
<tr class="even">
<td class="views-field views-field-field-cp2010-overall-rank-value active">28</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/israel">Israel</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">4.7</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">3.8</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">5.5</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">7</td>
</tr>
<tr class="odd">
<td class="views-field views-field-field-cp2010-overall-rank-value active">29</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/south-africa">South Africa</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">4.6</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">6.9</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">0.6</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">6.3</td>
</tr>
<tr class="even">
<td class="views-field views-field-field-cp2010-overall-rank-value active">30</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/kenya">Kenya</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">4.5</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">6.7</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">1.3</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">3.6</td>
</tr>
<tr class="odd">
<td class="views-field views-field-field-cp2010-overall-rank-value active">31</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/canada">Canada</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">4.4</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">2.5</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">6.3</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">8.3</td>
</tr>
<tr class="even">
<td class="views-field views-field-field-cp2010-overall-rank-value active">32</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/panama">Panama</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">4.4</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">5.8</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">1.9</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">5.6</td>
</tr>
<tr class="odd">
<td class="views-field views-field-field-cp2010-overall-rank-value active">33</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/senegal">Senegal</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">4.3</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">7.1</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">0.2</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">3.3</td>
</tr>
<tr class="even">
<td class="views-field views-field-field-cp2010-overall-rank-value active">34</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/pakistan">Pakistan</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">4.2</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">6.6</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">0.8</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">3.1</td>
</tr>
<tr class="odd">
<td class="views-field views-field-field-cp2010-overall-rank-value active">35</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/united-states">United States</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">4.2</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">1.7</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">6.9</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">8.3</td>
</tr>
<tr class="even">
<td class="views-field views-field-field-cp2010-overall-rank-value active">36</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/united-arab-emirates">United Arab Emirates</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">4</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">2.8</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">4.7</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">7.9</td>
</tr>
<tr class="odd">
<td class="views-field views-field-field-cp2010-overall-rank-value active">37</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/tunisia">Tunisia</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">3.9</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">4.7</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">1.9</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">6.3</td>
</tr>
<tr class="even views-row-last">
<td class="views-field views-field-field-cp2010-overall-rank-value active">38</td>
<td class="views-field views-field-title"><a href="http://www.sourcingline.com/outsourcing-location/brazil">Brazil</a></td>
<td class="views-field views-field-field-cp2010-overall-index-value">3.6</td>
<td class="views-field views-field-field-cp2010-cost-compet-index-value">4.3</td>
<td class="views-field views-field-field-cp2010-resourc-skill-index-value">2.4</td>
<td class="views-field views-field-field-cp2010-biz-econ-env-index-value">4.1</td>
</tr>
</tbody>
</table>
</div>
]]></content:encoded>
			<wfw:commentRss>http://hibiscustech.com/blog/2012/05/07/top-outsourcing-countries-for-it/feed/</wfw:commentRss>
		</item>
		<item>
		<title>BlackBerry App Development - Overriding of Menu button</title>
		<link>http://hibiscustech.com/blog/2012/02/15/blackberry-app-development-overriding-of-menu-button/</link>
		<comments>http://hibiscustech.com/blog/2012/02/15/blackberry-app-development-overriding-of-menu-button/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 08:42:34 +0000</pubDate>
		<dc:creator>htsblogger</dc:creator>
		
		<category><![CDATA[Blackberry]]></category>

		<category><![CDATA[blackberry apps]]></category>

		<category><![CDATA[blackberry development]]></category>

		<category><![CDATA[blackberry enterprise apps]]></category>

		<category><![CDATA[blackberry games]]></category>

		<category><![CDATA[blackberry maps]]></category>

		<category><![CDATA[blackberry menu]]></category>

		<category><![CDATA[enterprise mobile apps]]></category>

		<category><![CDATA[gps mobile apps]]></category>

		<category><![CDATA[Mobile app development]]></category>

		<category><![CDATA[mobile development]]></category>

		<category><![CDATA[mobile google maps]]></category>

		<guid isPermaLink="false">http://hibiscustech.com/blog/?p=52</guid>
		<description><![CDATA[By using this piece of code you can override the blackberry default menu. What you all need to get is the ID of a particular item in the code. The code given below is to override the close button (in this case id is 9). On click of close you can perform your own task.
==================================================================== [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoListParagraph"><span lang="EN-IN">By using this piece of code you can override the blackberry default menu. What you all need to get is the ID of a particular item in the code. The code given below is to override the close button (in this case id is 9). On click of close you can perform your own task.</span></p>
<p class="MsoNormal"><span lang="EN-IN">==================================================================== </span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">protected</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">void</span></strong><span lang="EN-IN"> onMenuDismissed(Menu menu) {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">super</span></strong><span lang="EN-IN">.onMenuDismissed(menu);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (menu.getSelectedItem().getId() == 9) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> //TODO Something</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> //System.<em>exit</em>(0);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span> }</p>
]]></content:encoded>
			<wfw:commentRss>http://hibiscustech.com/blog/2012/02/15/blackberry-app-development-overriding-of-menu-button/feed/</wfw:commentRss>
		</item>
		<item>
		<title>BlackBerry Application Development - Geo Coding</title>
		<link>http://hibiscustech.com/blog/2012/02/15/blackberry-application-development-geo-coding/</link>
		<comments>http://hibiscustech.com/blog/2012/02/15/blackberry-application-development-geo-coding/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 08:31:04 +0000</pubDate>
		<dc:creator>Himansu</dc:creator>
		
		<category><![CDATA[Blackberry]]></category>

		<category><![CDATA[blackberry apps]]></category>

		<category><![CDATA[blackberry development]]></category>

		<category><![CDATA[blackberry enterprise apps]]></category>

		<category><![CDATA[blackberry games]]></category>

		<category><![CDATA[blackberry GPS]]></category>

		<category><![CDATA[blackberry maps]]></category>

		<category><![CDATA[enterprise mobile apps]]></category>

		<category><![CDATA[gps mobile apps]]></category>

		<category><![CDATA[Mobile app development]]></category>

		<category><![CDATA[mobile applications]]></category>

		<category><![CDATA[mobile google maps]]></category>

		<category><![CDATA[Mobile Operating Systems]]></category>

		<guid isPermaLink="false">http://hibiscustech.com/blog/?p=50</guid>
		<description><![CDATA[By using Locator class one can get the location information of a given latitude and longitude. But for OS 7 if one uses locator class, it will give an exception. So in that case, one can use Google APIs to get the location address. The code given below is all about how to use the [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoListParagraph"><span lang="EN-IN">By using Locator class one can get the location information of a given latitude and longitude. But for OS 7 if one uses locator class, it will give an exception. So in that case, one can use Google APIs to get the location address. The code given below is all about how to use the Google APIs to get complete address details of a given latitude and longitude. </span></p>
<p class="MsoNormal"><span lang="EN-IN">=================================================================== </span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">public</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">class</span></strong><span lang="EN-IN"> Geocoder {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">private</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">static</span></strong><span lang="EN-IN"> String </span><em><span lang="EN-IN">networkString</span></em><span lang="EN-IN"> = </span><span lang="EN-IN">&#8220;&#8221;</span><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">private</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">double</span></strong><span lang="EN-IN">[] </span><span lang="EN-IN">coord</span><span lang="EN-IN"> = </span><strong><span lang="EN-IN">new</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">double</span></strong><span lang="EN-IN">[2];</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">private</span></strong><span lang="EN-IN"> String </span><span lang="EN-IN">name</span><span lang="EN-IN"> = </span><span lang="EN-IN">&#8220;&#8221;</span><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">public</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">double</span></strong><span lang="EN-IN">[] getAddressCordinate(String name) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> name = Split(name);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> String url = </span><span lang="EN-IN">&#8220;http://maps.googleapis.com/maps/api/geocode/xml?address=&#8221;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> + name + </span><span lang="EN-IN">&#8220;&amp;sensor=true&#8221;</span><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">try</span></strong><span lang="EN-IN"> {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (getnetworkString()) {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> HttpConnection connection = (HttpConnection) Connector.<em>open</em>(url</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> + </span><em><span lang="EN-IN">networkString</span></em><span lang="EN-IN">);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> connection.setRequestMethod(HttpConnection.</span><em><span lang="EN-IN">GET</span></em><span lang="EN-IN">);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> InputStream istream = connection.openInputStream();</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> SAXParserFactory spf = SAXParserFactory.<em>newInstance</em>();</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> SAXParser sp = spf.newSAXParser();</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> sp.parse(istream, </span><strong><span lang="EN-IN">new</span></strong><span lang="EN-IN"> LocationParser(</span><strong><span lang="EN-IN">this</span></strong><span lang="EN-IN">, </span><strong><span lang="EN-IN">false</span></strong><span lang="EN-IN">));</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> istream.close();</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> connection.close();</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> } </span><strong><span lang="EN-IN">catch</span></strong><span lang="EN-IN"> (Exception e) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> </span><span lang="EN-IN">coord</span><span lang="EN-IN">;</span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">private</span></strong><span lang="EN-IN"> String Split(String name) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> String newName = </span><span lang="EN-IN">&#8220;&#8221;</span><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">for</span></strong><span lang="EN-IN"> (</span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> i = 0; i &lt; name.length(); i++) {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (name.charAt(i) == </span><span lang="EN-IN">&#8216; &#8216;</span><span lang="EN-IN">)</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> newName += </span><span lang="EN-IN">&#8220;%20&#8243;</span><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">else</span></strong><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> newName += name.charAt(i);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> newName;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">private</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">boolean</span></strong><span lang="EN-IN"> getnetworkString() {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (DeviceInfo.<em>isSimulator</em>()) {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><em><span lang="EN-IN">networkString</span></em><span lang="EN-IN"> = </span><span lang="EN-IN">&#8220;;deviceside=true;ConnectionTimeout=20000&#8243;</span><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">true</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">else</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (WLANInfo.<em>getWLANState</em>() == WLANInfo.</span><em><span lang="EN-IN">WLAN_STATE_CONNECTED</span></em><span lang="EN-IN">) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><em><span lang="EN-IN">networkString</span></em><span lang="EN-IN"> = </span><span lang="EN-IN">&#8220;;interface=wifi&#8221;</span><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">true</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">else</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> ((CoverageInfo.<em>getCoverageStatus</em>() &amp; CoverageInfo.</span><em><span lang="EN-IN">COVERAGE_DIRECT</span></em><span lang="EN-IN">) == CoverageInfo.</span><em><span lang="EN-IN">COVERAGE_DIRECT</span></em><span lang="EN-IN">) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span> String carrierUid = getCarrierBIBSUid();</p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (carrierUid == </span><strong><span lang="EN-IN">null</span></strong><span lang="EN-IN">) {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><em><span lang="EN-IN">networkString</span></em><span lang="EN-IN"> = </span><span lang="EN-IN">&#8220;;deviceside=true&#8221;</span><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">true</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> } </span><strong><span lang="EN-IN">else</span></strong><span lang="EN-IN"> {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><em><span lang="EN-IN">networkString</span></em><span lang="EN-IN"> = </span><span lang="EN-IN">&#8220;;deviceside=false;connectionUID=&#8221;</span><span lang="EN-IN"> + carrierUid</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> + </span><span lang="EN-IN">&#8220;;ConnectionType=mds-public&#8221;</span><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">true</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">else</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> ((CoverageInfo.<em>getCoverageStatus</em>() &amp; CoverageInfo.</span><em><span lang="EN-IN">COVERAGE_MDS</span></em><span lang="EN-IN">) == CoverageInfo.</span><em><span lang="EN-IN">COVERAGE_MDS</span></em><span lang="EN-IN">) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><em><span lang="EN-IN">networkString</span></em><span lang="EN-IN"> = </span><span lang="EN-IN">&#8220;;deviceside=false&#8221;</span><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">true</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">else</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (CoverageInfo.<em>getCoverageStatus</em>() == CoverageInfo.</span><em><span lang="EN-IN">COVERAGE_NONE</span></em><span lang="EN-IN">) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">false</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">else</span></strong><span lang="EN-IN"> {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><em><span lang="EN-IN">networkString</span></em><span lang="EN-IN"> = </span><span lang="EN-IN">&#8220;;deviceside=true&#8221;</span><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">true</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span> }</p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">private</span></strong><span lang="EN-IN"> String getCarrierBIBSUid() {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> ServiceRecord[] records = ServiceBook.<em>getSB</em>().getRecords();</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> currentRecord;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">for</span></strong><span lang="EN-IN"> (currentRecord = 0; currentRecord &lt; records.</span><span lang="EN-IN">length</span><span lang="EN-IN">; currentRecord++) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (records[currentRecord].getCid().toLowerCase().equals(</span><span lang="EN-IN">&#8220;ippp&#8221;</span><span lang="EN-IN">)) {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (records[currentRecord].getName().toLowerCase()</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> .indexOf(</span><span lang="EN-IN">&#8220;bibs&#8221;</span><span lang="EN-IN">) &gt;= 0) {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> records[currentRecord].getUid();</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">null</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">public</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">void</span></strong><span lang="EN-IN"> upDateLocation(</span><strong><span lang="EN-IN">double</span></strong><span lang="EN-IN"> latitude, </span><strong><span lang="EN-IN">double</span></strong><span lang="EN-IN"> longitude) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN">coord</span><span lang="EN-IN">[0] = latitude;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN">coord</span><span lang="EN-IN">[1] = longitude;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span> }</p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">public</span></strong><span lang="EN-IN"> String reverseGeocode(</span><strong><span lang="EN-IN">double</span></strong><span lang="EN-IN"> lat, </span><strong><span lang="EN-IN">double</span></strong><span lang="EN-IN"> lng) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> String url = </span><span lang="EN-IN">&#8220;http://maps.google.com/maps/api/geocode/xml?sensor=false&amp;latlng=&#8221;</span></p>
<p class="MsoNormal"><span lang="EN-IN"> + lat + </span><span lang="EN-IN">&#8220;,&#8221;</span><span lang="EN-IN"> + lng;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">try</span></strong><span lang="EN-IN"> {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (getnetworkString()) {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> HttpConnection connection = (HttpConnection) Connector.<em>open</em>(url</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> + </span><em><span lang="EN-IN">networkString</span></em><span lang="EN-IN">);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> connection.setRequestMethod(HttpConnection.</span><em><span lang="EN-IN">GET</span></em><span lang="EN-IN">);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> InputStream istream = connection.openInputStream();</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> SAXParserFactory spf = SAXParserFactory.<em>newInstance</em>();</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> SAXParser sp = spf.newSAXParser();</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> sp.parse(istream, </span><strong><span lang="EN-IN">new</span></strong><span lang="EN-IN"> LocationParser(</span><strong><span lang="EN-IN">this</span></strong><span lang="EN-IN">, </span><strong><span lang="EN-IN">true</span></strong><span lang="EN-IN">));</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> istream.close();</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> connection.close();</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> } </span><strong><span lang="EN-IN">catch</span></strong><span lang="EN-IN"> (Exception e) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> </span><span lang="EN-IN">name</span><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">public</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">void</span></strong><span lang="EN-IN"> setName(String name) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">this</span></strong><span lang="EN-IN">.</span><span lang="EN-IN">name</span><span lang="EN-IN"> = name;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN">}</span><span lang="EN-IN"></span></p>
<div>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">public</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">class</span></strong><span lang="EN-IN"> LocationParser </span><strong><span lang="EN-IN">extends</span></strong><span lang="EN-IN"> DefaultHandler {</span></p>
</div>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">private</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">boolean</span></strong><span lang="EN-IN"> </span><span lang="EN-IN">getName</span><span lang="EN-IN"> = </span><strong><span lang="EN-IN">false</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">private</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">boolean</span></strong><span lang="EN-IN"> </span><span lang="EN-IN">lat</span><span lang="EN-IN"> = </span><strong><span lang="EN-IN">false</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">private</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">boolean</span></strong><span lang="EN-IN"> </span><span lang="EN-IN">longi</span><span lang="EN-IN"> = </span><strong><span lang="EN-IN">false</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">private</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">double</span></strong><span lang="EN-IN"> </span><span lang="EN-IN">latitude</span><span lang="EN-IN"> = 0;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">private</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">double</span></strong><span lang="EN-IN"> </span><span lang="EN-IN">longitude</span><span lang="EN-IN"> = 0;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> Geocoder </span><span lang="EN-IN">geocoder</span><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">private</span></strong><span lang="EN-IN"> String </span><span lang="EN-IN">address</span><span lang="EN-IN"> = </span><span lang="EN-IN">&#8220;&#8221;</span><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">private</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">boolean</span></strong><span lang="EN-IN"> </span><span lang="EN-IN">addressfound</span><span lang="EN-IN"> = </span><strong><span lang="EN-IN">false</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">public</span></strong><span lang="EN-IN"> LocationParser(Geocoder geocoder, </span><strong><span lang="EN-IN">boolean</span></strong><span lang="EN-IN"> getName) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">this</span></strong><span lang="EN-IN">.</span><span lang="EN-IN">getName</span><span lang="EN-IN"> = getName;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">this</span></strong><span lang="EN-IN">.</span><span lang="EN-IN">geocoder</span><span lang="EN-IN"> = geocoder;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">public</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">void</span></strong><span lang="EN-IN"> startDocument() </span><strong><span lang="EN-IN">throws</span></strong><span lang="EN-IN"> SAXException {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">super</span></strong><span lang="EN-IN">.startDocument();</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">public</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">void</span></strong><span lang="EN-IN"> startElement(String uri, String localName, String qName,</span></p>
<p class="MsoNormal"><span lang="EN-IN"> Attributes attributes) </span><strong><span lang="EN-IN">throws</span></strong><span lang="EN-IN"> SAXException {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">super</span></strong><span lang="EN-IN">.startElement(uri, localName, qName, attributes);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (localName.equals(</span><span lang="EN-IN">&#8220;lat&#8221;</span><span lang="EN-IN">))</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN">lat</span><span lang="EN-IN"> = </span><strong><span lang="EN-IN">true</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (localName.equals(</span><span lang="EN-IN">&#8220;lng&#8221;</span><span lang="EN-IN">))</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN">longi</span><span lang="EN-IN"> = </span><strong><span lang="EN-IN">true</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (localName.equals(</span><span lang="EN-IN">&#8220;formatted_address&#8221;</span><span lang="EN-IN">))</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN">addressfound</span><span lang="EN-IN"> = </span><strong><span lang="EN-IN">true</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">public</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">void</span></strong><span lang="EN-IN"> characters(</span><strong><span lang="EN-IN">char</span></strong><span lang="EN-IN">[] ch, </span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> start, </span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> length)</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">throws</span></strong><span lang="EN-IN"> SAXException {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">super</span></strong><span lang="EN-IN">.characters(ch, start, length);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (</span><span lang="EN-IN">lat</span><span lang="EN-IN">) {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN">lat</span><span lang="EN-IN"> = </span><strong><span lang="EN-IN">false</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN">latitude</span><span lang="EN-IN"> = Double.<em>parseDouble</em>(</span><strong><span lang="EN-IN">new</span></strong><span lang="EN-IN"> String(ch, start, length));</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (</span><span lang="EN-IN">longi</span><span lang="EN-IN">) {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN">longi</span><span lang="EN-IN"> = </span><strong><span lang="EN-IN">false</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN">longitude</span><span lang="EN-IN"> = Double.<em>parseDouble</em>(</span><strong><span lang="EN-IN">new</span></strong><span lang="EN-IN"> String(ch, start, length));</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (</span><span lang="EN-IN">addressfound</span><span lang="EN-IN">) {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (</span><span lang="EN-IN">address</span><span lang="EN-IN">.equals(</span><span lang="EN-IN">&#8220;&#8221;</span><span lang="EN-IN">))</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN">address</span><span lang="EN-IN"> = </span><strong><span lang="EN-IN">new</span></strong><span lang="EN-IN"> String(ch, start, length);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN">addressfound</span><span lang="EN-IN"> = </span><strong><span lang="EN-IN">false</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">public</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">void</span></strong><span lang="EN-IN"> endElement(String uri, String localName, String qName)</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">throws</span></strong><span lang="EN-IN"> SAXException {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">super</span></strong><span lang="EN-IN">.endElement(uri, localName, qName);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">public</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">void</span></strong><span lang="EN-IN"> endDocument() </span><strong><span lang="EN-IN">throws</span></strong><span lang="EN-IN"> SAXException {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">super</span></strong><span lang="EN-IN">.endDocument();</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (</span><span lang="EN-IN">getName</span><span lang="EN-IN"> == </span><strong><span lang="EN-IN">false</span></strong><span lang="EN-IN">)</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN">geocoder</span><span lang="EN-IN">.upDateLocation(</span><span lang="EN-IN">latitude</span><span lang="EN-IN">, </span><span lang="EN-IN">longitude</span><span lang="EN-IN">);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">else</span></strong><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN">geocoder</span><span lang="EN-IN">.setName(</span><span lang="EN-IN">address</span><span lang="EN-IN">);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN">}</span></p>
]]></content:encoded>
			<wfw:commentRss>http://hibiscustech.com/blog/2012/02/15/blackberry-application-development-geo-coding/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Blackberry App Development - Map - Achieving map pin click for non touch devices - scrolling of map for touch devices.</title>
		<link>http://hibiscustech.com/blog/2012/02/15/blackberry-app-development-map-achieving-map-pin-click-for-non-touch-devices-scrolling-of-map-for-touch-devices/</link>
		<comments>http://hibiscustech.com/blog/2012/02/15/blackberry-app-development-map-achieving-map-pin-click-for-non-touch-devices-scrolling-of-map-for-touch-devices/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 07:52:41 +0000</pubDate>
		<dc:creator>Himansu</dc:creator>
		
		<category><![CDATA[Blackberry]]></category>

		<category><![CDATA[android development]]></category>

		<category><![CDATA[android games]]></category>

		<category><![CDATA[blackberry apps]]></category>

		<category><![CDATA[blackberry games]]></category>

		<category><![CDATA[blackberry maps]]></category>

		<category><![CDATA[GPS]]></category>

		<category><![CDATA[ipad]]></category>

		<category><![CDATA[iphone]]></category>

		<category><![CDATA[Mobile app development]]></category>

		<category><![CDATA[mobile applications]]></category>

		<guid isPermaLink="false">http://hibiscustech.com/blog/?p=47</guid>
		<description><![CDATA[One can draw pin over the map and click on each pin to perform a particular task like going to the subsequent screen, view address etc. It’s easy to achieve this task on touch devices but performing same task in non touch device has its own difficulties associated with it. To achieve this, one can [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoListParagraphCxSpFirst"><span lang="EN-IN">One can draw pin over the map and click on each pin to perform a particular task like going to the subsequent screen, view address etc. It’s easy to achieve this task on touch devices but performing same task in non touch device has its own difficulties associated with it. To achieve this, one can use the code given below. </span></p>
<p class="MsoListParagraphCxSpMiddle">We are showing a small circle (a PNG image) in the centre of the map. One need to scroll top / bottom or right / left and place a pin in the centre of the map then on click you will be able to perform a particular task .</p>
<p class="MsoListParagraphCxSpMiddle">Now coming to touch device, if you are using your own map class, I have read in many forum and blog that it’s not possible and very difficult to scroll the map. Here is a simple solution to achieve this. You can scroll the entire map by using the code given below.</p>
<p class="MsoListParagraphCxSpMiddle">
<p><div id="attachment_48" class="wp-caption aligncenter" style="width: 332px"><a href="http://hibiscustech.com/blog/wp-content/uploads/2012/02/map_nontouch.png"><img class="size-full wp-image-48" title="map_nontouch" src="http://hibiscustech.com/blog/wp-content/uploads/2012/02/map_nontouch.png" alt="Blackberry Non Touch Device Mapping Pins" width="322" height="190" /></a><p class="wp-caption-text">Blackberry Non Touch Device Mapping Pins</p></div></p>
<p class="MsoListParagraphCxSpLast"><span lang="EN-IN">=================================================================== </span></p>
<p class="MsoNormal"><strong><span lang="EN-IN">public</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">class</span></strong><span lang="EN-IN"> MapScreen </span><strong><span lang="EN-IN">extends</span></strong><span lang="EN-IN"> MainScreen </span><strong><span lang="EN-IN">implements</span></strong><span lang="EN-IN"></span></p>
<p class="MsoListParagraph"><span lang="EN-IN"> FocusChangeListener, FieldChangeListener {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">private</span></strong><span lang="EN-IN"> DemoMapField </span><span lang="EN-IN">_mapField</span><span lang="EN-IN">;;</span><span lang="EN-IN"></span></p>
<p class="MsoListParagraphCxSpFirst"><span lang="EN-IN"> </span></p>
<p class="MsoListParagraphCxSpMiddle"><strong><span lang="EN-IN">public </span></strong><span lang="EN-IN">MapScreen(){</span></p>
<p class="MsoListParagraphCxSpMiddle"><span lang="EN-IN"> // TODO something.</span></p>
<p class="MsoListParagraphCxSpMiddle"><span lang="EN-IN">}</span></p>
<p class="MsoListParagraphCxSpLast"><span lang="EN-IN"> </span></p>
<p class="MsoNormal"><strong><span lang="EN-IN">protected</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">boolean</span></strong><span lang="EN-IN"> keyChar(</span><strong><span lang="EN-IN">char</span></strong><span lang="EN-IN"> c, </span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> status, </span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> time) {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (c == </span><span lang="EN-IN">&#8216;!&#8217;</span><span lang="EN-IN">) {</span><span lang="EN-IN">// Zoom In</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN">_mapField</span><span lang="EN-IN">.setZoom(Math.<em>max</em>(</span><span lang="EN-IN">_mapField</span><span lang="EN-IN">.getZoom() - 1,</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN">_mapField</span><span lang="EN-IN">.getMinZoom()));</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">true</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> } </span><strong><span lang="EN-IN">else</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (c == </span><span lang="EN-IN">&#8216;@&#8217;</span><span lang="EN-IN">) {</span><span lang="EN-IN">// Zoom out</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN">_mapField</span><span lang="EN-IN">.setZoom(Math.<em>min</em>(</span><span lang="EN-IN">_mapField</span><span lang="EN-IN">.getZoom() + 1,</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN">_mapField</span><span lang="EN-IN">.getMaxZoom()));</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">true</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">super</span></strong><span lang="EN-IN">.keyChar(c, status, time);</span><span lang="EN-IN"></span></p>
<p class="MsoListParagraph"><span lang="EN-IN"> }</span></p>
<p class="MsoNormal"><strong><span lang="EN-IN">protected</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">boolean</span></strong><span lang="EN-IN"> navigationMovement(</span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> dx, </span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> dy, </span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> status, </span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> time)    {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> </span><span lang="EN-IN">_mapField</span><span lang="EN-IN">.navigationMovement(dx, dy, status, time, </span><strong><span lang="EN-IN">this</span></strong><span lang="EN-IN">);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">true</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoListParagraphCxSpFirst"><span lang="EN-IN"> }</span></p>
<p class="MsoListParagraphCxSpLast"><span lang="EN-IN"> </span></p>
<p class="MsoNormal"><strong><span lang="EN-IN">protected</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">boolean</span></strong><span lang="EN-IN"> navigationClick(</span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> status, </span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> time) {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span></p>
<p class="MsoNormal"><span lang="EN-IN"> // Call : </span><span lang="EN-IN">_mapField</span><span lang="EN-IN">.getHighlightedLocation();</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> //TODO Something </span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">true</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoListParagraphCxSpFirst"><span lang="EN-IN"> }</span></p>
<p class="MsoListParagraphCxSpLast"><span lang="EN-IN"> </span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">protected</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">boolean</span></strong><span lang="EN-IN"> touchEvent(TouchEvent message) {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">boolean</span></strong><span lang="EN-IN"> isConsumed = </span><strong><span lang="EN-IN">false</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">try</span></strong><span lang="EN-IN">{</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (message.getEvent() == TouchEvent.</span><em><span lang="EN-IN">CLICK</span></em><span lang="EN-IN">) {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">super</span></strong><span lang="EN-IN">.touchEvent(message);</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN">_ mapField</span><span lang="EN-IN">.setFocus();</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> HandleMapClick(message);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><strong><span lang="EN-IN">catch</span></strong><span lang="EN-IN"> (Exception e) {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">try</span></strong><span lang="EN-IN">{</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> TouchGesture touchGesture = message.getGesture();</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (touchGesture!=</span><strong><span lang="EN-IN">null</span></strong><span lang="EN-IN"> &amp;&amp; touchGesture.getEvent() == TouchGesture.</span><em><span lang="EN-IN">SWIPE</span></em><span lang="EN-IN">)</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (touchGesture.getSwipeDirection() == TouchGesture.</span><em><span lang="EN-IN">SWIPE_EAST</span></em><span lang="EN-IN">) {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">for</span></strong><span lang="EN-IN"> (</span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> index = 0; index &lt; 6; index++)</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> navigationMovement(-index, 0, 1, 0);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">true</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (touchGesture.getSwipeDirection() == TouchGesture.</span><em><span lang="EN-IN">SWIPE_NORTH</span></em><span lang="EN-IN">) {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">for</span></strong><span lang="EN-IN"> (</span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> index = 0; index &lt; 6; index++)</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> navigationMovement(0, index, 1, 0);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">true</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (touchGesture.getSwipeDirection() == TouchGesture.</span><em><span lang="EN-IN">SWIPE_SOUTH</span></em><span lang="EN-IN">) {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">for</span></strong><span lang="EN-IN"> (</span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> index = 0; index &lt; 6; index++)</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> navigationMovement(0, -index, 1, 0);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">true</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (touchGesture.getSwipeDirection() == TouchGesture.</span><em><span lang="EN-IN">SWIPE_WEST</span></em><span lang="EN-IN">) {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">for</span></strong><span lang="EN-IN"> (</span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> index = 0; index &lt; 6; index++)</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> navigationMovement(index, 0, 1, 0);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">true</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><strong><span lang="EN-IN">catch</span></strong><span lang="EN-IN"> (Throwable e) {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> isConsumed;</span><span lang="EN-IN"></span></p>
<p class="MsoListParagraph"><span lang="EN-IN"> }</span></p>
<p class="MsoNormal"><strong><span lang="EN-IN">private</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">void</span></strong><span lang="EN-IN"> HandleMapClick(TouchEvent message) {</span><span lang="EN-IN"></span></p>
<p class="MsoListParagraph"><span lang="EN-IN"> </span><strong><span lang="EN-IN">try</span></strong><span lang="EN-IN"> {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN">_mapField</span><span lang="EN-IN">.setClick(message);</span><span lang="EN-IN"></span></p>
<p class="MsoListParagraphCxSpFirst"><span lang="EN-IN"> </span><span lang="EN-IN">// Call : _mapField</span><span lang="EN-IN">.getHighlightedLocation();</span></p>
<p class="MsoListParagraphCxSpMiddle"><span lang="EN-IN"> </span></p>
<p class="MsoListParagraphCxSpLast"><span lang="EN-IN"> //TODO Something</span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><strong><span lang="EN-IN"> catch</span></strong><span lang="EN-IN"> (Exception e) {</span><span lang="EN-IN"></span></p>
<p class="MsoListParagraphCxSpFirst"><span lang="EN-IN"> }</span></p>
<p class="MsoListParagraphCxSpMiddle"><span lang="EN-IN">}</span></p>
<p class="MsoListParagraphCxSpLast"><span lang="EN-IN">***************************************************************************</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN"> public</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">class</span></strong><span lang="EN-IN"> DemoMapField </span><strong><span lang="EN-IN">extends</span></strong><span lang="EN-IN"> MapField{</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">private</span></strong><span lang="EN-IN"> Vector </span><span lang="EN-IN">_allLocations</span><span lang="EN-IN"> = </span><strong><span lang="EN-IN">new</span></strong><span lang="EN-IN"> Vector();</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">private</span></strong><span lang="EN-IN"> MapLocation </span><span lang="EN-IN">_highlightedLocation</span><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">private</span></strong><span lang="EN-IN"> Bitmap </span><span lang="EN-IN">bmpCursor</span><span lang="EN-IN"> = Bitmap.<em>getBitmapResource</em>(</span><span lang="EN-IN">&#8220;highlighted circle image&#8221;</span><span lang="EN-IN">);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">private</span></strong><span lang="EN-IN"> Bitmap </span><span lang="EN-IN">bmpPinRed</span><span lang="EN-IN"> = Bitmap.<em>getBitmapResource</em>(</span><span lang="EN-IN">&#8220;an png image- pin&#8221;</span><span lang="EN-IN">);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">private</span></strong><span lang="EN-IN"> Bitmap </span><span lang="EN-IN">bmpPinBlue</span><span lang="EN-IN"> = Bitmap.<em>getBitmapResource</em>(</span><span lang="EN-IN">&#8220;an png image-pin &#8220;</span><span lang="EN-IN">);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">protected</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">void</span></strong><span lang="EN-IN"> paint(Graphics g) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> g.setDrawingStyle(Graphics.</span><em><span lang="EN-IN">DRAWSTYLE_AAPOLYGONS</span></em><span lang="EN-IN">, </span><strong><span lang="EN-IN">true</span></strong><span lang="EN-IN">);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">super</span></strong><span lang="EN-IN">.paint(g);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (!Touchscreen.<em>isSupported</em>()) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> determineSelectedLocation(</span><strong><span lang="EN-IN">new</span></strong><span lang="EN-IN"> XYPoint(getWidth() &gt;&gt; 1,</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> getHeight() &gt;&gt; 1));</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> g.drawBitmap((getWidth() - </span><span lang="EN-IN">bmpCursor</span><span lang="EN-IN">.getWidth()) &gt;&gt; 1,</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> (getHeight() - </span><span lang="EN-IN">bmpCursor</span><span lang="EN-IN">.getHeight()) &gt;&gt; 1, getWidth(),</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> getHeight(), </span><span lang="EN-IN">bmpCursor</span><span lang="EN-IN">, 0, 0);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (</span><strong><span lang="EN-IN">this</span></strong><span lang="EN-IN">.</span><span lang="EN-IN">currentLocation</span><span lang="EN-IN"> != </span><strong><span lang="EN-IN">null</span></strong><span lang="EN-IN">) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> MapLocation currentSite = </span><strong><span lang="EN-IN">new</span></strong><span lang="EN-IN"> MapLocation(</span><strong><span lang="EN-IN">this</span></strong><span lang="EN-IN">.</span><span lang="EN-IN">currentLocation</span><span lang="EN-IN">[0],</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">this</span></strong><span lang="EN-IN">.</span><span lang="EN-IN">currentLocation</span><span lang="EN-IN">[1], </span><span lang="EN-IN">&#8220;&#8221;</span><span lang="EN-IN">, </span><span lang="EN-IN">&#8220;&#8221;</span><span lang="EN-IN">, </span><span lang="EN-IN">&#8220;&#8221;</span><span lang="EN-IN">, </span><span lang="EN-IN">&#8220;&#8221;</span><span lang="EN-IN">);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> drawSite(g, currentSite, </span><span lang="EN-IN">bmpPinRed</span><span lang="EN-IN">);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">for</span></strong><span lang="EN-IN"> (</span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> count = 0; count &lt; </span><span lang="EN-IN">_allLocations</span><span lang="EN-IN">.size(); count++) {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> MapLocation currentSite = (MapLocation) </span><span lang="EN-IN">_allLocations</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> .elementAt(count);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> drawSite(g, currentSite, </span><span lang="EN-IN">bmpPinBlue</span><span lang="EN-IN">);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> g.setColor(Color.</span><em><span lang="EN-IN">BLACK</span></em><span lang="EN-IN">);</span></p>
<p class="MsoNormal"><span lang="EN-IN"> g.drawText(</span><span lang="EN-IN">“Use &#8216;!&#8217; to zoom in”</span><span lang="EN-IN">, 1, </span></p>
<p class="MsoNormal"><span lang="EN-IN"> g.getFont().getHeight() + 2);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> g.drawText(</span><span lang="EN-IN">“Use &#8216;@&#8217; to zoom out”</span><span lang="EN-IN">, 1,</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> (g.getFont().getHeight() * 2) + 4);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">public</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">void</span></strong><span lang="EN-IN"> determineSelectedLocation(XYPoint colisionWith) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (</span><span lang="EN-IN">_allLocations</span><span lang="EN-IN"> == </span><strong><span lang="EN-IN">null</span></strong><span lang="EN-IN"> || </span><span lang="EN-IN">_allLocations</span><span lang="EN-IN">.size() == 0)</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> XYPoint[] locationsXY = </span><strong><span lang="EN-IN">new</span></strong><span lang="EN-IN"> XYPoint[</span><span lang="EN-IN">_allLocations</span><span lang="EN-IN">.size()];</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">for</span></strong><span lang="EN-IN"> (</span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> count = 0; count &lt; locationsXY.</span><span lang="EN-IN">length</span><span lang="EN-IN">; count++) {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> MapLocation currentSite = (MapLocation) </span><span lang="EN-IN">_allLocations</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> .elementAt(count);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> Coordinates co = </span><strong><span lang="EN-IN">new</span></strong><span lang="EN-IN"> Coordinates(currentSite.getLatitude(),</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> currentSite.getLongitude(), 0);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> XYPoint p = </span><strong><span lang="EN-IN">new</span></strong><span lang="EN-IN"> XYPoint();</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> convertWorldToField(co, p);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> locationsXY[count] = p;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> closerIndex = 0;</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> closerValue = getDiff(colisionWith, locationsXY[0]);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">for</span></strong><span lang="EN-IN"> (</span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> i = 1; i &lt; locationsXY.</span><span lang="EN-IN">length</span><span lang="EN-IN">; i++) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> diff = getDiff(colisionWith, locationsXY[i]);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (diff &lt; closerValue) {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> closerValue = diff;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> closerIndex = i;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (closerValue &lt;= 60) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN">_highlightedLocation</span><span lang="EN-IN"> = (MapLocation) </span><span lang="EN-IN">_allLocations</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> .elementAt(closerIndex);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> } </span><strong><span lang="EN-IN">else</span></strong><span lang="EN-IN"> {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN">_highlightedLocation</span><span lang="EN-IN"> = </span><strong><span lang="EN-IN">null</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">private</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> getDiff(XYPoint p1, XYPoint p2) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> Math.<em>abs</em>(Math.<em>abs</em>(p1.</span><span lang="EN-IN">x</span><span lang="EN-IN">) - Math.<em>abs</em>(p2.</span><span lang="EN-IN">x</span><span lang="EN-IN">))</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> + Math.<em>abs</em>(Math.<em>abs</em>(p1.</span><span lang="EN-IN">y</span><span lang="EN-IN">) - Math.<em>abs</em>(p2.</span><span lang="EN-IN">y</span><span lang="EN-IN">));</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">void</span></strong><span lang="EN-IN"> drawSite(Graphics g, MapLocation currentSite, Bitmap bmp) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> Coordinates co = </span><strong><span lang="EN-IN">new</span></strong><span lang="EN-IN"> Coordinates(currentSite.getLatitude(),</span></p>
<p class="MsoNormal"><span lang="EN-IN"> currentSite.getLongitude(), 0);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> XYPoint point = </span><strong><span lang="EN-IN">new</span></strong><span lang="EN-IN"> XYPoint();</span></p>
<p class="MsoNormal"><span lang="EN-IN"> convertWorldToField(co, point);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (!(point.</span><span lang="EN-IN">x</span><span lang="EN-IN"> &lt; 0 || point.</span><span lang="EN-IN">x</span><span lang="EN-IN"> &gt; getWidth() || point.</span><span lang="EN-IN">y</span><span lang="EN-IN"> &lt; 0 || point.</span><span lang="EN-IN">y</span><span lang="EN-IN"> &gt; getHeight())) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> g.drawBitmap(point.</span><span lang="EN-IN">x</span><span lang="EN-IN"> - 5, point.</span><span lang="EN-IN">y</span><span lang="EN-IN"> - bmp.getHeight() + 10,</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> bmp.getWidth(), bmp.getHeight(), bmp, 0, 0);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">public</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">void</span></strong><span lang="EN-IN"> setZoom(</span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> zoom) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">super</span></strong><span lang="EN-IN">.setZoom(zoom);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">public</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">boolean</span></strong><span lang="EN-IN"> navigationMovement(</span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> dx, </span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> dy, </span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> s, </span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> t,</span></p>
<p class="MsoNormal"><span lang="EN-IN"> MainScreen mainScreen) {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> zoom = getZoom();</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> latitude = getLatitude() - ((dy &lt;&lt; 3) &lt;&lt; zoom); </span><span lang="EN-IN">// &lt;&lt; 3 is</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> longitude = getLongitude() + ((dx &lt;&lt; 3) &lt;&lt; zoom);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> moveTo(latitude, longitude);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">true</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">private</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">boolean</span></strong><span lang="EN-IN"> <span style="text-decoration: underline;">FindMaximum(</span></span><strong><span style="text-decoration: underline;"><span lang="EN-IN">double</span></span></strong><span style="text-decoration: underline;"><span lang="EN-IN"> latitude, </span></span><strong><span style="text-decoration: underline;"><span lang="EN-IN">int</span></span></strong><span style="text-decoration: underline;"><span lang="EN-IN"> dx, </span></span><strong><span style="text-decoration: underline;"><span lang="EN-IN">int</span></span></strong><span style="text-decoration: underline;"><span lang="EN-IN"> dy, </span></span><strong><span style="text-decoration: underline;"><span lang="EN-IN">int</span></span></strong><span style="text-decoration: underline;"><span lang="EN-IN"> zoom)</span></span><span lang="EN-IN"> {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">double</span></strong><span lang="EN-IN"> minLat = Double.</span><em><span lang="EN-IN">MAX_VALUE</span></em><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">for</span></strong><span lang="EN-IN"> (</span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> i = 0; i &lt; </span><span lang="EN-IN">_allLocations</span><span lang="EN-IN">.size(); i++) {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> MapLocation location = (MapLocation) </span><span lang="EN-IN">_allLocations</span><span lang="EN-IN">.elementAt(i);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (location.getLatitude() &lt; minLat)</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> minLat = location.getLatitude();</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (minLat &lt; latitude)</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">false</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">else</span></strong><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">true</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span> }</p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">private</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">boolean</span></strong><span lang="EN-IN"> <span style="text-decoration: underline;">FindMinimum(</span></span><strong><span style="text-decoration: underline;"><span lang="EN-IN">double</span></span></strong><span style="text-decoration: underline;"><span lang="EN-IN"> latitude, </span></span><strong><span style="text-decoration: underline;"><span lang="EN-IN">int</span></span></strong><span style="text-decoration: underline;"><span lang="EN-IN"> dx, </span></span><strong><span style="text-decoration: underline;"><span lang="EN-IN">int</span></span></strong><span style="text-decoration: underline;"><span lang="EN-IN"> dy, </span></span><strong><span style="text-decoration: underline;"><span lang="EN-IN">int</span></span></strong><span style="text-decoration: underline;"><span lang="EN-IN"> zoom)</span></span><span lang="EN-IN"> {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">double</span></strong><span lang="EN-IN"> maxLat = Double.</span><em><span lang="EN-IN">MIN_VALUE</span></em><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">for</span></strong><span lang="EN-IN"> (</span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> i = 0; i &lt; </span><span lang="EN-IN">_allLocations</span><span lang="EN-IN">.size(); i++) {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> MapLocation location = (MapLocation) </span><span lang="EN-IN">_allLocations</span><span lang="EN-IN">.elementAt(i);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (location.getLatitude() &gt; maxLat)</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> maxLat = location.getLatitude();</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (maxLat &gt; latitude)</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">false</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">else</span></strong><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">true</span></strong><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">protected</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">boolean</span></strong><span lang="EN-IN"> touchEvent(TouchEvent message) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">if</span></strong><span lang="EN-IN"> (message.getEvent() == TouchEvent.</span><em><span lang="EN-IN">CLICK</span></em><span lang="EN-IN">) {</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> x = message.getX(1) - getLeft();</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">int</span></strong><span lang="EN-IN"> y = message.getY(1) - getTop();</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> determineSelectedLocation(</span><strong><span lang="EN-IN">new</span></strong><span lang="EN-IN"> XYPoint(x, y));</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">true</span></strong><span lang="EN-IN">;</span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">super</span></strong><span lang="EN-IN">.touchEvent(message);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">void</span></strong><span lang="EN-IN"> addSite(MapLocation site) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN">_allLocations</span><span lang="EN-IN">.addElement(site);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">public</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">void</span></strong><span lang="EN-IN"> setLocations(Vector allLocations) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">this</span></strong><span lang="EN-IN">.</span><span lang="EN-IN">_allLocations</span><span lang="EN-IN"> = allLocations;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">public</span></strong><span lang="EN-IN"> MapLocation getHighlightedLocation() {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">return</span></strong><span lang="EN-IN"> </span><span lang="EN-IN">_highlightedLocation</span><span lang="EN-IN">;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">private</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">double</span></strong><span lang="EN-IN">[] </span><span lang="EN-IN">currentLocation</span><span lang="EN-IN"> = </span><strong><span lang="EN-IN">null</span></strong><span lang="EN-IN">;</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">public</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">void</span></strong><span lang="EN-IN"> setCurrentLocation(</span><strong><span lang="EN-IN">double</span></strong><span lang="EN-IN">[] currentLocation) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><strong><span lang="EN-IN">this</span></strong><span lang="EN-IN">.</span><span lang="EN-IN">currentLocation</span><span lang="EN-IN"> = currentLocation;</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> }</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span><span lang="EN-IN"> </span><strong><span lang="EN-IN">public</span></strong><span lang="EN-IN"> </span><strong><span lang="EN-IN">void</span></strong><span lang="EN-IN"> setClick(TouchEvent message) {</span></p>
<p class="MsoNormal"><span lang="EN-IN"> touchEvent(message);</span><span lang="EN-IN"></span></p>
<p class="MsoNormal"><span lang="EN-IN"> </span> }</p>
<p class="MsoNormal"><span lang="EN-IN">}</span><span lang="EN-IN"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://hibiscustech.com/blog/2012/02/15/blackberry-app-development-map-achieving-map-pin-click-for-non-touch-devices-scrolling-of-map-for-touch-devices/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Global Smartphone Statistics</title>
		<link>http://hibiscustech.com/blog/2011/11/08/global-smartphone-statistics/</link>
		<comments>http://hibiscustech.com/blog/2011/11/08/global-smartphone-statistics/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 07:48:36 +0000</pubDate>
		<dc:creator>htsblogger</dc:creator>
		
		<category><![CDATA[buzz]]></category>

		<category><![CDATA[android development]]></category>

		<category><![CDATA[android games]]></category>

		<category><![CDATA[enterprise mobile apps]]></category>

		<category><![CDATA[hibiscus]]></category>

		<category><![CDATA[Hibiscus Technology Solutions]]></category>

		<category><![CDATA[hibiscustech]]></category>

		<category><![CDATA[iOS]]></category>

		<category><![CDATA[ipad]]></category>

		<category><![CDATA[ipad games]]></category>

		<category><![CDATA[iphone]]></category>

		<category><![CDATA[iphone games]]></category>

		<category><![CDATA[mobile]]></category>

		<category><![CDATA[mobile development]]></category>

		<category><![CDATA[Mobile Operating Systems]]></category>

		<category><![CDATA[Mobile phone statistics]]></category>

		<category><![CDATA[mobile website]]></category>

		<category><![CDATA[Smartphone manufacturers]]></category>

		<guid isPermaLink="false">http://hibiscustech.com/blog/?p=39</guid>
		<description><![CDATA[Top Mobile Phone manufacturers as of 2010:

Top Smartphone Manufacturers:

Smartphone Operating Systems:


]]></description>
			<content:encoded><![CDATA[<p>Top Mobile Phone manufacturers as of 2010:</p>
<p><img src="data:image/png;base64,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" alt="" /></p>
<p>Top Smartphone Manufacturers:</p>
<p><img src="data:image/png;base64,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" alt="" /></p>
<p>Smartphone Operating Systems:</p>
<p><img src="data:image/png;base64,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" alt="" /></p>
<p><img src="data:image/png;base64,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" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://hibiscustech.com/blog/2011/11/08/global-smartphone-statistics/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Hibiscus Releases Its New Board Game on iStore</title>
		<link>http://hibiscustech.com/blog/2011/09/06/hibiscus-releases-its-new-board-game-on-istore/</link>
		<comments>http://hibiscustech.com/blog/2011/09/06/hibiscus-releases-its-new-board-game-on-istore/#comments</comments>
		<pubDate>Tue, 06 Sep 2011 11:02:20 +0000</pubDate>
		<dc:creator>htsblogger</dc:creator>
		
		<category><![CDATA[iphone]]></category>

		<category><![CDATA[hibiscus]]></category>

		<category><![CDATA[iOS]]></category>

		<category><![CDATA[ipad]]></category>

		<category><![CDATA[ipad games]]></category>

		<category><![CDATA[iphone games]]></category>

		<category><![CDATA[mobile]]></category>

		<category><![CDATA[mobile development]]></category>

		<category><![CDATA[mobile website]]></category>

		<guid isPermaLink="false">http://hibiscustech.com/blog/?p=36</guid>
		<description><![CDATA[Get ready to revisit the History with Hibiscus&#8217;s latest release on iStore. We have release the latest Board game Shakuni for iPad on iStore.
Shakuni is a fun dice board game. Shakuni was one of the greatest player of ancient Indian dice game called Chausar (aka Dayakattai, Pakatai), which is the inspiration behind this app.
The game [...]]]></description>
			<content:encoded><![CDATA[<p>Get ready to revisit the History with Hibiscus&#8217;s latest release on iStore. We have release the latest Board game <strong>Shakuni</strong> for iPad on iStore.</p>
<p><span>Shakuni is a fun dice board game. Shakuni was one of the greatest player of ancient Indian dice game called Chausar (aka Dayakattai, Pakatai), which is the inspiration behind this app.<br />
The game Shakuni can be played by up to four players at a time. User rolls over the dice and moves his coins accordingly,<br />
first user who moves all of his/her coins back to home is the winner. To users&#8217; delight Shakuni comes with very rich user interface and easy to understand rules.<br />
Features:<br />
* Auto saves whenever game exits<br />
* Dice roll animation<br />
* Rich User Interface</p>
<p>Also called Dhayam, Dhayakattai(Tamil), Pagade (Kannada, Malayalam), Pagadai, Chausar (Hindi)</span></p>
<p>Please visit <a href="http://itunes.apple.com/us/app/shakuni/id460060446?ls=1&amp;mt=8">http://itunes.apple.com/us/app/shakuni/id460060446?ls=1&amp;mt=8</a> to download this app for FREE.</p>
]]></content:encoded>
			<wfw:commentRss>http://hibiscustech.com/blog/2011/09/06/hibiscus-releases-its-new-board-game-on-istore/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Web Hosting Companies In India</title>
		<link>http://hibiscustech.com/blog/2010/10/14/web-hosting-companies-in-india/</link>
		<comments>http://hibiscustech.com/blog/2010/10/14/web-hosting-companies-in-india/#comments</comments>
		<pubDate>Thu, 14 Oct 2010 13:53:47 +0000</pubDate>
		<dc:creator>htsblogger</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://hibiscustech.com/blog/?p=33</guid>
		<description><![CDATA[


Company 
Features














net4india.com
Disk Size
1GB
2GB
4GB
10 GB


 








Bandwidth Transfer in GB
Unlimited
Unlimited
Unlimited
Unlimited



No. of domain names that can be hosted
1
1
1
1



*Allocate username and password to folders on web
Yes
Yes
Yes
Yes



*Website write permission
Yes
Yes
Yes
Yes



Windows Free Sub-domain
3
3
3
3



Windows Microsoft Windows 2003 w/IIS 6.0
Yes
Yes
Yes
Yes



Windows Microsoft Windows 2008 w/IIS 7.0
Yes
Yes
Yes
Yes



Linux Linux Redhat
Yes
Yes
Yes
Yes



Control Panel
Yes
Yes
Yes
Yes



Raw log files
Yes
Yes
Yes
Yes



*MS FrontPage Server Extensions
Yes
Yes
Yes
Yes



24/7 access via FTP
Yes
Yes
Yes
Yes



Web traffic reporting
Yes
Yes
Yes
Yes


Price
Price/ Year 
Rs. 3,649
Rs. 7,298
Rs. 14,596
Rs. 29,499


















e2enetworks.com
Plan
VPS-HDD-S
VPS-HDD-1
VPS-HDD-2




RAM
768MB
1536MB
3072MB




Diskspace
40GiB
75GiB
150GiB




IP Addresses
1
1
1




Monthly Data Transfer
200 GB
400 [...]]]></description>
			<content:encoded><![CDATA[<table border="0" cellspacing="0" cellpadding="0" width="681">
<tbody>
<tr>
<td width="121" valign="top"><strong><span style="color: #ff0000;">Company </span></strong></td>
<td width="154" valign="top"><strong><span style="color: #ff0000;">Features</span></strong></td>
<td width="113" valign="top"></td>
<td width="104" valign="top"></td>
<td width="104" valign="top"></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top"></td>
<td width="113" valign="top"></td>
<td width="104" valign="top"></td>
<td width="104" valign="top"></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"><strong><span style="color: #00ff00;">net4india.com</span></strong></td>
<td width="154" valign="top"><strong><span style="color: #00ff00;">Disk Size</span></strong></td>
<td width="113" valign="top"><span style="color: #00ff00;">1GB</span></td>
<td width="104" valign="top"><span style="color: #00ff00;">2GB</span></td>
<td width="104" valign="top"><span style="color: #00ff00;">4GB</span></td>
<td width="85" valign="top"><span style="color: #00ff00;">10 GB</span></td>
</tr>
<tr>
<td width="121" valign="top"><span style="color: #00ff00;"> </span></td>
<td width="154" valign="top"></td>
<td width="113" valign="top"></td>
<td width="104" valign="top"></td>
<td width="104" valign="top"></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Bandwidth Transfer in GB</td>
<td width="113" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="85" valign="top">Unlimited</td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">No. of domain names that can be hosted</td>
<td width="113" valign="top">1</td>
<td width="104" valign="top">1</td>
<td width="104" valign="top">1</td>
<td width="85" valign="top">1</td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">*Allocate username and password to folders on web</td>
<td width="113" valign="top">Yes</td>
<td width="104" valign="top">Yes</td>
<td width="104" valign="top">Yes</td>
<td width="85" valign="top">Yes</td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">*Website write permission</td>
<td width="113" valign="top">Yes</td>
<td width="104" valign="top">Yes</td>
<td width="104" valign="top">Yes</td>
<td width="85" valign="top">Yes</td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Windows Free Sub-domain</td>
<td width="113" valign="top">3</td>
<td width="104" valign="top">3</td>
<td width="104" valign="top">3</td>
<td width="85" valign="top">3</td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Windows Microsoft Windows 2003 w/IIS 6.0</td>
<td width="113" valign="top">Yes</td>
<td width="104" valign="top">Yes</td>
<td width="104" valign="top">Yes</td>
<td width="85" valign="top">Yes</td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Windows Microsoft Windows 2008 w/IIS 7.0</td>
<td width="113" valign="top">Yes</td>
<td width="104" valign="top">Yes</td>
<td width="104" valign="top">Yes</td>
<td width="85" valign="top">Yes</td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Linux Linux Redhat</td>
<td width="113" valign="top">Yes</td>
<td width="104" valign="top">Yes</td>
<td width="104" valign="top">Yes</td>
<td width="85" valign="top">Yes</td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Control Panel</td>
<td width="113" valign="top">Yes</td>
<td width="104" valign="top">Yes</td>
<td width="104" valign="top">Yes</td>
<td width="85" valign="top">Yes</td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Raw log files</td>
<td width="113" valign="top">Yes</td>
<td width="104" valign="top">Yes</td>
<td width="104" valign="top">Yes</td>
<td width="85" valign="top">Yes</td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">*MS FrontPage Server Extensions</td>
<td width="113" valign="top">Yes</td>
<td width="104" valign="top">Yes</td>
<td width="104" valign="top">Yes</td>
<td width="85" valign="top">Yes</td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">24/7 access via FTP</td>
<td width="113" valign="top">Yes</td>
<td width="104" valign="top">Yes</td>
<td width="104" valign="top">Yes</td>
<td width="85" valign="top">Yes</td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Web traffic reporting</td>
<td width="113" valign="top">Yes</td>
<td width="104" valign="top">Yes</td>
<td width="104" valign="top">Yes</td>
<td width="85" valign="top">Yes</td>
</tr>
<tr>
<td width="121" valign="top"><strong>Price</strong></td>
<td width="154" valign="top"><strong>Price/ Year </strong></td>
<td width="113" valign="top"><strong>Rs. 3,649</strong></td>
<td width="104" valign="top"><strong>Rs. 7,298</strong></td>
<td width="104" valign="top"><strong>Rs. 14,596</strong></td>
<td width="85" valign="top"><strong>Rs. 29,499</strong></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top"></td>
<td width="113" valign="top"></td>
<td width="104" valign="top"></td>
<td width="104" valign="top"></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top"></td>
<td width="113" valign="top"></td>
<td width="104" valign="top"></td>
<td width="104" valign="top"></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"><strong><span style="color: #00ff00;">e2enetworks.com</span></strong></td>
<td width="154" valign="top"><strong><span style="color: #00ff00;">Plan</span></strong></td>
<td width="113" valign="top"><strong><span style="color: #00ff00;">VPS-HDD-S</span></strong></td>
<td width="104" valign="top"><strong><span style="color: #00ff00;">VPS-HDD-1</span></strong></td>
<td width="104" valign="top"><strong><span style="color: #00ff00;">VPS-HDD-2</span></strong></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">RAM</td>
<td width="113" valign="top">768MB</td>
<td width="104" valign="top">1536MB</td>
<td width="104" valign="top">3072MB</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Diskspace</td>
<td width="113" valign="top">40GiB</td>
<td width="104" valign="top">75GiB</td>
<td width="104" valign="top">150GiB</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">IP Addresses</td>
<td width="113" valign="top">1</td>
<td width="104" valign="top">1</td>
<td width="104" valign="top">1</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Monthly Data Transfer</td>
<td width="113" valign="top">200 GB</td>
<td width="104" valign="top">400 GB</td>
<td width="104" valign="top">800 GB</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Control Panel</td>
<td width="113" valign="top">Virtualmin</td>
<td width="104" valign="top">Virtualmin</td>
<td width="104" valign="top">Virtualmin (Unlimited)</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"><strong>Price</strong></td>
<td width="154" valign="top"><strong>Monthly Fee</strong></td>
<td width="113" valign="top"><strong>Rs. 1999</strong></td>
<td width="104" valign="top"><strong>Rs. 3700</strong></td>
<td width="104" valign="top"><strong>Rs. 6850</strong></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"><strong>Price</strong></td>
<td width="154" valign="top"><strong>Monthly Fee(6 month prepay)</strong></td>
<td width="113" valign="top"><strong>Rs. 1899</strong></td>
<td width="104" valign="top"><strong>Rs. 3515</strong></td>
<td width="104" valign="top"><strong>Rs. 6500 </strong></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"><strong>Price</strong></td>
<td width="154" valign="top"><strong>Monthly Fee(12 month prepay)</strong></td>
<td width="113" valign="top"><strong>Rs. 1799</strong></td>
<td width="104" valign="top"><strong>Rs. 3330</strong></td>
<td width="104" valign="top"><strong>Rs. 6165 </strong></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top"></td>
<td width="113" valign="top"></td>
<td width="104" valign="top"></td>
<td width="104" valign="top"></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"><strong><span style="color: #00ff00;">Esds.co.in</span></strong></td>
<td width="154" valign="top"><strong><span style="color: #00ff00;">Hard Disk</span></strong></td>
<td width="113" valign="top"><strong><span style="color: #00ff00;">ESDS - Cloud B I</span></strong></td>
<td width="104" valign="top"><strong><span style="color: #00ff00;">ESDS - Cloud B II</span></strong></td>
<td width="104" valign="top"><strong><span style="color: #00ff00;">ESDS - DC Cloud SI</span></strong></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">RAM Allocation</td>
<td width="113" valign="top">0.8Ghz</td>
<td width="104" valign="top">1.6Ghz</td>
<td width="104" valign="top">Single Core</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Operating System</td>
<td width="113" valign="top">20GB</td>
<td width="104" valign="top">40GB</td>
<td width="104" valign="top">160GB</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Control Panel</td>
<td width="113" valign="top">512MB RAM</td>
<td width="104" valign="top">1GB RAM</td>
<td width="104" valign="top">1GB RAM</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Bandwidth</td>
<td width="113" valign="top">Linux</td>
<td width="104" valign="top">Linux</td>
<td width="104" valign="top">Linux</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Server Access</td>
<td width="113" valign="top">cPanel / Plesk (Linux)</td>
<td width="104" valign="top">cPanel / Plesk (Linux)</td>
<td width="104" valign="top">cPanel / Plesk (Linux)</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Cloud Server Management</td>
<td width="113" valign="top">100GB Bndwdth/ Month</td>
<td width="104" valign="top">200GB Bndwdth/ Month</td>
<td width="104" valign="top">50GB Bndwdth Month</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Network Uptime</td>
<td width="113" valign="top">2 IP&#8217;s</td>
<td width="104" valign="top">2 IP&#8217;s</td>
<td width="104" valign="top">2 IP&#8217;s</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">24&#215;7 Server Monitoring</td>
<td width="113" valign="top">Fully Managed Cloud Server</td>
<td width="104" valign="top">Fully Managed Cloud Server</td>
<td width="104" valign="top">Fully Managed Cloud Server</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">24&#215;7 Phone Support</td>
<td width="113" valign="top">100% Uptime</td>
<td width="104" valign="top">100% Uptime</td>
<td width="104" valign="top">100% Uptime</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">24&#215;7 Live Chat Support</td>
<td width="113" valign="top">YES</td>
<td width="104" valign="top">YES</td>
<td width="104" valign="top">YES</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">24&#215;7 Email Support</td>
<td width="113" valign="top">YES</td>
<td width="104" valign="top">YES</td>
<td width="104" valign="top">YES</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top"></td>
<td width="113" valign="top">YES</td>
<td width="104" valign="top">YES</td>
<td width="104" valign="top">YES</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top"></td>
<td width="113" valign="top">YES</td>
<td width="104" valign="top">YES</td>
<td width="104" valign="top">YES</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Setup Fee</td>
<td width="113" valign="top">Free</td>
<td width="104" valign="top">Free</td>
<td width="104" valign="top">Free</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"><strong>Price</strong></td>
<td width="154" valign="top">Monthly Pricing</td>
<td width="113" valign="top"><strong>Rs. 2,199</strong></td>
<td width="104" valign="top"><strong>Rs. 3,299</strong></td>
<td width="104" valign="top"><strong>Rs. 3,480</strong></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"><strong> </strong></p>
<p><strong> </strong></td>
<td width="154" valign="top"></td>
<td width="113" valign="top"></td>
<td width="104" valign="top"></td>
<td width="104" valign="top"></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top"></td>
<td width="113" valign="top"></td>
<td width="104" valign="top"></td>
<td width="104" valign="top"></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top"></td>
<td width="113" valign="top"></td>
<td width="104" valign="top"></td>
<td width="104" valign="top"></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"><strong><span style="color: #00ff00;">ZNet.com </span></strong></td>
<td width="154" valign="top"><strong><span style="color: #00ff00;">No. Of Pages</span></strong></td>
<td width="113" valign="top"><strong><span style="color: #00ff00;">1</span></strong></td>
<td width="104" valign="top"><strong><span style="color: #00ff00;">15</span></strong></td>
<td width="104" valign="top"><strong><span style="color: #00ff00;">50</span></strong></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Web Space</td>
<td width="113" valign="top">1GB</td>
<td width="104" valign="top">5GB</td>
<td width="104" valign="top">25GB</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Email</td>
<td width="113" valign="top">1</td>
<td width="104" valign="top">10</td>
<td width="104" valign="top">50</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">MySQL database</td>
<td width="113" valign="top">0</td>
<td width="104" valign="top">5</td>
<td width="104" valign="top">10</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"><strong>Price</strong></td>
<td width="154" valign="top"></td>
<td width="113" valign="top"><strong>Rs. 100/Mnth</strong></td>
<td width="104" valign="top"><strong>Rs.1299/Mnth</strong></td>
<td width="104" valign="top"><strong>Rs.2500/Mnth</strong></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top"></td>
<td width="113" valign="top"></td>
<td width="104" valign="top"></td>
<td width="104" valign="top"></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Total Disk Space</td>
<td width="113" valign="top">50GB</td>
<td width="104" valign="top">100GB</td>
<td width="104" valign="top">200GB</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Data transfer/Mo.</td>
<td width="113" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Websites</td>
<td width="113" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">POP Email ID</td>
<td width="113" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Sub Domain (sub.domain.com)</td>
<td width="113" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">MS SQL 2005/2008 Databases</td>
<td width="113" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">MY SQL Databases</td>
<td width="113" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"><strong>Price</strong></td>
<td width="154" valign="top"></td>
<td width="113" valign="top"><strong>Rs. 1399/mo.</strong></td>
<td width="104" valign="top"><strong>Rs. 2399/mo.</strong></td>
<td width="104" valign="top"><strong>Rs. 4199/mo.</strong></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top"></td>
<td width="113" valign="top"></td>
<td width="104" valign="top"></td>
<td width="104" valign="top"></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top"></td>
<td width="113" valign="top"></td>
<td width="104" valign="top"></td>
<td width="104" valign="top"></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top"></td>
<td width="113" valign="top"></td>
<td width="104" valign="top"></td>
<td width="104" valign="top"></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top"></td>
<td width="113" valign="top"></td>
<td width="104" valign="top"></td>
<td width="104" valign="top"></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"><strong><span style="color: #00ff00;">Indialinks.com</span></strong></td>
<td width="154" valign="top"><span style="color: #00ff00;">Web Space</span></td>
<td width="113" valign="top"><span style="color: #00ff00;">500 Mb</span></td>
<td width="104" valign="top"><span style="color: #00ff00;">1000 Mb</span></td>
<td width="104" valign="top"><span style="color: #00ff00;">2500 Mb</span></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Mailboxes</td>
<td width="113" valign="top">5 Mail Boxes(2.5Gb)</td>
<td width="104" valign="top">Do</td>
<td width="104" valign="top">Do</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Monthly Bandwidth</td>
<td width="113" valign="top">100 Gb Data Transfer</td>
<td width="104" valign="top">Do</td>
<td width="104" valign="top">Do</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">MySQL Database(s)</td>
<td width="113" valign="top">1</td>
<td width="104" valign="top">Do</td>
<td width="104" valign="top">Do</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"><strong>Price</strong></td>
<td width="154" valign="top"></td>
<td width="113" valign="top"><strong>Rs.8000/Year</strong></td>
<td width="104" valign="top"><strong>Rs.9500/Year</strong></td>
<td width="104" valign="top"><strong>Rs.16000/Year</strong></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top"></td>
<td width="113" valign="top"></td>
<td width="104" valign="top"></td>
<td width="104" valign="top"></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top"></td>
<td width="113" valign="top"></td>
<td width="104" valign="top"></td>
<td width="104" valign="top"></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"><strong>ewebguru.com</strong></td>
<td width="154" valign="top">Budget Reseller</td>
<td width="113" valign="top">Advance Reseller</td>
<td width="104" valign="top">Power Reseller</td>
<td width="104" valign="top">Ultimate Reseller</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Web Space</td>
<td width="113" valign="top">10 GB</td>
<td width="104" valign="top">20 GB</td>
<td width="104" valign="top">30 GB</td>
<td width="85" valign="top">40 GB</td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Monthly Bandwidth</td>
<td width="113" valign="top">100 GB</td>
<td width="104" valign="top">200 GB</td>
<td width="104" valign="top">300 GB</td>
<td width="85" valign="top">400 GB</td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Domain Limit</td>
<td width="113" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="85" valign="top">Unlimited</td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">cPanel/WHM</td>
<td width="113" valign="top"></td>
<td width="104" valign="top"></td>
<td width="104" valign="top"></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Subdomains</td>
<td width="113" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="85" valign="top">Unlimited</td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">FTP Accounts</td>
<td width="113" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="85" valign="top">Unlimited</td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">MySQL Databases</td>
<td width="113" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="85" valign="top">Unlimited</td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">POP3 Mail accounts</td>
<td width="113" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="85" valign="top">Unlimited</td>
</tr>
<tr>
<td width="121" valign="top"><strong>Price</strong></td>
<td width="154" valign="top"><strong>Monthly Price </strong></td>
<td width="113" valign="top"><strong>Rs.995/-</strong></td>
<td width="104" valign="top"><strong>Rs.1995/-</strong></td>
<td width="104" valign="top"><strong>Rs.2995/-</strong></td>
<td width="85" valign="top"><strong>Rs.3995/-</strong></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top"><strong>Half Yearly Price</strong></td>
<td width="113" valign="top"><strong>Rs.5595/-</strong></td>
<td width="104" valign="top"><strong>Rs.11195/-</strong></td>
<td width="104" valign="top"><strong>Rs.16995/-</strong></td>
<td width="85" valign="top"><strong>Rs.22395/-</strong></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top"><strong>Yearly Price </strong></td>
<td width="113" valign="top"><strong>Rs.9950/-</strong></td>
<td width="104" valign="top"><strong>Rs.19950/-</strong></td>
<td width="104" valign="top"><strong>Rs.29950/-</strong></td>
<td width="85" valign="top"><strong>Rs.39950/-</strong></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top"></td>
<td width="113" valign="top"></td>
<td width="104" valign="top"></td>
<td width="104" valign="top"></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top"></td>
<td width="113" valign="top"></td>
<td width="104" valign="top"></td>
<td width="104" valign="top"></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"><strong><span style="color: #00ff00;">Brainpulse.com</span></strong></td>
<td width="154" valign="top"><strong><span style="color: #00ff00;">Disk Space</span></strong></td>
<td width="113" valign="top"><strong><span style="color: #00ff00;">1 GB</span></strong></td>
<td width="104" valign="top"><strong><span style="color: #00ff00;">5 GB</span></strong></td>
<td width="104" valign="top"><strong><span style="color: #00ff00;">15 GB</span></strong></td>
<td width="85" valign="top"><strong><span style="color: #00ff00;">Unlimited</span></strong></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Bandwidth/mo</td>
<td width="113" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="85" valign="top">Unlimited</td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Domain Hosting</td>
<td width="113" valign="top">1</td>
<td width="104" valign="top">2</td>
<td width="104" valign="top">5</td>
<td width="85" valign="top">10</td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Sub Domains</td>
<td width="113" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="85" valign="top">Unlimited</td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">MySQl Databases</td>
<td width="113" valign="top">2</td>
<td width="104" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="85" valign="top">Unlimited</td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">FTP Accounts</td>
<td width="113" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="104" valign="top">Unlimited</td>
<td width="85" valign="top">Unlimited</td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Email Accounts</td>
<td width="113" valign="top">50</td>
<td width="104" valign="top">100</td>
<td width="104" valign="top">200</td>
<td width="85" valign="top">Unlimited</td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Price / Year</td>
<td width="113" valign="top"></td>
<td width="104" valign="top"></td>
<td width="104" valign="top"></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top"></td>
<td width="113" valign="top"></td>
<td width="104" valign="top"></td>
<td width="104" valign="top"></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"><strong>Price</strong></td>
<td width="154" valign="top"></td>
<td width="113" valign="top"><strong>Rs. 899 </strong></td>
<td width="104" valign="top"><strong>Rs. 1999 </strong></td>
<td width="104" valign="top"><strong>Rs. 3999 </strong></td>
<td width="85" valign="top"><strong>Rs. 8500 </strong></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top"></td>
<td width="113" valign="top"></td>
<td width="104" valign="top"></td>
<td width="104" valign="top"></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top"></td>
<td width="113" valign="top"></td>
<td width="104" valign="top"></td>
<td width="104" valign="top"></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"><strong><span style="color: #00ff00;">hostrightnow.com</span></strong></td>
<td width="154" valign="top"><strong><span style="color: #00ff00;">Dedicated RAM</span></strong></td>
<td width="113" valign="top"><strong><span style="color: #00ff00;">384 MB</span></strong></td>
<td width="104" valign="top"><strong><span style="color: #00ff00;">1 GB</span></strong></td>
<td width="104" valign="top"><strong><span style="color: #00ff00;">2GB</span></strong></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top"></td>
<td width="113" valign="top"></td>
<td width="104" valign="top"></td>
<td width="104" valign="top"></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top"></td>
<td width="113" valign="top"></td>
<td width="104" valign="top"></td>
<td width="104" valign="top"></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Disk Space</td>
<td width="113" valign="top">10 GB</td>
<td width="104" valign="top">30 GB</td>
<td width="104" valign="top">60 GB</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Monthly Traffic</td>
<td width="113" valign="top">100 GB</td>
<td width="104" valign="top">300 GB</td>
<td width="104" valign="top">600 GB</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Usable IP addresses</td>
<td width="113" valign="top">1</td>
<td width="104" valign="top">1</td>
<td width="104" valign="top">2</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">24&#215;7 live chat and phone support</td>
<td width="113" valign="top">Yes</td>
<td width="104" valign="top">Yes</td>
<td width="104" valign="top">Yes</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">24&#215;7 server monitoring</td>
<td width="113" valign="top">Yes</td>
<td width="104" valign="top">Yes</td>
<td width="104" valign="top">Yes</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">24&#215;7 port monitoring</td>
<td width="113" valign="top">Yes</td>
<td width="104" valign="top">Yes</td>
<td width="104" valign="top">Yes</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top">Easy Upgrade Options</td>
<td width="113" valign="top">Yes</td>
<td width="104" valign="top">Yes</td>
<td width="104" valign="top">Yes</td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"></td>
<td width="154" valign="top"><strong>Setup Fees</strong></td>
<td width="113" valign="top"><strong>Rs. 500.00</strong></td>
<td width="104" valign="top"><strong>Rs. 900.00</strong></td>
<td width="104" valign="top"><strong>Rs. 900.00</strong></td>
<td width="85" valign="top"></td>
</tr>
<tr>
<td width="121" valign="top"><strong>Price</strong></td>
<td width="154" valign="top"><strong>Monthly cost</strong></td>
<td width="113" valign="top"><strong>Rs. 1450.00</strong></td>
<td width="104" valign="top"><strong>Rs. 2800.00</strong></td>
<td width="104" valign="top"><strong>Rs. 3900.00</strong></td>
<td width="85" valign="top"></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://hibiscustech.com/blog/2010/10/14/web-hosting-companies-in-india/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Platforms for developing SaaS applications – A Comparison</title>
		<link>http://hibiscustech.com/blog/2010/08/23/platforms-for-developing-saas-applications-%e2%80%93-a-comparison/</link>
		<comments>http://hibiscustech.com/blog/2010/08/23/platforms-for-developing-saas-applications-%e2%80%93-a-comparison/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 08:48:57 +0000</pubDate>
		<dc:creator>htsblogger</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<category><![CDATA[comparison]]></category>

		<category><![CDATA[development]]></category>

		<category><![CDATA[hibiscustech]]></category>

		<category><![CDATA[PAAS]]></category>

		<category><![CDATA[SAAS]]></category>

		<category><![CDATA[SAAS application]]></category>

		<guid isPermaLink="false">http://hibiscustech.com/blog/?p=28</guid>
		<description><![CDATA[Force.com
Two huge benefits start to come into focus when you look across Force.com platform apps in general: they&#8217;re both data-centric and collaborative.
 
Data-Centric Apps
 
Because the platform is centered on a database, it allows you to write apps that are data-centric. A data-centric app is an application that is based on structured, consistent information such [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal"><strong><span style="text-decoration: underline;"><span>Force.com</span></span></strong></p>
<p class="MsoNormal"><span>Two huge benefits start to come into focus when you look across Force.com platform apps in general: they&#8217;re both data-centric and collaborative.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><strong><span>Data-Centric Apps</span></strong></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Because the platform is centered on a database, it allows you to write apps that are data-centric. A data-centric app is an application that is based on structured, consistent information such as you might find in a database or an XML file. We can find these data-centric apps everywhere, in small desktop databases like Microsoft Access or FileMaker, all the way to the huge systems running on database management systems like Oracle or MySQL. Unlike applications that are built around unstructured data, like plain text documents or HTML files, data-centric apps make it easy to control, access, and manage data.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>For example, consider an exercise such as trying to determine the total sales for a month from a set of Microsoft Word-based contracts versus a set of contracts in a simple database. Whereas it takes a lot of effort to open each Word document, find the contract total, and then add them all together, if this data is stored in the database of a data-centric app, we can more efficiently get the same result by issuing a single query. While most people don&#8217;t need a data-centric application to keep track of anything other than contacts, photos, or possibly music, companies of all sizes constantly need to query and aggregate their large amounts of data to make fast business decisions. As a result, the data-centric nature of the Force.com platform makes it the perfect platform to build and host business applications.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><strong><span>Collaborative Apps</span></strong></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Because the platform can be accessed by multiple users at the same time, it also allows you to write apps that are collaborative. A collaborative app is an application with data and services that are shared by multiple users in different locations. Unlike more traditional forms of software that are installed on a single machine and are hard to access from a distance, collaborative apps on the platform can be accessed from anywhere in the world with only a Web browser. This makes it easy for teams to work together on activities like selling a product, managing a project, or hiring an employee.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>In addition to easy access over a Web browser, a number of built-in platform features also facilitate productive group collaboration:</span></p>
<p class="MsoListParagraphCxSpFirst"><span><span>·<span> </span></span></span><span>The platform&#8217;s security and sharing model allows you to finely control a user&#8217;s access to different data</span></p>
<p class="MsoListParagraphCxSpMiddle"><span><span>·<span> </span></span></span><span>Workflow rules allow you to automatically assign tasks, update data, or send email alerts when certain business events occur, such as the creation of a new record or a change in the value of a record field</span></p>
<p class="MsoListParagraphCxSpLast"><span><span>·<span> </span></span></span><span>Approval processes allow you to set up a sequence of steps necessary for a record to be approved, including who must approve it at each step</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Collectively, these features provide a framework for sharing apps across groups, divisions, and entire corporations without relinquishing administrative control over sensitive data.</span></p>
<p class="MsoNormal"><strong><span> </span></strong></p>
<p class="MsoNormal"><strong><span>The Technologies Behind a Force.com</span></strong></p>
<table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="196" valign="top">
<p class="MsoNormal"><strong><span>Technology</span></strong></p>
</td>
<td width="536" valign="top">
<p class="MsoNormal"><strong><span>Description</span></strong></p>
</td>
</tr>
<tr>
<td width="196" valign="top">
<p class="MsoNormal"><span>Multitenant architecture</span></p>
</td>
<td width="536" valign="top">
<p class="MsoNormal"><span>An application model in which all users and apps   share a single, common infrastructure and code base</span></p>
</td>
</tr>
<tr>
<td width="196" valign="top">
<p class="MsoNormal"><span>Metadata-driven development model</span></p>
</td>
<td width="536" valign="top">
<p class="MsoNormal"><span>An app development model that allows apps to be   defined as declarative “blueprints”, with no code required. Data models,   objects, forms, workflows, and more are defined by metadata.</span></p>
</td>
</tr>
<tr>
<td width="196" valign="top">
<p class="MsoNormal"><span>Force.com Web Services API</span></p>
</td>
<td width="536" valign="top">
<p class="MsoNormal"><span>An application programming interface that defines   a Web service that provides direct access to all data stored in the Force.com   platform from virtually any programming language and platform.</span></p>
</td>
</tr>
<tr>
<td width="196" valign="top">
<p class="MsoNormal"><span>Apex</span></p>
</td>
<td width="536" valign="top">
<p class="MsoNormal"><span>The world’s first on-demand programming language,   which runs in the cloud on the Force.com platform servers.</span></p>
</td>
</tr>
<tr>
<td width="196" valign="top">
<p class="MsoNormal"><span>Visualforce</span></p>
</td>
<td width="536" valign="top">
<p class="MsoNormal"><span>A framework for creating feature-rich user   interface for apps in the cloud.</span></p>
</td>
</tr>
<tr>
<td width="196" valign="top">
<p class="MsoNormal"><span>Force.com sites</span></p>
</td>
<td width="536" valign="top">
<p class="MsoNormal"><span>Public websites and applications that are directly   integrated with your Salesforce.com organization – without requiring users to   log in with a username and password.</span></p>
</td>
</tr>
<tr>
<td width="196" valign="top">
<p class="MsoNormal"><span>AppExchange directory</span></p>
</td>
<td width="536" valign="top">
<p class="MsoNormal"><span>A web directory where hundreds of Force.com apps   are available to Salesforce.com customers to review, demo, common upon,   and/or install. Developers can submit their apps for listing on the   AppExchange directory if they want to share them with the community.</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><strong><span> </span></strong></p>
<p class="MsoNormal"><strong><span style="text-decoration: underline;"><span>Microsoft Windows Azure Platform</span></span></strong></p>
<p class="MsoNormal"><span>One of the main functions of Microsoft Azure is to provide platform for Software as a Service (SaaS) applications and with increasing customer demand, IT Solution Providers are turning to SaaS versions of their products. The creation of an efficient SaaS application requires the support of an efficient cloud- based service that can be used simultaneously by various customer organizations. Azure performs its role creditably in this aspect.</span></p>
<p class="MsoListParagraphCxSpFirst"><span><span>·<span> </span></span></span><span>Cloud computing is versatile, wherein it can be an add-on service to existing on-premises application. This method is comparatively cheaper and increases operational functionality of the existing system.</span></p>
<p class="MsoListParagraphCxSpLast"><span><span>·<span> </span></span></span><span>Azure definitely provides ease of use and administration with a minimal up-front commitment and ability to increase or decrease computing resources used by the client applications. This ensures availability of better technology with lower costs.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Technology:</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Windows Azure consists of 3 main parts</span></p>
<p class="MsoNormal"><span>1. A compute service, which runs applications</span></p>
<p class="MsoNormal"><span>2. A storage service, which stores data</span></p>
<p class="MsoNormal"><span>3. A fabric, which supports the compute and storage services</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>In order to use the compute service, a developer creates an application using combinations like C#/VB and .NET framework and is later implemented as Web roles, worker roles or both. Web roles accept web requests and are created using a technology like ASP.net which works with Internet Information Services (IIS).</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Irrespective of technology, Azure provides built-in hardware load balancing across all Web role instances in a particular application. Worker role instances are for functions that doesn’t respond directly to web requests and is just a Windows application with a main (), running indefinitely. This model allows creating scalable applications where Web role instances accept requests, then pass them to Worker role instances to be processed.</span></p>
<p class="MsoNormal"><span>It is to be noted that each instance irrespective of Web or Worker roles runs on its own Virtual Machine (VM). This provides for isolation and clear knowledge of application performance as there is a definite mapping between VMs and processor cores. The developer simply uploads an application to Windows Azure with an XML configuration file specifying the number of instances that need to be run. Subsequently, it is Windows Azure and not the developer who creates the required number of VMs and monitors their execution. In the event of failure of an instance, Azure will start a new one ensuring that the specified numbers of role instances are always running. This work is done by the Fabric Controller software that’s in charge of all machines in a particular instance of the Fabric. When an application owner increases or decreases the value of instances in the configuration, Azure automatically creates or shuts down VMs to match the new setting.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Being Windows apps, developers could provide templates for creating cloud applications as Web roles, Worker roles or both using Visual Studio IDE. The developers can also use Development Fabric, which is a part of Azure and run on the local machine, to create the code and do testing, before uploading the application onto Windows Azure.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Azure provides its own mechanisms for storage and retrieval of data. The 3 available storage options can be accessed via standard HTTP GETs, PUTs, and DELETEs.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>The three kinds of Windows Azure storage are:</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>1. Blobs: This allows storage of large binary objects, such as videos and images.</span></p>
<p class="MsoNormal"><span>2. Tables: provides for storage of highly scalable entities (not relational tables).</span></p>
<p class="MsoNormal"><span>3. Queues: allows sending and receiving of messages, such as between an application’s Web role instances and Worker role instances.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>It has to be noted that all these storages can be accessed by applications that are not on Azure Compute Service. On-premises or hosted applications can also store and access data like large video files, as Azure storage blobs.</span></p>
<p class="MsoNormal"><span>The Windows Azure platform also contains SQL Azure Database (earlier known as SQL Data Services), which provides standard relational storage based on SQL server technology.</span></p>
<p class="MsoNormal">
<p class="MsoNormal"><strong><span style="text-decoration: underline;"><span>EC2 for SaaS</span></span></strong></p>
<p class="MsoNormal"><span>iWay Software’s robust, enterprise-scale integration solutions are available on demand. With iWay SaaS on Amazon Elastic Cloud Computing (EC2), organizations can more conveniently and economically leverage powerful, cutting-edge integration technologies – without the need to install them on-site or devote IT resources to ongoing maintenance.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><strong><span>Fast Deployment with Minimal Administration</span></strong></p>
<p class="MsoNormal"><strong><span> </span></strong></p>
<p class="MsoNormal"><span>iWay’s SaaS-based solutions will be pre-installed and pre-configured as Amazon Images (AMIs) and fully hosted by Amazon, where they can then be made immediately available to subscribers. Clients simply select the desired operating system (Windows or Linux), choose the tools and components they wish to use, and indicate their virtual hardware preferences, such as CPU, memory configuration, and storage sizes.</span></p>
<p class="MsoNormal"><strong><span> </span></strong></p>
<p class="MsoNormal"><strong><span>Unparalleled Security</span></strong></p>
<p class="MsoNormal"><strong><span> </span></strong></p>
<p class="MsoNormal"><span>iWay SaaS on Amazon EC2 offers end-to-end integration in a highly secure environment. The iWay RVI Secure Proxy Service – using the secure AS2 protocol – allows for fully protected robust and secure connections between Amazon EC2 instances of iWay solutions and all internal corporate back-end applications and systems – such as SAP or DB2. All integration activities are processed and executed across well-regulated channels, which utilize proxy gateways, firewalls, virtual private networks (VPNs), and other proven techniques to preserve the integrity of client data at all times.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><strong><span>A Flexible and Scalable Deployment Model</span></strong></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>On-demand solutions from iWay Software are not just powerful and economical; they’re also flexible and scalable. All instances of iWay Software have already been installed and tested, so clients can begin using new tools and components, cancel services they have already subscribed to, or add new users to their environment at any time.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>iWay SaaS supports various integration models, to allow for:</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoListParagraphCxSpFirst"><span><span>·<span> </span></span></span><span>Secure connections to internal applications, systems, and databases within the corporate firewall</span></p>
<p class="MsoListParagraphCxSpMiddle"><span><span>·<span> </span></span></span><span>Access to Internet-based Web servers and databases</span></p>
<p class="MsoListParagraphCxSpLast"><span><span>·<span> </span></span></span><span>Integration with other SaaS-based solutions such as Salesforce.com</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Additionally, iWay SaaS for Amazon EC2 solutions are fully customizable, and can be quickly and easily configured by iWay consultants to address unique or specific client requirements. As demand increases, additional instances may be brought online in a very short amount of time. </span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><strong><span>Convenient Any Time, Anywhere Access</span></strong></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Our SaaS-based tools can be easily deployed as Web-based applications. This provides users with access at any time, from any Internet-enabled location around the globe. Leverage the integrated services from any enabled device regardless of location.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><strong><span>Maximum Affordability</span></strong></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Unlike on-site integration solutions, which impose licensing fees for each user no matter how infrequently they use them, iWay’s SaaS-based tools offer a budget-friendly fee structure based solely on hourly system usage.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><strong><span>WebFOCUS Business Intelligence Integration</span></strong></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Advanced reporting features using Information Builders’ WebFOCUS business intelligence (BI) platform are readily available via the iWay SaaS solution. Leverage the capabilities of BI and integration with the simplicity of a cloud solution.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><strong><span style="text-decoration: underline;"><span>Wipro w-SaaS platform</span></span></strong><strong><span style="text-decoration: underline;"><span></span></span></strong></p>
<p class="MsoNormal"><span>Wipro has built w-SaaS, a platform for rapid SaaS enablement and deployment on cloud, using some of the commonly accepted trends in software engineering and open standards. The w-SaaS platform comprises of the following components:</span></p>
<p class="MsoListParagraphCxSpFirst"><span><span>·<span> </span></span></span><span>SOA-based services framework for SaaS enablement</span></p>
<p class="MsoListParagraphCxSpMiddle"><span><span>·<span> </span></span></span><span>A Cloud Provisioning Fabric (CPF) to enable seamless portability between different clouds</span></p>
<p class="MsoListParagraphCxSpLast"><span><span>·<span> </span></span></span><span>Unified Admin Console for platform services management, cloud management and tenant provisioning</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Oracle offers a comprehensive, open and integrated set of technologies to build, deploy and manage applications to ISVs. It is also the platform of choice for SaaS deployments with eight out of ten leading SaaS vendors delivering business critical applications on Oracle.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>The w-SaaS platform offers the following features:</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><strong><span>Non-intrusive SaaS enablement</span></strong></p>
<p class="MsoNormal"><strong><span> </span></strong></p>
<p class="MsoNormal"><span>The SOA based framework services are available outof-the-box for SaaS features like multi-tenancy, usage metering, billing, user management etc. These services can be consumed by the application in a non-intrusive way to operate in the SaaS model.</span></p>
<p class="MsoNormal"><strong><span> </span></strong></p>
<p class="MsoNormal"><strong><span>Seamless Cloud Deployment</span></strong></p>
<p class="MsoNormal"><strong><span> </span></strong></p>
<p class="MsoNormal"><span>The CPF provides features to create deployable images of the application and deploy them on a cloud infrastructure. The images created can be converted from one format to another thus allowing portability between different underlying clouds. The CPF also provides ability to provision hardware nodes into the cloud and to dynamically provision virtual machines on these hardware nodes.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><strong><span>Easy Platform Administration</span></strong></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>The unified admin console provides the ability to administer and manage both the cloud platform and the SaaS applications. This also gives a unified look-and-feel for cloud management regardless of the underlying cloud.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><strong><span style="text-decoration: underline;"><span>Wolf</span></span></strong></p>
<p class="MsoNormal"><span>WOLF is a browser based On Demand Platform-as-a-Service (PaaS) for rapidly designing and delivering database driven multi-tenant Software-as-a-Service (SaaS) applications. WOLF is a Cloud Computing platform architected to help you design, deliver and use Software as a Service (SaaS) applications using only a web browser. </span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>SaaS applications developed on the platform are endowed with a </span><strong><span>single instance multi-tenant architecture</span></strong><span>. They are instantly integrated into an </span><strong><span>automated provisioning system</span></strong><span> which handles the allocation of network resources, database creation and account information. The </span><strong><span>robust User-Role management system</span></strong><span> makes it easy to create users &amp; roles and assign rights to various modules of your application.</span></p>
<h2><span>WOLF Environments</span></h2>
<p><span>Browser-based </span><strong>128-bit encrypted</strong><span> secure Designer and RunTime environments.</span></p>
<h2><span>Technology</span></h2>
<p><span>WOLF Platform-as-a-Service (PaaS) uses the power of the following technologies: </span><strong>AJAX, XML, C# Engine, IIS and Microsoft .NET environment</strong><span> and supports </span><strong>Microsoft SQL Server and MySQL database</strong><span>.</span></p>
<h2><span>OnDemand Infrastructure</span></h2>
<p><span>Hosted &amp; managed by <a href="http://iweb.com/" target="_blank"><span>i-web</span></a>, a recognized leader in high-end secured hosting with more than 12,500 customers spread across 130 countries. WOLF also offers application licenses for private server deployment of your own choice.</span></p>
<p class="MsoNormal"><span> </span></p>
<table class="MsoNormalTable" border="1" cellpadding="0" width="100%">
<tbody>
<tr>
<td width="30%" valign="top">
<p class="MsoNormal"><span>Forms</span></p>
</td>
<td width="68%" valign="top">
<ul type="disc">
<li class="MsoNormal"><span>Point        and click interface to quickly create forms</span></li>
<li class="MsoNormal"><span>Organize        form layout into tabs, sections and multiple columns</span></li>
<li class="MsoNormal"><span>Add        sub tables(Master/Details section) in forms</span></li>
<li class="MsoNormal"><span>Master/Details        section with grids for inline editing</span></li>
<li class="MsoNormal"><span>Custom        edit screens to present data in multiple formats</span></li>
<li class="MsoNormal"><span>Custom        &#8220;action&#8221; buttons can be added to a form</span></li>
<li class="MsoNormal"><span>Auto-validated        field types for text, date, numbers, checkboxes and more.</span></li>
<li class="MsoNormal"><span>Custom        validations on fields like read only, mandatory, etc.</span></li>
<li class="MsoNormal"><span>Auto-generated        alphanumeric data type</span></li>
<li class="MsoNormal"><span>Conditional        styles can be applied to form fields</span></li>
<li class="MsoNormal"><span>Support        for image maps</span></li>
<li class="MsoNormal"><span>Multiple        file and image upload, download and display</span></li>
<li class="MsoNormal"><span>Configurable        dynamic, linked drop downs</span></li>
<li class="MsoNormal"><span>Ready-made        system drops downs for countries, users, etc.</span></li>
<li class="MsoNormal"><span>Integrate        with external web pages and third party widgets</span></li>
<li class="MsoNormal"><span>Keyboard        shortcuts</span></li>
<li class="MsoNormal"><span>Instant        preview</span></li>
<li class="MsoNormal"><span>Printable        forms</span></li>
</ul>
</td>
</tr>
<tr>
<td width="30%" valign="top">
<p class="MsoNormal"><span>Search</span></p>
</td>
<td width="68%" valign="top">
<ul type="disc">
<li class="MsoNormal"><span>Data        mining tools like Search, Sort and Filter based on custom criteria</span></li>
<li class="MsoNormal"><span>Role/User        level permissions for add, edit and delete actions</span></li>
<li class="MsoNormal"><span>Grids        for inline editing of data</span></li>
<li class="MsoNormal"><span>Set        automatic criteria for filtering data</span></li>
<li class="MsoNormal"><span>Link        Search to custom forms</span></li>
<li class="MsoNormal"><span>Quick        view of records</span></li>
<li class="MsoNormal"><span>Custom        actions to export to Excel and CSV</span></li>
<li class="MsoNormal"><span>Selective        exporting of data</span></li>
</ul>
</td>
</tr>
<tr>
<td width="30%" valign="top">
<p class="MsoNormal"><span>Business Logic</span></p>
</td>
<td width="68%" valign="top">
<ul type="disc">
<li class="MsoNormal"><span>English        language like Business Rules</span></li>
<li class="MsoNormal"><span>Define        workflow &amp; business logic without writing procedural code</span></li>
<li class="MsoNormal"><span>Ready        to use actions for standard programming constructs such as if-then,        for-each, etc.</span></li>
<li class="MsoNormal"><span>Invoke        rules on save of records or for validation and calculation</span></li>
<li class="MsoNormal"><span>Business        logic can be added to standard or custom actions</span></li>
<li class="MsoNormal"><span>Multi        Level master detail relationships- 1:M, M:1, M:M</span></li>
<li class="MsoNormal"><span>Relationships        are handled without having to specify keys</span></li>
<li class="MsoNormal"><span>Multi-level        grouping supported</span></li>
<li class="MsoNormal"><span>Nesting        of business rules and actions</span></li>
<li class="MsoNormal"><span>Invoke        different rule sets for a decision management process</span></li>
<li class="MsoNormal"><span>View        reference of the rules written around data elements</span></li>
<li class="MsoNormal"><span>Automatic        emails for notification and acknowledgement</span></li>
<li class="MsoNormal"><span>Auto        user simulation</span></li>
</ul>
</td>
</tr>
<tr>
<td width="30%" valign="top">
<p class="MsoNormal"><span>Display Modes</span></p>
</td>
<td width="68%" valign="top">
<ul type="disc">
<li class="MsoNormal"><span>Forms</span></li>
<li class="MsoNormal"><span>Search        Screens</span></li>
<li class="MsoNormal"><span>Reports</span></li>
<li class="MsoNormal"><span>Charts</span></li>
<li class="MsoNormal"><span>Dashboards</span></li>
<li class="MsoNormal"><span>Custom        HTML pages</span></li>
<li class="MsoNormal"><span>External        web pages</span></li>
</ul>
</td>
</tr>
<tr>
<td width="30%" valign="top">
<p class="MsoNormal"><span>Reports &amp; Charts</span></p>
</td>
<td width="68%" valign="top">
<ul type="disc">
<li class="MsoNormal"><span>Graphic        charts (line, bar, pie, etc.)</span></li>
<li class="MsoNormal"><span>Multiple        report formats such as drill downs, advanced search screens, etc.</span></li>
<li class="MsoNormal"><span>Reports        and charts can include data from multiple related tables</span></li>
<li class="MsoNormal"><span>Criteria        for filtering reports and charts</span></li>
<li class="MsoNormal"><span>Automatic        summary functions such as subtotalling, average, etc.</span></li>
<li class="MsoNormal"><span>Drill        downs for multi-level data report</span></li>
<li class="MsoNormal"><span>Configurable        user dashboards</span></li>
<li class="MsoNormal"><span>Ready        actions for exporting data to Excel and Word</span></li>
<li class="MsoNormal"><span>Ready        actions for printing of reports and charts</span></li>
<li class="MsoNormal"><span>Schedulable        reports via email</span></li>
<li class="MsoNormal"><span>Custom        HTML reports</span></li>
<li class="MsoNormal"><span>Custom        styling of reports using HTML and CSS</span></li>
<li class="MsoNormal"><span>Color        coding</span></li>
</ul>
</td>
</tr>
<tr>
<td width="30%" valign="top">
<p class="MsoNormal"><span>Integration</span></p>
</td>
<td width="68%" valign="top">
<ul type="disc">
<li class="MsoNormal"><span>Embed        forms, reports and charts in your website, forums, blogs or any other        user interface</span></li>
<li class="MsoNormal"><span>Ready        Business Rule actions to call a GET, POST or SOAP request</span></li>
<li class="MsoNormal"><span>Ability        to communicate with OnPremise as well as cloud based applications</span></li>
<li class="MsoNormal"><span>Data        can be imported from RSS feeds</span></li>
<li class="MsoNormal"><span>Ready        SMTP integration</span></li>
<li class="MsoNormal"><span>Ready        integration with PayPal</span></li>
<li class="MsoNormal"><span>Ready        gateway service to send text messages</span></li>
</ul>
</td>
</tr>
<tr>
<td width="30%" valign="top">
<p class="MsoNormal"><span>Customization</span></p>
</td>
<td width="68%" valign="top">
<ul type="disc">
<li class="MsoNormal"><span>Complete        custom branding and white labelling of applications</span></li>
<li class="MsoNormal"><span>Template        personalization</span></li>
<li class="MsoNormal"><span>Application        styling and skinning</span></li>
<li class="MsoNormal"><span>Position        company logo, footer, copyright &amp; attach a &#8216;Terms of use&#8217; document</span></li>
<li class="MsoNormal"><span>Customize        access URL</span></li>
</ul>
</td>
</tr>
<tr>
<td width="30%" valign="top">
<p class="MsoNormal"><span>Security</span></p>
</td>
<td width="68%" valign="top">
<ul type="disc">
<li class="MsoNormal"><span>Hosted        in a 100 percent uptime guaranteed, load balanced– SAS 70 data center</span></li>
<li class="MsoNormal"><span>Accessible        over 128-bit encrypted secured SSL connection</span></li>
<li class="MsoNormal"><span>User        name and password for authentication</span></li>
<li class="MsoNormal"><span>Access        restriction by IP address and range</span></li>
<li class="MsoNormal"><span>Record        level information about date created/last modified and user who        created/last modified</span></li>
<li class="MsoNormal"><span>Transaction        history / audit trail</span></li>
<li class="MsoNormal"><span>SSO</span></li>
</ul>
</td>
</tr>
<tr>
<td width="30%" valign="top">
<p class="MsoNormal"><span>Scheduling</span></p>
</td>
<td width="68%" valign="top">
<ul type="disc">
<li class="MsoNormal"><span>Automate        tasks, reminders, emails, etc.</span></li>
<li class="MsoNormal"><span>Call        scheduled actions linked to Business Rules</span></li>
</ul>
</td>
</tr>
<tr>
<td width="30%" valign="top">
<p class="MsoNormal"><span>Administration</span></p>
</td>
<td width="68%" valign="top">
<ul type="disc">
<li class="MsoNormal"><span>Robust        security management module to create &amp; manage folders (tenants),        roles and users</span></li>
<li class="MsoNormal"><span>Assign        control over different views, changes and data additions</span></li>
<li class="MsoNormal"><span>Permissions        at table/entity level, navigation level (screens, charts, reports,        dashboards etc.) and field level</span></li>
</ul>
</td>
</tr>
<tr>
<td width="30%" valign="top">
<p class="MsoNormal"><span>Minimized Lock-in</span></p>
</td>
<td width="68%" valign="top">
<ul type="disc">
<li class="MsoNormal"><span>Single        click data backup in RDBMS format</span></li>
<li class="MsoNormal"><span>Single        click design backup for business design in a portable XML format</span></li>
<li class="MsoNormal"><span>Hybrid        hosting options: Private server or WOLF Cloud.</span></li>
</ul>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span> </span></p>
]]></content:encoded>
			<wfw:commentRss>http://hibiscustech.com/blog/2010/08/23/platforms-for-developing-saas-applications-%e2%80%93-a-comparison/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Building Mobile Website</title>
		<link>http://hibiscustech.com/blog/2010/08/23/building-mobile-website/</link>
		<comments>http://hibiscustech.com/blog/2010/08/23/building-mobile-website/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 08:46:00 +0000</pubDate>
		<dc:creator>htsblogger</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[development]]></category>

		<category><![CDATA[hibiscustech]]></category>

		<category><![CDATA[mobile]]></category>

		<category><![CDATA[mobile website]]></category>

		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://hibiscustech.com/blog/?p=26</guid>
		<description><![CDATA[There exists a wide range of mobile device user agents (browsers), each rendering markup in different ways. The choice to use WML, XHTML Mobile Profile, XHTML Basic, or cHTML can be an overwhelming decision, to say the least.
All mobile web development strategy must begin with an understanding of the target audience and what they want [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal">There exists a wide range of mobile device user agents (browsers), each rendering markup in different ways. The choice to use WML, XHTML Mobile Profile, XHTML Basic, or cHTML can be an overwhelming decision, to say the least.</p>
<p class="MsoNormal"><span>All mobile web development strategy must begin with an understanding of the target audience and what they want from a site or app, and what the contextual relevance of such a site or app is, what is relevant to the users and the tasks, the problems, and the needs, the users may encounter while being mobile?</span></p>
<p class="MsoNormal">
<p class="MsoNormal"><span style="text-decoration: underline;"><span>WAP 2.0: An XHTML Environment </span></span></p>
<p class="MsoNormal"><span>WAP 2.0, XHTML Mobile Profile (XHTML-MP) is generally the preferred mark-up language, with mandated backward compatibility for WML.</span></p>
<p class="MsoNormal"><span>Nearly, all devices today are WAP 2.0 devices with XHTML Mobile Profile, which will be familiar to anyone who has worked with XHTML Transitional or Strict is the official mark-up language for such devices.</span></p>
<p class="MsoNormal"><span>Finally, because XHTML-MP is a subset of XHTML, initial testing and validation are done within most desktop browsers. Thorough, final testing will certainly need to be conducted using actual devices, but one may test on the desktop initially to see if the mark-up renders correctly and semantically.</span></p>
<p class="MsoNormal"><span style="text-decoration: underline;"><br />
</span></p>
<p class="MsoNormal"><span style="text-decoration: underline;"><span>Design Strategy</span></span></p>
<p class="MsoNormal"><span>Opt for web standards and a flexible layout and then w</span><span>ith the reference design and adaptation rules in place, the final strategy builds flexibility into the mark-up through the use of generic, <em>standards based XHTML</em> and CSS. In practice, this means creating mark-up that uses the tags and structures inherent in HTML (i.e. headers, paragraphs, lists and divs) to define the structure of the page. The immediate benefit—any browser that can read HTML will be able to display your content and will assign it with (albeit rudimentary) visual style. Given the vast number of mobile devices, this benefit cannot be underestimated as it ensures your content will be accessible to a large number of users without too much higgery-jiggery on the part of developers. One will then be in a great position to progressively enhance the design for different device groupings through the use of browser and/or device-specific CSS, graphics and scripting.</span></p>
<p class="MsoNormal"><span>The BBC web site is an ideal example as it shows how simple it can be to combine clean mark-up with well conceived styles and strategic editorial decisions to achieve a great experience on a wide range of devices. Ultimately, the design, adaptation and editorial choices will be based on many factors including the budget, target audience and the functionality of the mobile web site. In the end, it&#8217;s all about striking a balance between the creation of a well optimized, fast-loading site and the delivery of great, targeted content to the users.</span></p>
<p class="MsoNormal"><span style="text-decoration: underline;"><br />
</span></p>
<p class="MsoNormal"><span style="text-decoration: underline;"><span>Development Strategy</span></span></p>
<p class="MsoNormal"><span>A mobile-optimized site addresses first how content is accessed and second what it looks like. In other words, it means context before aesthetics, function before form. Pages are leaner, which means users are spared excessive bandwidth costs and generally enjoy a faster browsing experience.</span></p>
<p class="MsoNormal"><span>The development follows the W3C’s Mobile Web Best Practices 1.0 document.</span></p>
<p class="MsoNormal"><span>ASP.NET version of HAWHAW can be used in creating such mobile website.</span></p>
<p class="MsoNormal"><span style="text-decoration: underline;"><br />
</span></p>
<p class="MsoNormal"><span style="text-decoration: underline;"><span>Testing Strategy</span></span></p>
<p>There are almost 30+ different mobile browsers and many more. With these kinds of numbers, it is highly impossible to test the Web site across all devices? What can be done is test the site on at least one device from all popular manufacturers, and on as many of the mobile browsers as possible. This will give a good idea of how the site works on different devices and will also help in resolving issues. The catch is in making sure that there is access to all of the necessary devices and mobile browsers. Testing is usually possible in one or two physical devices – not enough to adequately test on but emulators can be used instead to simulate testing on the real device or browser. The benefits of this approach are many-fold:</p>
<p class="MsoNormal"><span><span>·<span> </span></span></span><span>No data browsing charges are incurred, as all browsing is performed via your standard Web connection</span></p>
<p class="MsoNormal"><span><span>·<span> </span></span></span><span>Quicker access to devices – starting an emulator is faster than switching sim cards and rebooting devices</span></p>
<p class="MsoNormal"><span><span>·<span> </span></span></span><span>Provides access to a potentially large number of devices/browsers – the number of devices is only limited by hard disk space and the number of emulators that can be found</span></p>
<p class="MsoNormal"><span><span>·<span> </span></span></span><span>Inexpensive – many emulators are available for free</span></p>
<p class="MsoNormal"><span>Fortunately, Mozilla Firefox supports some great extensions that can make testing of mobile sites a piece of cake. Firefox is probably the best browser out there for mobile Web site testing. To make Firefox imitate a mobile device, the following are required:</span></p>
<p class="MsoNormal"><span><span>·<span> </span></span></span><span>The Firefox Web browser (obviously)</span></p>
<p class="MsoNormal"><span><span>·<span> </span></span></span><span>The Modify Headers add-on</span></p>
<p class="MsoNormal"><span><span>·<span> </span></span></span><span>The User Agent Switcher add-on</span></p>
<p class="MsoNormal"><span><span>·<span> </span></span></span><span>At least one mobile device user agent</span></p>
<p class="MsoNormal"><span><span>·<span> </span></span></span><span>A UA Profile HTTP Header</span></p>
<p class="MsoNormal"><span>After the add-ons have been installed, Firefox is ready for mobile site testing.</span></p>
<p class="MsoNormal"><span style="text-decoration: underline;"><br />
</span></p>
<p class="MsoNormal"><span style="text-decoration: underline;"><span>Mobile websites can be developed for the following devices:</span></span></p>
<table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="366" valign="top">
<p class="MsoNormal"><span>Apple (iPhone)</span></p>
</td>
<td width="366" valign="top">
<p class="MsoNormal"><span> </span></p>
</td>
</tr>
<tr>
<td width="366" valign="top">
<p class="MsoNormal"><span>Blackberry</span></p>
</td>
<td width="366" valign="top">
<p class="MsoNormal"><span>BlackBerry® World   Edition™ </span></p>
<p class="MsoNormal"><span>BlackBerry® Tour™ </span></p>
<p class="MsoNormal"><span>BlackBerry® Storm™ </span></p>
<p class="MsoNormal"><span>BlackBerry® Pearl™ </span></p>
<p class="MsoNormal"><span>BlackBerry® Curve™ </span></p>
<p class="MsoNormal"><span>BlackBerry® Bold™ </span></p>
<p class="MsoNormal"><span>BlackBerry® 88(00,20,30)</span></p>
</td>
</tr>
<tr>
<td width="366" valign="top">
<p class="MsoNormal"><span>Palm</span></p>
</td>
<td width="366" valign="top">
<p class="MsoNormal"><span>Palm Pixi</span></p>
<p class="MsoNormal"><span>Palm Pixi Plus</span></p>
<p class="MsoNormal"><span>Palm Pre</span></p>
<p class="MsoNormal"><span>Palm Pre Plus</span></p>
</td>
</tr>
<tr>
<td width="366" valign="top">
<p class="MsoNormal"><span>Android</span></p>
</td>
<td width="366" valign="top">
<p class="MsoNormal"><span>Nexus One<span> </span></span></p>
<p class="MsoNormal"><span>Passion / Bravo<span> </span></span></p>
<p class="MsoNormal"><span>GW880<span> </span></span></p>
<p class="MsoNormal"><span>Xperia X10a<span> </span></span></p>
<p class="MsoNormal"><span>Eve / GW620<span> </span></span></p>
<p class="MsoNormal"><span>Eris / Desire<span> </span></span></p>
<p class="MsoNormal"><span>One<span> </span></span></p>
<p class="MsoNormal"><span>Streak<span> </span></span></p>
<p class="MsoNormal"><span>Calgary / Motus<span> </span></span></p>
<p class="MsoNormal"><span>Liquid / A1<span> </span></span></p>
<p class="MsoNormal"><span>Moment<span> </span></span></p>
<p class="MsoNormal"><span>Behold II<span> </span></span></p>
<p class="MsoNormal"><span>DROID / Milestone<span> </span></span></p>
<p class="MsoNormal"><span>Archos Phone<span> </span></span></p>
<p class="MsoNormal"><span>CLIQ / DEXT<span> </span></span></p>
<p class="MsoNormal"><span>O1<span> </span></span></p>
<p class="MsoNormal"><span>Spica / Galaxy Lite /   i5700<span> </span></span></p>
<p class="MsoNormal"><span>Pulse<span> </span></span></p>
<p class="MsoNormal"><span>Mini 3i<span> </span></span></p>
<p class="MsoNormal"><span>Sprint Hero<span> </span></span></p>
<p class="MsoNormal"><span>Tattoo<span> </span></span></p>
<p class="MsoNormal"><span>Hero<span> </span></span></p>
<p class="MsoNormal"><span>Galaxy / i7500<span> </span></span></p>
<p class="MsoNormal"><span>Magic / myTouch 3G<span> </span></span></p>
<p class="MsoNormal"><span>Dream / G1</span></p>
</td>
</tr>
<tr>
<td width="366" valign="top">
<p class="MsoNormal"><span>Samsung</span></p>
</td>
<td width="366" valign="top">
<p class="MsoNormal"><span>Android Phones</span></p>
<p class="MsoNormal"><span>Windows Phones(z105)</span></p>
</td>
</tr>
<tr>
<td width="366" valign="top">
<p class="MsoNormal"><span>Nokia</span></p>
</td>
<td width="366" valign="top">
<p class="MsoNormal"><span>All N Series</span></p>
</td>
</tr>
<tr>
<td width="366" valign="top">
<p class="MsoNormal"><span>LG</span></p>
</td>
<td width="366" valign="top">
<p class="MsoNormal"><span>Android Phones</span></p>
</td>
</tr>
<tr>
<td width="366" valign="top">
<p class="MsoNormal"><span>Motorola</span></p>
</td>
<td width="366" valign="top">
<p class="MsoNormal"><span>V3i</span></p>
</td>
</tr>
<tr>
<td width="366" valign="top">
<p class="MsoNormal"><span>Sony Ericsson</span></p>
</td>
<td width="366" valign="top">
<p class="MsoNormal"><span>K750i</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span style="text-decoration: underline;"><span>Mobile websites will have to be compatible across the following mobile browsers</span></span><span>:</span></p>
<p class="MsoNormal"><strong><span>·</span></strong><span>Blazer <strong>·</strong>Bolt browser <strong>·</strong><em>Deepfish</em> <strong>·</strong>Firefox for mobile <strong>·</strong>IbisBrowser <strong>·</strong>Internet Explorer Mobile <strong>·</strong>Iris Browser <strong>·</strong>JOCA <strong>·</strong>Konqueror Embedded <strong>·</strong>MicroB <strong>·</strong><em>Minimo</em> <strong>·</strong>NetFront <strong>·</strong>Obigo Browser <strong>·</strong>Opera Mobile <strong>·</strong>Pixo <strong>·</strong>S60 web browser <strong>·</strong>Safari <strong>·</strong>Skyfire <strong>·</strong>Steel <strong>·</strong>Teashark <strong>·</strong>ThunderHawk <strong>·</strong>UCWEB <strong>·</strong>uZard Web <strong>·</strong>WinWAP</span></p>
]]></content:encoded>
			<wfw:commentRss>http://hibiscustech.com/blog/2010/08/23/building-mobile-website/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Dynamic Javascript and Cross Domain AJAX</title>
		<link>http://hibiscustech.com/blog/2009/11/13/dynamic-javascript-and-cross-domain-ajax/</link>
		<comments>http://hibiscustech.com/blog/2009/11/13/dynamic-javascript-and-cross-domain-ajax/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 12:53:21 +0000</pubDate>
		<dc:creator>htsblogger</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[AJAX]]></category>

		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://hibiscustech.com/blog/?p=19</guid>
		<description><![CDATA[For those of you who&#8217;ve been frustrated by the XMLHTTPRequest object&#8217;s inability to make cross domain requests, there is a way out. This method does away with the XMLHTTPRequest object and uses a technique called dynamic javascript. Here&#8217;s how it works.
You would normally define a script tag something like this:

What if you replaced it with [...]]]></description>
			<content:encoded><![CDATA[<p>For those of you who&#8217;ve been frustrated by the XMLHTTPRequest object&#8217;s inability to make cross domain requests, there is a way out. This method does away with the XMLHTTPRequest object and uses a technique called dynamic javascript. Here&#8217;s how it works.</p>
<p>You would normally define a script tag something like this:</p>
<p><a href="http://abhinavrock17.googlepages.com/codepic2_small.jpg"><img  title="codepic2" src="http://abhinavrock17.googlepages.com/codepic2_small.jpg" alt=""/></a></p>
<p>What if you replaced it with this piece of code?</p>
<p><a href="http://abhinavrock17.googlepages.com/codepic10_small.jpg"><img title="codepic3" src="http://abhinavrock17.googlepages.com/codepic10_small.jpg" alt=""/></a></p>
<p>But that can&#8217;t possibly work right? The browser will know right away that something&#8217;s off, right? Actually your browser won&#8217;t find out if your backend script (yourscript.php here) returns what it expects - Javascript code. There are two things you need to do with your backend script to achieve this. First you put in a header that tells the browser that the data returned is of type javascript.</p>
<p><a href="http://abhinavrock17.googlepages.com/codepic11_small.jpg"><img  title="codepic6" src="http://abhinavrock17.googlepages.com/codepic11_small.jpg" alt=""/></a></p>
<p>This effectively fools the browser into thinking it&#8217;s reading a .js file. From then on print all the javascript statements you want wrapped within php strings. You will do something like -</p>
<p><a href="http://abhinavrock17.googlepages.com/codepic7_small.jpg"><img title="codepic7" src="http://abhinavrock17.googlepages.com/codepic7_small.jpg" alt=""/></a></p>
<p>That&#8217;s it! Try it out. Put the script tag in an HTML page, and the php file on the server, and on opening the page in the browser you should be able to see the dialog box. Of course this simple example does not convey the true power of this technique - that you can make database calls in the script and modify the javascript accordingly.</p>
<p>Suppose you have three clickable images on the screen. Each time one of them is clicked, you have to go back to the database, pick up a message associated with that image and display it. How would you do it? One solution would be to prepopulate hidden divs or javascript variables in the page using a server side scripting language. This idea immediately fails if you do not have control over the web page&#8217;s preprocessing. Perhaps you are only supplying a piece of javascript that &#8216;decorates&#8217; the existing page with the required message, without assuming anything about the content. Then you have to make database calls on your server through the only entry point available to you: the javascript code.</p>
<p>A sample code would look something like this:</p>
<p><a href="http://abhinavrock17.googlepages.com/codepic5_small.jpg"><img  title="codepic5" src="http://abhinavrock17.googlepages.com/codepic5_small.jpg" alt=""/></a></p>
<p>This function creates a script tag on clicking the image and that script tag calls a php file that returns the content. First it checks that a dynamically created script tag designed to do precisely this does not already exist. A large number of clicks would create a large number of script tags and that would not do site performance any good. What will the backend php code look like?</p>
<p><a href="http://abhinavrock17.googlepages.com/codepic12_small.jpg"><img title="codepic8" src="http://abhinavrock17.googlepages.com/codepic12_small.jpg" alt=""/></a></p>
<p>There you go, simple and powerful. A combination of dynamic script creation and .js file imitation using a server side script can, to a certain extent, simulate the AJAX effect of updating parts of a page without a complete refresh.</p>
]]></content:encoded>
			<wfw:commentRss>http://hibiscustech.com/blog/2009/11/13/dynamic-javascript-and-cross-domain-ajax/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

