<?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/category/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>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>AdFreeDetector is open sourced</title>
		<link>http://www.codeshogun.com/blog/2010/06/01/adfreedetector-is-open-sourced/</link>
		<comments>http://www.codeshogun.com/blog/2010/06/01/adfreedetector-is-open-sourced/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 01:45:38 +0000</pubDate>
		<dc:creator>Android Shogun</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[AdFree]]></category>
		<category><![CDATA[AdFreeDetector]]></category>
		<category><![CDATA[Market]]></category>

		<guid isPermaLink="false">http://www.codeshogun.com/blog/?p=473</guid>
		<description><![CDATA[AdFree Android is now available on the Android market. It allows anyone with root/super user access on their phone to download a replacement hosts file for their device which redirects ad URLs to itself. This has the effect of saving bandwidth and speeding up browsing.
I agree ads are annoying, especially on a tiny phone screen. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://forum.bigtincan.com/index.php?topic=121.0" target="_blank">AdFree Android</a> is now available on the Android market. It allows anyone with root/super user access on their phone to download a replacement hosts file for their device which redirects ad URLs to itself. This has the effect of saving bandwidth and speeding up browsing.</p>
<p>I agree ads are annoying, especially on a tiny phone screen. But Google&#8217;s<a href="http://market.android.com" target="_blank"> Android Market</a> does not allow developers from many countries to publish paid apps. The only way for those developers to get some income from the Market is to publish apps with ad banners. AdFree is a brutal solution to alter hosts file and leaving a gaping blank block within the app (since the ad banners cannot complete the retrieval).</p>
<p>It&#8217;s all about choices. You can install AdFree to block ads, we can include AdFreeDetector to find it, and do something about it.</p>
<p>AdFreeDetector detects whether the Android phone has <a href="/p/adfree-detector/wiki/AdFree">AdFree</a> package installed, as well as finding out if your ad network IP has been altered (and thus no ads will be shown to the user).</p>
<p>It&#8217;s a simple JAR lib that you can include in your Android apps.</p>
<p>It&#8217;s open sourced under Apache License V2 here:</p>
<p><a href="http://code.google.com/p/adfree-detector/" target="_blank">http://code.google.com/p/adfree-detector/</a></p>
<p>Please feel free to submit a patch and make it better <img src='http://www.codeshogun.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Sample usage:</p>
<p>Make sure your AndroidManifest<a href="/p/adfree-detector/w/edit/AndroidManifest">?</a>.xml has these lines:</p>
<pre>&lt;uses-permission android:name="android.permission.INTERNET"/&gt;
&lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/&gt;</pre>
<p>To check if the Android device has <a href="/p/adfree-detector/wiki/AdFree">AdFree</a> package installed:</p>
<pre>boolean flag = Detector.isAdFreeInstalled(context);</pre>
<p>To check if hosts file has been altered, the default checking is on &#8220;googleads.g.doubleclick.net&#8221;</p>
<pre>boolean isAltered = Detector.isHostAltered(context, null);</pre>
<p>To check specific hostname, such as AdMob<a href="/p/adfree-detector/w/edit/AdMob">?</a>: analytics.admob.com</p>
<pre>isAltered = Detector.isHostAltered(context, "analytics.admob.com");</pre>
<pre>Have fun <img src='http://www.codeshogun.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </pre>
]]></content:encoded>
			<wfw:commentRss>http://www.codeshogun.com/blog/2010/06/01/adfreedetector-is-open-sourced/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[转]Google百度和谷歌的那些事</title>
		<link>http://www.codeshogun.com/blog/2010/01/14/virushuo-on-google-baidu-core-values/</link>
		<comments>http://www.codeshogun.com/blog/2010/01/14/virushuo-on-google-baidu-core-values/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 15:36:29 +0000</pubDate>
		<dc:creator>Android Shogun</dc:creator>
				<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://www.codeshogun.com/blog/?p=470</guid>
		<description><![CDATA[作者：virushuo 发表于 2010-01-14 22:01 最后更新于 2010-01-14 23:01
版权声明：可以任意转载，转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。
http://blog.devep.net/virushuo/2010/01/14/blog56google_blogtinyfool_1_go.html
很久不在这个blog上写和技术无关的东西了，尤其不想写跟业界有关的东西，觉得太空，太忽悠，对别人没价值。但这次，我想写写这5，6年对google和百度的一些观察心得。这里面，这里面存在大量的个人推论，我并不能担保完全正确，请只当作是一次思想的碰撞。
这篇blog主要由我完成，Tinyfool提出了大量修改意见，亦有重要贡献。
1 google，不作恶，信息流动
众所周知，google的目标是&#8221;整合全球信息&#8221;。从另外一个角度看来，这可以看作加快信息流动。信息流动变快是有巨大的经济价值的。加速，始终是 人类经济活动的主线，快即是价值。从蒸汽时代到现在，每一次让信息流动加快的方式都造成了人类巨大的变化，只不过，在蒸汽和机械的时代，加快的是人和货物 的移动，信息时代加快的是信息的流动。
仔细观察，可以发现，很多事情不再需要实体物质的流动。比如，我们不再需要人去送一封信，而只需传递一封电子邮件。我们也不那么需要去订阅一份报纸 送上家门，而只需要浏览门户网站。这是信息时代带来的改变。而Google所做的，是继续加快这种信息流动的速度，让人们需要的东西更快的呈现在眼前。
Google始终坚持Pagerank排名，除了惩罚作弊者，并未干预过任何排名。这是因为，信息的正常流动才会加速，加速信息是Google的价 值，也带来巨大的经济价值。Google绝对不允许把广告插入到搜索结果中。否则搜索结果质量会下降-&#62;用户不满意-&#62;搜索量降低-&#62; 广告点击降低，最终仍然造成收入下降。（后面我们会讲到百度完全不同的做法）
投放过Adword的同学会发现，并非价格越高越好，就算单价非常高，如果匹配度很低，广告点击率就会很低。这样Google仍然会降低这种匹配的出现频率。这样就避免了在A在B的搜索结果中投放&#8221;我是B&#8221;的广告来误导用户。
在这个体系下，有用的东西就是有用的，信息流动会变快，Google会推动这种信息变的更快，没用的东西就是垃圾，会阻碍信息流动，Google就让他变的更慢，直到被放弃。
Don&#8217;t be evil 这句口号，可以理解为东欧出生的布林对人生的追求，也可以理解为Google商业利益的准则。因为，越是不作恶，越是让信息有序，正常的流动，给 Google带来的实际利益也就越大。很多人认为这只是一句作秀的口号，事实上这是商业和个人追求的双重准则。
2 baidu，竞价排名，Google
百度显然看到了搜索的巨大价值，于是挤进了这个市场。我们且不论搜索质量，先看百度的利润来源。
百度同样有右侧广告(类似Adsense)和左侧排名。左侧排名就是所谓的竞价排名，这是百度的&#8221;创新&#8221;。竞价排名是百度收入的主要来源(注1)。
前面说过，竞价排名会干扰用户搜索体验，这大家都深有体验，某些热门关键词，百度前几页的结果都是竞价结果。那么为什么Google不敢这样做，而百度这样做就赚翻了呢？
昨天我在twitter上说过一句话：&#8221;adsense是促使信息有序流动并盈利，竞价排名是破坏信息流动并盈利。也难怪两个公司的人看问题截然不同。&#8221;
很多人有体验，如果你的搜索结果比较靠前，百度会有销售来找你做竞价排名，如果不做的话，很快你的搜索结果就骤减。这种&#8221;巧合&#8221;正好说明了阻碍信息流动也是可以盈利的。换言之，帮助别人照看孩子可以赚钱，威胁别人家孩子来收保护费也可以赚钱。
那么，按照前面的说法，阻碍信息流动的应该会被用户抛弃，在百度这边为什么情况相反呢？
搜索引擎的结果好坏实际很难评价，通常来说，&#8221;好10%&#8221;是完全没有意义的。这在这个市场上反复被证实，仅仅让搜索结果比对方好10%，或差 10%，不会对用户体验影响太大。第二梯队中的搜狗，有道，搜索结果未必真的比百度差多少，但无论如何也无法翻身。同样的竞争也发生在了 Google,Bing,Yahoo之间。换言之，搜索引擎产品是一种先入为主的产品。
在百度起家的年代，Google遭遇了最严重的屏蔽。大家应该都有体验，在大公司内基本无法正常访问Google。我们且不去讨论这种屏蔽的始作俑 者是否是百度(无论百度是否加快了这种行为，最终的结果也必然发生)。那几年，又正好是中国互联网用户增长最快的年代(注2)。大量的新互联网用户直接成 为了百度的用户。
搜索引擎市场上，&#8221;获得第一批用户&#8221;是至关重要的。
比较百度和Google的产品和收购策略，百度通常收购能带来巨大流量的产品，包括hao123，天空软件站等等。而Google收购的通常是具有独特的技术，可产生独特数据的产品，比如Analytics,blogger。
百度的主要企业运营行为是围绕&#8221;获得第一批用户&#8221;的。这些方法包括：工具条，hao123，和软件下载站合作等等。Google被屏蔽看作这种行为的反向手法，无论是否百度造就的，至少这个结果导致了百度获得了更多的第一批用户。
在一个基本没有竞争对手的市场上，百度可以&#8221;挟流量以令诸侯&#8221;，这时候，他破坏一部分信息正常流动也不会造成太严重的后果。因为用户毫无比较。
Google的铁杆用户分为两类。一类是早期用户，这部分用户用过Google，也用过百度。有明确的比较和鉴别能力。他们最终选择了 Google。另外一类是专业用户，他们真的发现百度找不到他们需要的东西。这时候Google对比百度的优势大大增加，到达了用户满意程度的临界点，于 是这部分用户也选择了Google。
在中国互联网上，大部分用户偏重娱乐。这些用户很难分辨Google和百度的区别。甚至他们会觉得百度更好一些，因为百度提供了方便无比的MP3搜索。他们一旦先尝试了百度，那么就会留下，继续成为百度的用户。这就是我们今天看到的样子。
3 谷歌做了什么
2006年，Google决定开设中国办公室，并命名为谷歌。这是Google创始以来，最大胆，也是最小心的尝试。他们从来没有过试图进入一个需要过滤某些内容的国家(如前所述，这是阻碍信息流动，同时也背叛了Google的价值观)。
我们可以从一些细节看到Google的小心翼翼。比如，Google.cn是没有Google Account的。用户不能注册，也就没有密码，因此也就没有泄密之忧。后来有人嘲笑谷歌音乐可以用各种帐号登录，但就是不能用Google Account登录。所有需要登录的Google服务都没有进入中国。包括Gmail,Gtalk,Blogger等等等。
Google从进入中国那一天，就给自己设置好了底限。这种底限，就是李开复所说的&#8221;总部压力&#8221;。
李开复的谷歌，是谷歌，绝不是Google。是一个像百度的外企。
3个字可以来概括谷歌几年的工作：&#8221;倒流量&#8221;。倒流量的工作由一系列的合作(迅雷，sina，天涯，265)完成。这和Google的传统做法完全 不同，Google几乎不去主动谋求流量，产品质量会解决所有问题。但谷歌必须谋求流量，一个急进，喜欢去大学讲座和写书的职业经理人，不会有创始人那样 的耐心慢慢的守着一个市场。这让谷歌越来越像百度。
众所周知，用和对手一样的手段不可能打倒对手。
谷歌推出的最重量级产品，是谷歌音乐。这显然是看到了百度在MP3搜索上获得的好处，意图获得以娱乐为主的用户。当然，鉴于Google全球的品 牌，这些音乐需要有版权。我不评价这个产品的好坏，但这显然和Google总部习惯格格不入。难道Google不知道去做一个音乐下载产品吗？难道 Google不能去做一个下载站吗？总部不去做，只不过是因为这和价值观不符。
同样的价值观不符，还包括和天涯合作的来吧。之前说过，除了独特的数据，Google不会主动创造内容。以Google的胸怀，可以去索引百度贴吧和知道，并放在结果的显著位置，但没必要自己去模仿一个贴吧出来。这种竞争的水平太低了。
甚至，谷歌把中国访问Google.com的流量&#8221;劫持&#8221;到了Google.cn，以便提高自己的&#8221;占有率&#8221;。这件事让很多Google老用户恼火，Zola曾经在某个李开复参与的活动中举手提问，如何才能在中国正常的访问Google.com。
&#8220;倒流量&#8221;之后，谷歌的市场占有率有所上升。这是应该的。不过，新上升的占有率中，有多少是真正的搜索流量就不得而知了。正如百度搜索和贴吧等产品的比值是个秘密一样。
百度跟在Google后面，而谷歌跟在百度后面。
除了倒流量，谷歌也在&#8221;抓收入&#8221;。
投放过Adsense的朋友，大概会记得，Adsense的匹配质量越来越差，医疗方面的内容也越来越多。之前经常有人因为作弊被封掉帐号，后来再也没人说过自己的帐号被封。
我07年的两篇blog提到了这件事：
对不起，这是谷歌，不是google
去掉了blog上的google adsense
这两个特点都不是Google Adsense应有的特性。Google Adsense应该是匹配准，不干扰用户，且提供有用信息。时常读英文内容的人会时常看到Adsense广告的匹配相当精确，时而有点击的必要。
离开了这两个特点，可以把谷歌的广告看作一个大的广告联盟。这和拿了很多小网站的Banner的流量去找广告主谈价本质是一样的。在这种广告销售策略下，不需要匹配，不需要杜绝点击欺诈。最舍得花钱投这种广告的，无非是医疗，美容几类。
这几类是最赚钱的部分。不仅对于谷歌，对于百度，甚至对电视台都是一样的。
关于Adsense的故事，可以看看Tiny这篇文章 :我和Google Adsense那点故事
在这5年中，最常被记者们提起的&#8221;谷歌困境&#8221;就是&#8221;总部压力&#8221;。在我列出的这些部分，都已经触及到了Google价值观，所以Google必然不满。
有兴趣的同学可以对比一下2005~2010这5年，Google做了什么，谷歌做了什么。你会看到截然不同的项目。虽然结果看起来似乎都是：&#8221;市 场份额增加，收入增加&#8221;，Google在这几年，砸实了搜索的基础，扩大了搜索的内容来源和范围，把索引伸向了非数字内容，完成了地图/卫星图 /Earth/街景等一系列重要产品，完成了在移动和3G方面的布局。谷歌做了什么呢？音乐，热榜，还有一个抄袭的输入法。
从谷歌存在的那天，我就写过一篇文章，核心意思是：要么把中国当作研发基地，投资，研发，但不运营，要么就干脆去印度开分公司。不幸言中。
4 孙云丰的观点
从商业价值和经济利益方面考量，都可以看出Google的不作恶，并不是作秀的口号。对于一个靠信息有序化赚钱的公司，必须要不作恶才行。百度正好相反，必须要作恶才行。
Google是幸福的，可以把商业价值建立在一个正确的价值观之上。这确实是可遇不可求的机会。很不幸，百度不行。
孙云丰的言论是无法自圆其说的。一方面，他认为Google不是人权斗士，只是个为了利润的市侩分子。另一方面，他又高举社会公平的大旗，宣称百度的道德感。这两者之间有明确的冲突。如果Google只为了利润，那么百度同样不应该有道德可言。
一方面，他宣称自己观点毫无错误，另一方面，他又删掉了自己的文章。有人说删贴未必是他自己的意愿。那么，作为宣称&#8221;有道德感&#8221;的百度员工，他不应该屈从别人的意见删掉自己认为正确的东西。作为百度高管，不应该允许百度公关去打电话要求别人删贴。
今天有一些百度员工为孙云丰辩护，这些说法同样无法自圆其说。试图证明百度是一家很好的公司，并不能证明孙云丰说的正确。正如纳粹德国有一支很有战 斗力的军队，并不能证明希特勒是正义的。他们甚至自相矛盾，认为孙云丰对竞争对手恶言相对是正确的，其他人骂孙云丰是错。如果孙云丰代表自己骂了一家公 司，该公司的用户有权回击。如果孙云丰代表百度，那他严重的缺乏职业道德。从任何角度，我也得不出百度员工和前员工的那些结论。
当然，我从来也没认为过百度是一家很糟糕的公司，甚至很多次认为百度正在逐渐变成一家有责任感的公司。遗憾的是，从高管到员工，似乎都没和这家公司一样完成这种转变。
不要以为这次事件打击了Google在中国的份额就幸灾乐祸，事实上，中国的互联网市场消失了。这和市场份额无关，和宏观形势有关。这个国家温情脉 脉的互联网时代就此结束，就好比IT精英们看不起的那些传统生意人一样，慢慢被兼并，重组，消亡，剩下的那一点，会被扫倒利润微薄的边边角角。就好比，你 家楼下菜市场那个可怜的菜农，守着那一点点收入，还要担心城管。这是这个行业中每个人的悲剧。
Tinyfool说:百度的矛盾在于，Google的成功是他在全世界资本市场受宠的原因，但他们可能无时无刻不想google死掉会更好。在全世界范围内，这是不可能出现的，现在在中国出现了，他们真的会高兴吗？
Google给我们的最大价值，除了信息流动加速，就是信息永存。当我写完这篇blog，发布在我的blog上，按下&#8221;发布&#8221;之后的几分钟，各种蜘 蛛就会蜂拥而至，把这篇文章复制若干次，存在这世界的各个角落。这文章即永存。无法被某个组织控制或删除，也无法阻止其流动。公关公司不行，某个国家政府 也不行。孙云丰的言论，和百度其他员工的言论，也将和这篇文章一样，被永存，成为历史的一部分。这是我们热爱Google的原因。
现在，我要按下发布按钮了。
]]></description>
			<content:encoded><![CDATA[<p>作者：<a href="http://www.devep.net/">virushuo</a> 发表于 2010-01-14 22:01 最后更新于 2010-01-14 23:01<br />
<a href="http://creativecommons.org/licenses/by-sa/2.5/">版权声明</a>：可以任意转载，转载时请务必以超链接形式标明文章原始出处和作者信息及<a href="http://www.chedong.com/blog/archives/001249.html">本声明</a>。<br />
<a href="http://blog.devep.net/virushuo/2010/01/14/blog56google_blogtinyfool_1_go.html">http://blog.devep.net/virushuo/2010/01/14/blog56google_blogtinyfool_1_go.html</a></p>
<hr />很久不在这个blog上写和技术无关的东西了，尤其不想写跟业界有关的东西，觉得太空，太忽悠，对别人没价值。但这次，我想写写这5，6年对google和百度的一些观察心得。这里面，这里面存在大量的个人推论，我并不能担保完全正确，请只当作是一次思想的碰撞。</p>
<p>这篇blog主要由我完成，<a href="http://tiny4.org/myhome/">Tinyfool</a>提出了大量修改意见，亦有重要贡献。</p>
<p><big><strong>1 google，不作恶，信息流动</strong></big></p>
<p>众所周知，google的目标是&#8221;整合全球信息&#8221;。从另外一个角度看来，这可以看作加快信息流动。信息流动变快是有巨大的经济价值的。加速，始终是 人类经济活动的主线，快即是价值。从蒸汽时代到现在，每一次让信息流动加快的方式都造成了人类巨大的变化，只不过，在蒸汽和机械的时代，加快的是人和货物 的移动，信息时代加快的是信息的流动。</p>
<p>仔细观察，可以发现，很多事情不再需要实体物质的流动。比如，我们不再需要人去送一封信，而只需传递一封电子邮件。我们也不那么需要去订阅一份报纸 送上家门，而只需要浏览门户网站。这是信息时代带来的改变。而Google所做的，是继续加快这种信息流动的速度，让人们需要的东西更快的呈现在眼前。</p>
<p>Google始终坚持Pagerank排名，除了惩罚作弊者，并未干预过任何排名。这是因为，信息的正常流动才会加速，加速信息是Google的价 值，也带来巨大的经济价值。Google绝对不允许把广告插入到搜索结果中。否则搜索结果质量会下降-&gt;用户不满意-&gt;搜索量降低-&gt; 广告点击降低，最终仍然造成收入下降。（后面我们会讲到百度完全不同的做法）</p>
<p>投放过Adword的同学会发现，并非价格越高越好，就算单价非常高，如果匹配度很低，广告点击率就会很低。这样Google仍然会降低这种匹配的出现频率。这样就避免了在A在B的搜索结果中投放&#8221;我是B&#8221;的广告来误导用户。</p>
<p>在这个体系下，有用的东西就是有用的，信息流动会变快，Google会推动这种信息变的更快，没用的东西就是垃圾，会阻碍信息流动，Google就让他变的更慢，直到被放弃。</p>
<p>Don&#8217;t be evil 这句口号，可以理解为东欧出生的布林对人生的追求，也可以理解为Google商业利益的准则。因为，越是不作恶，越是让信息有序，正常的流动，给 Google带来的实际利益也就越大。很多人认为这只是一句作秀的口号，事实上这是商业和个人追求的双重准则。<br />
<big><strong>2 baidu，竞价排名，Google</strong></big></p>
<p>百度显然看到了搜索的巨大价值，于是挤进了这个市场。我们且不论搜索质量，先看百度的利润来源。</p>
<p>百度同样有右侧广告(类似Adsense)和左侧排名。左侧排名就是所谓的竞价排名，这是百度的&#8221;创新&#8221;。竞价排名是百度收入的主要来源(注1)。</p>
<p>前面说过，竞价排名会干扰用户搜索体验，这大家都深有体验，某些热门关键词，百度前几页的结果都是竞价结果。那么为什么Google不敢这样做，而百度这样做就赚翻了呢？</p>
<p>昨天我在twitter上说过一句话：&#8221;<a href="http://twitter.com/virushuo/status/7729290302">adsense是促使信息有序流动并盈利，竞价排名是破坏信息流动并盈利。也难怪两个公司的人看问题截然不同。</a>&#8221;</p>
<p>很多人有体验，如果你的搜索结果比较靠前，百度会有销售来找你做竞价排名，如果不做的话，很快你的搜索结果就骤减。这种&#8221;巧合&#8221;正好说明了阻碍信息流动也是可以盈利的。换言之，帮助别人照看孩子可以赚钱，威胁别人家孩子来收保护费也可以赚钱。</p>
<p>那么，按照前面的说法，阻碍信息流动的应该会被用户抛弃，在百度这边为什么情况相反呢？</p>
<p>搜索引擎的结果好坏实际很难评价，通常来说，&#8221;好10%&#8221;是完全没有意义的。这在这个市场上反复被证实，仅仅让搜索结果比对方好10%，或差 10%，不会对用户体验影响太大。第二梯队中的搜狗，有道，搜索结果未必真的比百度差多少，但无论如何也无法翻身。同样的竞争也发生在了 Google,Bing,Yahoo之间。换言之，搜索引擎产品是一种先入为主的产品。</p>
<p>在百度起家的年代，Google遭遇了最严重的屏蔽。大家应该都有体验，在大公司内基本无法正常访问Google。我们且不去讨论这种屏蔽的始作俑 者是否是百度(无论百度是否加快了这种行为，最终的结果也必然发生)。那几年，又正好是中国互联网用户增长最快的年代(注2)。大量的新互联网用户直接成 为了百度的用户。</p>
<p>搜索引擎市场上，&#8221;获得第一批用户&#8221;是至关重要的。</p>
<p>比较百度和Google的产品和收购策略，百度通常收购能带来巨大流量的产品，包括hao123，天空软件站等等。而Google收购的通常是具有独特的技术，可产生独特数据的产品，比如Analytics,blogger。</p>
<p>百度的主要企业运营行为是围绕&#8221;获得第一批用户&#8221;的。这些方法包括：工具条，hao123，和软件下载站合作等等。Google被屏蔽看作这种行为的反向手法，无论是否百度造就的，至少这个结果导致了百度获得了更多的第一批用户。</p>
<p>在一个基本没有竞争对手的市场上，百度可以&#8221;挟流量以令诸侯&#8221;，这时候，他破坏一部分信息正常流动也不会造成太严重的后果。因为用户毫无比较。</p>
<p>Google的铁杆用户分为两类。一类是早期用户，这部分用户用过Google，也用过百度。有明确的比较和鉴别能力。他们最终选择了 Google。另外一类是专业用户，他们真的发现百度找不到他们需要的东西。这时候Google对比百度的优势大大增加，到达了用户满意程度的临界点，于 是这部分用户也选择了Google。</p>
<p>在中国互联网上，大部分用户偏重娱乐。这些用户很难分辨Google和百度的区别。甚至他们会觉得百度更好一些，因为百度提供了方便无比的MP3搜索。他们一旦先尝试了百度，那么就会留下，继续成为百度的用户。这就是我们今天看到的样子。<br />
<big><strong>3 谷歌做了什么</strong></big></p>
<p>2006年，Google决定开设中国办公室，并命名为谷歌。这是Google创始以来，最大胆，也是最小心的尝试。他们从来没有过试图进入一个需要过滤某些内容的国家(如前所述，这是阻碍信息流动，同时也背叛了Google的价值观)。</p>
<p>我们可以从一些细节看到Google的小心翼翼。比如，Google.cn是没有Google Account的。用户不能注册，也就没有密码，因此也就没有泄密之忧。后来有人嘲笑谷歌音乐可以用各种帐号登录，但就是不能用Google Account登录。所有需要登录的Google服务都没有进入中国。包括Gmail,Gtalk,Blogger等等等。</p>
<p>Google从进入中国那一天，就给自己设置好了底限。这种底限，就是李开复所说的&#8221;总部压力&#8221;。</p>
<p>李开复的谷歌，是谷歌，绝不是Google。是一个像百度的外企。</p>
<p>3个字可以来概括谷歌几年的工作：&#8221;倒流量&#8221;。倒流量的工作由一系列的合作(迅雷，sina，天涯，265)完成。这和Google的传统做法完全 不同，Google几乎不去主动谋求流量，产品质量会解决所有问题。但谷歌必须谋求流量，一个急进，喜欢去大学讲座和写书的职业经理人，不会有创始人那样 的耐心慢慢的守着一个市场。这让谷歌越来越像百度。</p>
<p>众所周知，用和对手一样的手段不可能打倒对手。</p>
<p>谷歌推出的最重量级产品，是谷歌音乐。这显然是看到了百度在MP3搜索上获得的好处，意图获得以娱乐为主的用户。当然，鉴于Google全球的品 牌，这些音乐需要有版权。我不评价这个产品的好坏，但这显然和Google总部习惯格格不入。难道Google不知道去做一个音乐下载产品吗？难道 Google不能去做一个下载站吗？总部不去做，只不过是因为这和价值观不符。</p>
<p>同样的价值观不符，还包括和天涯合作的来吧。之前说过，除了独特的数据，Google不会主动创造内容。以Google的胸怀，可以去索引百度贴吧和知道，并放在结果的显著位置，但没必要自己去模仿一个贴吧出来。这种竞争的水平太低了。</p>
<p>甚至，谷歌把中国访问Google.com的流量&#8221;劫持&#8221;到了Google.cn，以便提高自己的&#8221;占有率&#8221;。这件事让很多Google老用户恼火，Zola曾经在某个李开复参与的活动中举手提问，如何才能在中国正常的访问Google.com。</p>
<p>&#8220;倒流量&#8221;之后，谷歌的市场占有率有所上升。这是应该的。不过，新上升的占有率中，有多少是真正的搜索流量就不得而知了。正如百度搜索和贴吧等产品的比值是个秘密一样。</p>
<p>百度跟在Google后面，而谷歌跟在百度后面。</p>
<p>除了倒流量，谷歌也在&#8221;抓收入&#8221;。</p>
<p>投放过Adsense的朋友，大概会记得，Adsense的匹配质量越来越差，医疗方面的内容也越来越多。之前经常有人因为作弊被封掉帐号，后来再也没人说过自己的帐号被封。</p>
<p>我07年的两篇blog提到了这件事：<br />
<a href="http://blog.devep.net/virushuo/2007/04/05/zhaigao-or-guge-adsense.html">对不起，这是谷歌，不是google</a><br />
<a href="http://blog.devep.net/virushuo/2007/04/19/remove_google_adsense.html">去掉了blog上的google adsense</a></p>
<p>这两个特点都不是Google Adsense应有的特性。Google Adsense应该是匹配准，不干扰用户，且提供有用信息。时常读英文内容的人会时常看到Adsense广告的匹配相当精确，时而有点击的必要。</p>
<p>离开了这两个特点，可以把谷歌的广告看作一个大的广告联盟。这和拿了很多小网站的Banner的流量去找广告主谈价本质是一样的。在这种广告销售策略下，不需要匹配，不需要杜绝点击欺诈。最舍得花钱投这种广告的，无非是医疗，美容几类。</p>
<p>这几类是最赚钱的部分。不仅对于谷歌，对于百度，甚至对电视台都是一样的。</p>
<p>关于Adsense的故事，可以看看Tiny这篇文章 :<a href="http://tiny4.org/tinygoogle/2007/08/google-adsense.html">我和Google Adsense那点故事</a></p>
<p>在这5年中，最常被记者们提起的&#8221;谷歌困境&#8221;就是&#8221;总部压力&#8221;。在我列出的这些部分，都已经触及到了Google价值观，所以Google必然不满。</p>
<p>有兴趣的同学可以对比一下2005~2010这5年，Google做了什么，谷歌做了什么。你会看到截然不同的项目。虽然结果看起来似乎都是：&#8221;市 场份额增加，收入增加&#8221;，Google在这几年，砸实了搜索的基础，扩大了搜索的内容来源和范围，把索引伸向了非数字内容，完成了地图/卫星图 /Earth/街景等一系列重要产品，完成了在移动和3G方面的布局。谷歌做了什么呢？音乐，热榜，还有一个抄袭的输入法。</p>
<p>从谷歌存在的那天，我就写过一篇文章，核心意思是：要么把中国当作研发基地，投资，研发，但不运营，要么就干脆去印度开分公司。不幸言中。</p>
<p><big><strong>4 孙云丰的观点</strong></big></p>
<p>从商业价值和经济利益方面考量，都可以看出Google的不作恶，并不是作秀的口号。对于一个靠信息有序化赚钱的公司，必须要不作恶才行。百度正好相反，必须要作恶才行。</p>
<p>Google是幸福的，可以把商业价值建立在一个正确的价值观之上。这确实是可遇不可求的机会。很不幸，百度不行。</p>
<p><a href="http://tiny4.org/jsjy/sxl/2010/01/google.html">孙云丰的言论</a>是无法自圆其说的。一方面，他认为Google不是人权斗士，只是个为了利润的市侩分子。另一方面，他又高举社会公平的大旗，宣称百度的道德感。这两者之间有明确的冲突。如果Google只为了利润，那么百度同样不应该有道德可言。</p>
<p>一方面，他宣称自己观点毫无错误，另一方面，他又删掉了自己的文章。有人说删贴未必是他自己的意愿。那么，作为宣称&#8221;有道德感&#8221;的百度员工，他不应该屈从别人的意见删掉自己认为正确的东西。作为百度高管，不应该允许百度公关去打电话要求别人删贴。</p>
<p>今天有一些百度员工为孙云丰辩护，这些说法同样无法自圆其说。试图证明百度是一家很好的公司，并不能证明孙云丰说的正确。正如纳粹德国有一支很有战 斗力的军队，并不能证明希特勒是正义的。他们甚至自相矛盾，认为孙云丰对竞争对手恶言相对是正确的，其他人骂孙云丰是错。如果孙云丰代表自己骂了一家公 司，该公司的用户有权回击。如果孙云丰代表百度，那他严重的缺乏职业道德。从任何角度，我也得不出百度员工和前员工的那些结论。</p>
<p>当然，我从来也没认为过百度是一家很糟糕的公司，甚至很多次认为百度正在逐渐变成一家有责任感的公司。遗憾的是，从高管到员工，似乎都没和这家公司一样完成这种转变。</p>
<p>不要以为这次事件打击了Google在中国的份额就幸灾乐祸，事实上，中国的互联网市场消失了。这和市场份额无关，和宏观形势有关。这个国家温情脉 脉的互联网时代就此结束，就好比IT精英们看不起的那些传统生意人一样，慢慢被兼并，重组，消亡，剩下的那一点，会被扫倒利润微薄的边边角角。就好比，你 家楼下菜市场那个可怜的菜农，守着那一点点收入，还要担心城管。这是这个行业中每个人的悲剧。</p>
<p>Tinyfool说:百度的矛盾在于，Google的成功是他在全世界资本市场受宠的原因，但他们可能无时无刻不想google死掉会更好。在全世界范围内，这是不可能出现的，现在在中国出现了，他们真的会高兴吗？</p>
<p>Google给我们的最大价值，除了信息流动加速，就是信息永存。当我写完这篇blog，发布在我的blog上，按下&#8221;发布&#8221;之后的几分钟，各种蜘 蛛就会蜂拥而至，把这篇文章复制若干次，存在这世界的各个角落。这文章即永存。无法被某个组织控制或删除，也无法阻止其流动。公关公司不行，某个国家政府 也不行。孙云丰的言论，和百度其他员工的言论，也将和这篇文章一样，被永存，成为历史的一部分。这是我们热爱Google的原因。</p>
<p>现在，我要按下发布按钮了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codeshogun.com/blog/2010/01/14/virushuo-on-google-baidu-core-values/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[转]百度首席产品设计师孙云丰评论谷歌退出中国事件</title>
		<link>http://www.codeshogun.com/blog/2010/01/13/baidu-sunyunfeng-on-google/</link>
		<comments>http://www.codeshogun.com/blog/2010/01/13/baidu-sunyunfeng-on-google/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 15:38:02 +0000</pubDate>
		<dc:creator>Android Shogun</dc:creator>
				<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://www.codeshogun.com/blog/?p=468</guid>
		<description><![CDATA[作者：virushuo 发表于 2010-01-13 20:01 最后更新于 2010-01-13 21:01
http://blog.devep.net/virushuo/2010/01/13/post_69.html
我的看法：

1 百度忘了自己是怎么被CCTV菊爆的了？
2 百度忘了自己的股价和google永远是波动一致的了？
原帖他自己删了，CSDN转载的 http://news.csdn.net/a/20100113/216459.html 被百度的人要求删掉，所以我就在这里再多备份一次。

声明：本文由 @dupola 备份。现原文已被删除。原页面截图在此 http://tweetphoto.com/8630311 ，感谢霍炬 @virushuo 帮忙。
update2010年1月13日20:22:51 又有截图：http://www.flickr.com/photos/46280976@N08/4271559306/sizes/o/ 感谢 @Bamind 提供。
关于谷歌退出中国_在地铁站 &#8211; http://hi.baidu.com/whomi/blog/item/2b1001e9be877834b80e2df6.html
作者：百度首席产品设计师孙云丰
google宣称要退出中国，所证明的，恰恰不是市面上的那些g粉所宣称的那样，google是个&#8221;人权斗士&#8221;，而刚好反了过来，正好证明google是个市侩分子。
google的首席法律顾问的调调让我感到恶心。因经济利益退出，就直白白的说好了，把自己涂脂抹粉一番，还煞有介事的提到google被中国人攻 击，中国异议分子的Gmail信箱被攻击，把这些事情作为退出中国的铺垫，这种论调是侮辱中国普通老百姓的智商，但还真有可能迎合那帮目空一切，但从未到 过中国、对中国没有丝毫了解，却又喜欢对中国说三道四的西方人的假想。
只提一个假设，如果谷歌占据了中国80%的搜索市场份额，google的高管，还会这么高调的宣称要do no evil，从中国退出吗？
整个事情给我的唯一感受，就是恶心。
科普一点：
信息不对称是造成社会不平等最主要的原因之一。而对普通百姓最为关键的信息，并非中南海秘闻，而是最为常规的经济、文化、科技等领域信息。尽可能的为普通老百姓对这些领域的信息提供便捷，并消弭信息占有的不对称，这是搜索引擎存在的最大社会政治意义之一。
从这个角度而言，尽可能的设法为百姓提供便捷的信息获取技术服务，提供切实的价值，而不是挂羊头卖狗肉的宣称自己do no evil和政府撕破脸皮搞壮烈，才是一种真切的负责态度。找台阶下可以，但不要拿一个高管制国家的民众感情来做台阶，这是极其不道德的。
政治环境短期内是无法改变的。在中国，每个企业或者个人，都必须戴着镣铐跳舞。其实在别国一样，只是程度之别。但这是现实。在有限的条件下，尽可能的提供自己勉力而为的一份子，才是一个真切的做企业、做人态度。
在我博客上乱喷的兄弟，甚至还有搞笑的喷我five毛党的，都回家好好的念点书，再回来喷吧。希望看得见点水平的，而不是除了咒死爹死娘就不知道说啥的。 80年代的愤青，可不是现在这副衰样儿。
&#8212;&#8212;&#8212;&#8212;&#8211;
以上是作为一个曾经的忠实google用户而说的，和百度无关。市面上沾沾自喜于了解一点google的产品技术细节将google奉为道德楷模而自封G 粉的兄弟，请勿跟帖瞎喷，你们根本不懂什么叫搜索引擎，什么叫自由人权。
&#8212;&#8212;&#8212;&#8212;&#8211;
]]></description>
			<content:encoded><![CDATA[<p>作者：<a href="http://www.devep.net/">virushuo</a> 发表于 2010-01-13 20:01 最后更新于 2010-01-13 21:01<br />
<a href="http://blog.devep.net/virushuo/2010/01/13/post_69.html">http://blog.devep.net/virushuo/2010/01/13/post_69.html</a></p>
<p>我的看法：</p>
<p><span style="color: red;"><br />
1 百度忘了自己是怎么被CCTV菊爆的了？<br />
2 百度忘了自己的股价和google永远是波动一致的了？</span></p>
<p><span style="color: red;">原帖他自己删了，CSDN转载的 http://news.csdn.net/a/20100113/216459.html 被百度的人要求删掉，所以我就在这里再多备份一次。<br />
</span><br />
声明：本文由 @dupola 备份。现原文已被删除。原页面截图在此 http://tweetphoto.com/8630311 ，感谢霍炬 @virushuo 帮忙。<br />
update2010年1月13日20:22:51 又有截图：http://www.flickr.com/photos/46280976@N08/4271559306/sizes/o/ 感谢 @Bamind 提供。</p>
<p>关于谷歌退出中国_在地铁站 &#8211; http://hi.baidu.com/whomi/blog/item/2b1001e9be877834b80e2df6.html<br />
作者：百度首席产品设计师孙云丰</p>
<p>google宣称要退出中国，所证明的，恰恰不是市面上的那些g粉所宣称的那样，google是个&#8221;人权斗士&#8221;，而刚好反了过来，正好证明google是个市侩分子。</p>
<p>google的首席法律顾问的调调让我感到恶心。因经济利益退出，就直白白的说好了，把自己涂脂抹粉一番，还煞有介事的提到google被中国人攻 击，中国异议分子的Gmail信箱被攻击，把这些事情作为退出中国的铺垫，这种论调是侮辱中国普通老百姓的智商，但还真有可能迎合那帮目空一切，但从未到 过中国、对中国没有丝毫了解，却又喜欢对中国说三道四的西方人的假想。</p>
<p>只提一个假设，如果谷歌占据了中国80%的搜索市场份额，google的高管，还会这么高调的宣称要do no evil，从中国退出吗？</p>
<p>整个事情给我的唯一感受，就是恶心。</p>
<p>科普一点：</p>
<p>信息不对称是造成社会不平等最主要的原因之一。而对普通百姓最为关键的信息，并非中南海秘闻，而是最为常规的经济、文化、科技等领域信息。尽可能的为普通老百姓对这些领域的信息提供便捷，并消弭信息占有的不对称，这是搜索引擎存在的最大社会政治意义之一。</p>
<p>从这个角度而言，尽可能的设法为百姓提供便捷的信息获取技术服务，提供切实的价值，而不是挂羊头卖狗肉的宣称自己do no evil和政府撕破脸皮搞壮烈，才是一种真切的负责态度。找台阶下可以，但不要拿一个高管制国家的民众感情来做台阶，这是极其不道德的。</p>
<p>政治环境短期内是无法改变的。在中国，每个企业或者个人，都必须戴着镣铐跳舞。其实在别国一样，只是程度之别。但这是现实。在有限的条件下，尽可能的提供自己勉力而为的一份子，才是一个真切的做企业、做人态度。</p>
<p>在我博客上乱喷的兄弟，甚至还有搞笑的喷我five毛党的，都回家好好的念点书，再回来喷吧。希望看得见点水平的，而不是除了咒死爹死娘就不知道说啥的。 80年代的愤青，可不是现在这副衰样儿。</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>以上是作为一个曾经的忠实google用户而说的，和百度无关。市面上沾沾自喜于了解一点google的产品技术细节将google奉为道德楷模而自封G 粉的兄弟，请勿跟帖瞎喷，你们根本不懂什么叫搜索引擎，什么叫自由人权。</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codeshogun.com/blog/2010/01/13/baidu-sunyunfeng-on-google/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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 [...]]]></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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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 [...]]]></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 [...]]]></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="" 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="" 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="" 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="" 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>Some nice feedback/emails from NPR Podcasts users</title>
		<link>http://www.codeshogun.com/blog/2009/05/16/some-nice-feedbackemails-from-npr-podcasts-users/</link>
		<comments>http://www.codeshogun.com/blog/2009/05/16/some-nice-feedbackemails-from-npr-podcasts-users/#comments</comments>
		<pubDate>Sat, 16 May 2009 19:29:54 +0000</pubDate>
		<dc:creator>Android Shogun</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[feedback]]></category>
		<category><![CDATA[NPR Podcasts]]></category>
		<category><![CDATA[user]]></category>

		<guid isPermaLink="false">http://www.codeshogun.com/blog/?p=135</guid>
		<description><![CDATA[I&#8217;ve got hundreds of emails regarding my Android NPR Podcasts app.
Most of them are saying great things about it.  Many also send in comments and suggestions, and of course, bug reports.
As of now, the Android SDK has been updated to support 1.5 (Cupcake) version.  However, I don&#8217;t have a phone that&#8217;s running 1.5 [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve got hundreds of emails regarding my Android NPR Podcasts app.<br />
Most of them are saying great things about it.  Many also send in comments and suggestions, and of course, bug reports.</p>
<p>As of now, the Android SDK has been updated to support 1.5 (Cupcake) version.  However, I don&#8217;t have a phone that&#8217;s running 1.5 yet.  So there will be some strange bugs which I cannot really debug until my G1 is provisioned with Cupcake.  Rumor has it that T-mobile is rolling out the OTA update starting this week.  So let&#8217;s hope it comes real soon.</p>
<p>Here are a few email excerpts from the app users:</p>
<p>&#8220;This a very cool app and I miss it terribly. Tomorrow is another round of car talk and wait, wait, don&#8217;t tell me. My kids and I listen to it together at bedtime saturday nights off of my g1. This was only possible because of your app.<br />
Thank you for developing it.<br />
A family and fans&#8221;</p>
<p>Wow great!  I don&#8217;t even know this app can be part of your family quality time <img src='http://www.codeshogun.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   It&#8217;s so nice to know!</p>
<p>&#8220;Thank you for a great app, I just love NPR!&#8221;</p>
<p>Yes, me too <img src='http://www.codeshogun.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>&#8220;First, let me just say that I absolutely LOVE this app!  My comp is broken right now so this is the only way I have to get any podcasts.  Really glad you made it.&#8221;</p>
<p>No problem!  G1 is a mini-computer!  ^_^</p>
<p>&#8220;Inside of the application you already have a setting menu, it shows you thought ahead and acknowledge the grandiouse task the project would be.  You showed great insight into a future of a tremendous app by already creating what you had! &#8221;</p>
<p>Hehe, that&#8217;s flattering, but I will take it <img src='http://www.codeshogun.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>&#8220;Hi, I love the NPR android ap &#8211; thank you.&#8221;</p>
<p>Same here!</p>
<p>&#8220;Thanks for developing this program- I love being able to access the podvasts via my phone!&#8221;</p>
<p>That&#8217;s the power of Android!!!</p>
<p>There are many many more appreciation emails and very constructive comments and suggestions!  I thank you all for the support and I will keep making the app better little by little.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codeshogun.com/blog/2009/05/16/some-nice-feedbackemails-from-npr-podcasts-users/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NPR Podcasts updated with native Music Player</title>
		<link>http://www.codeshogun.com/blog/2009/05/05/npr-podcasts-updated-with-native-music-player/</link>
		<comments>http://www.codeshogun.com/blog/2009/05/05/npr-podcasts-updated-with-native-music-player/#comments</comments>
		<pubDate>Wed, 06 May 2009 03:11:28 +0000</pubDate>
		<dc:creator>Android Shogun</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Market]]></category>
		<category><![CDATA[Music Player]]></category>
		<category><![CDATA[NPR]]></category>

		<guid isPermaLink="false">http://www.codeshogun.com/blog/?p=127</guid>
		<description><![CDATA[As I slowly figuring out the ins and outs of Android, I&#8217;ll getting more updates out on my apps on the Market.  Tonight I updated the NPR Podcasts app w/ built-in Music Player:

It&#8217;s actually pretty easy, you pass the Uri of the MP3 file to your intent, and fire it off.  The system [...]]]></description>
			<content:encoded><![CDATA[<p>As I slowly figuring out the ins and outs of Android, I&#8217;ll getting more updates out on my apps on the Market.  Tonight I updated the NPR Podcasts app w/ built-in Music Player:</p>
<p><a href="http://www.codeshogun.com/blog/wp-content/uploads/2009/05/010.png"><img src="http://www.codeshogun.com/blog/wp-content/uploads/2009/05/010.png" alt="010" title="010" width="480" height="320" class="aligncenter size-full wp-image-128" /></a></p>
<p>It&#8217;s actually pretty easy, you pass the Uri of the MP3 file to your intent, and fire it off.  The system will broadcast that intent and a suitable Music Player will be chosen, or the user will be prompted to choose one if there are multiple available players registered to play the &#8220;audio/*&#8221; mine type.</p>
<p>Here&#8217;s the little codes:<br />
<code><br />
Intent intent = new Intent();<br />
                    intent.setAction(android.content.Intent.ACTION_VIEW);<br />
                    intent.setDataAndType(Uri.fromFile(file), "audio/*");<br />
                    context.startActivity(intent);<br />
</code></p>
<p>The app is updated on the Market now.  Download and enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codeshogun.com/blog/2009/05/05/npr-podcasts-updated-with-native-music-player/feed/</wfw:commentRss>
		<slash:comments>0</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 motion, one [...]]]></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>8</slash:comments>
		</item>
	</channel>
</rss>
