<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
   <channel>
      <title>阮一峰的网络日志</title>
      <link>http://www.ruanyifeng.com/blog/</link>
      <description>Ruan YiFeng&apos;s Blog</description>
      <language>ja</language>
      <copyright>Copyright 2010</copyright>
      <lastBuildDate>Tue, 09 Mar 2010 21:33:39 +0800</lastBuildDate>
      <generator>http://www.sixapart.com/movabletype/?v=3.21</generator>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs> 

            <item>
         <title>搭建了一个图片库</title>
         <description><![CDATA[<p>经常有读者抱怨，看不到网志中的图片。</p>]]><![CDATA[<p>确实如此。正常情况下，过去文章中的图片，超过60%都无法在国内正常显示。</p>

<p><img src="http://image.beekka.com/blog/miscellaneous/bg2010030904.png" /></p>

<p>但是，事实上，这个网志的所有图片链接都是有效的，没有一个链接是坏的。无法显示只是因为被屏蔽了，只要你不在中国大陆，所有图片都能看到。</p>

<p>最早的时候，我使用<a href="http://www.flickr.com/" target="_blank">Flickr</a>存放图片。但是2007年，Flickr被屏蔽了。</p>

<p><img src="http://image.beekka.com/blog/miscellaneous/bg2010030901.png" /></p>

<p>后来，我改用<a href="http://picasaweb.google.com/" target="_blank">Picasa</a>存放图片。2009年，Picasa也被屏蔽了。</p>

<p><img src="http://image.beekka.com/blog/miscellaneous/bg2010030902.png" /></p>

<p>我又改用<a href="http://photobucket.com/" target="_blank">Photobucket</a>。2010年1月，Photobucket也被屏蔽了。</p>

<p><img src="http://image.beekka.com/blog/miscellaneous/bg2010030903.png" /></p>

<p>怎么办？再换一个地方流浪，还是使用国内的图片储存服务？</p>

<p>我觉得，任何可以免费存放图片的国外服务商，都有可能被屏蔽；而国内的图片服务商，我真的信不过。比如，国内某网站的使用协议写明，他们可以随时无条件删除你的图片，并且不允许上传任何有性意味的图片。</p>

<p>所以，我最后决定，自己搭一个图片库，把图片都存在自己的主机上。</p>

<p><img src="http://image.beekka.com/blog/miscellaneous/bg2010030905.jpg" /></p>

<p>我的思路很简单，先搭建一个开源相册程序，然后修改成Flickr那样就行了。</p>

<p>一开始，我装的是<a href="http://movabletype.org/" target="_blank">Movable Type</a>。毕竟这是每天用的程序，我最熟悉了。但是，我很快发现，它不可能改成相册。MT的长处是生成静态网页，而相册需要的是动态显示，两者根本无法融合。另一方面，MT的开发现在很不景气，<a href="http://www.movabletype.org/cgi-bin/mt/mt-search.cgi?IncludeBlogs=32&search=gallery&x=0&y=0" target="_blank">第三方插件</a>极少，甚至连<a href="http://www.eatdrinksleepmovabletype.com/plugins/better_file_uploader/" target="_blank">ajax上传按钮</a>都没有，必须花20美元购买商业插件，否则文件只能一个个上传。我只好放弃它了。</p>

<p>改用<a href="http://wordpress.org/" target="_blank">WordPress</a>以后，我又遇到了另一个问题，那就是插件太多了。WP的<a href="http://wordpress.org/extend/plugins/tags/gallery" target="_blank">相册插件</a>足有几十种之多，我不知道该如何选择。有一个<a href="http://wordpress.org/extend/plugins/nextgen-gallery/" target="_blank">NextGEN Gallery</a>插件的下载人数最多，我就选了它。结果发现，这个插件实在是太优秀了，专业图片网站的功能，它几乎都能实现，而且做得非常易用漂亮。如果你也想搭一个自己的相册，我强烈推荐这个插件。</p>

<p>最后，我搭建完成的图片库网址是<strong><a href="http://image.beekka.com" target="_blank">http://image.beekka.com</a></strong>，欢迎查看效果。这篇文章里的图片，都是来自那里。因为相册只供我个人使用，所以做得比较粗糙，但是我想要的功能都做到了。</p>

<p><a href="http://alexrabe.de/wordpress-plugins/nextgen-gallery/" target="_blank">NextGEN Gallery</a>的详细使用说明，请参见<a href="http://dpotter.net/Technical/2008/03/nextgen-gallery-review-introduction/" target="_blank">David Potter</a>的长篇介绍。我修改的地方，其实只有2个文件。</p>

<p>　　1. 在“Options/Gallery”中的“Show ImageBrowser”选项打勾。</p>

<p>　　2. 修改插件中的gallery.php文件。</p>

<p>　　3. 修改插件中的imagebrowser.php文件。</p>

<p>所有的图片信息，基本上都包含在$image这个对象变量中。使用&lt;?php var_dump($image) ?&gt;查看变量，使用&lt;?php echo $image->filename ?&gt;输出变量值（比如例子中的图片文件名）。</p>

<p>当然，这个图片库也不一定安全，照样有可能被屏蔽。但是，至少一切都在我的控制之中。万一被屏蔽了，只要对图片储存目录打包压缩，然后换一台主机解开压缩包就行了。</p>

<p>我感到，这个图片存储的解决方案有推广意义，值得其他网志作者考虑。</p>

<p>（完）</p>]]></description>
         <link>http://www.ruanyifeng.com/blog/2010/03/built_a_image_server.html</link>
         <guid>http://www.ruanyifeng.com/blog/2010/03/built_a_image_server.html</guid>
         <category>My_Website</category>
         <pubDate>Tue, 09 Mar 2010 21:33:39 +0800</pubDate>
      </item>
            <item>
         <title>我所知道的深圳八卦岭小印刷厂</title>
         <description><![CDATA[<p>上一篇网志<a href="http://www.ruanyifeng.com/blog/2010/02/investment_casting.html" target="_blank">《“熔模铸造”图解》</a>发出后，读者emi有一段很长的留言。</p>]]><![CDATA[<p>那是触目惊心的文字，为了让更多的人看到，我决定以单独一篇文章的形式，重贴一次。</p>

<p>===========================</p>

<p><strong>我所知道的深圳八卦岭小印刷厂</strong></p>

<p>作者：emi</p>

<p><img src="http://image.beekka.com/blog/miscellaneous/bg201030601.jpg" /></p>

<p>去年，我参观了深圳市福田区八卦岭的一些印刷工厂。</p>

<p>那里就是城市里的工业区。印刷厂就设在许多有十几二十年楼龄的老房子里，租金通常是25-30元/平米。</p>

<p>那些印刷厂，通常属于私人或私人合伙所有，一两台印刷机的生产规模，面积100平米至500平米，大一些的为800平米至1000平米。为了节省成本，几乎没什么工作经验的工人也能上岗，并且上岗后基本没有岗前培训，直接干活。</p>

<p>上周，我又去那里，正好是春节后新开工的时间。在楼道遇到一个小伙子，也就十八九岁的样子，举着一支手，其中一根手指被切掉了一截，血一路滴滴嗒嗒往外滴。听说他是新招的工人，被切纸机斩断了手指。切纸机是一种靠重力切断的设备，几百张纸一次切断，何况血肉之躯呢。我想起，在那些印刷厂的生产间里，见过不止一个手指秃秃的工人。</p>

<p>在这些厂里，不仅新招的工人，就连老工人也是没有劳动合同的。所以，发生生产事故后，厂里最多付点医药费，止血包扎一下而已。而这个新招的工人，他除了恳求厂方不要因此将他除名之外，是不敢提任何要求的，因为否则他连一日三餐和住的地方也没有了。（这些工厂的工资很低，但是包吃包住。吃是一日两餐，就在车间里随便找个地方吃。工作时间是早八点到晚八点，中间休息一两小时吃饭上厕所等。住的地方我没去过，但据说是十几人一间的大通铺。）</p>

<p>据了解，这些工人都有一笔押金在厂方手里，这是他们进厂之前，必须要向厂方交纳的，厂里就是靠这笔钱控制工人流失的。为了不损失这笔钱，工人只好听任厂方摆布，让加班就加班、说推迟发工资就推迟发工资、不可以自已提出辞工，还要小心翼翼不能被厂方辞退……</p>

<p>自已提出辞职，厂方就会扣掉那笔进厂押金。若因自已原因被厂里辞退，也是拿不回那笔押金的。因此，对于每月工资千元左右的工人而言，选择权是非常有限的。说到这里，上面那个被切到手指的工人，他的简单包扎医药费也有可能要从自已的进厂押金当中扣除的。</p>

<p>另外，为了节省成本和招揽更多业务，很多印刷厂把办工区的卡座出租给那些跑业务的个人。每个位子每月800-1000元租金，电话网络费用自理（我想，这一招应该是跟出租汽车公司学来的吧）。这样做的好处，一是印刷厂不用养业务员，二是还会有一笔租金收入。</p>

<p>那些业务员由于自负赢亏，所以什么都敢答应，成交价越高越好。同时，由于他们坐在印刷厂里办公，也会给客户造成一种假象，以为自已找到了厂家，必然便宜又放心，以为不会吃亏挨宰。其实，印刷业报价涉及的因素和计算非常繁复，普通人根本没办法清楚分辨，只能模模糊糊被迫同意对方的报价。那些对业务较熟悉，较能说服客户的业务员，收入状况非常不错。</p>

<p>那些业务员通常会虚报一倍甚至两三倍报价，所以只要一个月接到一个单子，几百块钱的卡座租金便简直不在话下，收入也有了保障。但是，这样一来，整个行业显得乌烟障气，非常混乱。</p>

<p>至于那些开印刷厂、赚了些钱的小老板，他们工作之余做什么呢？无非就是打麻将，赌博。所以，我去不少印刷厂，常能见到麻将桌上散乱的牌张、红着眼睛熬夜后中午才来上班的这些人。</p>

<p>【相关文章】</p>

<p>* <a href="http://www.ruanyifeng.com/blog/2008/01/in_chinese_factories_lost_fingers_and_low_pay.html" target="_blank">《纽约时报》：珠江三角洲，每年4万根手指被切断</a></p>

<p>（完）</p>]]></description>
         <link>http://www.ruanyifeng.com/blog/2010/03/some_printing_workshops_in_shenzhen.html</link>
         <guid>http://www.ruanyifeng.com/blog/2010/03/some_printing_workshops_in_shenzhen.html</guid>
         <category>Society</category>
         <pubDate>Sat, 06 Mar 2010 20:23:24 +0800</pubDate>
      </item>
            <item>
         <title>Jacob Holdt 的美国往事</title>
         <description><![CDATA[<p>转载<a href="http://www.spiegel.de/international/zeitgeist/0,1518,678291,00.html" target="_blank">《明镜周刊》</a>的一篇文章。</p>]]><![CDATA[<p>===================================</p>

<p><strong>Jacob Holdt 的美国往事</strong></p>

<p>作者：Christoph Gunkel</p>

<p>译者：阮一峰</p>

<p>原载：德国《明镜周刊》，2010年2月16日</p>

<p><img src="http://image.beekka.com/blog/2010_03_04/Jacob_Holdt35.jpg" /></p>

<p>1. 回到40年前，Jacob Holdt是一个愤怒的年轻人。他满怀理想主义，反对越南战争，希望改变世界。他的梦想是前往智利，支持萨尔瓦多·阿连德领导的社会主义运动。</p>

<p><img src="http://image.beekka.com/blog/2010_03_04/Jacob_Holdt32.jpg" /></p>

<p>2. Jacob Holdt是丹麦人，但是他不喜欢这个国家。因为丹麦表态，支持美国发动越南战争。1970年春天，他动身前往美国，计划从那里过境去智利。那一年，他23岁。</p>

<p><img src="http://image.beekka.com/blog/2010_03_04/Jacob_Holdt26.jpg" /></p>

<p>3. 但是光怪陆离的美国社会吸引了他，亲眼目睹的贫穷、绝望和黑暗，令他震惊。他改变了计划，在美国待了下来，打算好好了解这个社会。</p>

<p><img src="http://image.beekka.com/blog/2010_03_04/Jacob_Holdt27.jpg" /></p>

<p>4. 他专门去那些其他人不愿意去的地方，访问贫民窟，与黑人、妓女、吸毒者、同性恋、杀人犯住在一起。</p>

<p><img src="http://image.beekka.com/blog/2010_03_04/Jacob_Holdt34.jpg" /></p>

<p>5. 他也去访问上流社会，观察富有的银行家和商人家庭。</p>

<p><img src="http://image.beekka.com/blog/2010_03_04/Jacob_Holdt33.jpg" /></p>

<p>6. 这样的生活一直持续了5年。1975年，他的两个好朋友在旧金山街头被枪杀，他终于感到了厌倦，决定返回丹麦。这时，他的行李中已经有了15000张照片，这是他用照相机记录下的真实美国。</p>

<p><img src="http://image.beekka.com/blog/2010_03_04/Jacob_Holdt37.jpg" /></p>

<p>7. 1977年，他出版了摄影集《美国》（America Pictures），震动了世界，改变了人们心目中的美国形象。</p>

<p><img src="http://image.beekka.com/blog/2010_03_04/Jacob_Holdt05.jpg" /></p>

<p>8. 这些照片大多反映底层美国穷人的生活。比如，一个黑人小女孩打开锈迹斑驳的冰箱，寻找食物。</p>

<p><img src="http://image.beekka.com/blog/2010_03_04/Jacob_Holdt09.jpg" /></p>

<p>9. 再比如，一个弯着腰的老太太拿着扫帚，打扫自己破旧的小木屋。</p>

<p><img src="http://image.beekka.com/blog/2010_03_04/Jacob_Holdt02.jpg" /></p>

<p>10. 它们是贫穷、暴力和绝望的见证。</p>

<p><img src="http://image.beekka.com/blog/2010_03_04/Jacob_Holdt29.jpg" /></p>

<p>11. Jacob Holdt并没有钱，他来到美国的时候，兜里只有40美元。他依靠卖血的钱，去买胶卷和食品。他每星期去卖两次血，每次可以换来五美元。在漫游途中，他经常吃猫食。</p>

<p><img src="http://image.beekka.com/blog/2010_03_04/Jacob_Holdt36.jpg" /></p>

<p>12. 正是因为过着和他们一样的生活，他才赢得了被摄影的穷人的信任，愿意将真实的情感暴露在他的镜头前。</p>

<p><img src="http://image.beekka.com/blog/2010_03_04/Jacob_Holdt30.jpg" /></p>

<p>13. 在这样的环境中待久了，他渐渐地对生活的艰苦和绝望，感到了麻木。1973年，他生活在底特律，那是当时美国谋杀率最高的城市，晚上都能听到窗外有子弹声。当地居民睡觉前，都用冰箱把大门顶住，彻夜开着无线电，告诉窃贼屋里有人。Jacob Holdt虽然很紧张，但还是选择在这里待下去。</p>

<p><img src="http://image.beekka.com/blog/2010_03_04/Jacob_Holdt01.jpg" /></p>

<p>14. 五年中，他走过的距离是161265公里，去过美国50个州中的48个，在381个家庭过夜，被捕过6次，被抢劫过4次，有一次子弹擦过耳朵。</p>

<p><img src="http://image.beekka.com/blog/2010_03_04/Jacob_Holdt13.jpg" /></p>

<p>15. 他对资本主义社会造成的不平等，感到愤怒。</p>

<p><img src="http://image.beekka.com/blog/2010_03_04/Jacob_Holdt03.jpg" /></p>

<p>16. 他写道：“我在这里生活得越久，就越习惯用黑人的眼镜看待白人。”</p>

<p><img src="http://image.beekka.com/blog/2010_03_04/Jacob_Holdt14.jpg" /></p>

<p>17. “我无法隐藏自己日益增加的憎恨。”</p>

<p><img src="http://image.beekka.com/blog/2010_03_04/Jacob_Holdt28.jpg" /></p>

<p>18. 他觉得，很多南方种植园主的生活，不过是奴隶制生活在当代的翻版。</p>

<p><img src="http://image.beekka.com/blog/2010_03_04/Jacob_Holdt17.jpg" /></p>

<p>19. 他相信资本家在有意煽动种族主义，人为制造社会的分裂。</p>

<p><img src="http://image.beekka.com/blog/2010_03_04/Jacob_Holdt08.jpg" /></p>

<p>20. 因此，他同情那些瘾君子和杀人犯。</p>

<p><img src="http://image.beekka.com/blog/2010_03_04/Jacob_Holdt24.jpg" /></p>

<p>21. 同时，他也记录了美国生活中富裕的一面。</p>

<p><img src="http://image.beekka.com/blog/2010_03_04/Jacob_Holdt20.jpg" /></p>

<p>22. 这种反差，令社会的不公正更加显著。</p>

<p><img src="http://image.beekka.com/blog/2010_03_04/Jacob_Holdt25.jpg" /></p>

<p>23. 他镜头中的中上阶层白人的生活，与底层黑人的生活一样真实和客观。</p>

<p><img src="http://image.beekka.com/blog/2010_03_04/Jacob_Holdt16.jpg" /></p>

<p>24. 但是，他很清楚自己的立场在哪里。他写道：“无论何时，每当我有机会去过那种所谓的‘优越生活’时，我经常感到恶心，快速地逃上高速公路离开了。”</p>

<p><img src="http://image.beekka.com/blog/2010_03_04/Jacob_Holdt22.jpg" /></p>

<p>25. Jacob Holdt在1970年来到美国前，觉得那是一个“乏味的白人中产阶级国家”，现在他的看法不一样了。</p>

<p><img src="http://image.beekka.com/blog/2010_03_04/Jacob_Holdt04.jpg" /></p>

<p>26. 那是一个贫穷和压迫无处不在的国家。</p>

<p><img src="http://image.beekka.com/blog/2010_03_04/Jacob_Holdt19.jpg" /></p>

<p>27. 他用照片记录了人们的挣扎。</p>

<p>（完）</p>]]></description>
         <link>http://www.ruanyifeng.com/blog/2010/03/jacob_holdt.html</link>
         <guid>http://www.ruanyifeng.com/blog/2010/03/jacob_holdt.html</guid>
         <category>Photography</category>
         <pubDate>Thu, 04 Mar 2010 15:39:26 +0800</pubDate>
      </item>
            <item>
         <title>美国人怎么拔网线——DMCA入门</title>
         <description><![CDATA[<p>1.</p>

<p>上周，有一条微软公司的<a href="http://tech.163.com/10/0225/16/60COQH55000915BF.html" target="_blank">新闻</a>。</p>]]><![CDATA[<blockquote><div>

<p>知名黑客网站Cryptome.org，公布了一份微软公司的内部文件。此举惹怒了微软，在施压删除此文件未果后，微软已经与网络供应商交涉，强行关闭了该网站。</p>

</div></blockquote>

<p>我一看就觉得，这是美国版的<a href="http://www.ruanyifeng.com/blog/2008/08/the_legality_of_unplugging_server_cable.html" target="_blank">“拔网线”</a>，顿时感到很气愤。强行将他人的网站下线，原来不仅中国人干，美国人也干。太野蛮了！</p>

<p>但是随后，我就看到了这个事件背后的<a href="http://brainz.org/dmca-takedown-101/" target="_blank">法律知识介绍</a>。微软公司是根据美国<a href="http://en.wikipedia.org/wiki/Digital_Millennium_Copyright_Act" target="_blank">《数字千禧年版权法》</a>（Digital Millennium Copyright ACT，简称DMCA）采取这个行动的。</p>

<p>仔细研读DMCA这部法律以后，我不由感叹，美国人拔网线比中国人文明多了。</p>

<p>2.</p>

<p>DMCA规定，如果某个网站侵犯了你的版权，你可以向它的主机服务商发出通知，要求撤下侵权内容。“DMCA通知”（<a href="http://www.chillingeffects.org/dmca512/notice.cgi?NoticeID=861" target="_blank">示例一</a>，<a href="http://www.plagiarismtoday.com/stock-letters/" target="_blank">示例二</a>）必须包含下列要素，缺一不可，否则就是无效的，收到者可以不予理睬：</p>

<p>　　1）物理签名或电子签名；</p>

<p>　　2）侵权内容的具体位置；</p>

<p>　　3）侵权内容；</p>

<p>　　4）本人的联系方式；</p>

<p>　　5）版权遭到侵犯的声明；</p>

<p>　　6）以上信息皆为事实的声明。</p>

<p>主机公司收到通知后，确认格式正确，并且包含所有上述要素，就要在72小时内采取行动，停止侵权内容的访问（通常是备份后直接删除），然后通知网站的站长。</p>

<p>站长收到删除通知后，如果感到不服，可以向主机公司发出“反通知”（Counter-Notice），要求恢复被删内容的访问。主机公司收到“反通知”后，必须先通知“DMCA通知”发出人，然后在两星期内恢复被删除内容的访问。除非在这期间，版权所有人向法院提起上诉，或者申请到了法院的禁令（injunction）。 </p>

<p>最后，如果“DMCA通知”发错了，发出方必须赔偿全部损失和承担诉讼费用。</p>

<p>可以看到，整个流程很清楚，规定详细严格，侵权方和被侵权方的权利都得到了保障。没有任何一方是高人一等的，一切都按照法律办，绝不会出现申诉无门。要是中国的站长有这种待遇，恐怕早就感动得落泪了。</p>

<p>3.</p>

<p>除了保障站长权益以外，DMCA还极大地免除了第三方公司的<a href="http://www.ruanyifeng.com/blog/2009/12/should_isp_bear_joint_liabilities.html" target="_blank">连带责任</a>，进一步使得站长们有一个宽松的生存空间。</p>

<p>它规定有四类公司不承担侵权责任：</p>

<p>　　1）中介服务提供商（Conduit）：比如宽带公司。虽然侵权内容通过它的网络传送，但是它可以完全免责，因为其本身不是使用的目的。</p>

<p>　　2）缓存服务器（Caching Service）：为了提高网络访问速度，暂时性保存访问内容的服务器，可以完全免除侵权的责任。</p>

<p>　　3）主机公司（Web Host）：前提是满足某些条件，主机公司才能免责，比如事先不知道存在侵权、对侵权内容没有控制能力、不鼓励侵权行为的发生、不直接从侵权内容中盈利、在得到通知后迅速移除侵权内容等等。</p>

<p>　　4）信息定位工具（Information Location Tool）：主要是指搜索引擎和信息分类网站，与主机公司相似，它们必须符合上一条的条件才能免责。</p>

<p>由于这些免责条款，美国的主机公司才能放心经营，不会出于恐慌，随便就把客户的网线拔掉，美国的Web 2.0网站也才会如此兴盛发达。</p>

<p>4.</p>

<p>在美国做网站，DMCA就是对你影响最大的法律。</p>

<p>一方面，我们知道，在美国境内提供或下载盗版音乐和电影，轻则罚款，重则坐牢，这是DMCA的规定。另一方面，我们也知道，美国网站不会因为一个页面存在违规内容，就导致全站不能访问，这也是DMCA的规定。</p>

<p>5.</p>

<p>就算你不在美国做网站，DMCA依然对你有巨大的影响。</p>

<p>因为我们中很多人，使用的都是美国主机公司的服务，这些公司是必须遵守DMCA的，所以你不能在他们的机器上干违反DMCA的事情。</p>

<p>此外，Google是美国公司，它也要遵守DMCA。这意味着，我们可以向Google发出“DMCA通知”，要求它删除某个搜索结果。Google的中国分公司，就有一个专门的中文页面，告诉中国用户应该怎么做，网址是<a href="http://www.google.cn/dmca.html" target="_blank">http://www.google.cn/dmca.html</a>。</p>

<p>为了保护自己的权益，减少损失，我们需要了解DMCA。这就是这篇文章的目的。</p>

<p>（完）</p>]]></description>
         <link>http://www.ruanyifeng.com/blog/2010/03/dmca.html</link>
         <guid>http://www.ruanyifeng.com/blog/2010/03/dmca.html</guid>
         <category>Copyright</category>
         <pubDate>Mon, 01 Mar 2010 16:42:03 +0800</pubDate>
      </item>
            <item>
         <title>为什么GPL是更好的开源许可证?</title>
         <description><![CDATA[<p>1.</p>

<p>让我从一件新闻讲起。</p>]]><![CDATA[<p>2009年，计算机业界发生了一件大事：甲骨文公司以74亿美元收购SUN公司。</p>

<p><img src="http://image.beekka.com/blog/miscellaneous/bg2010022701.jpg" /></p>

<p>消息宣布后，有一个人坚决反对这笔交易。他叫<a href="http://en.wikipedia.org/wiki/Michael_Widenius" target="_blank">Michael Widenius</a>，是数据库软件<a href="http://www.mysql.com" target="_blank">MySQL</a>的主要创始人。</p>

<p><img src="http://image.beekka.com/blog/miscellaneous/bg2010022702.jpg" /></p>

<p>他为什么要反对呢？因为MySQL现在归SUN公司所有，一旦收购成功，就将属于甲骨文公司所有。但是，后者的主要产品是Oracle数据库，与MySQL是竞争关系。所以，甲骨文公司不可能扶持MySQL的后继开发，甚至有可能杀死MySQL。</p>

<p>Michael Widenius不能接受这个事实，他发起万人签名，提交请愿书，要求欧盟委员会否决这项交易。具体情况可以参见<a href="http://helpmysql.org" target="_blank">HelpMysql.org</a>。</p>

<p><img src="http://image.beekka.com/blog/miscellaneous/bg2010022703.jpg" /></p>

<p>2.</p>

<p>去年12月28日，他写了一篇很长的文章“<a href="http://monty-says.blogspot.com/2009/12/help-keep-internet-free.html" target="_blank">Help keep the internet free</a>”，解释为什么反对这项交易。他是这样写的：</p>

<blockquote><div>

<p>"If Oracle were allowed to acquire MySQL, we would be looking at less competition among databases, which will mean higher license and support prices."</p>

<p>“如果甲骨文得到了MySQL，数据库市场的竞争将会减少，最终导致更高的价格和收费。”</p>

</div></blockquote>

<p>你觉得这句话对不对？</p>

<p>我觉得不对。我认为，甲骨文公司杀不死MySQL，数据库市场的竞争不可能减少。<strong>这并非由于甲骨文公司不想这样做，而是因为MySQL是无论如何都不可能被杀死的（假定始终存在市场需求的话）。</strong></p>

<p>3.</p>

<p>为什么MySQL是杀不死的？</p>

<p>答案非常简单。因为它的许可证是GPL。</p>

<p>GPL明确规定，任何源码的衍生产品，如果对外发布，都必须保持同样的许可证。<strong>这就是说，任何人只要发布MySQL的修改版本，他就必须公开源码，并且同意他人可以自由地复制和分发。</strong></p>

<p>现在让我们假想一下：</p>

<p>第一种情况：甲骨文公司决定中止MySQL的开发，会怎么样？</p>

<p>一定会有其他人接手，继续推出MySQL的后续版本，这是GPL许可证允许的，完全合法。虽然不能再叫MySQL这个名字，但是只要代码完全兼容，名字又有什么关系呢。事实上，Michael Widenius自己的公司，现在的产品<a href="http://askmonty.org/wiki/index.php/MariaDB" target="_blank">MariaDB</a>就是基于MySQL的。</p>

<p>第二种情况：甲骨文公司决定，MySQL的后续版本不再开源，或者整体并入Oracle数据库，会怎么样？</p>

<p>答案更简单，不可能发生这种情况。因为根据GPL许可证，只要发布基于原代码的新产品，就一定必须开源。</p>

<p>4.</p>

<p>所以，我实际上觉得，Michael Widenius没有竭力反对的必要。不管甲骨文干什么，MySQL都不可能灭绝。</p>

<p>相反的，真正感到倒霉的人，应该是甲骨文公司才对，因为它花钱买来自己无法控制的财产。<strong>任何的代码，只要置于GPL之下，就不再受作者或所有者控制了，想杀也杀不死了。</strong></p>

<p>5.</p>

<p>如果一个程序员想将自己的代码开源，他有许多种选择，大致可以分成三类：</p>

<p>　　1. 选择GPL许可证，要求衍生代码必须开源。</p>

<p>　　2. 将代码放入“公共领域”（public domain），彻底放弃版权。</p>

<p>　　3. 选择更宽松的许可证，比如BSD和Apache许可证，不要求衍生代码开源。</p>

<p><strong>许多人认为，选择后两种做法比选择GPL更值得赞扬，因为更加大公无私。但是，这样的看法是错误的，实际上GPL要好于后两种选择。</strong></p>

<p>让我们再来假想一下，如果MySQL的源码处于公共领域，或者BSD许可证之下，那会怎样？</p>

<p>那样的话，许多站长恐怕都会感到大难临头了。他们不得不做出选择，将来到底是升级到第三方小公司推出的、质量没有保证、支持力量薄弱、互相不兼容的基于MySQL 5.x版本的各种衍生数据库，还是升级到甲骨文公司推出的、与Oracle兼容的、号称具备各种新功能和最佳性能、并且广告满天飞的MySQL 6.0版本。</p>

<p>在BSD许可证或者公共领域代码的情况下，甲骨文公司可以从容地将MySQL 6.0变为闭源产品，推出你只有花钱才能买到的新特性和后继版本，并且只要你复制给他人使用，就要起诉你。使用开源软件的用户，将因此变为依赖甲骨文公司的用户。只有这种情况发生，才真正有必要，竭力反对甲骨文收购SUN公司。</p>

<p>当程序员放弃代码的版权，或者选择BSD许可证，他可能认为自己做出了世界上最无私的行为。很大程度上，事实确实如此。但是，我们要知道，这个世界是一个商业利益占主导的世界。一旦发生像甲骨文拥有MySQL这一类的事情，你的代码的价值将大大削弱，大公司先是免费利用它们，然后再设法推出取代它们的私有产品。你以为自己奉献了爱心，但是实质上变成了为大公司无偿打工。</p>

<p><strong>从这个角度看，GPL是更好的开源许可证。它保证了自由始终是自由，既无法被剥夺，也不是一种圈套或陷阱。</strong></p>

<p>6.</p>

<p>有的朋友读到这里，可能会提出疑问。如果GPL许可证真的这么好，那么为什么GNU基金会还推出了<a href="http://www.gnu.org/licenses/lgpl-2.1.html" target="_blank">LGPL许可证</a>？</p>

<p>所谓LGPL许可证，全称是Lesser General Public License，直译就是“限制更少的GPL许可证”，1991年时与GPL（第二版）同时发布。它近似于BSD许可证，允许将代码用于闭源产品。</p>

<p>这就产生了一个很有趣的问题。为什么像Richard Stallman这种坚持自由丝毫不可侵犯的人，会同意将自己的代码用于闭源产品？</p>

<p>说起来，这其实是他的策略，主要与GNU C library有关。1991年的时候，市场上有很多C语言库可以选择。如果GNU的C库是GPL许可证，那么很多私有软件不会选择它，因为一旦选择了它，就意味产品本身一定要开源。所以为了保证开源软件得到使用和推广，并且闭源软件中有开源的成分，总比一点没有好，所以才诞生了LGPL许可证。</p>

<p><a href="http://www.gnu.org/licenses/why-not-lgpl.html" target="_blank">Richard Stallman</a>说得很清楚：</p>

<blockquote><div>

<p>"After all, there are plenty of other C libraries; using the GPL for ours would have driven proprietary software developers to use another—no problem for them, only for us."</p>

<p>“毕竟，市场上的C库有的是。GPL许可证将迫使私有软件去使用他人的库，这不会给他们带来困扰，只会给我们带来困扰。”</p>

</div></blockquote>

<p>所以，策略是这样的：<strong>整体软件，或者没有替代品的代码库，一定要使用GPL许可证；有替代品的代码库，可以使用限制较少的开源许可证，但是在取到足够市场份额之后，也应该转为GPL许可证。</strong>这就是为什么javascript的代码库，大多数都是类似BSD的许可证，而不是GPL许可证的原因，因为可替代自己的竞争者实在太多了。</p>

<p>总之，如果你想把自己的软件开源，只要不属于上面这种例外情况，GPL就是更好的选择。</p>

<p>（完）</p>]]></description>
         <link>http://www.ruanyifeng.com/blog/2010/02/why_gpl_is_a_better_choice.html</link>
         <guid>http://www.ruanyifeng.com/blog/2010/02/why_gpl_is_a_better_choice.html</guid>
         <category>Copyright</category>
         <pubDate>Sat, 27 Feb 2010 09:38:29 +0800</pubDate>
      </item>
            <item>
         <title>“熔模铸造”图解</title>
         <description><![CDATA[<p><span class="firstchar">英</span>国摄影师<a href="http://www.alexhoffordphotography.com" target="_blank">Alex Hofford</a>访问了一家宁波的乡镇企业。</p>]]><![CDATA[<p>在那里，他拍摄了<a href="http://www.alexhoffordphotography.com/node/2300" target="_blank">“熔模铸造”</a>（investment casting）的全过程，非常有趣。</p>

<p>从古代青铜器算起，这种铸造工艺已经有几千年的历史了，并且直到今天还在广泛使用。看完下面的这组图片，你就会明白它到底是怎么做的。</p>

<p>此外，你还会从中看到，现实中的中国制造业是什么样子的，以及其中反映出来的一些社会问题。我强烈推荐这组作品。</p>

<p>它属于Alex Hofford的“中国工厂”系列照片之一。这个系列还包括<a href="http://www.alexhoffordphotography.com/node/2289" target="_blank">游戏机工厂</a>、<a href="http://www.alexhoffordphotography.com/node/2290" target="_blank">遥控器工厂</a>、<a href="http://www.alexhoffordphotography.com/node/2291" target="_blank">塑料工厂</a>、<a href="http://www.alexhoffordphotography.com/node/2293" target="_blank">手机充电器工厂</a>、<a href="http://www.alexhoffordphotography.com/node/2295" target="_blank">笔记本电源工厂</a>、<a href="http://www.alexhoffordphotography.com/node/2296" target="_blank">变压器工厂</a>和<a href="http://www.alexhoffordphotography.com/node/2297" target="_blank">五金工厂</a>。</p>

<p>下面的图片比较多，如果无法显示，多刷新几次即可。</p>

<p>================================</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-01.jpg" /></p>

<p>1. 工人在搅拌蜡原料。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-02.jpg" /></p>

<p>2. 融化的蜡注入金属模具。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-03.jpg" /></p>

<p>3. 等到初步凝固后，就可以从模具中取出蜡模型。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-04.jpg" /></p>

<p>4. 蜡模型放入冷水中，进一步冷却固化。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-05.jpg" /></p>

<p>5. 成型的蜡模型移入储藏室。它们是金属零件的原型，那些零件可以用于制造汽车、火车、飞机、机械设备、电站设备等。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-06.jpg" /></p>

<p>6. 蜡模型都放在一个个竹筐里。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-07.jpg" /></p>

<p>7. 下一步是将同样的模型都合并在一起，形成一个模型树。通过加热，把它们黏合。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-08.jpg" /></p>

<p>8. 排列好的模型树，将被送入下一道工序。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-09.jpg" /></p>

<p>9. 这一步是形成陶模（ceramic mold）。简单说，就是反复执行三个步骤：涂料、撒砂和硬化。首先，模型树被浸入硅酸乙酯或者硅酸钠的复合溶液。溶液的气味很像氨水，但是现场没有一个工人戴着呼吸系统保护装置。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-10.jpg" /></p>

<p>10. 完成涂料的模型树，再被手工洒上二氧化硅晶体或者锆石晶体。这个步骤会反复进行多次，然后模型树会被悬挂，等待风干硬化。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-11.jpg" /></p>

<p>11. 工人是新疆来的临时工。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-12.jpg" /></p>

<p>12. 涂料和撒砂需要一直做，直到陶模的厚度达到一厘米左右。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-13.jpg" /></p>

<p>13. 粉尘太大，我的眼睛流泪了。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-14.jpg" /></p>

<p>14. 完成之后，陶模就被放在一边，由夜班工人处理。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-15.jpg" /></p>

<p>15. 夜班的任务是熔铸。之所以要在夜里进行，是因为宁波市规定，晚上11点以后电费半价。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-16.jpg" /></p>

<p>16. 铸造车间的熔炉使用煤炭作为燃料。陶模被推进去，里面的蜡芯开始融化，二氧化硅晶体互相结合，形成了一个坚硬抗热的空心陶瓷部件。这一步叫做烧芯。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-17.jpg" /></p>

<p>17. 工人用推车，将烧制好的陶模取出熔炉。他既没有戴手套，也没有戴护目镜。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-18.jpg" /></p>

<p>18. 烧得通红的陶模，被直接放置在砂石上。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-19.jpg" /></p>

<p>19. 工人用铁杆，将陶模排成一串。他们穿的完全是普通鞋子，没有穿那种厚重的安全靴。每当铁杆碰到陶模，就会有余火飞溅起来。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-20.jpg" /></p>

<p>20. 工人用铁耙子，将砂石围在陶模四周，只露出口上的部分。陶模被牢固地固定了。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-21.jpg" /></p>

<p>21. 同时，其他工人点燃了电熔炉。虽然，将这道工序留到夜晚进行，是为了省电费，但是另一个好处是，拍摄出来的照片很壮观。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-22.jpg" /></p>

<p>22. 废钢加入电熔炉融化。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-23.jpg" /></p>

<p>23. 融化后的钢水被倒入一个可以移动的坩埚。两个工人用长杆子架住坩埚。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-24.jpg" /></p>

<p>24. 这一步非常危险，火花四溅。但是工人们没有戴手套，也没有戴护目镜。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-25.jpg" /></p>

<p>25. 钢水被倒出坩埚，倒入一个个陶模之中。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-26.jpg" /></p>

<p>26. 钢水发着白光，温度达到千度以上。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-27.jpg" /></p>

<p>27. 工人全神贯注，非常小心，防止钢水从陶模上溢出来，或者倒错了地方。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-28.jpg" /></p>

<p>28. 如果钢水倒得不好，没有正好填满陶模，或者在倒的过程中形成气泡，整个零件就成了次品和废品。工厂的利润和成本就要受到影响。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-29.jpg" /></p>

<p>29. 现场的烟雾和气味非常强烈，但是没有人戴呼吸保护装置。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-30.jpg" /></p>

<p>30. 经理告诉我，厂方以前给工人发过护目镜、手套、靴子、面具等劳防设备，但是工人不愿意使用。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-31.jpg" /></p>

<p>31. 赤手空拳地在熔炉旁倒钢水，无疑让现场弥漫着一股英雄好汉气概。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-32.jpg" /></p>

<p>32. 经理说，厂方曾经规定，不使用劳防用品，每次罚款5元。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-33.jpg" /></p>

<p>33. 但是不久以后，因为罚款会减少工人的收入，所以工人纷纷跳槽，到其他没有劳防用品也不罚款的厂里干活。所以，厂方最后只能放弃罚款制度。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-34.jpg" /></p>

<p>34. 这就是奇怪的地方。不仅厂方不重视生产安全，就连工人也不重视对自己的保护。在西方国家，工人的自我保护意识已经强化到有点过分的程度，而在中国，这种意识则是根本不存在。提高生产安全的唯一方法，只能是通过更严厉的法律，以更强有力的力度，迫使厂方去实施。对工厂随时进行抽查，就是一个好方法。但是，执法部门缺乏人手，以及政府中的腐败，都会阻碍这项工作。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-35.jpg" /></p>

<p>35. 中国是一个大国，保护工人和保护环境，都遇到了相似的问题。那就是法律制定出来了，却得不到实施。要想解决这个问题，真是谈何容易。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-36.jpg" /></p>

<p>36. 等到冷却后，浇铸好的陶模就被巨大的火钳移走了。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-37.jpg" /></p>

<p>37. 它们被放在推车上。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-38.jpg" /></p>

<p>38. 这一次，工人戴着手套。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-39.jpg" /></p>

<p>39. 陶模和里面的零件，被拉到楼外。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-40.jpg" /></p>

<p>40. 它们被倒在地上冷却，等着日班工人移去陶瓷外壳。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-41.jpg" /></p>

<p>41. 第二天早上，工厂烟囱冒出了煤烟。具有讽刺意味的是，我是在联合国哥本哈根气候会议闭幕的当天，拍摄这张照片的。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-42.jpg" /></p>

<p>42. 燃煤的锅炉整个白天都要烧着，这是为了保证“烧芯”步骤的进行。温室气体就是这样被排放的。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-43.jpg" /></p>

<p>43. 工人用喷灯除去零件上面蜡模的残片，这一步必须重复执行。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-44.jpg" /></p>

<p>44. 这是一项非常艰苦的工作。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-45.jpg" /></p>

<p>45. 工作条件很恶劣。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-46.jpg" /></p>

<p>46. 虽然看上去，现场一片混乱，但是这项工作本身完全是有条不紊地在进行。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-47.jpg" /></p>

<p>47. 其他工人从零件上去除二氧化硅的残渣。有时会用到榔头。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-48.jpg" /></p>

<p>48. 这个工人的手套上都是洞。工作条件无疑是很差的。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-49.jpg" /></p>

<p>49. 钢铁零件会进一步用机器清洁表面，把浇铸过程的痕迹完全去掉。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-50.jpg" /></p>

<p>50. 工人用强力机器对产品做进一步光滑处理。这个工作场景简直就像中世纪的手工作坊。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-51.jpg" /></p>

<p>51. 午饭时间到了。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-52.jpg" /></p>

<p>52. 饭菜中没有肉食，只是米饭和蔬菜。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-53.jpg" /></p>

<p>53. 午饭后，工人将零件放入喷砂机，做最后的抛光。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-54.jpg" /></p>

<p>54. 拍摄这张照片的时候，喷砂机正好开着，许多小块的碎石从里面高速弹出，像连珠炮一样打在我身上。奇怪的是，这个工人戴着面具，保护的是呼吸系统，他却没有戴护目镜。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-55.jpg" /></p>

<p>55. 喷砂完成后，零件成品就从机器里落在手推车上。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-56.jpg" /></p>

<p>56. 它们会被用于重型工业的机械上。</p>

<p><img src="http://image.beekka.com/blog/2010_02_21/FURNACE-57.jpg" /></p>

<p>57. 用“熔模铸造法”制造钢铁零件的整个过程，到此就全部完成了。</p>

<p>（完）</p>]]></description>
         <link>http://www.ruanyifeng.com/blog/2010/02/investment_casting.html</link>
         <guid>http://www.ruanyifeng.com/blog/2010/02/investment_casting.html</guid>
         <category>Photography</category>
         <pubDate>Mon, 22 Feb 2010 03:14:45 +0800</pubDate>
      </item>
            <item>
         <title>再谈Android的许可证（续）</title>
         <description><![CDATA[<p>写<a href="http://www.ruanyifeng.com/blog/2010/02/revisiting_android_licenses.html" target="_blank">前一篇网志</a>时，我参考了<a href="http://arstechnica.com/author/ryan-paul/" target="_blank">Ryan Paul</a>的文章。</p>]]><![CDATA[<p>他是资深Linux程序员和评论者。他对Android许可证的评论，是我见到的最准确、最通俗易懂的介绍。当时，我翻译了一些片段，打算在自己的文章中引用，但是后来没用上。我觉得不甘心，于是今天就把全文译出，贴在下面，希望让更多的朋友看到。</p>

<p>如果你对GPL、ASL、BSD这一类的许可证名字，只有一些模模糊糊的概念，搞不清楚它们之间的区别。那么，我强烈推荐你阅读此文，读完后，你就会对开源软件的许可证，有一个基本的认识了。</p>

<p>值得指出的是，此文写于2007年，当时Google刚刚宣布Android项目，代码还没有完成，工程样机更是没有，外界只能凭几句文字叙述，猜测这个系统的样子。但是，Ryan Paul就是有这个本领，只看许可证选择，就判断出Android的开发模式。事实证明，他的判断完全正确，除了一点：他没有料到，Google会修改Linux内核，故意造成两者不兼容。</p>

<p><img alt="bg2010022001.jpg" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010022001.jpg" /></p>

<p>（图片说明：自由软件基金会的标志）</p>

<p><img alt="bg2010022002.gif" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010022002.gif" /></p>

<p>（图片说明：Apache基金会的标志）</p>

<p><img alt="bg2010022003.jpg" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010022003.jpg" /></p>

<p>（图片说明：FreeBSD基金会的标志）</p>

<p>=================================</p>

<p><strong>Why Google chose the Apache Software License over GPLv2 for Android</strong></p>

<p><strong>为什么Android不是GPL许可证？</strong></p>

<p>作者：Ryan Paul </p>

<p>译者：阮一峰</p>

<p>发表日期：2007年11月6日</p>

<p>原文网址：<a href="http://arstechnica.com/old/content/2007/11/why-google-chose-the-apache-software-license-over-gplv2.ars" target="_blank">http://arstechnica.com/old/content/2007/11/why-google-chose-the-apache-software-license-over-gplv2.ars</a> </p>

<p><br />
Google finally entered the mobile software market by turning the 2005 acquisition of Android into the Open Handset Alliance. </p>

<p>Google终于进入了手机市场。2005年，它收购了Android。在此基础上，现在，它组建了“开放手机联盟”（Open Handset Alliance）。</p>

<p>Google hopes to promote third-party mobile software development and foster a broad developer community on top of Android's Linux-based mobile platform. </p>

<p>Android是一种Linux内核的手机操作系统。Google希望，这会吸引来第三方软件开发者，建立起一个大规模的开发者社区。</p>

<p>In the wake of Google's announcement, one topic that has been discussed by some members of the open-source software community is the significance of Google's licensing choice.</p>

<p>但是，此事公布后不久，开源软件社区就议论纷纷，大家在讨论Google为Android选择的许可证。</p>

<p>Although the underlying Linux kernel is licensed under version 2 of the Free Software Foundation's General Public License (GPLv2), much of the user-space software infrastructure that will make up the Open Handset Alliance's platform will be distributed under version 2 of the Apache Software License (ASL). </p>

<p>Linux内核的许可证，是自由软件基金会的GPL许可证第二版。但是，“开放手机联盟”的主要代码，却是Apache许可证（ASL）第二版。</p>

<p>This raises certain questions about Google's goals in the mobile space and the nature of the third-party application ecosystem that will emerge around the platform.</p>

<p>这使得有人怀疑Google的动机。它的目标到底是什么？Android平台上，到底会有怎样的第三方软件？</p>

<p>ASL, which is widely used in the open-source software community and has been approved by the Open Source Initiative, is a permissive license that is conducive to commercial development and proprietary redistribution. Code that is distributed under the ASL and other permissive licenses can be integrated into closed-source proprietary products and redistributed under a broad variety of other terms.</p>

<p>ASL许可证被开源软件广泛使用，并且得到了“开放源码促进会”（Open Source Initiative）的认可。它是一种不设限的许可证（permissive license），允许软件的商业性开发和垄断式发布。以ASL发布的代码，可以被合并入闭源的专有软件（proprietary product），并且在各种各样的限制性条件下发布。</p>

<p> Unlike permissive open-source licenses, "copyleft" licenses (such as the GPL) generally impose restrictions on redistribution of code in order to ensure that modifications and derivatives are kept open and distributed under similar terms.</p>

<p>与ASL不同，GPL则是一种Copyleft许可证。它对代码的发布做出了限制，规定所有对源码的修改和衍生，都必须公开，并且以相似的许可证发布。</p>

<p>Permissive licenses like the ASL and BSD license are preferred by many companies because such licenses make it possible to use open-source software code without having to turn proprietary enhancements back over to the open source software community. These licenses encourage commercial adoption of open-source software because they make it possible for companies to profit from investing in enhancements made to existing open-source software solutions. That potential for proprietary investment on top of an open stack is most likely what inspired Google to adopt the Apache Software License for its mobile platform. Availability of Android under the ASL will ensure that a broader number of companies will be able to adopt the platform and build on top of it without having to expose the inner workings of proprietary technologies that give them a competitive advantage.</p>

<p>许多软件公司更愿意采用不设限的许可证（比如ASL和BSD），因为这使得它们既可以使用开源软件，又不用向开源社区公开对软件所做的修改。所以，ASL和BSD鼓励了开源软件的商业性使用，使得软件公司愿意对开源软件投资，因为这些公司可以从中获利。这种在开源基础上吸引商业投资的潜力，很可能是Google为自己的手机平台选择ASL许可证的最大原因。将Android置于ASL之下，可以确保许多商业性公司会接受这个平台，并且在它上面使用自己的专有技术。</p>

<p>Although using a permissive license like ASL is the best way to build support for the Android platform, critics argue that Google has sacrificed an opportunity to encourage greater openness in the broader mobile software space. If Android was distributed under the GPLv2, companies building on top of the platform would have to share their enhancements, which could theoretically lead to widespread sharing of code and a more rapid acceleration of mobile software development.</p>

<p>虽然ASL确实是保证Android获得支持的最好方法，但是批评者认为，Google这样做的代价，是丧失了创造一个更开放的手机软件平台的机会。如果Android的许可证是GPLv2，那么在它上面做开发的那些公司，将不得不公开对系统所做的改进，理论上就会导致代码被更广泛地分享，因而手机软件的开发也会更快速地进步。</p>

<p>The counterargument is that distributing Android under a copyleft license could potentially limit the evolution of the mobile software ecosystem by discouraging commercial development on top of the platform. Proprietary mobile software development companies that integrate Android into their technologies would have to dramatically change their business models if they aren't given the ability to keep their enhancements proprietary.</p>

<p>另一些人不同意这种看法。他们认为如果Android选择copyleft许可证，会使商业性公司不愿意介入开发，从而使系统本身的发展困难重重。如果那些公司没有办法保护自己的专有技术不公开，那么即使它们愿意采用Android平台，也必须急剧地改变经营模式，而这是有风险的。</p>

<p>It is important to note that the ASL is only being applied to the assortment of user-space platform components that make up Android. The kernel itself is still licensed under the GPLv2, and third-party software that runs on top of the platform can be distributed under pretty much any license, including commercial and copyleft licenses. </p>

<p>有一点是不能忽视的，那就是只有Android的userspace部分是ASL许可证。系统的内核依然是GPLv2许可证。而运行在系统上方的第三方软件，可以用任何许可证发布，包括商业性许可证和copyleft许可证。</p>

<p>It is also important to note that, although the ASL was not compatible with previous versions of the GPL, it is entirely compatible with the GPLv3. This means that code distributed under the ASL can be incorporated into GPLv3 software. As a result, developers can choose to distribute Android derivatives under the GPLv3 in order to ensure that further development on top of their own enhancements remains open.</p>

<p>还有一点也很重要，那就是虽然ASL与GPLv2不兼容，但是它与GPLv3完全兼容。这意味着，在ASL下发布的代码，可以被用于GPLv3许可证的软件。因此，程序员可以选择将Android程序在GPLv3下发布，这样就能保证他们作品的进一步开发，将始终是开源的。 </p>

<p>Ultimately, the decision to use the ASL is sensible. Although it would be beneficial to all if Google were to use Android licensing to further open the market, that likely would have stifled adoption of the platform by handset makers. </p>

<p>最终来说，Google选择ASL是情有可原的。虽然Android如果在GPL许可下发布，会使所有人得利，但那样也会阻碍这个系统被手机厂商采用。</p>

<p>When it comes right down to it, the handset makers are the developers who are most significantly affected by the Android license, since they are the primary distributors of mobile phone platforms. The ASL will allow individual handset makers to develop proprietary customizations for the platform as needed to accommodate the unique technologies in their individual products. </p>

<p>如果单就手机厂商而言，他们才是受Android许可证影响最大的开发者，因为他们是手机平台主要的发布渠道。ASL允许手机厂商对平台进行改造，使得Android变得好像他们的独家产品一样。</p>

<p>Third-party software developers who are building applications on top of Android will largely be unaffected by Google's licensing decision since the individual applications can be distributed under their own licenses. </p>

<p>而第三方的软件开发者，总体上不受Google许可证选择的影响，因为他们可以为自己的软件选择任何的许可证。</p>

<p>Another point worth noting is that Linux-based mobile platforms created by other mobile technology coalitions like the LiMo Foundation also facilitate mixing proprietary and open software.</p>

<p>还有一个值得注意的地方是，其他Linux核心的手机平台，比如LiMo，也是闭源软件和开源软件的混合。</p>

<p>As more details emerge and more source code becomes available, it's likely that third-party developers and handset makers will eagerly flock to Android in order to benefit from the ecosystem that Google is creating.</p>

<p>随着更多的细节和更多的源码被公布，手机厂商和第三方开发者，很可能会热切地投入Android的怀抱，享受Google创造的这个平台。</p>

<p>（完）</p>]]></description>
         <link>http://www.ruanyifeng.com/blog/2010/02/revisiting_android_licenses_continued.html</link>
         <guid>http://www.ruanyifeng.com/blog/2010/02/revisiting_android_licenses_continued.html</guid>
         <category>IT</category>
         <pubDate>Sat, 20 Feb 2010 17:15:03 +0800</pubDate>
      </item>
            <item>
         <title>再谈Android的许可证</title>
         <description><![CDATA[<p>1.</p>

<p>两周前，我写了一篇<a href="http://www.ruanyifeng.com/blog/2010/02/open_android_or_not.html" target="_blank">《Android，开源还是封闭？》</a>。</p>]]><![CDATA[<p>其中有一些内容，我今天要做修正，还想谈一些别的感想。</p>

<p>2.</p>

<p>在谈具体的修正之前，我先来说说，那篇文章的一些情况。</p>

<p>那天白天，我在外面办事，从手机上读到Linux内核撤下所有Android代码的消息，感到很震惊。晚上回家后，仔细读完了相关报道，就一口气写了一些感想。写完已经将近半夜12点。我改了几个错别字，直接把文章贴上网，然后就上床睡觉了。当时也没多想，不觉得它和我的其他文章有何不同。</p>

<p>但是，第二天起床以后，我发现事情变得复杂了。那篇文章被转贴到许多技术论坛和网络媒体，产生了很多回复和议论。要是早知道它会被那么多专业开发人员读到，我一定会写得更谨慎。</p>

<p>更令我意外的是，超过半数的读者，都在批评那篇文章。尤其是一些认识很久的朋友，也对它持负面看法。这令我反思，到底哪里写错了？</p>

<p>节假日期间，我也在思考这个问题。下面就是一些结果。</p>

<p>3.</p>

<p>首先，我必须老老实实承认，那篇文章确实有重大错误。</p>

<p>别的不说，单单文章的标题就是错的。我用《Android，开源还是封闭？》这样的标题，暗示Android表面是开源系统，实质上是封闭系统。我的这种说法是错的。</p>

<p>理由如下：</p>

<p>　　* Android使用的是Apache许可证，这是一个开源许可证。</p>

<p>　　* 它的所有源码都公布在网上，你可以用来干任何事情。</p>

<p>　　* 对于不喜欢这个许可证的人，可以完全合法地把自己的Android程序，改为GPL许可证。</p>

<p>无论从表面还是从实质上看，Android都是一个开放的系统，不是封闭系统。所以，我指责Android是封闭系统，这是不正确的。</p>

<p>由于我把不正确的论断作为那篇文章的基本论据，直接导致结论不可信。因此，文章遭到批评和鄙视，确实也是理所应当。</p>

<p>4.</p>

<p>不过，我的文章写错了，并不代表Google没有做错。你可以这样想，如果Google的所作所为都是无可指责的话，那么为什么Linux内核开发小组会撤下它的代码呢？</p>

<p>这就是我今天想说的第二件事：Android的许可证选择是有问题的。它的问题不在于系统是不是开放，而在于它造成了Linux的分裂。</p>

<p>为什么Android分裂了Linux？</p>

<p>因为Google修改了Linux内核，使得Android与内核不兼容。所有Android上的开源驱动，不经过修改，都无法用于内核，而Google又不愿意修改。因此，内核开发小组只好把它撤下来，因为留着也没用。</p>

<p>这就是Google最让人不满的地方。为了吸引外部程序员，它故意选择Linux内核，而不是自己开发内核。但是开发出来的东西，只能用于Google的产品，不能用于内核。这种分裂行为的后果，就是把Linux社区削弱了。</p>

<p>为了便于思考，让我来举一个类比。</p>

<p>很久以前，有一帮很穷的程序员，在森林里面打游击、闹革命。由于反革命力量实在太强大了，游击队屡战屡败，士气低落。这时，有一个大佬宣布要加入游击队，大家都很振奋，有了大佬的支持，革命有希望成功了。可是没想到，大佬来了以后，宣称他对革命的定义跟别人不一样，要求别人跟着他闹革命。双方谈判不成，大佬就带走了一部分人，自己单干了。所以，大佬加入革命以后，革命势力反而变得更弱小了，还不如不加入呢。</p>

<p>同样地，Android系统越发达，受益的只是Google和手机厂商，而不是Linux社区。后者因为程序员和厂商的流失，力量还会变得更加积弱。事实上，Android的推出，已经使得<a href="http://maemo.org/" target="_blank">Maemo</a>、<a href="http://www.limofoundation.org/" target="_blank">LiMo</a>、以及其他基于Linux的手机系统，生存处境越发艰难。</p>

<p>可惜我没有早点认识到这些。如果我从这个角度评价Android，那篇文章的错误就会少一些，也不会遭到那么多反对意见了。</p>

<p>5.</p>

<p>在所有的批评中，有些不是针对那篇文章的具体内容，而是针对我个人的。</p>

<p>举几个典型的例子：</p>

<p>　　* 他开始乱喷了！</p>

<p>　　* 这个知道分子，又在卖弄自己不懂的东西了。</p>

<p>　　* 此人大言不惭，就是一个不靠谱的妄人。</p>

<p>虽然我觉得，这些评价对我不太公平，但是我还是要谢谢这些朋友的指教。我愿意虚心汲取教训，以后写文章一定更加严谨，减少错误。</p>

<p>6.</p>

<p>不过，我也想借这个机会澄清一些误解。</p>

<p>我不知道，这些朋友是怎么看待这个网志的。我想问问他们，你们以为我为什么要写这个网志？为了出名？为了赚钱？为了满足虚荣心，显示本人无所不知，很能写？……</p>

<p>不，这些都不是理由。事实上，从任何利益的角度考虑，写网志都是很不值得的事情。一方面，这里的任何一篇文章，写作时间通常都需要2~6小时，而我写了1000多篇，付出的时间和精力难以想像。另一方面，网站唯一的直接收入就是Google广告，但是只能刚好弥补主机和域名的费用，一点都没有多余。如果想出名和赚钱的话，我想一定有比这更轻松的方法吧。至于虚荣心，写了这么久，每天访问量也只有几千IP，我想聪明一点早该知难而退了。</p>

<p>我之所以还在写，是因为我把这个网志当作自己的学习笔记。不断地积累新知识，思考、总结、记录下来，令我感到一种学习的乐趣。所以，我希望大家知道一点，我的网志首先是一个私人空间，不是公共媒体。有些人的网志是为了向公众发言，我的不是。</p>

<p>正是因为我把这里看作一个私人笔记本，所以有时候写作比较随便，经常写一些自己刚刚接触到、没有全面认识的东西。因为笔记里记录的，总是你需要学习的东西，而不是你已经学会的东西，对不对？另一方面，也是因为这是笔记，所以有时候我怕麻烦，没有给出充分的论证和足够的核对，就匆忙写下自己的看法。但是，这不代表我不严谨和粗疏，我只是认为，个人笔记和公开发表的作品不一样。如果是公开发表的论文，每句话都必须有依据，经得起考验，而如果是笔记的话，那就不一定那么严格了。这也是为什么我公开发表的文章，远远少于网志文章的原因之一。</p>

<p>当然，我不为自己的错误辩解，可以告诉大家，我比任何人都更严厉地对待自己的错误。我时刻愿意听取他人的批评，修正自己的错误，因为这是对我有利的。我只是希望大家知道，这个网志的内容本来就不可避免地包含着错误，所以请不要因为文章中有错误，就对我这个人下评判。借用一句张五常的话，“要斩，就斩我的文章，不要斩我的人”。</p>

<p>7.</p>

<p>现在再回到Android的话题，我还有最后一点感想要说。</p>

<p>请先看一些网友对此次Linux内核撤下Android代码事件的评论：</p>

<p>　　* Google是上市公司，它当然选择对自己最有利的做法。</p>

<p>　　* Linux内核是Google能找到的最便宜的内核，为什么不用？</p>

<p>　　* Google又没违反License，还有什么可说的。</p>

<p>　　* 为什么Android的代码非要回馈给Linux呢？奇怪的想法。</p>

<p>这些意见似乎认为Google的行为符合合约和“自利原则”，因此无可指责。当然，我也同意，从这个角度看，Google没有做错。但是，如果换个角度，让我们从“利他原则”的角度思考，会不会得到不一样的结论呢？比如，Google这样做是不是符合开源运动的理想？有没有伤害到开源社区的利益？……</p>

<p>不过，我不打算在这个问题上深究下去。在一个不正义的第三世界人口大国，讨论到底是“利己”重要，还是“利他”重要，实在是一个太艰难的问题。与其想要找到答案，还不如对自身命运叹息。</p>

<p>令我真正愤怒的，是下面这样的评论：</p>

<p>　　* GPL这个病毒又作恶了！</p>

<p>　　* 早觉得Linux像宗教。有时候在想，那个RMS驾崩了怎么办呢？五六十岁的人了，得个病死了很正常。</p>

<p>　　* 我看RMS没那么容易挂，一般教主都是长命百岁的老妖怪。</p>

<p>我早就感到了，在中国的软件业中，有一种针对自由软件运动的仇恨。不是一般的反感，而是那种咬牙切齿、死而后快的真正仇恨。我想问问这些人，你们的仇恨是从哪里来的？</p>

<p>自由软件运动和它的创始人Richard Stallman，在没有任何索取的前提下，向全世界无偿奉献出了高质量的软件，全人类都受益于他们的代码，难道这样的人应该被仇恨和诅咒吗？你们的良心到哪里去了？</p>

<p>自由软件运动的理想，是让地球上每一个人都能使用高质量的软件，决不让软件成为阻挡人类自由的障碍。难道这样的理想不值得赞美和追随吗？你们自己没有这种理想，难道还想消灭别人的理想？难道你们非要把软件做成他人的监狱，才感到心满意足？</p>

<p>说到底，不过是因为自由软件可以免费获得，阻碍了这些人的发财梦，所以他们才会恨得这样咬牙切齿。是的，地球上就是有这种人类，谁妨碍了他发财，他就想除掉你。只要自身的利益得到保障，他人的死活才无所谓呢。</p>

<p>正是由于这种自私的人的存在，才需要我们更坚定地支持自由软件。许多人觉得Richard Stallman顽固得可笑，任何非GPL许可证的软件一概拒绝，有必要吗？但是你要知道，如果不是因为他这样坚守原则，自由软件运动绝对坚持不到今天。因为这个世界到处都是陷阱和烂泥，还有时刻准备着的阴谋家，所以你不能做一点妥协。你退让了一步，整个阵地就全没了。</p>

<p>8.</p>

<p>回想十年前，Windows 98正是如日中天，Windows XP即将上市，IE的市场份额超过90%，微软公司多么得不可一世，没有人相信它会被击败。大家觉得，只要跟着微软公司走，一定不会错。那时的Linux，还只是很不成熟的黑客玩具，不要说桌面了，就连服务器市场的份额也很小。那时，要是有人说，Linux一定会胜过Windows，大家都会觉得这是痴人说梦。</p>

<p>但是，十年过去了，发生了什么？微软公司依然强大，但已不是不可战胜了；Linux已经跻身主流操作系统，装有它的笔记本电脑在商场里很容易买到；以Firefox为代表的开源浏览器，占据了越来越多的市场份额，超过IE的时刻已经近在眼前了。这就是自由软件的力量，不管你愿意不愿意，就像那副著名油画的名字<a href="http://images.google.cn/images?hl=zh-CN&q=%E8%87%AA%E7%94%B1%E5%BC%95%E5%AF%BC%E4%BA%BA%E6%B0%91&sourceid=navclient-ff&rlz=1B3GGGL_zh-CNCN213CN213&um=1&ie=UTF-8&sa=N&tab=wi" target="_blank">《自由引导人民》</a>，就是这样。</p>

<p>你敢想像，再过十年会发生什么情况吗？如果一边是封闭软件，另一边是开源软件，你赌哪一边？相信我，跟随自由的东西，绝对不会错。历史已经证明，并将继续证明这一点。</p>

<p>所以，我还是要重复前一篇文章中的话：如果Android继续走这种分裂Linux的道路，它不会成功的，不要说超过iPhone，再过二三年，它自己就会被别的开源手机操作系统取代。</p>

<p>（完）</p>]]></description>
         <link>http://www.ruanyifeng.com/blog/2010/02/revisiting_android_licenses.html</link>
         <guid>http://www.ruanyifeng.com/blog/2010/02/revisiting_android_licenses.html</guid>
         <category>IT</category>
         <pubDate>Fri, 19 Feb 2010 01:34:55 +0800</pubDate>
      </item>
            <item>
         <title>文件分享的新动向（2010年1月~2月）</title>
         <description><![CDATA[<p>对于下载爱好者来说，2009年糟糕透顶。</p>]]><![CDATA[<p>BT下载的两大旗帜网站——海盗湾和Mininova——都在2009年遭受重大挫折。上半年，海盗湾<a href="http://www.ruanyifeng.com/blog/2009/04/some_thoughts_on_the_pirate_bay_guilty.html" target="_blank">一审败诉</a>，四名管理员被判有罪，需要入狱服刑；下半年，<a href="http://www.mininova.org" target="_blank">Mininova</a>一审败诉，被迫撤下了所有侵权的Torrent文件，等于实际上的关闭。</p>

<p>此外，版权组织还加大力度，围剿其他的BT下载网站，在法庭上获得了一系列的胜利。文件分享运动陷入了低潮，BT下载受到了前所未有的冲击。</p>

<p><img alt="bg2010021502.jpg" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010021502.jpg" /></p>

<p>但是，哪里有压迫，哪里就有反抗。新技术的潮流，不是陈旧的法律条文能够阻止的。一片静悄悄之中，文件分享正在发生一些新的变化。下面，我根据<a href="http://torrentfreak.com/" target="_blank">TorrentFreak</a>的报道，总结近来的一些值得注意的事件。</p>

<p><strong>1. TorrIndex.com</strong></p>

<p><img alt="bg2010021501.png" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010021501.png" /></p>

<p>1月17日，<a href="http://torrindex.com/" target="_blank">TorrIndex</a>上线。它是世界上第一个只提供磁力链接（Magnet URL）、不提供Torrent文件的BT资源索引网站。</p>

<p>理论上，磁力链接不需要Tracker服务器，是一种去中心化的下载模式，监管难度极高。因此，被认为是未来的发展方向，详细介绍可以参阅我写的<a href="http://www.ruanyifeng.com/blog/2009/11/future_of_bittorrent.html" target="_blank">《BT下载的未来》</a>。</p>

<p><strong>2. IPREDator.com</strong></p>

<p><img alt="bg2010021503.png" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010021503.png" /></p>

<p>1月21日，海盗湾的最新项目<a href="https://www.ipredator.se/?lang=en" target="_blank">IPREDator</a>上线，提供VPN服务。使用该服务的客户可以隐藏自己的IP地址，不会留下可追踪的痕迹。</p>

<p>这个网站的直接目的，是对抗瑞典国会2009年通过的反盗版法IPRED。该法明确规定，ISP有义务向权利人提交侵权用户的IP地址。海盗湾将这个网站定名为IPREDator，直译就是“吃掉IPRED的人”。</p>

<p>虽然在技术上，它与其他的VPN服务没有特殊之处，而且3个月15欧元的收费标准也并不便宜，但是海盗湾表示，绝不生成、更不会保留任何的系统日志文件，以及未来还会对客户端与服务器之间的通信，采取进一步的加密。这意味着，如果你使用了IPREDator，即使是神仙也无法逆向查到你。</p>

<p><strong>3. Demonoid.com</strong></p>

<p><img alt="bg2010021504.jpg" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010021504.jpg" /></p>

<p>1月23日，<a href="http://www.demonoid.com/" target="_blank">Demonoid</a>宣布从封闭式Tracker，变为开放式Tracker。这使它成为仅次于海盗湾的世界第二大BT下载网站。</p>

<p>去年9月，Demonoid宣布暂时关闭。许多人以为，它不会再回来了。但是12月中旬，它重新开张，并且在今年1月完成了升级。目前，它已经完全可以取代原来Mininova的角色了。</p>

<p><strong>4. ReactorFeed.com</strong></p>

<p><img alt="bg2010021505.jpg" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010021505.jpg" /></p>

<p>1月26日，<a href="http://reactorfeed.com/" target="_blank">ReactorFeed</a>上线。它是Torrent精选网站<a href="http://sharereactor.com/" target="_blank">ShareReactor</a>的一个子项目，也属于海盗湾出品。</p>

<p>它的功能就是提供一个Web界面，让你把选中的torrent文件的网址加入其中，然后生成一个Feed。</p>

<p>这有什么用？最简单的用途就是让你不会忘记想要下载哪些文件。但是，更主要的服务对象，是那些在家里一天24小时开着BT下载软件的人。因为有些软件可以定时读取Feed，所以不管你在哪里、在干什么，都能通过ReactorFeed指定下载目标，达到远程向BT下载软件发布下载命令的目的。</p>

<p><strong>5. Falcon</strong></p>

<p><img alt="bg2010021506.jpg" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010021506.jpg" /></p>

<p>2月1日，<a href="http://falcon.utorrent.com/" target="_blank">Falcon</a>上线，开始测试。它是目前用户越多的BT下载软件<a href="http://www.utorrent.com/" target="_blank">uTorrent</a>的子项目。</p>

<p>它的作用就是为uTorrent提供一个web界面。这样说吧，你在家中打开了uTorrent，然后你去上班了，Falcon就能让你在公司里远程操作uTorrent，而你只需要有浏览器就可以了。</p>

<p><img alt="bg2010021507.jpg" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010021507.jpg" /></p>

<p><strong>6. Flattr.com</strong></p>

<p><img alt="bg2010021508.jpg" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010021508.jpg" /></p>

<p>2月13日，<a href="http://flattr.com/" target="_blank">Flattr</a>上线，开始测试。这个网站与文件分享没有关系，但是由于它是海盗湾成员Peter Sunde的个人作品，所以也顺便在这里介绍一下。</p>

<p>这是一个推广“微支付”的网站。假定你有10美元，想要用来支持那些写出好文章的人，你就可以把它交给这个网站。以后，每当你看到喜欢的文章，就按一下文章旁边的Flattr按钮，通知该网站向此文的作者支付一小笔钱，比如五毛。通过这种方式，你用自己的行动向作者表达了你的支持，而作者也得到了实际的物质鼓励。</p>

<p>（完）</p>]]></description>
         <link>http://www.ruanyifeng.com/blog/2010/02/new_developments_of_file-sharing_in_early_2010.html</link>
         <guid>http://www.ruanyifeng.com/blog/2010/02/new_developments_of_file-sharing_in_early_2010.html</guid>
         <category>WWW</category>
         <pubDate>Tue, 16 Feb 2010 00:32:04 +0800</pubDate>
      </item>
            <item>
         <title>推荐一支台湾广告《蔡莺妹的故事》</title>
         <description><![CDATA[<p><span class="firstchar">如</span>果看不见下面的播放窗口，请直接点击：<a href="http://v.youku.com/v_show/id_XMTUyMDgwODcy.html" target="_blank">优酷</a>，<a href="http://www.tudou.com/programs/view/3ptsdnA2B6E/" target="_blank">土豆</a>，<a href="http://www.youtube.com/watch?v=IZD1Bx1yPRU" target="_blank">Youtube</a>。</p>]]><![CDATA[<p><embed src="http://player.youku.com/player.php/sid/XMTUyMDgwODcy/v.swf" quality="high" width="480" height="400" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash"></embed></p>

<p>这支广告取材于真人真事<a href="http://www.wretch.cc/blog/clairehsiao/9736795" target="_blank">《一個阿嬤的勇敢故事》</a>（需翻墙），由奥美广告制作。我觉得超过了奥美在中国大陆的所有作品。</p>

<p>从它身上，我再一次看到了台湾社会的可爱之处：真正地关心普通民众的生活，宣扬爱和关怀。</p>

<p>（完）</p>]]></description>
         <link>http://www.ruanyifeng.com/blog/2010/02/a_taiwan_ad.html</link>
         <guid>http://www.ruanyifeng.com/blog/2010/02/a_taiwan_ad.html</guid>
         <category>Movies</category>
         <pubDate>Sat, 13 Feb 2010 23:36:27 +0800</pubDate>
      </item>
            <item>
         <title>关于URL编码</title>
         <description><![CDATA[<p><strong>一、问题的由来</strong></p>

<p>URL就是网址，只要上网，就一定会用到。</p>]]><![CDATA[<p><img alt="bg2010021101.jpg" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010021101.jpg" /></p>

<p>一般来说，URL只能使用英文字母、阿拉伯数字和某些标点符号，不能使用其他文字和符号。比如，世界上有英文字母的网址“http://www.abc.com”，但是没有希腊字母的网址“http://www.aβγ.com”（读作阿尔法-贝塔-伽玛.com）。这是因为网络标准<a href="http://www.ietf.org/rfc/rfc1738.txt" target="_blank">RFC 1738</a>做了硬性规定：</p>

<blockquote><div>

<p>"...Only alphanumerics [0-9a-zA-Z], the special characters "$-_.+!*'()," [not including the quotes - ed], and reserved characters used for their reserved purposes may be used unencoded within a URL."</p>

<p>“只有字母和数字[0-9a-zA-Z]、一些特殊符号“$-_.+!*'(),”[不包括双引号]、以及某些保留字，才可以不经过编码直接用于URL。”</p>

</div></blockquote>

<p>这意味着，如果URL中有汉字，就必须编码后使用。但是麻烦的是，RFC 1738没有规定具体的编码方法，而是交给应用程序（浏览器）自己决定。这导致“URL编码”成为了一个混乱的领域。</p>

<p>下面就让我们看看，“URL编码”到底有多混乱。我会依次分析四种不同的情况，在每一种情况中，浏览器的URL编码方法都不一样。把它们的差异解释清楚之后，我再说如何用Javascript找到一个统一的编码方法。</p>

<p><strong>二、情况1：网址路径中包含汉字</strong></p>

<p>打开IE（我用的是8.0版），输入网址“<strong>http://zh.wikipedia.org/wiki/春节</strong>”。注意，“春节”这两个字此时是网址路径的一部分。</p>

<p><img alt="bg2010021102.jpg" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010021102.jpg" /></p>

<p>查看HTTP请求的头信息，会发现IE实际查询的网址是“<strong>http://zh.wikipedia.org/wiki/%E6%98%A5%E8%8A%82</strong>”。也就是说，IE自动将“春节”编码成了“%E6%98%A5%E8%8A%82”。</p>

<p><img alt="bg2010021103.png" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010021103.png" /></p>

<p>我们知道，“春”和“节”的utf-8编码分别是“E6 98 A5”和“E8 8A 82”，因此，“%E6%98%A5%E8%8A%82”就是按照顺序，在每个字节前加上%而得到的。（具体的转码方法，请参考我写的<a href="http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html" target="_blank">《字符编码笔记》</a>。）</p>

<p>在Firefox中测试，也得到了同样的结果。所以，<strong>结论1就是，网址路径的编码，用的是utf-8编码。</strong></p>

<p><strong>三、情况2：查询字符串包含汉字</strong></p>

<p>在IE中输入网址“<strong>http://www.baidu.com/s?wd=春节</strong>”。注意，“春节”这两个字此时属于查询字符串，不属于网址路径，不要与情况1混淆。</p>

<p><img alt="bg2010021104.jpg" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010021104.jpg" /></p>

<p>查看HTTP请求的头信息，会发现IE将“春节”转化成了一个乱码。</p>

<p><img alt="bg2010021105.png" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010021105.png" /></p>

<p>切换到十六进制方式，才能清楚地看到，“春节”被转成了“B4 BA BD DA”。</p>

<p><img alt="bg2010021106.png" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010021106.png" /></p>

<p>我们知道，“春”和“节”的GB2312编码（我的操作系统“Windows XP”中文版的默认编码）分别是“B4 BA”和“BD DA”。因此，IE实际上就是将查询字符串，以GB2312编码的格式发送出去。</p>

<p>Firefox的处理方法，略有不同。它发送的HTTP Head是“wd=%B4%BA%BD%DA”。也就是说，同样采用GB2312编码，但是在每个字节前加上了%。</p>

<p><img alt="bg2010021107.png" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010021107.png" /></p>

<p>所以，<strong>结论2就是，查询字符串的编码，用的是操作系统的默认编码。</strong></p>

<p><strong>四、情况3：Get方法生成的URL包含汉字</strong></p>

<p>前面说的是直接输入网址的情况，但是更常见的情况是，在已打开的网页上，直接用Get或Post方法发出HTTP请求。</p>

<p>根据台湾中兴大学<a href="http://web.nchu.edu.tw/~jlu/classes/xml/ajax/urlencoding.shtml" target="_blank">吕瑞麟老师的试验</a>，这时的编码方法由网页的编码决定，也就是由HTML源码中字符集的设定决定。</p>

<p>　　&lt;meta http-equiv="Content-Type" content="text/html;charset=xxxx"&gt;</p>

<p>如果上面这一行最后的charset是UTF-8，则URL就以UTF-8编码；如果是GB2312，URL就以GB2312编码。</p>

<p>举例来说，百度是GB2312编码，Google是UTF-8编码。因此，从它们的搜索框中搜索同一个词“春节”，生成的查询字符串是不一样的。</p>

<p>百度生成的是%B4%BA%BD%DA，这是GB2312编码。</p>

<p><img alt="bg2010021109.jpg" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010021109.jpg" /></p>

<p>Google生成的是%E6%98%A5%E8%8A%82，这是UTF-8编码。</p>

<p><img alt="bg2010021108.jpg" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010021108.jpg" /></p>

<p>所以，<strong>结论3就是，GET和POST方法的编码，用的是网页的编码。</strong></p>

<p><strong>五、情况4：Ajax调用的URL包含汉字</strong></p>

<p>前面三种情况都是由浏览器发出HTTP请求，最后一种情况则是由Javascript生成HTTP请求，也就是Ajax调用。还是根据吕瑞麟老师的文章，在这种情况下，IE和Firefox的处理方式完全不一样。</p>

<p>举例来说，有这样两行代码：</p>

<p>　　url = url + "?q=" +document.myform.elements[0].value; // 假定用户在表单中提交的值是“春节”这两个字</p>

<p>　　http_request.open('GET', url, true);</p>

<p>那么，无论网页使用什么字符集，IE传送给服务器的总是“q=%B4%BA%BD%DA”，而Firefox传送给服务器的总是“q=%E6%98%A5%E8%8A%82”。也就是说，<strong>在Ajax调用中，IE总是采用GB2312编码（操作系统的默认编码），而Firefox总是采用utf-8编码。这就是我们的结论4。</strong></p>

<p><strong>六、Javascript函数：escape()</strong></p>

<p>好了，到此为止，四种情况都说完了。</p>

<p>假定前面你都看懂了，那么此时你应该会感到很头痛。因为，实在太混乱了。不同的操作系统、不同的浏览器、不同的网页字符集，将导致完全不同的编码结果。如果程序员要把每一种结果都考虑进去，是不是太恐怖了？有没有办法，能够保证客户端只用一种编码方法向服务器发出请求？</p>

<p>回答是有的，就是使用Javascript先对URL编码，然后再向服务器提交，不要给浏览器插手的机会。因为Javascript的输出总是一致的，所以就保证了服务器得到的数据是格式统一的。</p>

<p>Javascript语言用于编码的函数，一共有三个，最古老的一个就是escape()。虽然这个函数现在已经不提倡使用了，但是由于历史原因，很多地方还在使用它，所以有必要先从它讲起。</p>

<p>实际上，escape()不能直接用于URL编码，它的真正作用是返回一个字符的Unicode编码值。比如“春节”的返回结果是%u6625%u8282，也就是说在Unicode字符集中，“春”是第6625个（十六进制）字符，“节”是第8282个（十六进制）字符。</p>

<p><img alt="bg2010021110.png" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010021110.png" /></p>

<p>它的具体规则是，除了ASCII字母、数字、标点符号“@ * _ + - . /”以外，对其他所有字符进行编码。在\u0000到\u00ff之间的符号被转成%xx的形式，其余符号被转成%uxxxx的形式。对应的解码函数是unescape()。</p>

<p>所以，“Hello World”的escape()编码就是“Hello%20World”。因为空格的Unicode值是20（十六进制）。</p>

<p><img alt="bg2010021111.png" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010021111.png" /></p>

<p>还有两个地方需要注意。</p>

<p>首先，无论网页的原始编码是什么，一旦被Javascript编码，就都变为unicode字符。也就是说，Javascipt函数的输入和输出，默认都是Unicode字符。这一点对下面两个函数也适用。</p>

<p><img alt="bg2010021112.png" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010021112.png" /></p>

<p>其次，escape()不对“+”编码。但是我们知道，网页在提交表单的时候，如果有空格，则会被转化为+字符。服务器处理数据的时候，会把+号处理成空格。所以，使用的时候要小心。</p>

<p><strong>七、Javascript函数：encodeURI()</strong></p>

<p>encodeURI()是Javascript中真正用来对URL编码的函数。</p>

<p>它着眼于对整个URL进行编码，因此除了常见的符号以外，对其他一些在网址中有特殊含义的符号“; / ? : @ & = + $ , #”，也不进行编码。编码后，它输出符号的utf-8形式，并且在每个字节前加上%。</p>

<p><img alt="bg2010021113.png" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010021113.png" /></p>

<p>它对应的解码函数是decodeURI()。 </p>

<p><img alt="bg2010021114.png" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010021114.png" /></p>

<p>需要注意的是，它不对单引号'编码。</p>

<p><strong>八、Javascript函数：encodeURIComponent()</strong></p>

<p>最后一个Javascript编码函数是encodeURIComponent()。与encodeURI()的区别是，它用于对URL的组成部分进行个别编码，而不用于对整个URL进行编码。</p>

<p>因此，“; / ? : @ & = + $ , #”，这些在encodeURI()中不被编码的符号，在encodeURIComponent()中统统会被编码。至于具体的编码方法，两者是一样。</p>

<p><img alt="bg2010021115.png" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010021115.png" /></p>

<p>它对应的解码函数是decodeURIComponent()。</p>

<p>（完）</p>]]></description>
         <link>http://www.ruanyifeng.com/blog/2010/02/url_encoding.html</link>
         <guid>http://www.ruanyifeng.com/blog/2010/02/url_encoding.html</guid>
         <category>IT</category>
         <pubDate>Thu, 11 Feb 2010 18:06:52 +0800</pubDate>
      </item>
            <item>
         <title>【活在中国】谁是恶意软件？</title>
         <description><![CDATA[<p>新增一个“活在中国”栏目。</p>]]><![CDATA[<p>专门刊登生活在这个国家的真实经历，欢迎大家赐文。</p>

<p>今天刊登的是，“羊城网”小劳站长的来信。从他的经历可以看到，中国的小站长们，不仅要遭受<a href="http://www.ruanyifeng.com/blog/2010/01/how_can_chinese_web_forum_survive.html" target="_blank">政策压力</a>，还会受到其他的欺压。</p>

<p>=======================</p>

<p>一峰，</p>

<p>我们又遇到麻烦了。</p>

<p>2月3日，我们接连收到网友报告，称网站被瑞星防火墙屏蔽了。</p>

<p><img alt="bg2010020701.jpg" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010020701.jpg" /></p>

<p>我们联系瑞星公司，客服建议我们通过该公司的<a href="http://union.rising.com.cn/index/index.aspx" target="_blank">在线工具</a>进行安全检测。结果显示，有两条URL被挂马。</p>

<p><img alt="bg2010020704.jpg" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010020704.jpg" /></p>

<p>经查看，该两个网页并无任何异常，也无任何连接指向该工具所称的木马网址。其他公司的安全产品（包括诺顿、安全360等）亦无告警。但为了保险起见，我们还是删除了上述两个网页。但删除后，瑞星的防火墙仍然称我们的网站为恶意网站。而通过该工具检测其他一些主流门户网站时，发现新浪、搜狐、网易被“挂马”的URL数量远远高于我们，但瑞星防火墙却并无任何有关恶意网站的提示。</p>

<p>瑞星公司的客服人员建议我们加入“瑞星云安全网站联盟”、挂载该公司提供的监测代码，暗示与其合作，问题就会解决。</p>

<p><img alt="bg2010020703.png" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010020703.png" /></p>

<p>至此，我们终于看出了其中的猫腻，瑞星公司的行为实际上是对一些中小网站进行施压，在每个网页挂载它的代码，相当于免费帮它卖广告。至于下一步它会怎样利用这些代码（收集用户信息？），就无从得知了。</p>

<p><img alt="bg2010020702.jpg" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010020702.jpg" /><br />
 <br />
另一方面，瑞星公司自己的网站，去年七月份就曾<a href="http://news.newhua.com/news1/Safe_news/2009/727/09727162091H807H482K5KDIAB3GC9CEC3JK0F7H5CKA2D350E3KCFH.html" target="_blank">被黑客攻击并挂载木马</a>，并且瑞星杀毒软件上月亦曝出存在<a href="http://news.xinhuanet.com/internet/2010-01/29/content_12900825.htm" target="_blank">高危漏洞</a>，显然不能指望它来保护我们。如果我们挂了该公司的代码，反而有可能造成安全隐患。</p>

<p>此外，最近《北京晚报》的报道<a href="http://www.google.com/search?hl=zh-CN&rlz=1B3GGGL_zh-CNCN213CN213&newwindow=1&q=%E5%8C%97%E4%BA%AC+%E7%BD%91%E7%9B%91%E5%A4%84%E9%95%BF+%E7%91%9E%E6%98%9F&btnG=Google+%E6%90%9C%E7%B4%A2&lr=&aq=f&oq=" target="_blank">《北京网监处长受贿1400余万办假案受审 承认帮瑞星公司抓人》</a>，曝光了瑞星公司行贿原北京市公安局网监处处长，通过假报案、假损失、假鉴定的手法陷害竞争对手。这种公司的商业诚信，是令人质疑的。</p>

<p>因此，我们最后决定，不与其合作，不参与“瑞星云安全网站联盟”，并建议所有瑞星防火墙的用户卸载该产品。但是，单单靠我们一家小网站，确实难以与瑞星这种庞然大物对抗，希望通过您的网志让更多的网友了解此事。</p>

<p>羊城网 小劳</p>

<p>2009年2月4日</p>

<p>（完）</p>]]></description>
         <link>http://www.ruanyifeng.com/blog/2010/02/who_is_malicious_software.html</link>
         <guid>http://www.ruanyifeng.com/blog/2010/02/who_is_malicious_software.html</guid>
         <category>Society</category>
         <pubDate>Sun, 07 Feb 2010 12:10:40 +0800</pubDate>
      </item>
            <item>
         <title>Android，开源还是封闭？</title>
         <description><![CDATA[<p>满大街都在谈论Android。</p>]]><![CDATA[<p>它是当红炸子鸡。许多人觉得，iPhone将受到它的强力挑战。</p>

<p><img alt="bg2010020401.png" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010020401.png" /></p>

<p>我也曾经对它充满了期待，但是后来的事态发展，令我改变了看法。前几天，我就在网志上写了自己的<a href="http://www.ruanyifeng.com/blog/2010/02/samsung_omnia_ii_i8000_part_i.html" target="_blank">担忧</a>：</p>

<blockquote><div>

<p>“首先，Android应用程序只能用java语言开发，莫非所有的应用程序都运行在一个巨大的虚拟机上？（【更正】网友留言指出，2009年6月Android发布NDK工具包，支持C/C++语言编程，不过性能不如SKD工具包中的Java语言。 ）</p>

<p>其次，Google对Android采用了一种全面霸权式的管理，完全不是其他开源软件的开发方式，一切都由Google说了算，很多地方是黑箱，外界不得而知。”</p>

</div></blockquote>

<p>没有想到，仅仅过了两天，担忧就变成了现实。Linux Kernel的维护者<a href="http://en.wikipedia.org/wiki/Greg_Kroah-Hartman" target="_blank">Greg Kroah-Hartman</a>宣布，<a href="http://linux.slashdot.org/story/10/02/03/1932222/Android-and-the-Linux-Kernel-Community" target="_blank">将Android 代码从 Linux kernel 代码库中删除</a>。这意味着，Linux Kernel的开发小组不认可Android的贡献，两者产生了冲突。</p>

<p>消息公布以后，外界普遍觉得惊讶和可惜。好不容易，才有了一个这么受欢迎的开源手机系统，应该齐心协力、共同开发才对，为什么要“窝里斗”呢？到底是什么矛盾，使得Linux Kernel小组剔除Android代码呢？</p>

<p>Greg Kroah-Hartman写了一篇详细的<a href="http://www.kroah.com/log/linux/android-kernel-problems.html" target="_blank">文章</a>，解释这个决定。下面就来看看，他是怎么说的，以及Android到底是一个什么样的系统。</p>

<p>在这之前，你最好知道Greg Kroah-Hartman是谁。他是目前Linux Kernel的核心开发人员，负责stable软件包的发布。就是说，每一个新版本的Linux Kernel，都是经过他的手流出来的。此外，他还负责硬件驱动的部署。而他的手机就是HTC G1，每天都在使用。所以，他是绝对有资格谈论这个问题的，他的看法代表了Linux社区对Android的看法。</p>

<p>首先，他指出Android和其他的Linux发行版不一样：</p>

<blockquote><div>

<p>“Google has taken the Linux kernel, and nothing else from a "traditional" Linux system.</p>

<p>Google只用了kernel，别的东西都没用。”</p>

</div></blockquote>

<p>这就是说，与Ubuntu、Debian、Redhat这样的传统Linux发行版相比，只有系统的底层结构是一样的，其他东西在Android里都不一样，尤其是程序员的编程接口是完全不同的。因此，Android应用程序都必须重新写过，现存的Linux程序无法移植上去。所以，从严格意义上说，Android是一种全新的系统，它与Linux的距离，比Mac OS与Linux的距离还要远。</p>

<p><img alt="bg2010020402.jpg" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010020402.jpg" /></p>

<p>然后，Greg Kroah-Hartman肯定了Android这样做的积极意义：</p>

<blockquote><div>

<p>“Android also solves the problem that the phone manufacturers had been having for many years: a free version of Java and a unified application layer that programmers can write to that will work on all phone platforms that integrate it. </p>

<p>它解决了长期令手机制造商头痛不已的问题：业界缺乏一个开源的Java虚拟机，以及统一的应用程序接口。现在，程序员只要写一次程序，就能在各种手机硬件平台之上使用。”</p>

</div></blockquote>

<p>这段话解释了，为什么Android的应用程序，都必须用Java语言开发。因为不这样做的话，没法让程序做到硬件无关。</p>

<p>且慢，这真的是理由吗？传统的Linux系统，也并不依赖特定的硬件啊！只要把源代码根据不同的平台，分别编译一下，同一个程序不也照样可以在不同的硬件架构、不同的Linux发行版中使用吗？</p>

<p>那么，Android只采用kernel、只允许用java编程的真正原因，到底是什么？</p>

<p>台湾的科技网志<a href="http://mmdays.com/2008/10/11/android-%E6%B7%BA%E6%8E%A2%E4%BA%8C%EF%BC%9A%E7%B3%BB%E7%B5%B1%E6%9E%B6%E6%A7%8B/" target="_blank">MMDays</a>一语道破真相：</p>

<blockquote><div>

<p>“Linux kernel 的版权是 GPL。</p>

<p>这下问题来了：如果你是硬件厂商，希望你的硬件能在 Linux kernel 下运作，那么就必须要有驱动程序。如果驱动程序的程序代码公开，等于硬件规格也公开的差不多了。许多厂商不愿意这么做，所以就提供编好的驱动程序，但不提供原始码。</p>

<p>Android 的重点就是商业应用，Google采用了一些手法来绕过这问题。他们把驱动程序移到 "userspace"，也就是说，把驱动程序变成在 Linux kernel 上头跑，而不是一起跑的东西，这样就可以避过GPL。然后，在 kernel 这边开个小门，让本来不能直接控制到硬件的 "userspace" 程序也可以碰得到，这样只要把"开个小门"的程序代码公布就行啦。”</p>

</div></blockquote>

<p>看明白了吗？</p>

<p>这段话的意思是说，Google玩了一个花招，在kernel和应用程序之间，自己做了一个中间层，这样就既不违反GPL许可，又能不让外界看到厂商的硬件驱动和应用程序的源码。</p>

<p>里面的关键在于，Kernel和Android的许可证不一样，前者是GPL许可证，后者是Apache Software License（简称ASL）许可证。GPL许可证规定，对源码的任何修改都必须开源，所以Android开源了，因为它修改了Kernel。而ASL许可证规定，可以随意使用源码，不必开源，所以建筑在Android之上的硬件驱动和应用程序，都可以保持封闭。为了得到更多厂商的支持，Google有意选择了这样做，并且特意修改Kernel，使得原本应该包括在kernel中的某些功能，都被转移到了userspace之中，因此得以避开开源。</p>

<p>这样做或许有利于推广Android，吸引厂商和软件开发商的加入，但是Google也放弃了构建一个真正开源的手机系统的机会，从而也就不能获得由全世界程序员提供智慧、分享代码、推动创新的好处。关于许可证问题的深入讨论，请阅读Ryan Paul的文章<a href="http://arstechnica.com/old/content/2007/11/why-google-chose-the-apache-software-license-over-gplv2.ars" target="_blank">《Why Google chose the Apache Software License over GPLv2 for Android》</a>。  </p>

<p>Google的这种做法，直接后果就是给Linux Kernel带来了麻烦。Greg Kroah-Hartman清楚地说出了自己的不满。</p>

<blockquote><div>

<p>“...any drivers written for Android hardware platforms, can not get merged into the main kernel tree because they have dependencies on code that only lives in Google's kernel tree, causing it to fail to build in the kernel.org tree.</p>

<p>所有为Android写的硬件驱动，都不能合并入kernel。因为它们只在Google的代码里有效，在kernel里根本没法用。</p>

<p>Because of this, Google has now prevented a large chunk of hardware drivers and platform code from ever getting merged into the main kernel tree. Effectively creating a kernel branch that a number of different vendors are now relying on.</p>

<p>由于这个原因，Google也从不把大量的硬件驱动程序和平台源码向kernel提交。实际上，它创造出了一个kernel的分支，大量的开发者都依赖那个分支。”</p>

</div></blockquote>

<p>这就是Android干的事情：它修改了Kernel，但是又不提供修改的细节，自己搞了一个封闭的系统。说得难听一点，它利用了开源社区，要求开源社区为它做贡献，却又不愿提供回报。</p>

<p>所以，Linux Kernel就把Android踢出去了，真是再正常不过了。</p>

<p>人们有权利质疑，Android这样的哲学是否正确？是否符合Google“不作恶”的口号？如果Android继续这样封闭下去，那么开源社区为什么要为它免费制作软件呢？因为我又不是在为开源社区服务，而是在为Google服务。既然这样的话，那还不如去支持iPhone呢，至少能在软件商店里多卖一点钱，而且乔布斯看上去也更酷一点。</p>

<p><img alt="bg2010020403.jpg" src="http://www.ruanyifeng.com/blog/upload/2010/02/bg2010020403.jpg" /></p>

<p><a href="http://linux.slashdot.org/story/10/02/03/1932222/Android-and-the-Linux-Kernel-Community" target="_blank">slashdot</a>上有很多关于此事的讨论。有人指出：</p>

<blockquote><div>

<p>“Google自己的网站，与微软的网站一样封闭。它开源出来的东西，都是根据GPL许可证不得不开源的。”</p>

</div></blockquote>

<p>好吧，姑且不谈Google本身，因为它至少不要求外界提供支持。但是Android不一样，你不能假装成开源系统，骗取社区的支持，然后又干着封闭系统的勾当。以你的实力，不用Linux Kernel，自己开发一个Google Kernel，想必也不是难事。要是这样做，任何人都不会有非议。可是，既然你选择了Linux Kernel，并且大张旗鼓地宣传，那么你奉献出什么呢？难道你的奉献就是给Kernel开一个口子吗？</p>

<p>Google必须做出改变。正如Greg Kroah-Hartman最后的呼吁：</p>

<blockquote><div>

<p>“I really don't know. Google shows no sign of working to get their code upstream anymore. </p>

<p>我真的不知道未来。Google看上去没有任何改变代码的迹象。</p>

<p>I do hold out hope that Google does come around and works to fix their codebase to get it merged upstream to stop the huge blockage that they have now caused in a large number of embedded Linux hardware companies.</p>

<p>我确实希望Google做出改变，把它的代码合并进我们的代码，弥补已经出现的代码分裂。</p>

<p>I've privately offered in the past to help this work get done, and am doing again here publicly. But I need the help of the Google developers to make it happen, without them, nothing can change.</p>

<p>我私底下已经说过，我愿意帮助完成这项工作，在这里我再次公开这样说。但是如果没有Google程序员的加入，什么也不会发生。”</p>

</div></blockquote>

<p>Android必须变成一个真正的开源系统。如果像现在这样封闭下去，就会被开源社区抛弃，就一定不会成功，即使有Google的支持。</p>

<p><strong>UPDATE ONE</strong></p>

<p>liufeng针对此文，写了一篇很好的<a href="http://www.cnliufeng.com/blog/2010/02/linux-and-android.html" target="_blank">评论</a>，推荐阅读。</p>

<p>我接受他的批评，我确实有点感情用事。主要是因为对Google有太大的期望，所以不能接受它现在的这种做法。</p>

<p>这一次，也许不能说Google做错了什么，毕竟都符合GPL许可证的要求。但是代价也是巨大的——它放弃了创造未来的机会。我坚信，未来主流的手机操作系统一定是开源的，就像我坚信未来Linux一定胜过Windows一样。现在，既然Google放弃了这个选择，那么只能等待其他人来做出开源的手机系统了。这也意味着，我们还要在黑暗中等待更久。 </p>

<p><strong>UPDATE TWO</strong></p>

<p>Greg Kroah-Hartman原文中有一些关于技术的部分，由于我不太懂，就没翻译出来。网友<a href="http://linuxtoy.org/archives/android-linux.html#comment-138679" target="_blank">黑日白月</a>做了意译和点评。</p>

<blockquote><div>

<p>简单的来讲，Android 的硬件驱动依赖在 Google 代码树里的东西，于是尽管大多数厂商都将它们的驱动反馈给社区了，但是对 Google 代码树的依赖导致它们无法并入主线(merge into mainline)。而 Google 代码树一直没并入主线是由于 Android 平台安全架构模型需要额外的钩子以及完全不同的帧缓存驱动。</p>

<p>这次在 2.6.33 主线中把 Android 部分清理掉是由于厂商贡献的这部分代码在离开 Google 的代码树之后对其他嵌入式 Linux 没有用处，干脆从主线中除掉好了……</p>

<p>这跟前段时间 Linus 指责 Red Hat 把 Nouveau 并入主线的积极性不高一样，最后 Red Hat 也是把 Nouveau 并入 2.6.33 的主线了么……</p>

<p>没有并入主线对于社区和厂商都不利，社区得不到驱动程序的扩展，厂商也得不到内核新特性的改善。但是并不是所有模块在一开始的时候都是并入主线的，总是要发展到某个相对成熟的阶段或者解决了潜在的授权问题后才并入的。总之并入主线对双方都有利，这个问题反应这次 Google 的并入主线积极性不高（不代表不开源），社区打它屁屁了……</p>

</div></blockquote>

<p>（完）</p>]]></description>
         <link>http://www.ruanyifeng.com/blog/2010/02/open_android_or_not.html</link>
         <guid>http://www.ruanyifeng.com/blog/2010/02/open_android_or_not.html</guid>
         <category>Electronics</category>
         <pubDate>Thu, 04 Feb 2010 23:41:49 +0800</pubDate>
      </item>
            <item>
         <title>我的新手机三星i8000（续）</title>
         <description><![CDATA[<p>接着来介绍，我的手机上安装的应用程序。</p>]]><![CDATA[<p>它们都是一些简单的应用，满足最起码的“掌上学习设备”的要求。所有下面提到的软件，网上全部可以找到，而且大多数都是免费的。其中一些似乎是WM系统独有的。</p>

<p>我认为，手机的时代才刚刚开始。一台高运算能力、快速联网、大屏幕的手机，能够干的事情，我们现在根本无法想像。未来，人们提到电脑，想到的不是台式机，而是手机。</p>

<p><strong>七、网络浏览器</strong></p>

<p>Opera Mini和UCWeb都不错，我目前主要使用前者。两者都用代理服务器对网页进行优化，所以比较省流量，而且手机体验也不错。</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020201.png" /></p>

<p>（图十二 Opera Mini 4.2版）</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020202.png" /></p>

<p>（图十三 UCWeb 7.0 版）</p>

<p>Firefox的WM系统版本，目前出到Alpha 3。它提供了台式机的浏览体验，非常值得关注。我用它打开了Google Reader，所有功能都能使用，太惊人了。</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020203.png" /></p>

<p>（图十四 Firefox Mobile可以在手机上打开完整版的Google Reader。）</p>

<p>国产的“3g坛”软件，提供了便捷的论坛和新闻浏览功能，也值得推荐。我现在看新闻，大多数时候都使用它的客户端。</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020204.gif" /></p>

<p>（图十五 用“3g坛”看新闻）</p>

<p><strong>八、电子书阅读</strong></p>

<p><strong>1. txt文件</strong></p>

<p>在文本文件方面，“开卷有益”和“熊猫看书”都相当不错，常用功能全部具备，而且相当好用。</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020205.png" /></p>

<p>（图十六 开卷有益）</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020206.gif" /></p>

<p>（图十七 熊猫看书）</p>

<p><strong>2. chm文件</strong></p>

<p>wm系统应该比其他系统，更容易打开chm文件。但是奇怪的是，我只发现了一种合适的软件，名字就叫“chm阅读器”。</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020207.png" /></p>

<p>（图十八 CHM阅读器）</p>

<p><strong>3. PDF文件</strong></p>

<p>Adobe Reader LE，是打开PDF文件的最佳软件。我测试的其他程序都不如它。</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020208.png" /></p>

<p>（图十九 Adobe Reader LE）</p>

<p>先看打开扫描格式文件的效果。可以无级放大，虽然阅读时必须不停移动窗口，但是可以阅读。</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020209.png" /></p>

<p>（图二十 打开扫描格式PDF文件。）</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020210.png" /></p>

<p>（图二十一 横屏后放大阅读）</p>

<p>对于普通的PDF文件，Adobe Reader LE提供了“重排”功能，这意味着可以像文本文件那样重新排版，大大改善了阅读体验。</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020211.png" /></p>

<p>（图二十二 打开普通的PDF文件。）</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020212.png" /></p>

<p>（图二十三 选择重排功能。）</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020213.png" /></p>

<p>（图二十四 重排后的效果）</p>

<p><strong>4. PDB文件</strong></p>

<p>PDB是一种封闭的专有格式，理应被淘汰。但是考虑到网上有很多PDB资源，所以还是需要安装iSilo阅读器。实事求是地说，它的阅读体验还是可以的。</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020214.png" /></p>

<p>（图二十五 iSilo阅读器）</p>

<p><strong>5. HTML文件</strong></p>

<p>“熊猫看书”可以打开HTML文件，但是不支持样式和图片，与文本文件阅读效果相仿。</p>

<p><strong>6. epub文件</strong></p>

<p>“熊猫看书”的最新版本号称支持epub，但是我打开没有成功。另有一种Freda阅读器支持epub，但是使用体验不佳。</p>

<p><strong>7. 文本朗读</strong></p>

<p>“讯飞语音电子书”可以朗读中文文本文件，效果不错。英语的文本朗读软件大多要收费，我只安装了一种Cepstral SwiftTalker，效果还可以，但是打开稍大一点的文本文件，就会死机。</p>

<p><strong>九、多媒体</strong></p>

<p><strong>1. 视频文件</strong></p>

<p>大多数视频格式，包括avi、rmvb、mp4、flv等等，wm系统都可以打开。就三星 i8000来说，只要不是高清视频，都能播放。rmvb会比较卡，但是常见的700MB的avi文件，我还没有遇到过不能流畅播放的。</p>

<p>至于播放器，只要有Windows Media Player和CorePlayer，就所有格式都支持了。但是如果想配合srt字幕观看，就一定要安装tcpmp。</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020215.png" /></p>

<p>（图二十六 tcpmp的竖屏添加字幕）</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020216.png" /></p>

<p>（图二十七 横屏添加字幕）</p>

<p><strong>2. 音频文件</strong></p>

<p>对于音频播放器，我只要求支持lrc歌词同步滚动就行了。我找到了三个符合要求、各有特点的播放器，分别是tcpmp、GSPlayer2和WinVibe。</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020217.png" /></p>

<p>（图二十八 tcpmp）</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020218.png" /></p>

<p>（图二十九 GSPlayer）</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020219.png" /></p>

<p>（图三十 WinVibe）</p>

<p><strong>十、英语学习</strong></p>

<p><strong>1. 电子词典</strong></p>

<p>WM系统有一个宝贝，就是电子词典<a href="http://www.octopus-studio.com/" target="_blank">MDict</a>。我舍不得WM，一大半的原因就是其他系统没有这个程序。</p>

<p>由于MDict的词典格式是开放的，因此网上有数不清的资源。<a href="http://pdawiki.5d6d.com/" target="_blank">“掌上百科”</a>网站上有一个<a href="http://pdawiki.5d6d.com/thread-104-1-1.html" target="_blank">资源索引帖</a>，足足列出了920个资料库。比如，有一个词库是“朗曼、柯林斯、剑桥、牛津四合一”，将四大学习词典合为一个词库，一次搜索可以同时看到四部词典的解释。</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020220.png" /></p>

<p>（图三十一 “朗曼、柯林斯、剑桥、牛津四合一”词库）</p>

<p>有网友将《朗文高阶英语学习词典（第五版）》的随书DVD光盘，全部转成了MDict词典，大小超过1GB。里面不仅包含全部字典内容，还包含了全部的例句真人发音。</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020221.png" /></p>

<p>（图三十二 朗文高阶英语学习词典）</p>

<p>更惊人的是，最权威的20卷本《牛津英语词典》——也就是大名鼎鼎的、所有英语系教授都离不开的OED——也有Mdict格式。有了它，英语这门语言的全部历史，就都在你的口袋里了。</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020222.png" /></p>

<p>（图三十三 牛津英语词典OED）</p>

<p>此外，MDict还支持屏幕取词，这也是很贴心的功能。</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020223.png" /></p>

<p>（图三十四 MDict的屏幕取词功能）</p>

<p><strong>2. 背单词</strong></p>

<p>国产的ForceMemo是背单词的好工具。它兼容多种词库格式，支持发音和记忆曲线，而且还可以自己配置界面。我觉得，很值得推荐。</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020224.png" /></p>

<p>（图三十五 答案四选一模式）</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020225.png" /></p>

<p>（图三十六 背句子的模式，并且带有整句的朗读。）</p>

<p><strong>3. 生词本</strong></p>

<p>WM系统似乎缺乏优秀的生词本软件，我找了几个都不满意。最后还是决定，采用supermemo的“自建词库”功能，作为我的生词本。</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020226.png" /></p>

<p>（图三十七 supermemo允许自建词库）</p>

<p>supermemo可以将词库以多种格式输出，以便进一步处理。</p>

<p><strong>十一、个人数据功能</strong></p>

<p>个人数据包括许多种，比如笔记、照片、各种密码、待完成的事项、日程安排、支出数据等等。每一种数据都可以用专门的软件处理。但是，我后来发现，它们都可以用ListPro做到。</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020227.png" /></p>

<p>（图三十八 ListPro）</p>

<p>本质上，ListPro是一个数据库软件，允许你在手机上建立数据库，并且规定每一个字段的格式，因此你可以用它收集、整理各种信息。诸如记账、通讯录、任务管理，都不在话下。而且由于能够随时增加和修改字段，所以它的灵活性非常高，你完全可以根据自己的需要订制。</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020228.png" /></p>

<p>（图三十九 上海公共交通数据库）</p>

<p>我在这里想示范一下，如何管理个人的文摘。就是说，如果你读书的时候，读到一段精彩的话，你应该如何输入手机，又如何进行管理。</p>

<p>首先，需要安装“汉王摘抄”软件。它可以对图片进行文字识别。</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020229.jpg" /></p>

<p>（图四十 汉王摘抄）</p>

<p>打开这个软件，它会自动打开照相机，你可以把摘录的段落拍下来，然后进行文字识别。软件会自动将其转化为文字。</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020230.jpg" /></p>

<p>（图四十一 拍摄摘录的段落）</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020231.jpg" /></p>

<p>（图四十二 选择识别区域后，进行文字识别）</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020232.png" /></p>

<p>（图四十三 文字识别的正确率相当高）</p>

<p>然后，你复制这些文字，将它们粘贴到已经建立好的ListPro文摘数据库中，就行了。</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010020233.png" /></p>

<p>（图四十四 我的文摘数据库主要包含五个字段：关键词、出处、作者、录入时间和内容。）</p>

<p>输入完成后，下一步的搜索、排序、过滤、输出为其他格式都非常方便。</p>

<p><strong>UPDATE</strong></p>

<p>有网友反映看不到图片。请各位测试<a href="http://photobucket.com" target="_blank">photobucket.com</a>是否被屏蔽，如果是的话，请留言告诉我。目前我在上海，还可以正常浏览。</p>

<p>（完）</p>]]></description>
         <link>http://www.ruanyifeng.com/blog/2010/02/samsung_omnia_ii_i8000_part_ii.html</link>
         <guid>http://www.ruanyifeng.com/blog/2010/02/samsung_omnia_ii_i8000_part_ii.html</guid>
         <category>Electronics</category>
         <pubDate>Tue, 02 Feb 2010 16:52:20 +0800</pubDate>
      </item>
            <item>
         <title>我的新手机三星i8000</title>
         <description><![CDATA[<p>最近，我换手机了。</p>]]><![CDATA[<p>在购买新手机之前，我花了不少时间，研究各种机型。下面是一些我的想法。</p>

<p><strong>一、对塞班的失望</strong></p>

<p>我的上一个手机是Nokia的<a href="http://www.ruanyifeng.com/blog/2008/08/nokia_n73.html" target="_blank">N73</a>，购于2006年11月。</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010013110.jpg" /></p>

<p>（图一 Nokia的N73是一个非常成功的机型。）</p>

<p>虽然直到今天，它都能正常使用，屏幕依然鲜艳亮丽，但是我对诺基亚的塞班（Symbian）系统完全失望了。</p>

<p>已经三年多了，塞班没有任何大的改进。如果不是受到iPhone的威胁，它可能直到现在都不支持触摸屏。三年前，诺基亚就声称要将塞班开源，可是直到今天也没有做到。如今，就连诺基亚自己都对这个系统灰心了，决定未来不再用于高端机型。</p>

<p>更蠢的是，塞班居然推出了“软件签名”政策。如果一个程序没有经过认证签名（signed），它就无法被安装。原因据说是为了防止恶意软件，保证系统安全。</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010013102.jpg" /></p>

<p>（图二 如果你安装没有签名的程序，就会出现无法安装的提示。）</p>

<p>我完全不能想像，是哪一个被大象踩过的脑袋，才会想出这样自杀式的主意。它打击了软件开发者，提高了软件成本，增加了用户的麻烦。更要命的是，它实际上是无用的，因为用户购买塞班手机后的第一件事，就是制作自己的钥匙文件，避开签名政策的限制，所以系统安全没有得到一丝一毫的改进。</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010013101.jpg" /></p>

<p>（图三 网上到处都是指导用户获取塞班开发者证书的教程，用于避开签名政策的限制。）</p>

<p>我的第一个决定，就是不再购买任何塞班手机。</p>

<p><strong>二、开源系统 vs. 封闭系统</strong></p>

<p>如今手机市场的明星，当然非iPhone莫属。但是，iPhone真的会成为不可动摇的霸主吗？</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010013107.jpg" /></p>

<p>（图四 目前最炙手可热的iPhone手机。）</p>

<p>我认为不会。因为iPhone的操作系统是封闭的，而且苹果公司绝对不可能授权给其他公司使用。我无法想像，一种封闭的手机系统在未来会蓬勃发展。PC市场就是最好的证明，IBM的PC架构是开放的，所以PC市场的主流就是IBM兼容机。</p>

<p>我的第二个决定，就是不购买使用封闭系统的手机。</p>

<p>这意味着，iPhone、黑莓和Palm系统的出局。至于windows mobile系统，虽然也是封闭的，但是由于它具有一些别的手机没有的软件（后文会谈到），我暂时不排除它。</p>

<p><strong>三、 Android vs. Maemo</strong></p>

<p>说到手机的开源操作系统，Google主导的Android正是如火如荼。</p>

<p>我曾经<a href="http://www.ruanyifeng.com/blog/2009/06/the_future_of_mobile_phone.html" target="_blank">觉得</a>，Android将是未来的主流，但是目前的一些迹象令我产生了怀疑。首先，Android应用程序只能用java语言开发，那么莫非它的整个系统是运行在一个巨大的虚拟机上？其次，Google对Android采用了一种全面霸权式的管理，完全不是其他开源软件的开发方式，第三方程序员的patch很难被采用，一切都由Google说了算，很多地方是黑箱，外界不得而知。这两点令我很不爽，所以我现在对这个系统持保留态度。</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010013108.jpg" /></p>

<p>（图五 Google最新发布的Nexus One手机，外界的评价并非完全正面。）</p>

<p>真正符合开源精神的手机操作系统是Maemo，它在Debian基础上开发，具有完整的Linux内核，大部分Debian程序只要稍作修改，都可以移植到Maemo上面。这才是真正令人砰然心动的系统，但是目前采用这个系统的手机，只有诺基亚的N900一种，而且手机功能非常弱，更像一部MID。据我所知，N900不支持直屏，不支持单手操作，不支持wap协议，没有原生的中文支持，GPS功能等于没有，总之非常不成熟。</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010013109.jpg" /></p>

<p>（图六 N900是唯一上市的Maemo手机，但是它甚至不能单手使用。）</p>

<p>我的第三个决定，就是继续观望Android和Maemo，看它们下一步的变化，再决定到底倾向谁。</p>

<p><strong>四、Windows Mobile系统</strong></p>

<p>虽然像上面所说，我看好开源系统，但是因为它们目前未必具备某些我非常需要的软件，而这些软件在wm系统上可以拿来就用，十分成熟。所以，有一阵子，我十分矛盾，不知道到底该选择谁。</p>

<p>最后，我的第四个决定，就是购买两台手机。先购买一台wm系统的，作为日常用机；过一段时间，再购买一台开源系统的，作为开发用机。</p>

<p><strong>五、几种WM机型</strong></p>

<p>这一次，我购买手机的主要用途，是上网和阅读文档。所以，我希望买一台“大一点”和“快一点”的手机。所谓“大一点”，指的是800x480分辨率的屏幕；所谓“快一点”就是芯片速度快，RAM不低于256MB。</p>

<p>符合这个要求的WM系统手机，我一共考虑过四种机型。</p>

<p>1. HKC 虎蜥</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010013103.jpg" /></p>

<p>（图七 国产品牌的HKC虎蜥。）</p>

<p>这台机子是国产山寨机中的高档货，最大优势就是价格便宜，只要15xx元。但是，它不支持3G，而且芯片只有624MHz，所以后来被我放弃。说实话，如果它支持3G，我可能就选它了。</p>

<p>2. Acer s200</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010013104.jpg" /></p>

<p>（图八 s200属于Acer进入手机市场的探路产品。不知何故，PC公司在手机市场的表现都不好，比如联想和戴尔。）</p>

<p>这台机子的最大亮点，就是性价比。它的CPU是1GHz，在所有wm机器中运行速度最快，而接近全新的二手机价格只有2300元。考虑性价比的朋友，大多数都买了这个机器。但是，它的缺点也很明显，除了速度快以外，没有其他让人满意的地方，通话、外放、照相、电池通通都很平庸。我也没有选择它。</p>

<p>3. 三星 Omnia II i8000</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010013105.jpg" /></p>

<p>（图九 三星公司在手机领域仅次于诺基亚，i8000是它的高端机型。）</p>

<p>这台机子各方面比较均衡，就是CPU只有800Hz，似乎性价比不够高。</p>

<p>4. HTC HD2 Leo</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010013106.jpg" /></p>

<p>（图十 HTC的HD2有着无敌的硬件配置。）</p>

<p>这是目前wm手机的机皇，配置十分豪华，4.3英寸的屏幕，1GHz的CPU，576MB的RAM，1GB的ROM，而且是唯一使用电容屏的wm机种。</p>

<p>我在i8000和HD2之间犹豫不决。购机的当天，我对它们进行了当场实物比较。两者的运行速度我都可以接受，但是wm系统似乎不适用HD2的电容屏，令我操作很不习惯，再者HD2比i8000贵了1000元。所以，我就购买了三星i8000。</p>

<p><strong>六、三星i8000的优点和缺点</strong></p>

<p>先说i8000的优点。它使用了省电的AMOLED屏幕，颜色艳丽；摄像头的质量很好，照片品质出色（室内稍差），胜过HTC的所有机型；内置了8G储存卡。</p>

<p>至于i8000的缺点，只有一个令我最无法忍受。那就是被很多人提到的，它会自动关闭后台程序，使你无法同时运行多个任务。这与它的空闲RAM空间过小有关。根据我的观察，当这个指标大于70MB时，系统就不会自动关闭后台程序；当这个指标小于50MB以下时，后台程序几乎肯定被自动关闭，使得你好像在操作一个单任务系统一样。</p>

<p>所以，买来这个机器以后的第一件事，就是刷一个纯净版的ROM（wm 6.1版本更省内存），卸掉三星附加的各种占用内存的小程序。但是即使这样，运行时也不能保证完全不出问题。下图是我自己刷了纯净版wm6.5系统以后的桌面，虽然已经很简洁了，但是开机后的空闲内存也只有78MB。</p>

<p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/bg2010013111.jpg" /></p>

<p>（图十一 目前我正在使用的手机桌面。）</p>

<p>除此以外，还有两个我不太满意的地方。一个是电池，在3G状态下，我连续上网6个小时就没电了，感觉不够用，当然不排除属于电池本身质量问题的可能。另一个是按键不合理，机器上没有设置实体的方向键，操作起来不方便，令我对Android机种的轨迹球十分眼红。</p>

<p>好了，关于选购手机的部分，就写到这里吧。明天再接着谈，我如何把i8000用作一个强大的“掌上学习设备”，这才是我真正想分享的东西。</p>

<p>（完）</p>]]></description>
         <link>http://www.ruanyifeng.com/blog/2010/02/samsung_omnia_ii_i8000_part_i.html</link>
         <guid>http://www.ruanyifeng.com/blog/2010/02/samsung_omnia_ii_i8000_part_i.html</guid>
         <category>Electronics</category>
         <pubDate>Mon, 01 Feb 2010 01:18:32 +0800</pubDate>
      </item>
      
   </channel>
</rss>
