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

<channel>
	<title>Code Shogun &#187; Android</title>
	<atom:link href="http://www.codeshogun.com/blog/tag/android/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.codeshogun.com/blog</link>
	<description>Mobile App Dev</description>
	<lastBuildDate>Wed, 02 Jun 2010 01:45:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>PrimoSpot &#8211; Find parking space EZ in metro cities</title>
		<link>http://www.codeshogun.com/blog/2009/08/24/primospot-find-parking-space-ez-in-metro-cities/</link>
		<comments>http://www.codeshogun.com/blog/2009/08/24/primospot-find-parking-space-ez-in-metro-cities/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 03:09:46 +0000</pubDate>
		<dc:creator>Android Shogun</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Boston]]></category>
		<category><![CDATA[Market]]></category>
		<category><![CDATA[NYC]]></category>
		<category><![CDATA[parking]]></category>
		<category><![CDATA[primospot]]></category>

		<guid isPermaLink="false">http://www.codeshogun.com/blog/?p=415</guid>
		<description><![CDATA[We all know how hard it is to live in the city while having a car, traffics and all that. But the most frustrating task is to park your car. Enter PrimoSpot: find free on street parking and compare parking garage prices. Search thousands of metro city parking signs for regulations and time left at [...]]]></description>
			<content:encoded><![CDATA[<p>We all know how hard it is to live in the city while having a car, traffics and all that.  But the most frustrating task is to park your car.  Enter <a href="http://primospot.com/">PrimoSpot</a>: find free on street parking and compare parking garage prices. Search thousands of metro city parking signs for regulations and time left at a parking spot.</p>
<p>You can use the website to plan your trip: finding possible street parking spots, nearby garage hours and fees.  And if you ride a bike, find a bike rack there too!  You can also download the <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=308863789&#038;mt=8">iPhone app</a> on your iPhone so you can check up parking information wherever you go.</p>
<p>Tonight, I&#8217;m here to announce <strong>the launch of PrimoSpot Android app</strong>, available on the Android Market now!  Go check it out!  <strong>&#8220;PrimoSpot Parking&#8221;</strong> is the app name!  Search <strong>&#8220;Parking&#8221;</strong> or <strong>&#8220;PrimoSpot&#8221;</strong>, you will find it on top of the list!  This is THE ONLY app on the market now to help you find parking space!  </p>
<p>We have NYC and Boston currently supported, but will expand to other metro cities very soon.  There&#8217;s also a universal online widget available soon that you can embed in any web pages.</p>
<p>Meanwhile, here are some screen shots of the app in action:</p>

<a href='http://www.codeshogun.com/blog/2009/08/24/primospot-find-parking-space-ez-in-metro-cities/attachment/201/' title='201'><img width="150" height="150" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/08/201-150x150.png" class="attachment-thumbnail" alt="201" title="201" /></a>
<a href='http://www.codeshogun.com/blog/2009/08/24/primospot-find-parking-space-ez-in-metro-cities/attachment/202/' title='202'><img width="150" height="150" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/08/202-150x150.png" class="attachment-thumbnail" alt="202" title="202" /></a>
<a href='http://www.codeshogun.com/blog/2009/08/24/primospot-find-parking-space-ez-in-metro-cities/attachment/203/' title='203'><img width="150" height="150" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/08/203-150x150.png" class="attachment-thumbnail" alt="203" title="203" /></a>
<a href='http://www.codeshogun.com/blog/2009/08/24/primospot-find-parking-space-ez-in-metro-cities/attachment/204/' title='204'><img width="150" height="150" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/08/204-150x150.png" class="attachment-thumbnail" alt="204" title="204" /></a>
<a href='http://www.codeshogun.com/blog/2009/08/24/primospot-find-parking-space-ez-in-metro-cities/attachment/205/' title='205'><img width="150" height="150" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/08/205-150x150.png" class="attachment-thumbnail" alt="205" title="205" /></a>
<a href='http://www.codeshogun.com/blog/2009/08/24/primospot-find-parking-space-ez-in-metro-cities/attachment/206/' title='206'><img width="150" height="150" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/08/206-150x150.png" class="attachment-thumbnail" alt="206" title="206" /></a>
<a href='http://www.codeshogun.com/blog/2009/08/24/primospot-find-parking-space-ez-in-metro-cities/attachment/207/' title='207'><img width="150" height="150" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/08/207-150x150.png" class="attachment-thumbnail" alt="207" title="207" /></a>
<a href='http://www.codeshogun.com/blog/2009/08/24/primospot-find-parking-space-ez-in-metro-cities/attachment/208/' title='208'><img width="150" height="150" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/08/208-150x150.png" class="attachment-thumbnail" alt="208" title="208" /></a>
<a href='http://www.codeshogun.com/blog/2009/08/24/primospot-find-parking-space-ez-in-metro-cities/attachment/209/' title='209'><img width="150" height="150" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/08/209-150x150.png" class="attachment-thumbnail" alt="209" title="209" /></a>
<a href='http://www.codeshogun.com/blog/2009/08/24/primospot-find-parking-space-ez-in-metro-cities/attachment/210/' title='210'><img width="150" height="150" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/08/210-150x150.png" class="attachment-thumbnail" alt="210" title="210" /></a>
<a href='http://www.codeshogun.com/blog/2009/08/24/primospot-find-parking-space-ez-in-metro-cities/attachment/211/' title='211'><img width="150" height="150" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/08/211-150x150.png" class="attachment-thumbnail" alt="211" title="211" /></a>
<a href='http://www.codeshogun.com/blog/2009/08/24/primospot-find-parking-space-ez-in-metro-cities/attachment/212/' title='212'><img width="150" height="150" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/08/212-150x150.png" class="attachment-thumbnail" alt="212" title="212" /></a>
<a href='http://www.codeshogun.com/blog/2009/08/24/primospot-find-parking-space-ez-in-metro-cities/attachment/213/' title='213'><img width="150" height="150" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/08/213-150x150.png" class="attachment-thumbnail" alt="213" title="213" /></a>
<a href='http://www.codeshogun.com/blog/2009/08/24/primospot-find-parking-space-ez-in-metro-cities/attachment/214/' title='214'><img width="150" height="150" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/08/214-150x150.png" class="attachment-thumbnail" alt="214" title="214" /></a>
<a href='http://www.codeshogun.com/blog/2009/08/24/primospot-find-parking-space-ez-in-metro-cities/attachment/215/' title='215'><img width="150" height="150" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/08/215-150x150.png" class="attachment-thumbnail" alt="215" title="215" /></a>

<p>Some Features:<br />
- Uses GPS to find parking information around your current location<br />
- Search entered address to find parking information<br />
- Compare garage prices<br />
- Remember where you parked your car with some reminding notes</p>
<p>Go grab a copy if you live in NYC and Boston and let us know what you think ^_^</p>
<p>Happy Driving!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codeshogun.com/blog/2009/08/24/primospot-find-parking-space-ez-in-metro-cities/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is Palm&#8217;s webOS already a lost cause?</title>
		<link>http://www.codeshogun.com/blog/2009/08/21/is-palms-webos-already-a-lost-cause/</link>
		<comments>http://www.codeshogun.com/blog/2009/08/21/is-palms-webos-already-a-lost-cause/#comments</comments>
		<pubDate>Sat, 22 Aug 2009 01:32:34 +0000</pubDate>
		<dc:creator>Android Shogun</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[BlackBerry]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Palm webOS]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[maemo]]></category>
		<category><![CDATA[mojo]]></category>
		<category><![CDATA[palm]]></category>
		<category><![CDATA[pre]]></category>
		<category><![CDATA[webOS]]></category>

		<guid isPermaLink="false">http://www.codeshogun.com/blog/?p=411</guid>
		<description><![CDATA[We all know the Palm Pre launch was a big success! I myself picked up the Pre on day one, along w/ a 2-year Sprint contract (weeping&#8230;). Merely less than 3 months after its launch, Palm webOS seems to have lost its momentum. Here I will use my own personal experience to write some of [...]]]></description>
			<content:encoded><![CDATA[<p>We all know the Palm Pre launch was a big success! I myself picked up the Pre on day one, along w/ a 2-year Sprint contract (weeping&#8230;).  Merely less than 3 months after its launch, Palm webOS seems to have lost its momentum.  Here I will use my own personal experience to write some of my thoughts on webOS in general, and why there&#8217;s an uphill battle for Palm to take on going forward.</p>
<p>Underneath webOS lies the embedded linux, much like <a href="http://developer.android.com/index.html">Android</a>, Nokia <a href="http://maemo.org/">Maemo</a>, etc.  It&#8217;s reliable and proven in the smartphone OS market.  On a higher level, <a href="http://developer.palm.com/">Mojo SDK</a> makes up all the high level APIs and frameworks.  It mainly uses JavaScript to bridge the low level events/callbacks and high level API, such as GPS coordinates information, accelerometer readings, camera controls, etc.  This approach is somewhat like those JavaScript frameworks, such as <a href="http://phonegap.com/">PhoneGap</a>, http://sourceforge.net/projects/quickconnect/, and <a href="http://www.rhomobile.com/products/rhodes">Rhodes</a>, where they try to use the common framework built in JavaScript, and uses JavaScript to call underlying low level APIs in the devices, such as Android, iPhone, BlackBerry, etc.  This architecture is very cool, but also brings down the performance, comparing to native SDK APIs found in iPhone and Android.  For example, the Pre accelerometer is only at 4Hz (4 sample readings per second), comparing to about 100Hz in iPhone.  This might be enough for casual usage, but certainly not enough for some serious gaming controls.</p>
<p>By the way, Palm opened <a href="http://developer.palm.com/distribution/viewforum.php?f=39 ">Game Developer Cafe</a> to try to lure some game developer on webOS.  But without Open GL ES support on the API level (Pre&#8217;s hardware is comparable to iPhone, and <a href="http://blog.steventroughtonsmith.com/2009/07/palm-pre-sdk-web-apps.html">is capable of running Open GL ES</a>), it&#8217;s hard to find serious game developers who want to develop for webOS.  You might say you can use canvas in webkit and build game on top of that.  Well, canvas performance is still not up to the task, and plus, the current webOS webkit&#8217;s implementation of the canvas is not complete.  Many essential features are missing, such as reading pixel data.</p>
<p>Mojo and webOS are based on HTML5, CSS, and JavaScript.  They are all web standards.  That&#8217;s where the &#8220;web&#8221; in the webOS name comes from, right?  However, I found this below sentiment troubling.  It&#8217;s an email from Palm&#8217;s product manager:<br />
- Have an appealing design and user interface aligned with Palm UI guidelines and optimized for webOS (i.e., <strong>not a “browser” app</strong>) </p>
<p>Not a browser app?  Are you kidding me?  Are you turning your back against your foundation?  Apple can rightfully deploy such bind-your-UI-to-my-HIG &#8216;cuz it&#8217;s an Apple product.  You Palm is NOT Apple, yet.  This is not a way to distinguish yourself.  What you should do is to attract as many web developers to your webOS platform as possible.  Not creating yet another new system for them to learn.  Honestly, there are plenty of guys who can create better UI widgets/elements than the built-in Mojo widgets/elements.  Please, Palm, stay to your core value.  webOS apps ARE browser apps.</p>
<p>I also heard Palm&#8217;s working on virtual on screen keyboard recently.  It&#8217;s cool and all.  But before you doing that, take a look at this article: <a href="http://ignorethecode.net/blog/2009/08/07/virtual-keyboards-on-iphone-and-android/">Virtual Keyboards on iPhone and Android</a>.  Please remember, no matter what you do, a virtual keyboard on a 3.1&#8243; screen is never going to match the virtual keyboard on a 3.5&#8243; screen.  You just can&#8217;t grow the physical screen size.</p>
<p>As to the Mojo framework, my biggest disappointment is the lack of built-in Map API.  In order to use Map embedded in your own application, with your custom marker icons and all, you will need to include external AJAX Map APIs, such as <a href="http://code.google.com/apis/maps/documentation/v2/">Google Map API v2</a>/<a href="http://code.google.com/apis/maps/documentation/v3/">v3</a>.  These APIs work well, but they are not optimized for mobile devices.  A Map API is a must for modern mobile OS.  Though Apple only recently in their iPhone SDK 3.0 have they included the much needed Map Kit framework.  But it works beautifully!</p>
<p>My biggest concern for webOS, however, is its openness of app source codes.  Anyone can download the public SDK, enable developer mode on their Pre by entering the classic magic Nintendo cheat code, hookup the Pre with the USB cable, and bang, you have root access on your Pre.  There, you can find virtually everything, including source codes for ALL the apps pre-installed and downloaded.  Back a few years ago, when most websites were still running on static HTML, I used teleport program to download every single link/page on a given site.  It&#8217;s messy but it gets the job done.  Nowadays, with all these dynamic page scripting and web 2.0 stuff, it&#8217;s virtually impossible to get the complete html/css/js codes from any website.  With palm webOS, it&#8217;s just a click away.  Download the app, and there you go, the WHOLE app source codes!  In there, you might as well find API Keys used by developers, possibly login information if not coded carefully.  I was shocked that Palm didn&#8217;t even bother to put in some handy JavaScript compressor and confiscator, such as <a href="http://www.jslint.com/">JSLint</a> and <a href="http://freshmeat.net/projects/js-obfus">Stunnix JavaScript Obfuscator and Encoder</a>.</p>
<p>This was my big concern before webOS/Pre launch.  As a developer, unless my project is open source, I take very careful steps to protect my codes, codes that I write with sweat and blood.  Now on webOS, anyone with minimal efforts, can see everything I code up there.  This is very discomforting, and Palm MUST address this issue or many developers will unlikely to jump to the webOS bandwagon.</p>
<p>The launch of iPhone 3Gs back in July killed some of webOS/Pre&#8217;s momentum.  Even though Apple added not many cool features comparing to iPhone 3G.  But with a large existing user base and die-hard apple fans everywhere, iPhone 3Gs has been selling extremely well, even in Japan!  Meanwhile, Android is on route to be on a bunch of handsets by end of this year.  Samsung InstinctQ and HTC Hero on Sprint around October, Motorola Sholes on Verizon, HTC Click on AT&#038;T, G2 myTouch and Motorola Morrison on T-mobile.  If Palm cannot address the source code protection issues, if Palm does not launch their second webOS phone (EOS?) by October, we have plenty of reasons to believe the battle against Apple has long been lost.  If webOS&#8217;s licensing model is not as open and/or flexible as Android so that other handset manufacturers can put it on their own handsets, webOS could very well become a niche mobile OS, a mobile OS we us geeks are fond of hacking and tweaking, but will never reach the status of mainstream modern mobile OS.</p>
<p>Please Palm, do whatever it takes to address these serious issues!  I wish Palm webOS best luck, however, the time is not on their side&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codeshogun.com/blog/2009/08/21/is-palms-webos-already-a-lost-cause/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaEye.com Android Client Version 1 released!</title>
		<link>http://www.codeshogun.com/blog/2009/08/08/javaeyecom-android-client-version-1-released/</link>
		<comments>http://www.codeshogun.com/blog/2009/08/08/javaeyecom-android-client-version-1-released/#comments</comments>
		<pubDate>Sun, 09 Aug 2009 03:05:17 +0000</pubDate>
		<dc:creator>Android Shogun</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[JavaEye]]></category>
		<category><![CDATA[Market]]></category>

		<guid isPermaLink="false">http://www.codeshogun.com/blog/?p=384</guid>
		<description><![CDATA[JavaEye is a software developers’ community site based in China. Established on September 2003, JavaEye started with topics only concerning about Java and Hibernate. Since then it has expanded to topics related to all software development disciplines. JavaEye was selected as the best 10 technology websites in 2005. We also obtained a lot of useful [...]]]></description>
			<content:encoded><![CDATA[<p>JavaEye is a software developers’ community site based in China.</p>
<p>Established on September 2003, JavaEye started with topics only<br />
concerning about Java and Hibernate.  Since then it has expanded to topics related to all software development disciplines.  JavaEye was selected as the best 10 technology websites in 2005. We also obtained a lot of useful information from this site frequently; Therefore, we decided to bring this site to android platform.<br />
<span id="more-170"></span></p>
<p>The app took us 3 developers and 20 days on our spare time to finish.</p>
<p>The current alpha version has chat, site message inbox, and bookmarks features.</p>
<p>We utilized JavaEye.com&#8217;s API to accomplish the above.</p>
<p>This application is available on the Android Market. You can search it from your android phone by keyword “JavaEye”.</p>
<p>For those who did not have an android phone, you can download this application from the following link:<br />
<a href="http://www.ChinaAndroidDev.com/apks/JavaEyeClient_1.0.1.apk">http://www.ChinaAndroidDev.com/apks/JavaEyeClient_1.0.1.apk</a></p>
<p>We are working on the next release. We are aiming to add GPS location/Map, Voice mail , background checking and notification<br />
<img style="border: 4px solid white; margin: 3px;"  src="http://www.starlitmobile.com/blog/wp-content/uploads/2009/08/0001.png"  width="240" height="360"  /><img  style="border: 4px solid white; margin: 3px;" src="http://www.starlitmobile.com/blog/wp-content/uploads/2009/08/0002.png"  width="240" height="360" /><img  style="border: 4px solid white; margin: 3px;" src="http://www.starlitmobile.com/blog/wp-content/uploads/2009/08/0003.png"  width="240" height="360"  /><img  style="border: 4px solid white; margin: 3px;" src="http://www.starlitmobile.com/blog/wp-content/uploads/2009/08/0004.png"  width="240" height="360"  /><img  style="border: 4px solid white; margin: 3px;" src="http://www.starlitmobile.com/blog/wp-content/uploads/2009/08/0005.png"  width="240" height="360"  /><img  style="border: 4px solid white; margin: 3px;" src="http://www.starlitmobile.com/blog/wp-content/uploads/2009/08/0006.png"  width="240" height="360"  /><img  style="border: 4px solid white; margin: 3px;" src="http://www.starlitmobile.com/blog/wp-content/uploads/2009/08/0007.png"  width="240" height="360"  /><img  style="border: 4px solid white; margin: 3px;" src="http://www.starlitmobile.com/blog/wp-content/uploads/2009/08/0008.png"  width="240" height="360"  /><img  style="border: 4px solid white; margin: 3px;" src="http://www.starlitmobile.com/blog/wp-content/uploads/2009/08/0009.png"  width="240" height="360"  /><img  style="border: 4px solid white; margin: 3px;" src="http://www.starlitmobile.com/blog/wp-content/uploads/2009/08/0010.png"  width="240" height="360"  /><img  style="border: 4px solid white; margin: 3px;" src="http://www.starlitmobile.com/blog/wp-content/uploads/2009/08/0011.png"  width="240" height="360"  /><img  style="border: 4px solid white; margin: 3px;" src="http://www.starlitmobile.com/blog/wp-content/uploads/2009/08/0012.png"  width="240" height="360"  /><img  style="border: 4px solid white; margin: 3px;" src="http://www.starlitmobile.com/blog/wp-content/uploads/2009/08/0013.png"  width="240" height="360"  /><img  style="border: 4px solid white; margin: 3px;" src="http://www.starlitmobile.com/blog/wp-content/uploads/2009/08/0014.png"  width="240" height="360"  /><img  style="border: 4px solid white; margin: 3px;" src="http://www.starlitmobile.com/blog/wp-content/uploads/2009/08/0015.png"  width="240" height="360"  /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.codeshogun.com/blog/2009/08/08/javaeyecom-android-client-version-1-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2 OMS phones spotted&#8230; 移动支持的两款OMS手机</title>
		<link>http://www.codeshogun.com/blog/2009/05/17/2-oms-phones-spotted-%e7%a7%bb%e5%8a%a8%e6%94%af%e6%8c%81%e7%9a%84%e4%b8%a4%e6%ac%beoms%e6%89%8b%e6%9c%ba/</link>
		<comments>http://www.codeshogun.com/blog/2009/05/17/2-oms-phones-spotted-%e7%a7%bb%e5%8a%a8%e6%94%af%e6%8c%81%e7%9a%84%e4%b8%a4%e6%ac%beoms%e6%89%8b%e6%9c%ba/#comments</comments>
		<pubDate>Mon, 18 May 2009 03:55:59 +0000</pubDate>
		<dc:creator>Android Shogun</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[China Mobile]]></category>
		<category><![CDATA[OMS]]></category>

		<guid isPermaLink="false">http://www.codeshogun.com/blog/?p=138</guid>
		<description><![CDATA[OMS &#8211; Open Mobile System, is based on Android, customized by China Mobile. There are a few rumored phones that would run OMS. Today, at the mmarket (mobile market for China Mobile), I found 2 OMS phones at the registration page. Dopod A6188, 320&#215;480, internal GPS, 3.2MP camera. (Dopod is the brand which HTC sells [...]]]></description>
			<content:encoded><![CDATA[<p>OMS &#8211; Open Mobile System, is based on Android, customized by China Mobile.  There are a few rumored phones that would run OMS.  Today, at the mmarket (mobile market for China Mobile), I found 2 OMS phones at<br />
<a href="http://dev.mmarket.com/cmdn/bbs/newdev.reg.php?action=reg_comm">the registration page</a>.</p>
<p>Dopod A6188, 320&#215;480, internal GPS, 3.2MP camera.  (Dopod is the brand which HTC sells phones in China).</p>
<p>Borqs JadeSpring.  Borqs is the company which customized Android to be OMS <img src='http://www.codeshogun.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   Seems like a secret phone for now.  In Chinese, it means 玉春&#8230; ?  Sounds weird&#8230;</p>

<a href='http://www.codeshogun.com/blog/2009/05/17/2-oms-phones-spotted-%e7%a7%bb%e5%8a%a8%e6%94%af%e6%8c%81%e7%9a%84%e4%b8%a4%e6%ac%beoms%e6%89%8b%e6%9c%ba/picture-9/' title='picture-9'><img width="150" height="140" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/05/picture-9-150x140.png" class="attachment-thumbnail" alt="picture-9" title="picture-9" /></a>
<a href='http://www.codeshogun.com/blog/2009/05/17/2-oms-phones-spotted-%e7%a7%bb%e5%8a%a8%e6%94%af%e6%8c%81%e7%9a%84%e4%b8%a4%e6%ac%beoms%e6%89%8b%e6%9c%ba/picture-11/' title='picture-11'><img width="150" height="150" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/05/picture-11-150x150.png" class="attachment-thumbnail" alt="picture-11" title="picture-11" /></a>
<a href='http://www.codeshogun.com/blog/2009/05/17/2-oms-phones-spotted-%e7%a7%bb%e5%8a%a8%e6%94%af%e6%8c%81%e7%9a%84%e4%b8%a4%e6%ac%beoms%e6%89%8b%e6%9c%ba/picture-10/' title='picture-10'><img width="150" height="133" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/05/picture-10-150x133.png" class="attachment-thumbnail" alt="picture-10" title="picture-10" /></a>
<a href='http://www.codeshogun.com/blog/2009/05/17/2-oms-phones-spotted-%e7%a7%bb%e5%8a%a8%e6%94%af%e6%8c%81%e7%9a%84%e4%b8%a4%e6%ac%beoms%e6%89%8b%e6%9c%ba/picture-12/' title='picture-12'><img width="150" height="150" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/05/picture-12-150x150.png" class="attachment-thumbnail" alt="picture-12" title="picture-12" /></a>

<p>Truly interesting!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codeshogun.com/blog/2009/05/17/2-oms-phones-spotted-%e7%a7%bb%e5%8a%a8%e6%94%af%e6%8c%81%e7%9a%84%e4%b8%a4%e6%ac%beoms%e6%89%8b%e6%9c%ba/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to detect shake motion in Android &#8211; part I</title>
		<link>http://www.codeshogun.com/blog/2009/04/17/how-to-detect-shake-motion-in-android-part-i/</link>
		<comments>http://www.codeshogun.com/blog/2009/04/17/how-to-detect-shake-motion-in-android-part-i/#comments</comments>
		<pubDate>Sat, 18 Apr 2009 01:57:34 +0000</pubDate>
		<dc:creator>Android Shogun</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[motion]]></category>
		<category><![CDATA[shake]]></category>

		<guid isPermaLink="false">http://www.codeshogun.com/blog/?p=104</guid>
		<description><![CDATA[Gesture/Motion-based detection is fast becoming an integral part of many mobile applications. One neat usage of it is to shake to erease.  The first one I&#8217;ve encountered is SketchUp from the early days of jailbreak iPhone.  Then there are shake to delete done-items on your todo/shopping list, etc. There are many approaches to detect shake [...]]]></description>
			<content:encoded><![CDATA[<p>Gesture/Motion-based detection is fast becoming an integral part of many mobile applications.</p>
<p>One neat usage of it is to shake to erease.  The first one I&#8217;ve encountered is SketchUp from the early days of jailbreak iPhone.  Then there are shake to delete done-items on your todo/shopping list, etc.</p>
<p>There are many approaches to detect shake motion, one is from <a href="http://www.clingmarks.com/?p=25" target="_blank">ClingMarks</a>.  Basically it calculates the total delta (changes) in all 3 axises: x, y and z between the current even time and the previous one, and divide by the time elapsed to find its psudo-velocity.  (I call it psudo because it&#8217;s not actually a velocity in any direction; it&#8217;s more like a mixed-up velocity from 3 axises).  If this velocity is greater than a pre-defined threshold, it&#8217;s been viewed as a shake motion.</p>
<p>From the code point of view, you need to implement the SensorListener:<br />
<code><br />
public class ShakeActivity extends Activity implements SensorListener<br />
</code></p>
<p>You will need to acquire a SensorManager:<br />
<code><br />
sensorMgr = (SensorManager) getSystemService(SENSOR_SERVICE);<br />
</code></p>
<p>And register this sensor with desired flags:<br />
<code><br />
ensorMgr.registerListener(this,<br />
SensorManager.SENSOR_ACCELEROMETER,<br />
SensorManager.SENSOR_DELAY_GAME);<br />
</code></p>
<p>In your onSensorChange() method, you determine whether it&#8217;s a shake or not:<br />
<code><br />
public void onSensorChanged(int sensor, float[] values) {<br />
if (sensor == SensorManager.SENSOR_ACCELEROMETER) {<br />
long curTime = System.currentTimeMillis();<br />
// only allow one update every 100ms.<br />
if ((curTime - lastUpdate) &gt; 100) {<br />
long diffTime = (curTime - lastUpdate);<br />
lastUpdate = curTime;</code></p>
<p>x = values[SensorManager.DATA_X];<br />
y = values[SensorManager.DATA_Y];<br />
z = values[SensorManager.DATA_Z];</p>
<p>float speed = Math.abs(x+y+z &#8211; last_x &#8211; last_y &#8211; last_z) / diffTime * 10000;</p>
<p>if (speed &gt; SHAKE_THRESHOLD) {<br />
Log.d(&#8220;sensor&#8221;, &#8220;shake detected w/ speed: &#8221; + speed);<br />
Toast.makeText(this, &#8220;shake detected w/ speed: &#8221; + speed, Toast.LENGTH_SHORT).show();<br />
}<br />
last_x = x;<br />
last_y = y;<br />
last_z = z;<br />
}<br />
}<br />
}</p>
<p>The shake threshold is defined as:<br />
<code><br />
private static final int SHAKE_THRESHOLD = 800;<br />
</code></p>
<p>This is pretty straightforward.  So if your app just simply needs a shake motion detection, w/o needing to know on which direction it&#8217;s shaken, this code is good enough.  However, there are situations where a non-shake motion would be detected as shake due to the fact that the formula is not actually the correct or should I say a precise formula for determining the shake motion.  I call this a coarse-grain approach.</p>
<p>In my next post, I will show you a more fine-grain approach, something I learned from iPhone SDK programming <img src='http://www.codeshogun.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>You can download this sample <a href="http://codeshogun.com/apps/ShakeSample.zip">here</a></p>
<p>Happy Coding!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codeshogun.com/blog/2009/04/17/how-to-detect-shake-motion-in-android-part-i/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>How to implement Swipe action in Android</title>
		<link>http://www.codeshogun.com/blog/2009/04/16/how-to-implement-swipe-action-in-android/</link>
		<comments>http://www.codeshogun.com/blog/2009/04/16/how-to-implement-swipe-action-in-android/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 02:06:12 +0000</pubDate>
		<dc:creator>Android Shogun</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[gesture]]></category>
		<category><![CDATA[motion]]></category>
		<category><![CDATA[swipe]]></category>
		<category><![CDATA[view flipper]]></category>

		<guid isPermaLink="false">http://www.codeshogun.com/blog/?p=97</guid>
		<description><![CDATA[To implement swipe action in Android, such as the one used in iPhone homescreen unlock, actually Android SDK provides native support for gestures. Swipe is actually called Fling ^_^ You will need to extend SimpleOnGestureListener to implement your own handling on swipe/fling action: class MyGestureDetector extends SimpleOnGestureListener { @Override public boolean onFling(MotionEvent e1, MotionEvent e2, [...]]]></description>
			<content:encoded><![CDATA[<p>To implement swipe action in Android, such as the one used in iPhone homescreen unlock, actually Android SDK provides native support for gestures.  Swipe is actually called Fling ^_^</p>
<p>You will need to extend SimpleOnGestureListener to implement your own handling on swipe/fling action:<br />
<code><br />
class MyGestureDetector extends SimpleOnGestureListener {<br />
        @Override<br />
        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {<br />
        }<br />
</code></p>
<p>To determine if it&#8217;s a valid swipe, you will need to make sure the fling falls into an almost straight path, with at least certain length of touch duration, so it&#8217;s a continuous touch, and with certain velocity of course.</p>
<p>So let&#8217;s define some constants:<br />
<code><br />
private static final int SWIPE_MIN_DISTANCE = 120;<br />
private static final int SWIPE_MAX_OFF_PATH = 250;<br />
private static final int SWIPE_THRESHOLD_VELOCITY = 200;<br />
</code></p>
<p>The max off path is to make sure the fling still falls within a somewhat straight path.</p>
<p>If onFling() method, you can do this:<br />
<code><br />
if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE &#038;&#038; Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {<br />
                	viewFlipper.setInAnimation(slideLeftIn);<br />
                    viewFlipper.setOutAnimation(slideLeftOut);<br />
                	viewFlipper.showNext();<br />
                }  else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE &#038;&#038; Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {<br />
                	viewFlipper.setInAnimation(slideRightIn);<br />
                    viewFlipper.setOutAnimation(slideRightOut);<br />
                	viewFlipper.showPrevious();<br />
                }<br />
</code></p>
<p>The viewFlipper is used to show how fling/swipe make the view animation/transition from one to the other.</p>
<p>At last, you need to make sure in your activity, you catch the gesture event by overriding onTouch() method:<br />
<code><br />
@Override<br />
    public boolean onTouchEvent(MotionEvent event) {<br />
        if (gestureDetector.onTouchEvent(event))<br />
	        return true;<br />
	    else<br />
	    	return false;<br />
    }<br />
</code></p>
<p>Here&#8217;s a screenshot of the view in transition:<br />
<div id="attachment_98" class="wp-caption aligncenter" style="width: 330px"><a href="http://www.codeshogun.com/blog/wp-content/uploads/2009/04/swipe.png"><img src="http://www.codeshogun.com/blog/wp-content/uploads/2009/04/swipe.png" alt="Android Swipe View Flipper in Action" title="swipe" width="320" height="480" class="size-full wp-image-98" /></a><p class="wp-caption-text">Android Swipe View Flipper in Action</p></div></p>
<p>The sample source is attached <a href="http://codeshogun.com/apps/SwipeSample.zip">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codeshogun.com/blog/2009/04/16/how-to-implement-swipe-action-in-android/feed/</wfw:commentRss>
		<slash:comments>55</slash:comments>
		</item>
		<item>
		<title>Porting Android to Beagle Board</title>
		<link>http://www.codeshogun.com/blog/2009/04/15/porting-android-to-beagle-board/</link>
		<comments>http://www.codeshogun.com/blog/2009/04/15/porting-android-to-beagle-board/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 01:24:26 +0000</pubDate>
		<dc:creator>Android Shogun</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[beagle board]]></category>
		<category><![CDATA[porting]]></category>

		<guid isPermaLink="false">http://www.codeshogun.com/blog/?p=87</guid>
		<description><![CDATA[Recently I got a Beagle Board rev C2. It&#8217;s a pretty nice hardware piece: embinux has done a pretty good job of porting android to beagle board, and made it open source, here&#8217;s the link for the guide to port android. Using Ubuntu, first compile the kernel, it&#8217;s pretty easy. You will need to install [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I got a Beagle Board rev C2.  It&#8217;s a pretty nice hardware piece:<br />
<img src="http://beagleboard.org/static/images/2708776217_9f660db58d_o_d.png" alt="Beagle Board Hareware Specs" /></p>
<p>embinux has done a pretty good job of porting android to beagle board, and made it open source, here&#8217;s the link for <a href="http://labs.embinux.org/index.php/Main_Page ">the guide to port android</a>.</p>
<p>Using Ubuntu, first compile the kernel, it&#8217;s pretty easy.  You will need to install git and git-core if you haven&#8217;t used git before.</p>
<p>Then clone the git for android, and then compile.  The source for android comes down to about 2.7GB.  So prepare for a length download.  Also note, you need at least 1GB~1.5GB of RAM to actually compile android.  The JVM during compilation will eat up a lot of the RAM.  If you don&#8217;t have sufficient RAM, the compilation will stuck at a random point during the process and never finish.  I&#8217;ve encountered this problem on 2 different machines and finally switched to a 4GB MacBook 467 to finished the compilation.</p>
<p>Then apply the patches stated in the above porting guide.<br />
Make a bootable SD card following instruction <a href="http://code.google.com/p/beagleboard/wiki/LinuxBootDiskFormat">here</a><br />
Partition 1 is for the uImage and boot loader; partition 2 is for the actual android file system.</p>
<p>Boot up the beagle board w/o inserting the SD card, then at prompt (using minicom/kermit under ubuntu or Tera Term/Hyper Terminal under windows), type in:<br />
mmcinit // init mmc<br />
fatload mmc 0 0&#215;80300000 uImage // load uImage into memory address of 0&#215;80300000<br />
set boot arguments:<br />
setenv bootargs console=ttyS2,115200n8 root=/dev/nfs rw nfsroot=192.168.1.5:/data/target ip=192.168.1.1::255.255.255.0 nolock,rsize=1024,wsize=1024 rootdelay=2<br />
video=omapfb:mode:1280&#215;720@50 init=/init<br />
bootm 0&#215;80300000 // boot up the loaded uImage</p>
<p>If everything goes well, u should see Android booting up ^_^</p>

<a href='http://www.codeshogun.com/blog/2009/04/15/porting-android-to-beagle-board/attachment/1239133992215/' title='1239133992215'><img width="150" height="150" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/04/1239133992215-150x150.jpg" class="attachment-thumbnail" alt="1239133992215" title="1239133992215" /></a>
<a href='http://www.codeshogun.com/blog/2009/04/15/porting-android-to-beagle-board/attachment/1239134012672/' title='1239134012672'><img width="150" height="150" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/04/1239134012672-150x150.jpg" class="attachment-thumbnail" alt="1239134012672" title="1239134012672" /></a>
<a href='http://www.codeshogun.com/blog/2009/04/15/porting-android-to-beagle-board/attachment/1239134077989/' title='1239134077989'><img width="150" height="150" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/04/1239134077989-150x150.jpg" class="attachment-thumbnail" alt="1239134077989" title="1239134077989" /></a>
<a href='http://www.codeshogun.com/blog/2009/04/15/porting-android-to-beagle-board/attachment/1239134122134/' title='1239134122134'><img width="150" height="150" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/04/1239134122134-150x150.jpg" class="attachment-thumbnail" alt="1239134122134" title="1239134122134" /></a>
<a href='http://www.codeshogun.com/blog/2009/04/15/porting-android-to-beagle-board/attachment/1239134132477/' title='1239134132477'><img width="150" height="150" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/04/1239134132477-150x150.jpg" class="attachment-thumbnail" alt="1239134132477" title="1239134132477" /></a>
<a href='http://www.codeshogun.com/blog/2009/04/15/porting-android-to-beagle-board/attachment/1239137835908/' title='1239137835908'><img width="150" height="150" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/04/1239137835908-150x150.jpg" class="attachment-thumbnail" alt="1239137835908" title="1239137835908" /></a>
<a href='http://www.codeshogun.com/blog/2009/04/15/porting-android-to-beagle-board/attachment/1239138977098/' title='1239138977098'><img width="150" height="150" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/04/1239138977098-150x150.jpg" class="attachment-thumbnail" alt="1239138977098" title="1239138977098" /></a>

]]></content:encoded>
			<wfw:commentRss>http://www.codeshogun.com/blog/2009/04/15/porting-android-to-beagle-board/feed/</wfw:commentRss>
		<slash:comments>41</slash:comments>
		</item>
		<item>
		<title>Android: programmatically toggle wifi on/off</title>
		<link>http://www.codeshogun.com/blog/2009/04/15/android-programmatically-toggle-wifi-onoff/</link>
		<comments>http://www.codeshogun.com/blog/2009/04/15/android-programmatically-toggle-wifi-onoff/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 00:35:18 +0000</pubDate>
		<dc:creator>Android Shogun</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://www.codeshogun.com/blog/?p=83</guid>
		<description><![CDATA[To toggle wifi within your application, you will first need the following permissions: android.permission.ACCESS_WIFI_STATE android.permission.CHANGE_WIFI_STATE android.permission.WAKE_LOCK Then in your code, you need to get an WifiMananger: wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE); To toggle wifi on/off: if (wifiManager.isWifiEnabled()) { wifiManager.setWifiEnabled(false); } else { wifiManager.setWifiEnabled(true); } That&#8217;s it ^_^! It&#8217;s really simple! You can download the sample project [...]]]></description>
			<content:encoded><![CDATA[<p>To toggle wifi within your application, you will first need the following permissions:<br />
android.permission.ACCESS_WIFI_STATE<br />
android.permission.CHANGE_WIFI_STATE<br />
android.permission.WAKE_LOCK</p>
<p>Then in your code, you need to get an WifiMananger:<br />
<code><br />
wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);<br />
</code></p>
<p>To toggle wifi on/off:<br />
<code><br />
if (wifiManager.isWifiEnabled()) {<br />
	wifiManager.setWifiEnabled(false);<br />
} else {<br />
	wifiManager.setWifiEnabled(true);<br />
}<br />
</code></p>
<p>That&#8217;s it ^_^!  It&#8217;s really simple!<br />
You can download the sample project <a href="http://codeshogun.com/apps/WifiToggle.zip">here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.codeshogun.com/blog/2009/04/15/android-programmatically-toggle-wifi-onoff/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Install Android Cupcake on Nokia N800</title>
		<link>http://www.codeshogun.com/blog/2009/04/01/install-android-cupcake-on-nokia-n800/</link>
		<comments>http://www.codeshogun.com/blog/2009/04/01/install-android-cupcake-on-nokia-n800/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 16:29:03 +0000</pubDate>
		<dc:creator>Android Shogun</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Cupcake]]></category>
		<category><![CDATA[G1]]></category>
		<category><![CDATA[netgents]]></category>
		<category><![CDATA[NITdroid]]></category>
		<category><![CDATA[Nokia N800]]></category>

		<guid isPermaLink="false">http://www.codeshogun.com/blog/?p=75</guid>
		<description><![CDATA[NITdroid is a kernel and userspace port from scratch of the Android operating system (by Google and the Open Handset Alliance) to the NITs hardware. It is a software alternative to the Maemo platform that ships with the Internet Tablets. This project is an ongoing effort to make Android usable/useful on NIT devices (N770, N800, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://guug.org/nit/nitdroid/" target="_blank"><strong>NITdroid</strong></a> is a kernel and userspace port from scratch of the <a href="http://www.android.com/">Android</a> operating system (by Google and the Open Handset Alliance) to the <a href="http://en.wikipedia.org/wiki/Internet_Tablet">NITs</a> hardware. It is a software alternative to the <a href="http://maemo.org/">Maemo</a> platform that ships with the Internet Tablets.</p>
<p>This project is an ongoing effort to make Android usable/useful on NIT devices (N770, N800, N810, N810WE).</p>
<p>You can follow a pretty good installation shell script here to do everything:<br />
<a href="http://www.internettablettalk.com/forums/showthread.php?t=25736" target="_blank">http://www.internettablettalk.com/forums/showthread.php?t=25736</a></p>
<p>I encountered a few problems and finally got it working, here&#8217;s my comment on the above thread:</p>
<p>I&#8217;ve successfully flashed my N800 with NITdroid. I&#8217;m a newbie in the Linux world so I will offer a few of my findings and mistakes so that others might find useful:<br />
*one problem with open source stuff is lack of documentation or I should say thorough documentation.</p>
<p>In the nitdroid_complete.sh:<br />
&#8220;echo NOTE: This program should NOT be run as root.<br />
echo It has specific parts that need to run as root.&#8221;<br />
What does this mean? confusing huh? What I found out is that&#8230; I&#8217;m logged in as my own username, but the shell script uses sudo (so the user will be root after the sudo command). There&#8217;s this $USER variable that refers to the current user. So essentially I&#8217;m running part of the script on my username/Desktop while other stuff is running on root/Desktop, one way or another. An easy fix is to replace $USER with your current username in the .sh file. Save and run as: sudo ./nitdroid_complete.sh so everything will be in your own home / Desktop folders.</p>
<p>I have this N800 from the early days so the internal SDK card (the one besides the battery) has only 128MB of memory. I thought I should flash/install the OS into the external SD card since the internal one is less than 512MB. So that&#8217;s my mistake #2.<br />
Make sure you use the internal SD w/ at least 512MB of RAM and remove the external SD. My internal SD shows as /dev/sdc1 and the external shows as /dev/sdd1 if plugged in.</p>
<p>First boot of android, showing a few force close exception due to MMS, Alarm, etc.<br />
Then black screen. Took out battery and reboot, much better now. Wifi works like a charm. However, the soft keyboard crashes all the time. So install this one instead:<br />
<a href="http://code.google.com/p/netgents/" target="_blank">http://code.google.com/p/netgents/</a></p>

<a href='http://www.codeshogun.com/blog/2009/04/01/install-android-cupcake-on-nokia-n800/n800a/' title='n800a'><img width="150" height="150" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/04/n800a-150x150.jpg" class="attachment-thumbnail" alt="n800a" title="n800a" /></a>
<a href='http://www.codeshogun.com/blog/2009/04/01/install-android-cupcake-on-nokia-n800/n800b/' title='n800b'><img width="150" height="150" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/04/n800b-150x150.jpg" class="attachment-thumbnail" alt="n800b" title="n800b" /></a>

<p>Now I got some hacking to do on it, besides my G1&#8230; ^_^</p>
<p>Thanks NITdroid team!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codeshogun.com/blog/2009/04/01/install-android-cupcake-on-nokia-n800/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>NPR Podcasts showcased by Google!</title>
		<link>http://www.codeshogun.com/blog/2009/02/28/npr-podcasts-showcased-by-google/</link>
		<comments>http://www.codeshogun.com/blog/2009/02/28/npr-podcasts-showcased-by-google/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 03:28:19 +0000</pubDate>
		<dc:creator>android</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[NPR Podcasts]]></category>
		<category><![CDATA[showcase]]></category>

		<guid isPermaLink="false">http://www.codeshogun.com/blog/?p=58</guid>
		<description><![CDATA[A month ago, I received an email from Google&#8217;s Marketing department: Hello! I&#8217;m Linda Tong, with the Android team at Google, and I am contacting you regarding your application on Android Market. Your application, NPR Podcasts, is currently one of the top apps in its individual category, and we would like to showcase it on [...]]]></description>
			<content:encoded><![CDATA[<p>A month ago, I received an email from Google&#8217;s Marketing department:</p>
<p>Hello! I&#8217;m <span class="nfakPe">Linda</span> Tong, with the Android team at Google, and I am contacting you regarding your application on Android Market. Your application, NPR Podcasts, is currently one of the top apps in its individual category, and we would like to showcase it on the Android Market website at <a href="http://www.android.com/market/free.html#app=nprpodcasts" target="_blank">http://www.android.com/market/free.html#app=nprpodcasts</a>.</p>
<p>And today, it shows:</p>
<p style="text-align: center;"><a href="http://www.codeshogun.com/blog/wp-content/uploads/2009/02/npr_showcase.png"></a><a href="http://www.codeshogun.com/blog/wp-content/uploads/2009/02/npr_showcase.png"><img class="aligncenter size-large wp-image-59" title="npr_showcase" src="http://www.codeshogun.com/blog/wp-content/uploads/2009/02/npr_showcase-1024x920.png" alt="npr_showcase" width="819" height="736" /></a></p>
<p>There are still some bugs and improvements I need to make.  But I really don&#8217;t have time now.  Hmmm&#8230; need to squeeze some time&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codeshogun.com/blog/2009/02/28/npr-podcasts-showcased-by-google/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

