<?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>IUSR&#039;s Unnamed Seraph Reborn &#187; 他山之石</title>
	<atom:link href="http://blog.iusr.me/cat/not-my-words/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.iusr.me</link>
	<description>what the heck is going on</description>
	<lastBuildDate>Sat, 28 Jan 2012 15:10:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>在左岸看到的《佛祖在一号线》读书笔记</title>
		<link>http://blog.iusr.me/2010/12/zreading-buddha-at-the-subway-line-1/</link>
		<comments>http://blog.iusr.me/2010/12/zreading-buddha-at-the-subway-line-1/#comments</comments>
		<pubDate>Mon, 27 Dec 2010 08:01:22 +0000</pubDate>
		<dc:creator>IUSR</dc:creator>
				<category><![CDATA[他山之石]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[literature]]></category>

		<guid isPermaLink="false">http://blog.iusr.me/?p=715</guid>
		<description><![CDATA[地址在：http://www.zreading.cn/archives/2096.html，《佛祖在一号线》读书笔记。推荐，both 这篇笔记 and 这本书。 本想直接来个全文转载，一来因为实在没什么可以让我评论的，二来觉得很有感觉，请来装饰一下这个无所谓有无的blog也好。不过总觉得全文转载让人不那么舒服。 《佛祖在一号线》这本书我也读了，直接导致我聒噪了一篇无厘头的blog感慨了一下。现在看来，就像这篇读书笔记里面提到的那个比喻那样： 正如豆瓣上dancing dust评论她和刘瑜的那样：她就像住我楼上的邻居，level比我高一层，但我俩的房型一样，她的脚步声响起的时候，我知道她走在哪个区域。好像我此番的感觉也是这样。 照着这个比喻，那么我顶多是住1楼的一位，每天只能是运气特别好的时候看到人家出入时走路的样子而已。我都能想象自己那小老头小老太太一样的神态。
]]></description>
			<content:encoded><![CDATA[<p>地址在：<a title="《佛祖在一号线》读书笔记" href="http://www.zreading.cn/archives/2096.html" target="_blank">http://www.zreading.cn/archives/2096.html</a>，《佛祖在一号线》读书笔记。推荐，both 这篇笔记 and 这本书。</p>
<p>本想直接来个全文转载，一来因为实在没什么可以让我评论的，二来觉得很有感觉，请来装饰一下这个无所谓有无的blog也好。不过总觉得全文转载让人不那么舒服。</p>
<p>《佛祖在一号线》这本书我也读了，直接导致我聒噪了<a title="路径" href="http://blog.iusr.me/2010/09/path/" target="_blank">一篇无厘头的blog</a>感慨了一下。现在看来，就像这篇读书笔记里面提到的那个比喻那样：</p>
<blockquote><p>正如豆瓣上dancing dust评论她和刘瑜的那样：她就像住我楼上的邻居，level比我高一层，但我俩的房型一样，她的脚步声响起的时候，我知道她走在哪个区域。好像我此番的感觉也是这样。</p></blockquote>
<p>照着这个比喻，那么我顶多是住1楼的一位，每天只能是运气特别好的时候看到人家出入时走路的样子而已。我都能想象自己那小老头小老太太一样的神态。</p>
<p></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iusr.me/2010/12/zreading-buddha-at-the-subway-line-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>乾隆皇帝解「夫」字</title>
		<link>http://blog.iusr.me/2010/06/tsing-emperor-to-elaborate-a-chinese-character/</link>
		<comments>http://blog.iusr.me/2010/06/tsing-emperor-to-elaborate-a-chinese-character/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 16:30:04 +0000</pubDate>
		<dc:creator>IUSR</dc:creator>
				<category><![CDATA[他山之石]]></category>

		<guid isPermaLink="false">http://blog.iusr.me/?p=630</guid>
		<description><![CDATA[乾隆到江南巡視，見一農夫扛著鋤頭，就故意跟身邊的宰相張玉書開玩笑： 「這是什麼人？」 張回答說：「他是個農夫。」 乾隆又問：「農夫的『夫 』字怎麼寫？」 張順口答道：「就是二橫一撇一捺，轎夫之夫，孔夫子之夫，夫妻之夫，匹夫之夫都是這麼寫。」 不料乾隆聽後搖頭說：「你這個宰相，連這個夫字的寫法也辨別不清。」 乾隆皇帝說： 「 農夫 是刨土之人，上寫土字，下加人字； 轎夫 肩上扛竿，先寫人字，再加二根竹竿； 孔老夫子 上通天文，下曉地理，這個夫字寫個天字出頭； 夫妻 是兩個人，先寫二字，後加人字； 匹夫 是指大丈夫，這個字先寫個大字，加一橫便是。 用法不同，寫法有別，不能混為一談啊。」
]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste">乾隆到江南巡視，見一農夫扛著鋤頭，就故意跟身邊的宰相張玉書開玩笑： 「這是什麼人？」</div>
<div id="_mcePaste">張回答說：「他是個農夫。」</div>
<div id="_mcePaste">乾隆又問：「農夫的『夫 』字怎麼寫？」</div>
<div id="_mcePaste">張順口答道：「就是二橫一撇一捺，轎夫之夫，孔夫子之夫，夫妻之夫，匹夫之夫都是這麼寫。」</div>
<div id="_mcePaste">不料乾隆聽後搖頭說：「你這個宰相，連這個夫字的寫法也辨別不清。」</div>
<div id="_mcePaste">乾隆皇帝說：</div>
<div id="_mcePaste">「 農夫 是刨土之人，上寫土字，下加人字；</div>
<div id="_mcePaste">轎夫 肩上扛竿，先寫人字，再加二根竹竿；</div>
<div id="_mcePaste">孔老夫子 上通天文，下曉地理，這個夫字寫個天字出頭；</div>
<div id="_mcePaste">夫妻 是兩個人，先寫二字，後加人字；</div>
<div id="_mcePaste">匹夫 是指大丈夫，這個字先寫個大字，加一橫便是。</div>
<div id="_mcePaste">用法不同，寫法有別，不能混為一談啊。」</div>
<p></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iusr.me/2010/06/tsing-emperor-to-elaborate-a-chinese-character/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>天津一九八三</title>
		<link>http://blog.iusr.me/2009/03/tianjin-1983/</link>
		<comments>http://blog.iusr.me/2009/03/tianjin-1983/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 07:56:00 +0000</pubDate>
		<dc:creator>IUSR</dc:creator>
				<category><![CDATA[他山之石]]></category>
		<category><![CDATA[feel]]></category>
		<category><![CDATA[tianjin]]></category>

		<guid isPermaLink="false">http://blog.iusr.me/?p=124</guid>
		<description><![CDATA[又忙起来了，刚开了个头儿想（泛泛）研究一下OpenJDK6的，估计短时间内又没有空闲时间继续了。今儿个赶紧发篇东西来凑数，这几天这本儿相册貌似也已经被很多人转来传去的很多次了吧——Tianjin 1983 (天津市 1983年)。嗯，这儿就只发咱家乡的了。那个时候我出生还没几个月，看着那些景致真有些唏嘘，虽说我也没怎么经历过吧…记得第一次坐车时，那些车就已经不是这个样子了，只有最后一张图里的93路使用的车型在小时候见过。一直以来我对电车都有种莫名的好感，在北京实习时也是能坐电车的话决不坐汽油/柴油车，虽然电车的加速和刹车感觉起来都很突然（某次哥们儿没抓紧扶手，电车一加速被从前半截车厢甩到后半截车厢）。
]]></description>
			<content:encoded><![CDATA[<p>又忙起来了，刚开了个头儿想（泛泛）研究一下OpenJDK6的，估计短时间内又没有空闲时间继续了。今儿个赶紧发篇东西来凑数，这几天这本儿相册貌似也已经被很多人转来传去的很多次了吧——<a href="http://www.flickr.com/photos/lwdemery/sets/72157613984781268/">Tianjin 1983 (天津市 1983年)</a>。嗯，这儿就只发咱家乡的了。<br />那个时候我出生还没几个月，看着那些景致真有些唏嘘，虽说我也没怎么经历过吧…记得第一次坐车时，那些车就已经不是这个样子了，只有最后一张图里的93路使用的车型在小时候见过。一直以来我对电车都有种莫名的好感，在北京实习时也是能坐电车的话决不坐汽油/柴油车，虽然电车的加速和刹车感觉起来都很突然（某次哥们儿没抓紧扶手，电车一加速被从前半截车厢甩到后半截车厢）。</p>
<p></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iusr.me/2009/03/tianjin-1983/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>壹</title>
		<link>http://blog.iusr.me/2006/12/one/</link>
		<comments>http://blog.iusr.me/2006/12/one/#comments</comments>
		<pubDate>Sun, 31 Dec 2006 12:30:57 +0000</pubDate>
		<dc:creator>IUSR</dc:creator>
				<category><![CDATA[他山之石]]></category>

		<guid isPermaLink="false">http://blog.iusr.me/?p=543</guid>
		<description><![CDATA[木方位东，颜色为青，季节是春，具有生发条达的作用，如草木； 火方位南，颜色为红，季节是夏，具有火热向上的特性，如火、电； 金方位西，颜色为白，季节是秋，具有坚硬清肃收杀的特性，如铁、石； 水方位北，颜色为黑，季节是冬，具有寒冷向下的特性，如水流动等物； 土方位中，颜色为黄，为各季终，具有生养化育的作用，如沙如土等物。 木为草木穿达克伐地中之土，土为沙土专克流动无形之水，水性阴冷克灭炎热之火，火式炙烈克化钢铁之金，金如刀斧破筏天下草木。 金石阴极而生水，水性润下而生草木，草木燃而生火，火灭灰而成土，土结形而生金。
]]></description>
			<content:encoded><![CDATA[<p>木方位东，颜色为青，季节是春，具有生发条达的作用，如草木；<br />
火方位南，颜色为红，季节是夏，具有火热向上的特性，如火、电；<br />
金方位西，颜色为白，季节是秋，具有坚硬清肃收杀的特性，如铁、石；<br />
水方位北，颜色为黑，季节是冬，具有寒冷向下的特性，如水流动等物；<br />
土方位中，颜色为黄，为各季终，具有生养化育的作用，如沙如土等物。</p>
<p>木为草木穿达克伐地中之土，土为沙土专克流动无形之水，水性阴冷克灭炎热之火，火式炙烈克化钢铁之金，金如刀斧破筏天下草木。<br />
金石阴极而生水，水性润下而生草木，草木燃而生火，火灭灰而成土，土结形而生金。</p>
<p></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iusr.me/2006/12/one/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>各FTP库的比较</title>
		<link>http://blog.iusr.me/2005/03/java-ftp-libraries-compared/</link>
		<comments>http://blog.iusr.me/2005/03/java-ftp-libraries-compared/#comments</comments>
		<pubDate>Fri, 11 Mar 2005 18:00:00 +0000</pubDate>
		<dc:creator>IUSR</dc:creator>
				<category><![CDATA[他山之石]]></category>
		<category><![CDATA[技术文章]]></category>

		<guid isPermaLink="false">http://blog.iusr.me/?p=49</guid>
		<description><![CDATA[无意间看到一个很有意思的table，呵呵，对于要实现FTP功能的人应该是个参考吧:) Library Evaluated version 4.2 V5 1.2.1 2.0.1 1.07 1.0.0 3.0 1.2.2 2.6 0.70 1.0a Support: Javadoc Y Y Y - - Y Y - - Y Y Sample code Y Y Y Y Y Y Y - Y Y Y Forum - - - n/a Y - - Y - - - Mailing list [...]
<em>顺藤摸瓜</em>：<ol>
<li><em><a href='http://blog.iusr.me/2006/12/oops/' rel='bookmark' title='Oops'>Oops</a></em></li>
<li><em><a href='http://blog.iusr.me/2010/09/clear-gmail-captcha-for-repeated-imap-login-failures/' rel='bookmark' title='IMAP登录Gmail时重复出现&#8221;Web Login Required&#8221;'>IMAP登录Gmail时重复出现&#8221;Web Login Required&#8221;</a></em></li>
<li><em><a href='http://blog.iusr.me/2005/04/avoid-primitive-types-in-autoboxing/' rel='bookmark' title='避免在autoboxing过程中使用基本类型'>避免在autoboxing过程中使用基本类型</a></em></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>无意间看到一个很有意思的table，呵呵，对于要实现FTP功能的人应该是个参考吧:)</p>
<p><!--StartFragment --><br />
<table border="1" cellpadding="2">
<tbody>
<tr>
<th>Library</th>
<th valign="bottom"><img src="http://www.javaworld.com/javaworld/jw-04-2003/images/L1.gif" border="0" height="84" width="34" /></th>
<th valign="bottom"><img src="http://www.javaworld.com/javaworld/jw-04-2003/images/L2.gif" border="0" height="77" width="31" /></th>
<th valign="bottom"><img src="http://www.javaworld.com/javaworld/jw-04-2003/images/L3.gif" border="0" height="250" width="34" /></th>
<th valign="bottom"><img src="http://www.javaworld.com/javaworld/jw-04-2003/images/L4.gif" border="0" height="200" width="34" /></th>
<th valign="bottom"><img src="http://www.javaworld.com/javaworld/jw-04-2003/images/L5.gif" border="0" height="91" width="34" /></th>
<th valign="bottom"><img src="http://www.javaworld.com/javaworld/jw-04-2003/images/L6.gif" border="0" height="101" width="31" /></th>
<th valign="bottom"><img src="http://www.javaworld.com/javaworld/jw-04-2003/images/L7.gif" border="0" height="76" width="31" /></th>
<th valign="bottom"><img src="http://www.javaworld.com/javaworld/jw-04-2003/images/L8.gif" border="0" height="29" width="31" /></th>
<th valign="bottom"><img src="http://www.javaworld.com/javaworld/jw-04-2003/images/L9.gif" border="0" height="95" width="31" /></th>
<th valign="bottom"><img src="http://www.javaworld.com/javaworld/jw-04-2003/images/L10.gif" border="0" height="117" width="34" /></th>
<th valign="bottom"><img src="http://www.javaworld.com/javaworld/jw-04-2003/images/L11.gif" border="0" height="137" width="31" /></th>
</tr>
<tr>
<td bgcolor="#80ff80">Evaluated version</td>
<td align="center" bgcolor="#80ff80">4.2</td>
<td align="center" bgcolor="#80ff80">V5</td>
<td align="center" bgcolor="#80ff80">1.2.1</td>
<td align="center" bgcolor="#80ff80">2.0.1</td>
<td align="center" bgcolor="#80ff80">1.07</td>
<td align="center" bgcolor="#80ff80">1.0.0</td>
<td align="center" bgcolor="#80ff80">3.0</td>
<td align="center" bgcolor="#80ff80">1.2.2</td>
<td align="center" bgcolor="#80ff80">2.6</td>
<td align="center" bgcolor="#80ff80">0.70</td>
<td align="center" bgcolor="#80ff80">1.0a</td>
</tr>
<tr>
<td bgcolor="#ffff80"><b>Support:</b></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
</tr>
<tr>
<td align="right" bgcolor="#ffff80">Javadoc</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
</tr>
<tr>
<td align="right" bgcolor="#ffff80">Sample code</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
</tr>
<tr>
<td align="right" bgcolor="#ffff80">Forum</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">n/a</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
</tr>
<tr>
<td align="right" bgcolor="#ffff80">Mailing list</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">n/a</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">Y</td>
</tr>
<tr>
<td align="right" bgcolor="#ffff80">Email</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">n/a</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
</tr>
<tr>
<td align="right" bgcolor="#ffff80">Online bug tracking system</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">n/a</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">Y</td>
</tr>
<tr>
<td align="right" bgcolor="#ffff80">Motivation</td>
<td align="center" bgcolor="#ffff80">P</td>
<td align="center" bgcolor="#ffff80">P</td>
<td align="center" bgcolor="#ffff80">I</td>
<td align="center" bgcolor="#ffff80">P</td>
<td align="center" bgcolor="#ffff80">G</td>
<td align="center" bgcolor="#ffff80">G</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">I</td>
<td align="center" bgcolor="#ffff80">I</td>
<td align="center" bgcolor="#ffff80">P</td>
</tr>
<tr>
<td bgcolor="#80ff80">License</td>
<td align="center" bgcolor="#80ff80">C</td>
<td align="center" bgcolor="#80ff80">C</td>
<td align="center" bgcolor="#80ff80">F</td>
<td align="center" bgcolor="#80ff80">F</td>
<td align="center" bgcolor="#80ff80">G</td>
<td align="center" bgcolor="#80ff80">F</td>
<td align="center" bgcolor="#80ff80">F</td>
<td align="center" bgcolor="#80ff80">F</td>
<td align="center" bgcolor="#80ff80">G</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">F</td>
</tr>
<tr>
<td bgcolor="#80ff80">Price per developer</td>
<td align="center" bgcolor="#80ff80">$399</td>
<td align="center" bgcolor="#80ff80">$895</td>
<td align="center" bgcolor="#80ff80">$0</td>
<td align="center" bgcolor="#80ff80">n/a</td>
<td align="center" bgcolor="#80ff80">$0</td>
<td align="center" bgcolor="#80ff80">$0</td>
<td align="center" bgcolor="#80ff80">$0</td>
<td align="center" bgcolor="#80ff80">$0</td>
<td align="center" bgcolor="#80ff80">$0</td>
<td align="center" bgcolor="#80ff80">$0</td>
<td align="center" bgcolor="#80ff80">$0</td>
</tr>
<tr>
<td bgcolor="#80ff80">Price per site</td>
<td align="center" bgcolor="#80ff80">$799</td>
<td align="center" bgcolor="#80ff80">n/a</td>
<td align="center" bgcolor="#80ff80">$0</td>
<td align="center" bgcolor="#80ff80">n/a</td>
<td align="center" bgcolor="#80ff80">$0</td>
<td align="center" bgcolor="#80ff80">$0</td>
<td align="center" bgcolor="#80ff80">$0</td>
<td align="center" bgcolor="#80ff80">$0</td>
<td align="center" bgcolor="#80ff80">$0</td>
<td align="center" bgcolor="#80ff80">$0</td>
<td align="center" bgcolor="#80ff80">$0</td>
</tr>
<tr>
<td bgcolor="#80ff80">Source provided</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
</tr>
<tr>
<td bgcolor="#80ff80">Age</td>
<td align="center" bgcolor="#80ff80">2000</td>
<td align="center" bgcolor="#80ff80">1995</td>
<td align="center" bgcolor="#80ff80">2000</td>
<td align="center" bgcolor="#80ff80">1998</td>
<td align="center" bgcolor="#80ff80">2001</td>
<td align="center" bgcolor="#80ff80">1998</td>
<td align="center" bgcolor="#80ff80">n/a</td>
<td align="center" bgcolor="#80ff80">1995</td>
<td align="center" bgcolor="#80ff80">2001</td>
<td align="center" bgcolor="#80ff80">2001</td>
<td align="center" bgcolor="#80ff80">1999</td>
</tr>
<tr>
<td bgcolor="#ffff80"><b>Directory listing:</b></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
</tr>
<tr>
<td align="right" bgcolor="#ffff80">Structured file objects</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
</tr>
<tr>
<td align="right" bgcolor="#ffff80">Date/time parsing</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">-</td>
</tr>
<tr>
<td align="right" bgcolor="#ffff80">Alternative</td>
<td align="center" bgcolor="#ffff80">S</td>
<td align="center" bgcolor="#ffff80">S</td>
<td align="center" bgcolor="#ffff80">C</td>
<td align="center" bgcolor="#ffff80">C</td>
<td align="center" bgcolor="#ffff80">S</td>
<td align="center" bgcolor="#ffff80">P</td>
<td align="center" bgcolor="#ffff80">P</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">P</td>
<td align="center" bgcolor="#ffff80">P</td>
<td align="center" bgcolor="#ffff80">P</td>
</tr>
<tr>
<td bgcolor="#80ff80"><code>MDTM</code> command</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">Y</td>
</tr>
<tr>
<td bgcolor="#80ff80">Socks proxy</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">-</td>
</tr>
<tr>
<td bgcolor="#80ff80">HTTP tunnel</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">-</td>
</tr>
<tr>
<td bgcolor="#80ff80">Active/passive connection</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
</tr>
<tr>
<td bgcolor="#ffff80"><b>Transfer:</b></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
<td align="center" bgcolor="#ffffff"></td>
</tr>
<tr>
<td align="right" bgcolor="#ffff80">Download</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
</tr>
<tr>
<td align="right" bgcolor="#ffff80">Upload</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
</tr>
<tr>
<td align="right" bgcolor="#ffff80">Parallel transfer</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
</tr>
<tr>
<td align="right" bgcolor="#ffff80">Progress monitoring</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
</tr>
<tr>
<td align="right" bgcolor="#ffff80">Multiple transfer</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">-</td>
</tr>
<tr>
<td align="right" bgcolor="#ffff80">Recursive transfer</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">-</td>
</tr>
<tr>
<td align="right" bgcolor="#ffff80">ASCII/binary</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
</tr>
<tr>
<td align="right" bgcolor="#ffff80">auto. ASCII/binary</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">-</td>
</tr>
<tr>
<td align="right" bgcolor="#ffff80">Transfer resumption</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">Y</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">Y</td>
</tr>
<tr>
<td align="right" bgcolor="#ffff80">Between two servers</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">-</td>
<td align="center" bgcolor="#ffff80">Y</td>
</tr>
<tr>
<td bgcolor="#80ff80">JavaBean</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">-</td>
</tr>
<tr>
<td bgcolor="#80ff80">Pure Java</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
</tr>
<tr>
<td bgcolor="#80ff80">Java exceptions</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">-</td>
<td align="center" bgcolor="#80ff80">Y</td>
<td align="center" bgcolor="#80ff80">Y</td>
</tr>
</tbody>
</table>
<p><strong>Key:</strong><br /><strong>Product support</strong></p>
<ul>
<li><strong>I</strong>: A voluntary individual </li>
<li><strong>G</strong>: A voluntary group </li>
<li><strong>P</strong>: A professional entity, paid to provide support </li>
</ul>
<p><strong>Licenses</strong></p>
<ul>
<li><strong>C</strong>: Commercial </li>
<li><strong>G</strong>: GPL, GNU General Public License </li>
<li><strong>F</strong>: Free </li>
</ul>
<p><strong>Directory listing support </strong></p>
<ul>
<li><strong>S</strong>: An additional method returning raw FTP response as one string </li>
<li><strong>C</strong>: An additional method returning a collection of raw strings, one string per line/file </li>
<li><strong>P</strong>: A framework supporting pluggable parsers </li>
</ul>
<p>原文链接：<a target="_blank" href="http://www.javaworld.com/javaworld/jw-04-2003/ftp/jw-0404-ftptable.html" title="原文">http://www.javaworld.com/javaworld/jw-04-2003/ftp/jw-0404-ftptable.html</a></p>
<p>总的来说Jakarta的Commons Net还是不错的，而且这里所比较的都是旧版本，刚看了一下其他一些库的主页，活跃程度都不及Commons Net。<br />嗯，看来没选错:^D</p>
<p><em>顺藤摸瓜</em>：</p><ol>
<li><em><a href='http://blog.iusr.me/2006/12/oops/' rel='bookmark' title='Oops'>Oops</a></em></li>
<li><em><a href='http://blog.iusr.me/2010/09/clear-gmail-captcha-for-repeated-imap-login-failures/' rel='bookmark' title='IMAP登录Gmail时重复出现&#8221;Web Login Required&#8221;'>IMAP登录Gmail时重复出现&#8221;Web Login Required&#8221;</a></em></li>
<li><em><a href='http://blog.iusr.me/2005/04/avoid-primitive-types-in-autoboxing/' rel='bookmark' title='避免在autoboxing过程中使用基本类型'>避免在autoboxing过程中使用基本类型</a></em></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://blog.iusr.me/2005/03/java-ftp-libraries-compared/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[转载] 博客中国的本质</title>
		<link>http://blog.iusr.me/2005/02/fwd-blogcn/</link>
		<comments>http://blog.iusr.me/2005/02/fwd-blogcn/#comments</comments>
		<pubDate>Wed, 23 Feb 2005 23:09:00 +0000</pubDate>
		<dc:creator>IUSR</dc:creator>
				<category><![CDATA[他山之石]]></category>

		<guid isPermaLink="false">http://blog.iusr.me/?p=45</guid>
		<description><![CDATA[骂得好，早就感觉这个一直自吹自擂地网站有些过了。嘿嘿，备份在这里，趁最近还能看到:P 2005-2-23 15:53:12 (未注册网友) 61.182.161.* 博客中国的本质 一定得选最热门的话题雇著名的骂人泼妇全包装成资深评论家每个泼妇都有资深的经历简历最少也得四百个字什么科技、新知、生活、教育，能想到的全部分类网站里有专题，到处有广告，首页一堆flash大红色，特喜庆的那种网民一进来，甭管真的假的都得跟人家说全球博客第一门户一副恬不知耻的无赖嘴脸倍儿满足 网站里搞一堆名人博客网名就用他们的真实姓名写这些博客的编辑就几十个再建一个博客论坛，什么都有就是一个字儿——乱想找个帖子就得花几个小时专题里不是捧臭脚就是下井石，你想踏踏实实谈点东西呀根本找不到门口在哪里 你说这样的网站，得卖多少钱？我觉得怎么着也得两千万美金吧两千万美金？！那是枪手们的工资！四千万美金起！你还别嫌贵，还不打折！你得研究方兴东办网站的心理靠骂微软捧红自己的主，网站根本就是勒索和献媚的工具什么叫IT强盗你知道吗？IT强盗就是给我钱我就捧你，不给钱我就灭你所以，博客中国口号要改成炒做自己，勒索别人！
]]></description>
			<content:encoded><![CDATA[<p>骂得好，早就感觉这个一直自吹自擂地网站有些过了。嘿嘿，备份在这里，趁最近还能看到:P</p>
<p>2005-2-23 15:53:12 (未注册网友) 61.182.161.*</p>
<p>博客中国的本质</p>
<p>一定得选最热门的话题<br />雇著名的骂人泼妇<br />全包装成资深评论家<br />每个泼妇都有资深的经历<br />简历最少也得四百个字<br />什么科技、新知、生活、教育，能想到的全部分类<br />网站里有专题，到处有广告，首页一堆flash<br />大红色，特喜庆的那种<br />网民一进来，甭管真的假的都得跟人家说<br />全球博客第一门户<br />一副恬不知耻的无赖嘴脸<br />倍儿满足</p>
<p>网站里搞一堆名人博客<br />网名就用他们的真实姓名<br />写这些博客的编辑就几十个<br />再建一个博客论坛，什么都有<br />就是一个字儿——乱<br />想找个帖子就得花几个小时<br />专题里不是捧臭脚就是下井石，你想踏踏实实谈点东西呀<br />根本找不到门口在哪里</p>
<p>你说这样的网站，得卖多少钱？<br />我觉得怎么着也得两千万美金吧<br />两千万美金？！<br />那是枪手们的工资！<br />四千万美金起！<br />你还别嫌贵，还不打折！<br />你得研究方兴东办网站的心理<br />靠骂微软捧红自己的主，网站根本就是勒索和献媚的工具<br />什么叫IT强盗你知道吗？<br />IT强盗就是给我钱我就捧你，不给钱我就灭你<br />所以，博客中国口号要改成<br />炒做自己，勒索别人！</p>
<p></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iusr.me/2005/02/fwd-blogcn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Calvin Austin: Five Reasons to Move to the J2SE 5 Platform</title>
		<link>http://blog.iusr.me/2005/01/fwd-calvin-austin-five-reasons-to-move-to-the-j2se-5-platform/</link>
		<comments>http://blog.iusr.me/2005/01/fwd-calvin-austin-five-reasons-to-move-to-the-j2se-5-platform/#comments</comments>
		<pubDate>Mon, 10 Jan 2005 00:32:00 +0000</pubDate>
		<dc:creator>IUSR</dc:creator>
				<category><![CDATA[他山之石]]></category>
		<category><![CDATA[技术文章]]></category>

		<guid isPermaLink="false">http://blog.iusr.me/?p=39</guid>
		<description><![CDATA[By Calvin Austin, January 4, 2005 This article provides five important reasons to move to the Java 2 Platform, Standard Edition (J2SE platform) 5.0. Each reason is supported by data and references to prove that the 5.0 release will reduce development and runtime costs. J2SE 5.0 (codenamed Project Tiger) was released at the end of [...]
<em>顺藤摸瓜</em>：<ol>
<li><em><a href='http://blog.iusr.me/2005/09/netbeans-5-coming/' rel='bookmark' title='Netbeans 5快来了'>Netbeans 5快来了</a></em></li>
<li><em><a href='http://blog.iusr.me/2004/10/j2se-5-jdk-1-5/' rel='bookmark' title='J2SE 5, jdk 1.5'>J2SE 5, jdk 1.5</a></em></li>
<li><em><a href='http://blog.iusr.me/2004/06/sun-jwsdp-1-4/' rel='bookmark' title='Sun JWSDP 1.4'>Sun JWSDP 1.4</a></em></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>By <a href="http://java.sun.com/features/authors.html#austin">Calvin Austin</a>, January 4, 2005</p>
<p>This article provides five important reasons to move to the Java 2 Platform, Standard Edition (J2SE platform) 5.0. Each reason is supported by data and references to prove that the 5.0 release will reduce development and runtime costs.<br />
<br />J2SE 5.0 (codenamed Project Tiger) was released at the end of September 2004. It is one of the most significant updates to the Java platform in many years. The Java community has eagerly welcomed its new features, yet these new features are not what makes the release special. What does? The platform was subjected to a higher level of testing than any previous version, to prepare it for mission-critical production.<br />
<br />Given the wealth of improvements in J2SE 5.0, choosing the top five reasons for this article was a tough task. My choices follow.<br />
<br />#1: Your application already works on 5.0</p>
<p>&#8220;To ensure this high level of backward compatibility, the number of compatibility tests was doubled&#8230;&#8221;<br />
<br />Calvin AustinSun Microsystems</p>
<p>You don&#8217;t need to redesign or recompile your application to take advantage of J2SE 5.0. Not only is your investment in existing applications protected but you actually benefit from running your application on a newer Java runtime.<br />
<br />To ensure this high level of backward compatibility, the number of compatibility tests was doubled from 1.4. These compatibility tests are part of a Java test suite that contains nearly 200,000 tests and includes testing many well-known Java applications.<br />
<br />So your application runs unmodified. What does J2SE 5.0 offer then?<br />
<br />Improved Performance<br />
<br />The performance of both client and server applications have been significantly improved in J2SE 5.0. As the improvement in performance has been so impressive, I&#8217;ve made it Reason #2. More on this in the following section of this article.<br />
<br />Monitoring and Manageability<br />
<br />J2SE 5.0 brings an advanced monitoring and manageability framework built into the Virtual Machine for the Java platform (Java Virtual Machine or JVM). [Note: The terms Java Virtual Machine and JVM mean a Virtual Machine for the Java platform.] You can use your existing management consoles with industry-standard JMX and SNMP protocols to monitor a JVM and even detect low memory conditions. The JDK release provides a demo, called JConsole. It lets you evaluate the benefits in monitoring the JVM and see how you can exceed your availability metrics.<br />
<br />New Look and Feel<br />
<br />The Java platform already contains a pluggable Look-and-Feel framework. The addition of the new Ocean Look-and-Feel enables cross-platform applications to switch between Ocean or the native operating system&#8217;s look-and-feel, without the need to rebuild or recompile them.<br />
<br />#2: It is faster</p>
<p>A number of factors play into J2SE 5.0&#8242;s improved speed, illustrated in the following figure.</p>
<p>Reduced startup time<br />
<br />If you haven&#8217;t started a desktop Java application in the last few years, you may be in for a pleasant surprise. The introduction of class data sharing (in combination with other streamlining options) has shaved nearly 30 percent off the startup time for some applications.<br />
<br />Great 64–bit performance<br />
<br />The J2SE 5.0 64-bit JVM delivered <a href="http://www.sun.com/smi/Press/sunflash/2004-06/sunflash.20040628.3.html">record results</a> with the AMD64/Opteron CPU and Suse Linux Enterprise Edition 8.0 SLES 8.0. In addition, the 32-bit version of the JRE can run side by side under the same 64-bit OS for use with existing 32-bit web browsers.<br />
<br />Performance ergonomics<br />
<br />The JVM is now self-configuring and self-tuning on server-class machines. A server-class machine is a machine with two or more CPUs and at least 2 GB of memory. The server-based performance ergonomics kicks in by rightsizing both the memory required and the class of optimizations needed for longer lived applications. This has resulted in an 80 percent improvement on one application server benchmark without changing a line of code or supplying any runtime options!<br />
<br />#3: Reduced development time</p>
<p>Integrated development environments (IDEs) have tried to make developers&#8217; lives a little easier with auto-completion and wizards for common tasks. J2SE 5.0&#8242;s new <a href="http://java.sun.com/developer/technicalArticles/releases/j2se15/#ease">language features</a> further streamline development, whether you use an IDE or handcode in a text editor.<br />
<br />Reduced need for developer coding<br />
<br />Many of the Java language changes reduce the amount of code a developer has to write. The following figure quantifies that reduction, in comparison to J2SE 1.4.2. To take a <a href="http://www.freesoft.org/CIE/RFC/1144/2.htm">real life example</a>, one open source application server uses over over 2,000 Iterators. By substituting the new enhanced for loop, the code would be reduced by up to 40,000 characters. To a developer, that is a saving of at least two hours of solid coding (5 characters a second).</p>
<p>Figure 2: Reduced Coding Effort (Fewer Lines of Code).<br />
<br />The addition of metadata into the platform provides the greatest scope for reduced development time through the use of tools that can generate boilerplate code and configuration information. In the case of SOA and web services, as defined in <a href="http://jcp.org/en/jsr/detail?id=181">JSR 181</a>, developers should expect to see over a 50 percent reduction in code by auto-generating common code. [Note: The preceding figure shows a metadata JAX-RPC example from 209 to 95 characters, Enhanced for loop using generics 139 to 100 characters, non-generic enhanced for loop for each 121 to 90, to/from autoboxing 69 to 56 characters.<br />
<br />Metadata will reduce the amount of effort required for deployment descriptors. One proposal for EJB 3.0 removes the need for any deployment descriptors by default by generating the configuration information from the application itself.<br />
<br />Improved Error Checking Savings<br />
<br />A google search using the terms &#8220;ClassCastException&#8221; and &#8220;help&#8221; generated nearly 40,000 hits. A more focused search on the <a href="http://forums.java.sun.com/">Sun forums</a> reported 3,444 cases of developers asking for help to track down unexplained runtime failures due to class cast exception issues.<br />
<br />Out of those 3,444 cases, over 470 involved the pre-generics vector class. In terms of return on investment, any runtime error can cost on order of 10 percent of a company&#8217;s website revenue at peak periods (300m GBP on revenue of 3Billion GBP). That doesn&#8217;t even begin to factor in the additional cost to personnel and goodwill.<br />
<br />The introduction of compile-time typesafe generic types to the Java platform reduces the risk of runtime errors by alerting developers at development time if there is a type-matching problem. In the case of the 470 forum postings, the Vector and other key libraries in the JDK have been updated to use generics in J2SE 5.0 and will prevent a repeat of those unexplained runtime issues.<br />
<br />#4: Ready for Mission-Critical Systems<br />
<br />The 5.0 release offers enhanced scalability, quality, and deployment support.<br />
<br />Scalability<br />
<br />The Java platform was designed with scalability for both client and server machines. The 5.0 release introduces a powerful concurrency library that makes multi-threaded programming even easier and more powerful than before. The Java platform also provides support for both 64-bit and also multi-core and hyper-threaded chip technologies. The 64-bit JVM allows applications to use more than 4 GB of heap space and to integrate with other 64-bit applications. (reference <img src='http://blog.iusr.me/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> <br />Quality<br />
<br />The J2SE 5.0 platforms has completed a comprehensive set of burn-in tests on a large set of systems and OS variants. The tests involved many popular application servers and client applications. The last metric taken—the Mean Time To Failure stress test—ran to completion without any failures.<br />
<br />Deployment<br />
<br />Prior to J2SE 5.0, it wasn&#8217;t easy to determine the utilization or transaction throughput of a production JVM. The new profiling tools and self-tuning features provide better production right-sizing information and configuration. These features reduce the scope for surprises when the application goes live.<br />
<br />To complete the deployment picture, as highlighted previously in reason number 1, the JVM can now be fully monitored remotely using industry-standard tools. This enables system administrators to successfully manage JVMs either in a cluster or in a traditional vertical scaling environment. Both the health and utilization of your deployed applications can be monitored.<br />
<br />To cap off the four technical reasons for upgrading, there is one final, important reason to move to 5.0.<br />
<br />#5: You Are in Good Company<br />
<br />Books based on J2SE 5.0 &#8211; Java 5.0 Tiger: A Developer&#8217;s Notebook. David Flanagan, Brett McLaughlin. O&#8217;Reilly &amp; Associates, 2004.- Java 2 v5.0 (Tiger) New Features. Herbert Schildt. McGraw-Hill Osborne Media, 2004.- Beginning Java 2, JDK 5 Edition. Ivor Horton. Wiley, 2004.- Core Java 2, Volume I, II (7th Ed.). Cay Horstmann, Gary Cornell. Pearson Prentice Hall, 2005.- Just Java 2 (6th Ed.). Peter van der Linden. Prentice Hall, 2004.- An Introduction to Programming and Object-Oriented Design Using Java 2, 2nd Ed. Jaime Niño, Frederick A. Hosch. Wiley 2005- The Java Class Libraries Poster : Java 2 Platform Standard Edition 5.0 (8th Ed.). Patrick Chan, Rosanna Lee. Addison-Wesley Professional, 2005.- Objects, Abstraction, Data Structures and Design Using Java Version 5.0. Elliot Koffman, Paul Wolfgang. Wiley, 2004.<br />
<br />The Java Community stands behind the improvements in J2SE 5.0. The J2SE 5.0 expert group comprised the following who&#8217;s who of the Java industry: Apache, Apple, BEA Systems, Borland, Cisco Systems, Fujitsu, Hewlett-Packard, IBM, Macromedia, Nokia, Oracle, SAP, SAS Institute, SavaJe Technologies, Sun Microsystems, John Zukowski, Osvaldo Doederlein, and Juergen Kreileder.<br />
<br />There were 16 working groups, composed of well-known experts in the Java field. They formed a worldwide group of 160 experts collaborating on the J2SE 5.0 Java Specifications. The specifications covered everything from language updates to concurrency libraries to a class file-compression API. For more technical details, see <a href="http://java.sun.com/developer/technicalArticles/J2SE/">J2SE 5.0 in a Nutshell</a>. And the growing number of books in the sidebar on this page.<br />
<br />In addition to the Java expert input, the community at large has taken notice. There have been over one million downloads to date!<br />
<br />Summary<br />
<br />This article listed my top five reasons for moving to the Java 2 Platform, Standard Edition (J2SE platform) 5.0. (The article does not cover the full range of client- or server-side features.) Everything about the platform—from the specifications to the source code, which is licensed under the SCSL and Java Research Library—is available so that you can make your own decision. Contact us through our <a href="http://forums.java.sun.com/">community forums</a> to let us know what you like about the release.<br /></p>
<p><em>顺藤摸瓜</em>：</p><ol>
<li><em><a href='http://blog.iusr.me/2005/09/netbeans-5-coming/' rel='bookmark' title='Netbeans 5快来了'>Netbeans 5快来了</a></em></li>
<li><em><a href='http://blog.iusr.me/2004/10/j2se-5-jdk-1-5/' rel='bookmark' title='J2SE 5, jdk 1.5'>J2SE 5, jdk 1.5</a></em></li>
<li><em><a href='http://blog.iusr.me/2004/06/sun-jwsdp-1-4/' rel='bookmark' title='Sun JWSDP 1.4'>Sun JWSDP 1.4</a></em></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://blog.iusr.me/2005/01/fwd-calvin-austin-five-reasons-to-move-to-the-j2se-5-platform/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java prayer</title>
		<link>http://blog.iusr.me/2004/06/java-prayer/</link>
		<comments>http://blog.iusr.me/2004/06/java-prayer/#comments</comments>
		<pubDate>Sat, 19 Jun 2004 05:42:00 +0000</pubDate>
		<dc:creator>IUSR</dc:creator>
				<category><![CDATA[他山之石]]></category>

		<guid isPermaLink="false">http://blog.iusr.me/?p=29</guid>
		<description><![CDATA[赫赫，心情好，更新一篇 摘自《CSDN开发高手》： 争吵不断的Java阵营 最 近Java阵营内部战火纷飞，原来是不巧EJB3.0和JDO2.0都几乎同时发布重要消息。顿时引发Java阵营内部各路诸侯、各个山寨一片口水混战。 三个巨头IBM，BEA，Oracle为了巩固已有的市场，当然力挺EJB3.0，策略而技巧地批评JDO2.0。毕竟现在宣布JDO死刑还早，如果 JDO坐大，说不定哪天三巨头一下子收购一个JDO厂商，立即开始支持JDO也未可知。 而 挟最受欢迎O/R Mapping工具知名的Hibernate领军人Gavin King也高调杀入战团，不同的是他坦率得多，毫不掩饰对JDO的厌恶，狠狠地抨击JDO2.0。如果EJB3.0和JDO2.0还可以再理解为针对不同 架构的话，Hibernate则需要面对与JDO2.0的直接交战，大有不是你死，就是我亡的势态。 JDO阵营则异常低调，除了Kodo的Abe White（著名的Open source bytecode toolkit Serp的作者，Liberator JDO也使用Serp来实现Enhacer）指出Gavin King对JDO中几个理解错误外，基本没有官方评论，多半是JDO爱好者在反击。 既 然都说到了EJB3.0，我们就不得不提到它的一些新改变：首先，一个EJB不再是两个接口一个类，只要一个类就可以了，虽然现在用JBuilder开发 也不觉得累，但是总算清爽多了；基于POJO设计，POJO是最原是的普通的，没有任何继承的类，很干净，CMP再没那么怪异了；当然EJB部署调试也可 以在容器外执行，使用IoC模式的依赖注射模式替代了JNDI Locator。 很多东西都需要标准，现在我们现实生活中所有的产品都遵循一定的 标准，如IEEE或其它，前段时间IT界为无线标准争个不停。而成为标准的技术最终使客户受益，行业间标准的竞争产生了技术的发展，各家厂家也会对各自的 技术产生推动作用。有网友说Java“成也开源，败也开源”，虽然有点夸张，但我们可以想象它对于业界标准的重要，而太多的纷争最后就是造成标准的缺失， 这是所有Java开发人员不愿意见到的。 赫赫，痛快，EJB这种重量级的东西 终于有所改变了。虽然一直对EJB懵懵懂懂的，看过一些教材也做过一些EJB，但一直不能理解它，更无法看透它身后庞大的J2EE。Java阵营的开放性 诚然也是造成Java标准争议过多、制定和推行过慢的根源，这点肯定比不上.Net阵营中微软一呼百应的情景，JCP讨论个东西动不动就一年半载的，这开 发还怎么让人做啊！幸亏想学EJB时考试也接踵而来，没能深入的学，EJB3.0的规范让我看到了曙光，也让Java ONE面对.Net更多了一个筹码。 这是一个EJB3.0规范下的SessionBean示例： @Session public class HelloWorldBean { public void sayHello (String s) { System.out.println(&#8220;Hello:&#8221; + s); } } 赫赫，爽呆~~~ J2EE 一直以来就是昂贵的代名词，看到J2EE、EJB就让人联想到IBM和Sun的大型机、WebLogic那种吃内存大户、JSP那样的反应迟钝，而且开发 起来过于复杂，总体来说不停地编代码、部署、测试，还要面对各种应用服务器之间的或明显或隐蔽的差异，总之两个字：痛苦…… [...]
]]></description>
			<content:encoded><![CDATA[<p>赫赫，心情好，更新一篇<img src="http://graphics.hotmail.com/i.p.emsmile.gif" border="0" alt="" /></p>
<p>摘自《CSDN开发高手》：</p>
<p align="center">
<hr /><span style="font-family:黑体;font-size:130%;">争吵不断的Java阵营</span></p>
<p><span style="color: #000000; background-color: #d7d7d7;font-size:10;">最 近Java阵营内部战火纷飞，原来是不巧EJB3.0和JDO2.0都几乎同时发布重要消息。顿时引发Java阵营内部各路诸侯、各个山寨一片口水混战。 三个巨头IBM，BEA，Oracle为了巩固已有的市场，当然力挺EJB3.0，策略而技巧地批评JDO2.0。毕竟现在宣布JDO死刑还早，如果 JDO坐大，说不定哪天三巨头一下子收购一个JDO厂商，立即开始支持JDO也未可知。</p>
<p></span><span style="color: #000000; text-indent: 20px; background-color: #d7d7d7;font-size:10;">而 挟最受欢迎O/R Mapping工具知名的Hibernate领军人Gavin King也高调杀入战团，不同的是他坦率得多，毫不掩饰对JDO的厌恶，狠狠地抨击JDO2.0。如果EJB3.0和JDO2.0还可以再理解为针对不同 架构的话，Hibernate则需要面对与JDO2.0的直接交战，大有不是你死，就是我亡的势态。</p>
<p>JDO阵营则异常低调，除了Kodo的Abe White（著名的Open source bytecode toolkit Serp的作者，Liberator JDO也使用Serp来实现Enhacer）指出Gavin King对JDO中几个理解错误外，基本没有官方评论，多半是JDO爱好者在反击。</span></p>
<p>既 然都说到了EJB3.0，我们就不得不提到它的一些新改变：首先，一个EJB不再是两个接口一个类，只要一个类就可以了，虽然现在用JBuilder开发 也不觉得累，但是总算清爽多了；基于POJO设计，POJO是最原是的普通的，没有任何继承的类，很干净，CMP再没那么怪异了；当然EJB部署调试也可 以在容器外执行，使用IoC模式的依赖注射模式替代了JNDI Locator。</p>
<p>很多东西都需要标准，现在我们现实生活中所有的产品都遵循一定的 标准，如IEEE或其它，前段时间IT界为无线标准争个不停。而成为标准的技术最终使客户受益，行业间标准的竞争产生了技术的发展，各家厂家也会对各自的 技术产生推动作用。有网友说Java“成也开源，败也开源”，虽然有点夸张，但我们可以想象它对于业界标准的重要，而太多的纷争最后就是造成标准的缺失， 这是所有Java开发人员不愿意见到的。</p>
<p>赫赫，痛快，EJB这种重量级的东西 终于有所改变了。虽然一直对EJB懵懵懂懂的，看过一些教材也做过一些EJB，但一直不能理解它，更无法看透它身后庞大的J2EE。Java阵营的开放性 诚然也是造成Java标准争议过多、制定和推行过慢的根源，这点肯定比不上.Net阵营中微软一呼百应的情景，JCP讨论个东西动不动就一年半载的，这开 发还怎么让人做啊！幸亏想学EJB时考试也接踵而来，没能深入的学，EJB3.0的规范让我看到了曙光，也让Java ONE面对.Net更多了一个筹码。</p>
<p>这是一个EJB3.0规范下的SessionBean示例：</p>
<p><span style="font-size:85%;">@Session <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">class</span> HelloWorldBean {</span></p>
<p><span style="font-size:85%;"> <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">void</span> sayHello (String s) {</span></p>
<p><span style="font-size:85%;"> System.<span style="color:#a8a39b;">out</span>.println(<span style="color:#44bb44;">&#8220;Hello:&#8221;</span> + s);</span></p>
<p><span style="font-size:85%;"> }</span></p>
<p><span style="font-size:85%;">}</p>
<p></span></p>
<hr />
赫赫，爽呆~~~</p>
<p>J2EE 一直以来就是昂贵的代名词，看到J2EE、EJB就让人联想到IBM和Sun的大型机、WebLogic那种吃内存大户、JSP那样的反应迟钝，而且开发 起来过于复杂，总体来说不停地编代码、部署、测试，还要面对各种应用服务器之间的或明显或隐蔽的差异，总之两个字：痛苦……</p>
<p>虽然不太熟悉，但还是 稍微做过一些.Net方面的东西。编码时有VS.Net 2003，加上Visual Assistant .Net后几乎不必添置其他的开发工具，顶多再置办个Together for .Net Edition，而且运行速度都比什么JBX、IDEA、Workshop快得多，部署也方便，Asp.Net的页面通过本机或远程身份验证直接就发布到 IIS上了，何等惬意……</p>
<p>正是因此，也导致大量Java程序员流向.Net阵营，北美洲的Java和.Net程序员数量的变化大致能勾勒出这种趋 势。.Net有强劲易用的操作系统，快速方便舒服的IDE，操作简便的服务器，关键是对运行效率的操作系统级别支持，无论哪一点对辛苦经营的Java程序 员来说都有无比的吸引力，再看看Java ONE这边，不统一的操作系统，慢吞吞的IDE，配置复杂、启动和重启都异常耗时的应用服务器，再加上难以提高的运行效率，剩下可以拿来夸口的只有出色的 跨平台能力和标准的开放性了，但这在Windows不断蚕食服务器系统市场，和Mono不断进步的情况下也越来越难以启齿。我们该何去何从……</p>
<p>不清楚当初从笃定心思学.Net到转为学Java是不是个失败，我总是告诫自己语言和平台是相异的但思想是相通的，但一下子在开发平台上的转换始终会令人不知所措，找不到自己的位置和方向。</p>
<p>现在能做的，也只是静静的bless自己支持的Java ONE和*nix操作系统能一路走好了……</p>
<p>嗯，也许，我可以用J#<img src="http://graphics.hotmail.com/i.p.emsmilep.gif" border="0" alt="" /> 哈哈，不说这种丧气话了~~~</p>
<p>BTW，bless my LP，她正在奋斗六级<img src="http://graphics.hotmail.com/i.p.emlove.gif" border="0" alt="" /></p>
<p></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iusr.me/2004/06/java-prayer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【转载】当代IT毕业生的一些流行病</title>
		<link>http://blog.iusr.me/2004/06/fwd-annoyances-of-current-it-graduates/</link>
		<comments>http://blog.iusr.me/2004/06/fwd-annoyances-of-current-it-graduates/#comments</comments>
		<pubDate>Tue, 08 Jun 2004 18:30:00 +0000</pubDate>
		<dc:creator>IUSR</dc:creator>
				<category><![CDATA[他山之石]]></category>

		<guid isPermaLink="false">http://blog.iusr.me/?p=26</guid>
		<description><![CDATA[发信人: hello (方丈), 信区: Linux标&#160; 题: 当代IT毕业生的一些流行病[转帖]发信站: 天大求实BBS (Tue Jun&#160; 8 12:45:42 2004), 转信(bbs.tju.edu.cn) &#8212;&#8211;大家多拍砖头 朋友笑着对我说：你还真是少见多怪，我这里类似的简历还有很多呢。那天，我的朋友多喝了点酒，就滔滔不绝的说了现在的计算机专业的大学生，事后想起来一些关于谈话的碎片，可能都不完整了，整理下来，给大家增加点谈天的内容吧． 荒废掉的专业课 现在的学生，本末倒置的厉害。什么时髦玩什么，把那些本该学好的只是反而放到一边。整天弄什么Linux（因为大家都在弄），安装来安装去的乐此不疲（到了毕业就算是精通Unix了，可以在简历里面写一笔的）而且专对界面，软件的使用什么的感兴趣，比如驱动个声卡，配置个Xwindows，折腾个没完，可以说是取其糟粕，弃其精华．如果你真的问问他们一些企业应用的东西，也就是能说出个Apache之类就不错了，你问下去，对与错还没准儿呢。很多学生找工作，都会把学校的成绩在简历上大肆的吹嘘－－千万别信他们！我也从学校里出来的，对这个还是比较了解的。我那天面试了一个北京某著名理科高校的计算机研究生，我看到简历里说到他是其中一门课（关于中间件的课程）的助教，偶问他：能否对业界知名的中间件加以归类？用什么标准无所谓。支支吾吾半天连主要的产品都说不全。就这样，在简历里还吹嘘得很厉害，什么某公司的顾问了，什么公司的技术总监了，胡扯！ 眼高手低，还有点不知道天高地厚 在Linux下对照人家的原代码写了几行程序，就是精通Unix编程了；学完了数据库基础就声称精通数据库。用了几天Office，就能说自己精通Office。一旦你让他去写个文档，一百个不情愿，还说：这玩意还不简单？结果作了好几天，弄出来的文档不但粗糙得很，还没有统一的风格，极尽变化之能事。你说他写得不好，他还抱怨说你故意排挤他，最后你还要自己弄（那样的文档怎么给客户用呢？）。工作不了几天，就想着自己做老板。成天把什么个人创业挂在嘴边，都认为自己是做大事的人。你让他们列举出4个IBM的主要产品，很多人都要半天才能弄出来，你要是问他们F4都是那四个人，那是张口就来。他们关心丁磊们的财富的程序要胜过关心C++语言的发展。 没有自己的观点 不说别的，就说说关于微软。几乎没有一个计算机专业的学生没有用过微软的产品，但是你和他们谈到微软的时候，他们首先想到的不是微软的伟大之处，而是不厌其烦的和你谈什么微软的霸权，什么中国人自己的操作系统，什么开源软件。而这些话和报纸上的方兴东等反微软人士的论调几乎如出一辙。我不是说批评微软不好，而是要说的是，即使是批评别人都没有动过脑子。这不是他们的懒惰是什么呢？ 遇到批评的时候首先会辩解，不肯承认错误 前几天，在网上有一个北京一所高校的一个学生，发表了一篇什么《计算机学习之我见》(名字记不太清楚了，反正后来文章的名字也改了)，后来被人揭穿主要内容都是抄别人的，结果作者还一而再再而三的辩解。总而言之，对于大家都指出来的事实是死不承认。不从自身找原因。对自己做错了的事情心安理得。而且大多还都自命不凡，往往还没出校门呢，就已经有好多头衔了，什么“专家”，“资深顾问”，不知道什么的一堆头衔。到了找不到工作的时候也是埋怨社会环境不好，什么经济不景气。甚至都埋怨起了毛泽东没有早点进行计划生育&#8230;&#8230;扯远了 沉迷游戏。浮躁，缺少深入思考的习惯 他们比游戏公司更关心游戏，对游戏杂志每期必看，对一些游戏故事背景如数家珍，他们能为了一个帐号和别人拼命，走在路上谈论游戏，宿舍里，睡梦中，还是游戏游戏！现在的大学生还几乎都是网虫，但是你看看他们在网上的表现：看到别人写的有争论性的文章，很少真正的进行讨论。往往是一个简单的“顶”，“好”，“打倒小日本”盲目性很严重。别人喜欢《大话西游》他也说《大话西游》好，杂志上说软件工程，他也开始开口闭口都是CMM。和他们谈话，你能听到最时髦的东西，但是最实际的东西你很少能听到。在他们的课堂上，能提起他们的精神的内容大多是一些小笑话，稍加沉闷一点的课程，几乎没有人会认真听。 拜金主义之盛行 在每年毕业生找工作的时候,北大、清华的校园BBS上都会有一些内容不尽相同但是又很雷同的东西：偶去某某大公司是如何通过的，某某如何收到了几个国际大公司的Offer，某某国内的企业如何的不好，鄙视这家公司．．．．．．可以想象一下屏幕前的一双双渴望的眼睛，似乎通过这些文字，金钱、小康的生活已经触手可及．面试失败对他们的打击是如何之大，所谓成功又是如何令他们兴奋！又是多么容易感受到幸福啊。仔细想想，也挺可怕的，这可是中国最负盛名的大学阿，但是天之骄子们就成了这么样吗？ 朋友说到这里，我已经开始反对了：“不能一棍子打死吧，一些学生还是比较踏实的。”“我可以肯定，那绝对是少数。”，我的愤青朋友回答的很坚决。“还有一些其他的，就不说了吧，我知道那些自命不凡的学生，一定会跳出来反驳的，因为，他们觉得自己了不起阿．”&#8211;来源:．天大求实BBS bbs.tju.edu.cn．[FROM:202.113.13.188]
]]></description>
			<content:encoded><![CDATA[<p>发信人: hello (方丈), 信区: Linux<br />标&nbsp; 题: 当代IT毕业生的一些流行病[转帖]<br />发信站: 天大求实BBS (Tue Jun&nbsp; 8 12:45:42 2004), 转信(bbs.tju.edu.cn)</p>
<p>
<p>&#8212;&#8211;大家多拍砖头</p>
<p>
<p>朋友笑着对我说：你还真是少见多怪，我这里类似的简历还有很多呢。那天，我的朋友多喝了点酒，就滔滔不绝的说了现在的计算机专业的大学生，事后想起来一些关于谈话的碎片，可能都不完整了，整理下来，给大家增加点谈天的内容吧．</p>
<p>
<p>荒废掉的专业课</p>
<p>
<p>现在的学生，本末倒置的厉害。什么时髦玩什么，把那些本该学好的只是反而放到一边。整天弄什么Linux（因为大家都在弄），安装来安装去的乐此不疲（到了毕业就算是精通Unix了，可以在简历里面写一笔的）而且专对界面，软件的使用什么的感兴趣，比如驱动个声卡，配置个Xwindows，折腾个没完，可以说是取其糟粕，弃其精华．如果你真的问问他们一些企业应用的东西，也就是能说出个Apache之类就不错了，你问下去，对与错还没准儿呢。很多学生找工作，都会把学校的成绩在简历上大肆的吹嘘－－千万别信他们！我也从学校里出来的，对这个还是比较了解的。<br />我那天面试了一个北京某著名理科高校的计算机研究生，我看到简历里说到他是其中一门课（关于中间件的课程）的助教，偶问他：能否对业界知名的中间件加以归类？用什么标准无所谓。支支吾吾半天连主要的产品都说不全。就这样，在简历里还吹嘘得很厉害，什么某公司的顾问了，什么公司的技术总监了，胡扯！</p>
<p>
<p>眼高手低，还有点不知道天高地厚</p>
<p>
<p>在Linux下对照人家的原代码写了几行程序，就是精通Unix编程了；学完了数据库基础就声称精通数据库。用了几天Office，就能说自己精通Office。一旦你让他去写个文档，一百个不情愿，还说：这玩意还不简单？结果作了好几天，弄出来的文档不但粗糙得很，还没有统一的风格，极尽变化之能事。你说他写得不好，他还抱怨说你故意排挤他，最后你还要自己弄（那样的文档怎么给客户用呢？）。工作不了几天，就想着自己做老板。成天把什么个人创业挂在嘴边，都认为自己是做大事的人。你让他们列举出4个IBM的主要产品，很多人都要半天才能弄出来，你要是问他们F4都是那四个人，那是张口就来。他们关心丁磊们的财富的程序要胜过关心C++语言的发展。</p>
<p>
<p>没有自己的观点</p>
<p>
<p>不说别的，就说说关于微软。几乎没有一个计算机专业的学生没有用过微软的产品，但是你和他们谈到微软的时候，他们首先想到的不是微软的伟大之处，而是不厌其烦的和你谈什么微软的霸权，什么中国人自己的操作系统，什么开源软件。而这些话和报纸上的方兴东等反微软人士的论调几乎如出一辙。我不是说批评微软不好，而是要说的是，即使是批评别人都没有动过脑子。这不是他们的懒惰是什么呢？</p>
<p>
<p>遇到批评的时候首先会辩解，不肯承认错误</p>
<p>
<p>前几天，在网上有一个北京一所高校的一个学生，发表了一篇什么《计算机学习之我见》(名字记不太清楚了，反正后来文章的名字也改了)，后来被人揭穿主要内容都是抄别人的，结果作者还一而再再而三的辩解。总而言之，对于大家都指出来的事实是死不承认。不从自身找原因。对自己做错了的事情心安理得。而且大多还都自命不凡，往往还没出校门呢，就已经有好多头衔了，什么“专家”，“资深顾问”，不知道什么的一堆头衔。到了找不到工作的时候也是埋怨社会环境不好，什么经济不景气。甚至都埋怨起了毛泽东没有早点进行计划生育&#8230;&#8230;扯远了</p>
<p>
<p>沉迷游戏。浮躁，缺少深入思考的习惯</p>
<p>
<p>他们比游戏公司更关心游戏，对游戏杂志每期必看，对一些游戏故事背景如数家珍，他们能为了一个帐号和别人拼命，走在路上谈论游戏，宿舍里，睡梦中，还是游戏游戏！<br />现在的大学生还几乎都是网虫，但是你看看他们在网上的表现：看到别人写的有争论性的文章，很少真正的进行讨论。往往是一个简单的“顶”，“好”，“打倒小日本”盲目性很严重。别人喜欢《大话西游》他也说《大话西游》好，杂志上说软件工程，他也开<br />始开口闭口都是CMM。和他们谈话，你能听到最时髦的东西，但是最实际的东西你很少能听到。在他们的课堂上，能提起他们的精神的内容大多是一些小笑话，稍加沉闷一点的课程，几乎没有人会认真听。</p>
<p>
<p>拜金主义之盛行</p>
<p>
<p>在每年毕业生找工作的时候,北大、清华的校园BBS上都会有一些内容不尽相同但是又很雷同的东西：偶去某某大公司是如何通过的，某某如何收到了几个国际大公司的Offer，某某国内的企业如何的不好，鄙视这家公司．．．．．．可以想象一下屏幕前的一双双渴望的眼睛，似乎通过这些文字，金钱、小康的生活已经触手可及．<br />面试失败对他们的打击是如何之大，所谓成功又是如何令他们兴奋！又是多么容易感受到幸福啊。仔细想想，也挺可怕的，这可是中国最负盛名的大学阿，但是天之骄子们就成了这么样吗？</p>
<p>
<p>朋友说到这里，我已经开始反对了：“不能一棍子打死吧，一些学生还是比较踏实的。”“我可以肯定，那绝对是少数。”，我的愤青朋友回答的很坚决。“还有一些其他的，就不说了吧，我知道那些自命不凡的学生，一定会跳出来反驳的，因为，他们觉得自己了不起阿．”<br />&#8211;<br />来源:．天大求实BBS bbs.tju.edu.cn．[FROM:202.113.13.188]</p>
<p></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iusr.me/2004/06/fwd-annoyances-of-current-it-graduates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【转载】中国人为什么不排队</title>
		<link>http://blog.iusr.me/2004/04/fwd-why-chinese-are-queue-jumpers/</link>
		<comments>http://blog.iusr.me/2004/04/fwd-why-chinese-are-queue-jumpers/#comments</comments>
		<pubDate>Mon, 26 Apr 2004 17:11:00 +0000</pubDate>
		<dc:creator>IUSR</dc:creator>
				<category><![CDATA[他山之石]]></category>

		<guid isPermaLink="false">http://blog.iusr.me/?p=23</guid>
		<description><![CDATA[不久前坐火车，一个平常的周末，从长沙去汉口。进站排队，本来不长的队伍，等到列车员开始检票，局面立刻大乱。后边的人一拥而上，队伍立刻粗壮几倍。一位扛着行李、领着小孩的妇女，被人流冲得东倒西歪。很多衣着时尚的年轻人，堂而皇之地从后边直插进来，显然对这种场面已经驾轻就熟。我一边耐着性子往前磨，一边想：有没有什么好办法治一治不排队的毛病？当场想到两个，一是用几个彪形大汉充任纠察，手执皮鞭，照着不排队的就抽；再一个就是用粗钢管焊成通道，让排队的人像屠宰车间的牲口那样，只能按规定的路线行进。但再一想，两条都缺乏可行性：鞭子是奴隶社会的产物，与我们人民当家作主的社会制度格格不入；钢制栏杆也不能治本，中国需要排队的地方那么多，哪里去搞那么多钢管嘛。只有听之任之，反正乱挤一阵之后，大家都各就各位，火车能按时发出，不影响大局也就行了。这就便宜了那些不守秩序的家伙，守秩序的人永远吃亏。 发达国家的月亮不比中国的圆，但人家的队确实比我们排得好。电视上有时宣传某国经济出了问题，银行遇到挤提，但画面上却比我们存款的排队秩序还好。 由此我认为：不愿意排队似乎是中国人的一种本性，文革动乱时不排队，形势大好时也不排队。不仅卖浆引车者不排队，身份体面的人也没有排队的习惯。不信你在北京开两会的时候做个试验：散会时不要安排专车，让这些冠冕堂皇的人民代表去乘公交车，照样夹塞儿硬挤，比他们所代表的人民强不到哪儿去。 是不是可以得出结论：国人的不守秩序是因为资源不足造成的？我认为主要不是这个原因。资源充足与否，从来是一个相对的概念，今天的资源比20年前要丰富多了，但乱挤依旧。 有一个社会模型很能说明问题：乘飞机。飞机对号入座，资源是充足的。但登机时，照样争先恐后，照样后来居上。当然，挤的人有一个理由：上去慢了，行李就没有地方放，看来还是资源不足。那么下飞机的时候不用着急了吧？不行!我因工作原因经常乘飞机，每次都看到机舱门还没开，就有一些旅客逃命似地打开行李箱、拎下行李，挤在过道上，时时准备喷射而出的架式。这时他们并没有现实的利益。他们迫不及待地挤在过道上，已经是一种下意识，大概是觉得别人已经站起来，自己还坐在那里是，肯定会吃亏。 另一个社会模型是塞车。我曾在德国的高速公路上遇到塞车，其情形是，所有的车辆都放慢速度，前后保持一二十米的距离，缓缓前行。没有人往别人前边乱插。因为他们知道，前边有障碍，往前乱钻只会把事情搞坏。但中国人不然。 只要有一条缝，他就要钻进去，本来别人还可以走，他一钻，大家都走不了。但对他来说，钻进来，就算都走不了，心里也安然；如果不钻进来，看着别人走，心里就难受。 这两个社会模型反映出，中国同胞争先恐后的心态，已经深入到潜意识，即使没有利益，这种心态也足以令他向前猛冲。 这让我想到了基因这个词。人与人的不同，是由基因决定的。民族与民族的差异，也是由基因决定的。正如我们无论怎样吃西餐、穿西装，仍不能改变我们是黑眼睛、黄皮肤一样，我们无论盖多少“欧陆风”的房子、引进多少外国机器，我们的观念还是国产的。21世纪了，我们的电视机从黑白到彩色，从9寸到背投、等离子，比起发达国家并不逊色，但荧屏上还是“谢主隆恩”、“吾皇万岁万万岁”的那一套，这是我们的文化基因决定的。 最近读了一本谈健康的小书，一位保健专家针对中国人迅速发胖、糖尿病急速上升的现象提出一个论点，认为与中国人的“贫困基因”有关。什么是贫困基因？他解释说，在一个食物缺乏保障的环境里，能够最大限度地存储能量的人，容易捱过饥荒；而缺乏这种能力的人就会被淘汰。久而久之，生存下来的人就都具备了存储能量的能力，由于这是贫困的生活环境所造成，所以称之为“贫困基因”。所有不发达的国家和地区的人民，都具有贫困基因。这在食不果腹时，是生存的优势，而到了生活条件富裕之后，这种基因会使人过度存储热量，转化为脂肪，进而破坏代谢机制，引发糖尿病。统计表明，由不发达到温饱的阶段，糖尿病的发病率最高，欧洲、亚洲、美洲都不例外。 既然长期贫困的生活能给人培育出“贫困基因”，那么，数千年的封建专制统治不可能不给中华民族留下特殊的文化基因。我想，恐惧，就是其中一个重要的基因。 在三千多年的封建专制时代，几乎每一个中国人都生活在恐惧之中。中国历史，从大的局面来讲，总是分裂多于统一，战乱多于和平。即令汉、唐、宋、明、清，这几个中国人可以引以为光荣的辉煌王朝，也都是诞生于血海之中。一统江山之后，通常先用三五十年时间恢复元气，然后最多有一百年左右的盛世，比如文景、贞观、康乾之治，接着就又陷入到血海之中。秦末、汉末、魏晋南北朝、隋末、唐末、五代十国、南宋、元末、明末、清末民初，都是血流成河，人民生命贱如草芥的年代。就算侥幸生在盛世，如果运气不好，遇上冤狱，命运也一样悲惨。清代著名的文字狱大案，都发生在圣明的康、雍、乾三朝。再考虑到自然灾害、官吏盘剥、异族入侵等情形，中国人民的历史可以说尽是血泪。如果把中华民族看作一个生命，那这位老人真是历尽劫难，没有过几天好日子。元代词人张养浩说“兴，百姓苦；亡，百姓苦”，说的就是这个惨痛。 在这个苦难的生存环境里，人民没有任何权利和保障可言。“君叫臣死，臣不得不死”，生命贱如土芥；“普天之下，莫非王土”，没有什么财产是属于自己的。即便在这种情况下，还会有种种无法预测的突如其来的灾祸降临，俗语说“人有旦夕之祸福”、“福无双至，祸不单行”、“屋漏偏遭连阴雨”，就是这种境遇的写照。所以鲁迅说中国人其实只有两种：一种是暂时做稳了奴隶，一种是想做奴隶而不可得。这种状态下的中国人，只能是听天由命、朝不虑夕、提心吊胆，如惊弓之鸟一般捱日子。一有风吹草动，首先想到的是自己的身家性命。 这样的人群，哪有秩序可言？逃得快的，还有可能苟活；犹豫一点的，顾及一点礼义尊严的，早就成了乱军囊中的人肉干。几经淘汰，恐惧就进入了先民的基因。 我们今天看广东、福建各地的客家民居，坚固如堡垒，这正是客家人恐惧基因的物化形态，反映出当时生存环境之残酷。 建国之后，和平与发展是基本面，但对老百姓而言，恐惧仍旧。从五十年代到八十年代，政治运动不断，不从政的老百姓反倒成了最大的受害者。三反五反、反右、四清、文革、批自由化，受到损害的人应以亿计。推行公有制计划经济，将老百姓剥夺之彻底，历朝历代都不能比拟。59年至61年，所谓的三年自然灾害，现在看来，不过是毛泽东要和彭德怀赌口气，本来要“纠左”的，彭一提意见，毛干脆“反右”，这一口气赌下来，不但彭德怀和一大批稍微有一点良心的官员走了背运，还连累至少2000万中国人从共和国的户籍册上被销掉。 即使改革开放之后，这种恐惧也没有消除，只是恐惧的内容发生变化。没发财的，怕一辈子受穷；发了财的，怕政策变。更普遍的心态，是怕别人得了便宜，自己吃亏。我们坐飞机，广播说延误两小时，没人着急，因为大家都同样晚；但正点登机的时候，反而人人急得往前乱挤，因为怕别人走在自己前边。落后就要吃亏，不争就要受损，这就是恐惧基因在现阶段的具体表现。 恐惧基因与现代文明很难相容。那么它能否改造呢？我认为可以。西方国家，在15世纪之前，可以说是在黑暗中与我们平行前进，甚至落后于我们。长达1000年的黑暗中世纪，给欧洲人民留下了同样的烙印。可是，当我们以加速度向着封建统治的深谷堕下时，人家一个急转弯，迎着光明而去，东西方文明从此分野。这一道光明就是伟大的文艺复兴和思想启蒙运动，它照亮了欧洲，也改造了西方文明的基因。我们今天去欧洲走马观花转一下，一个突出的感觉就是人家的生活很悠闲，心态很平和，秩序井然。没有防盗门，没有防盗网，上街不用把背包挂在胸前。开车不抢道，过马路不闯红灯。借钱消费而不是把钱存进银行；晚年有养老金保障而不是养儿防老。人家是如何做到的？简而言之：民主与法治。 这既是国家长治久安的根基，也是根除恐惧基因的良方。 我们再看一下东邻日本。它与我们同文同种，文化基因基本相同，还一直以中国为学习的榜样。但明治维新以后，它公然宣称“脱亚入欧”，恨不得将黄皮肤一起漂白。二战以后，日本真正引入西方价值体系，短短几十年，变成了一个远东的西方国家。这不仅体现在它的产值和科技上，更体现在它的国民素质上。 1995年1月坂神大地震，有一位中国留学生亲身经历后写了文章，其中有一段描述给我留下深刻的印象。他记述说，地震发生后，市民很快从混乱中恢复镇静，除了自发组织救援外，其它人都在户外冒着严寒等待政府救助。沿街的店铺橱窗被震碎，商品撒落一地，包括珠宝等贵重物品。灾民无一人去捡；大家都饿着肚子，但撒落满街的食物饮料没有人去动。他们的观念是：这些东西是别人的，我们不能动。我们的困难，政府会来解决。我想，假如地震发生在我国任何一个城市，我们任何一个人在饥寒交迫的情况下，还能如此君子吗？我表示怀疑，因为首先我就做不到。我自认是一个公德水平比较高的人，但要我做到“饿死不食他人的东西”，比坐怀不乱还要难百倍。 在中国，抢食物是有道理的，你不抢就真有可能饿死。日本人不抢，是因为他内心确信，政府不会看着国民饿死，他一定会得到救援。上升到讲政治的高度，就是说由于人家实行民主与法治，老百姓心里踏实；而我们这边，不确定的东西太多，老百姓内心的恐慌、焦虑、担忧当然就非常合理，甚至成了一种生存智慧。 思考至此，我觉得逻辑比较清晰了：秩序的混乱是由于人们内心的恐慌——内心的恐慌是因为深入骨髓的基因——基因的形成取决于我们祖先的生存方式——要改变基因就要改变生存方式(20年来的改革就是巨大的改变)——在一定物质条件基础上，以自由、平等、科学、民主的思想启蒙人民，是改造旧基因，迎接民族新生的光明之路，是解决中国一切社会问题的根本途径。 只强调经济翻番，或者表面上抓一抓“精神文明建设”，不修补中国传统基因中的缺陷，中国永远不可能成为强国，人民永远不可能无忧无虑地生活。广州、深圳的生活水平够高了，市民文化程度不低了，城市经济实力够强了，然而一场“非典型肺炎”引发的恐慌，就让人们看到了这个社会是如此脆弱不堪。
]]></description>
			<content:encoded><![CDATA[<p>不久前坐火车，一个平常的周末，从长沙去汉口。进站排队，本来不长的队伍，等到列车员开始检票，局面立刻大乱。后边的人一拥而上，队伍立刻粗壮几倍。一位扛着行李、领着小孩的妇女，被人流冲得东倒西歪。很多衣着时尚的年轻人，堂而皇之地从后边直插进来，显然对这种场面已经驾轻就熟。我一边耐着性子往前磨，一边想：有没有什么好办法治一治不排队的毛病？当场想到两个，一是用几个彪形大汉充任纠察，手执皮鞭，照着不排队的就抽；再一个就是用粗钢管焊成通道，让排队的人像屠宰车间的牲口那样，只能按规定的路线行进。但再一想，两条都缺乏可行性：鞭子是奴隶社会的产物，与我们人民当家作主的社会制度格格不入；钢制栏杆也不能治本，中国需要排队的地方那么多，哪里去搞那么多钢管嘛。只有听之任之，反正乱挤一阵之后，大家都各就各位，火车能按时发出，不影响大局也就行了。这就便宜了那些不守秩序的家伙，守秩序的人永远吃亏。</p>
<p>
<p>发达国家的月亮不比中国的圆，但人家的队确实比我们排得好。电视上有时宣传某国经济出了问题，银行遇到挤提，但画面上却比我们存款的排队秩序还好。</p>
<p>
<p>由此我认为：不愿意排队似乎是中国人的一种本性，文革动乱时不排队，形势大好时也不排队。不仅卖浆引车者不排队，身份体面的人也没有排队的习惯。不信你在北京开两会的时候做个试验：散会时不要安排专车，让这些冠冕堂皇的人民代表去乘公交车，照样夹塞儿硬挤，比他们所代表的人民强不到哪儿去。</p>
<p>
<p>是不是可以得出结论：国人的不守秩序是因为资源不足造成的？我认为主要不是这个原因。资源充足与否，从来是一个相对的概念，今天的资源比20年前要丰富多了，但乱挤依旧。</p>
<p>
<p>有一个社会模型很能说明问题：乘飞机。飞机对号入座，资源是充足的。但登机时，照样争先恐后，照样后来居上。当然，挤的人有一个理由：上去慢了，行李就没有地方放，看来还是资源不足。那么下飞机的时候不用着急了吧？不行!我因工作原因经常乘飞机，每次都看到机舱门还没开，就有一些旅客逃命似地打开行李箱、拎下行李，挤在过道上，时时准备喷射而出的架式。这时他们并没有现实的利益。他们迫不及待地挤在过道上，已经是一种下意识，大概是觉得别人已经站起来，自己还坐在那里是，肯定会吃亏。</p>
<p>
<p>另一个社会模型是塞车。我曾在德国的高速公路上遇到塞车，其情形是，所有的车辆都放慢速度，前后保持一二十米的距离，缓缓前行。没有人往别人前边乱插。因为他们知道，前边有障碍，往前乱钻只会把事情搞坏。但中国人不然。</p>
<p>
<p>只要有一条缝，他就要钻进去，本来别人还可以走，他一钻，大家都走不了。但对他来说，钻进来，就算都走不了，心里也安然；如果不钻进来，看着别人走，心里就难受。</p>
<p>
<p>这两个社会模型反映出，中国同胞争先恐后的心态，已经深入到潜意识，即使没有利益，这种心态也足以令他向前猛冲。</p>
<p>
<p>这让我想到了基因这个词。人与人的不同，是由基因决定的。民族与民族的差异，也是由基因决定的。正如我们无论怎样吃西餐、穿西装，仍不能改变我们是黑眼睛、黄皮肤一样，我们无论盖多少“欧陆风”的房子、引进多少外国机器，我们的观念还是国产的。21世纪了，我们的电视机从黑白到彩色，从9寸到背投、等离子，比起发达国家并不逊色，但荧屏上还是“谢主隆恩”、“吾皇万岁万万岁”的那一套，这是我们的文化基因决定的。</p>
<p>
<p>最近读了一本谈健康的小书，一位保健专家针对中国人迅速发胖、糖尿病急速上升的现象提出一个论点，认为与中国人的“贫困基因”有关。什么是贫困基因？他解释说，在一个食物缺乏保障的环境里，能够最大限度地存储能量的人，容易捱过饥荒；而缺乏这种能力的人就会被淘汰。久而久之，生存下来的人就都具备了存储能量的能力，由于这是贫困的生活环境所造成，所以称之为“贫困基因”。所有不发达的国家和地区的人民，都具有贫困基因。这在食不果腹时，是生存的优势，而到了生活条件富裕之后，这种基因会使人过度存储热量，转化为脂肪，进而破坏代谢机制，引发糖尿病。统计表明，由不发达到温饱的阶段，糖尿病的发病率最高，欧洲、亚洲、美洲都不例外。</p>
<p>
<p>既然长期贫困的生活能给人培育出“贫困基因”，那么，数千年的封建专制统治不可能不给中华民族留下特殊的文化基因。我想，恐惧，就是其中一个重要的基因。</p>
<p>
<p>在三千多年的封建专制时代，几乎每一个中国人都生活在恐惧之中。中国历史，从大的局面来讲，总是分裂多于统一，战乱多于和平。即令汉、唐、宋、明、清，这几个中国人可以引以为光荣的辉煌王朝，也都是诞生于血海之中。一统江山之后，通常先用三五十年时间恢复元气，然后最多有一百年左右的盛世，比如文景、贞观、康乾之治，接着就又陷入到血海之中。秦末、汉末、魏晋南北朝、隋末、唐末、五代十国、南宋、元末、明末、清末民初，都是血流成河，人民生命贱如草芥的年代。就算侥幸生在盛世，如果运气不好，遇上冤狱，命运也一样悲惨。清代著名的文字狱大案，都发生在圣明的康、雍、乾三朝。再考虑到自然灾害、官吏盘剥、异族入侵等情形，中国人民的历史可以说尽是血泪。如果把中华民族看作一个生命，那这位老人真是历尽劫难，没有过几天好日子。元代词人张养浩说“兴，百姓苦；亡，百姓苦”，说的就是这个惨痛。</p>
<p>
<p>在这个苦难的生存环境里，人民没有任何权利和保障可言。“君叫臣死，臣不得不死”，生命贱如土芥；“普天之下，莫非王土”，没有什么财产是属于自己的。即便在这种情况下，还会有种种无法预测的突如其来的灾祸降临，俗语说“人有旦夕之祸福”、“福无双至，祸不单行”、“屋漏偏遭连阴雨”，就是这种境遇的写照。所以鲁迅说中国人其实只有两种：一种是暂时做稳了奴隶，一种是想做奴隶而不可得。这种状态下的中国人，只能是听天由命、朝不虑夕、提心吊胆，如惊弓之鸟一般捱日子。一有风吹草动，首先想到的是自己的身家性命。</p>
<p>
<p>这样的人群，哪有秩序可言？逃得快的，还有可能苟活；犹豫一点的，顾及一点礼义尊严的，早就成了乱军囊中的人肉干。几经淘汰，恐惧就进入了先民的基因。</p>
<p>
<p>我们今天看广东、福建各地的客家民居，坚固如堡垒，这正是客家人恐惧基因的物化形态，反映出当时生存环境之残酷。</p>
<p>
<p>建国之后，和平与发展是基本面，但对老百姓而言，恐惧仍旧。从五十年代到八十年代，政治运动不断，不从政的老百姓反倒成了最大的受害者。三反五反、反右、四清、文革、批自由化，受到损害的人应以亿计。推行公有制计划经济，将老百姓剥夺之彻底，历朝历代都不能比拟。59年至61年，所谓的三年自然灾害，现在看来，不过是毛泽东要和彭德怀赌口气，本来要“纠左”的，彭一提意见，毛干脆“反右”，这一口气赌下来，不但彭德怀和一大批稍微有一点良心的官员走了背运，还连累至少2000万中国人从共和国的户籍册上被销掉。</p>
<p>
<p>即使改革开放之后，这种恐惧也没有消除，只是恐惧的内容发生变化。没发财的，怕一辈子受穷；发了财的，怕政策变。更普遍的心态，是怕别人得了便宜，自己吃亏。我们坐飞机，广播说延误两小时，没人着急，因为大家都同样晚；但正点登机的时候，反而人人急得往前乱挤，因为怕别人走在自己前边。落后就要吃亏，不争就要受损，这就是恐惧基因在现阶段的具体表现。</p>
<p>
<p>恐惧基因与现代文明很难相容。那么它能否改造呢？我认为可以。西方国家，在15世纪之前，可以说是在黑暗中与我们平行前进，甚至落后于我们。长达1000年的黑暗中世纪，给欧洲人民留下了同样的烙印。可是，当我们以加速度向着封建统治的深谷堕下时，人家一个急转弯，迎着光明而去，东西方文明从此分野。这一道光明就是伟大的文艺复兴和思想启蒙运动，它照亮了欧洲，也改造了西方文明的基因。我们今天去欧洲走马观花转一下，一个突出的感觉就是人家的生活很悠闲，心态很平和，秩序井然。没有防盗门，没有防盗网，上街不用把背包挂在胸前。开车不抢道，过马路不闯红灯。借钱消费而不是把钱存进银行；晚年有养老金保障而不是养儿防老。人家是如何做到的？简而言之：民主与法治。</p>
<p>
<p>这既是国家长治久安的根基，也是根除恐惧基因的良方。</p>
<p>
<p>我们再看一下东邻日本。它与我们同文同种，文化基因基本相同，还一直以中国为学习的榜样。但明治维新以后，它公然宣称“脱亚入欧”，恨不得将黄皮肤一起漂白。二战以后，日本真正引入西方价值体系，短短几十年，变成了一个远东的西方国家。这不仅体现在它的产值和科技上，更体现在它的国民素质上。</p>
<p>
<p>1995年1月坂神大地震，有一位中国留学生亲身经历后写了文章，其中有一段描述给我留下深刻的印象。他记述说，地震发生后，市民很快从混乱中恢复镇静，除了自发组织救援外，其它人都在户外冒着严寒等待政府救助。沿街的店铺橱窗被震碎，商品撒落一地，包括珠宝等贵重物品。灾民无一人去捡；大家都饿着肚子，但撒落满街的食物饮料没有人去动。他们的观念是：这些东西是别人的，我们不能动。我们的困难，政府会来解决。我想，假如地震发生在我国任何一个城市，我们任何一个人在饥寒交迫的情况下，还能如此君子吗？我表示怀疑，因为首先我就做不到。我自认是一个公德水平比较高的人，但要我做到“饿死不食他人的东西”，比坐怀不乱还要难百倍。</p>
<p>
<p>在中国，抢食物是有道理的，你不抢就真有可能饿死。日本人不抢，是因为他内心确信，政府不会看着国民饿死，他一定会得到救援。上升到讲政治的高度，就是说由于人家实行民主与法治，老百姓心里踏实；而我们这边，不确定的东西太多，老百姓内心的恐慌、焦虑、担忧当然就非常合理，甚至成了一种生存智慧。</p>
<p>
<p>思考至此，我觉得逻辑比较清晰了：秩序的混乱是由于人们内心的恐慌——内心的恐慌是因为深入骨髓的基因——基因的形成取决于我们祖先的生存方式——要改变基因就要改变生存方式(20年来的改革就是巨大的改变)——在一定物质条件基础上，以自由、平等、科学、民主的思想启蒙人民，是改造旧基因，迎接民族新生的光明之路，是解决中国一切社会问题的根本途径。</p>
<p>
<p>只强调经济翻番，或者表面上抓一抓“精神文明建设”，不修补中国传统基因中的缺陷，中国永远不可能成为强国，人民永远不可能无忧无虑地生活。广州、深圳的生活水平够高了，市民文化程度不低了，城市经济实力够强了，然而一场“非典型肺炎”引发的恐慌，就让人们看到了这个社会是如此脆弱不堪。</p>
<p></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iusr.me/2004/04/fwd-why-chinese-are-queue-jumpers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【转载】一个老程序员看所谓的中国无线网标准</title>
		<link>http://blog.iusr.me/2004/04/fwd-wapi-in-the-eyes-of-an-experienced-progammer/</link>
		<comments>http://blog.iusr.me/2004/04/fwd-wapi-in-the-eyes-of-an-experienced-progammer/#comments</comments>
		<pubDate>Mon, 26 Apr 2004 17:06:00 +0000</pubDate>
		<dc:creator>IUSR</dc:creator>
				<category><![CDATA[他山之石]]></category>
		<category><![CDATA[技术文章]]></category>

		<guid isPermaLink="false">http://blog.iusr.me/?p=22</guid>
		<description><![CDATA[作为一个人，俺还不算老；但作为一个IT人，在这行里混了十多年，看看周围也马马虎虎算个老人了。按理说，老人应该明白中国的现状就是这样，说也无益，可俺对IT业怀着深深的感情，可以说计算机养育了俺们全家，俺实在不忍心看着中国的IT业被一帮小人给毁了，况且离开这一行别的俺也不会干。秉承IT人的特性，俺实话实说，不打算绕弯子或者隐瞒自己的观点。至于对与错，相信同道中人自有评论。 相信大伙都听说过&#8221;挟天子以令诸侯”的故事，而在IT业界，这样的故事一直都在上演。他们挟持的不是天子，是我们的国家！他们以国家机器的威慑力，以政府的强制力和威信作为工具，在IT的各个领域谋取个人的私利。(听着刺耳吗？但俺说的是真话)他们惯用的伎俩不外乎两个：一是通过行业主管部门强行向下推销某个软件，小鱼们一般只能找到地方上的行业主管部门，而大鱼们则通过中央级的部委，这中间就涉及很多黑暗交易；二是通过控制和左右国家的标准化部门，以国家标准的名义进行不正当竞争。如果读者中有IT业类人士，你们一定会了解俺所言非虚。就俺的工作经历来看，第一个伎俩在电信、邮政、财税这些行业中司空见惯，从同行的交流中可以得知，这在其它行业中同样普遍存在，大到各地的电信邮政系统，中到企业财务系统，小到物业管理软件，甚至网吧都无一幸免。直截了当的说，这根本就是不良商人和政府内的腐败分子们狼狈为奸，以行政权力和国家的名义为后盾，谋取私利的有效手段。第二个伎俩虽然出现的频率不高，但很显然是越来越频繁了，胆子也越来越大了，而且因为往往打着民族主义旗号，不明真相的爱国青年们往往被其表象所蒙蔽，误以为他们真的是在维护国家利益。数数最近几年出台的有关IT业的标准，然后去问问资深公正的IT人，看看有几个是能让人信服的，背后是没有猫腻的。甚至是那些故意危言耸听，表面是攻击跨国公司，打着民族尊严甚至国家安全旗号的媒体文章，背后不是赤裸裸的黑色交易？中国当然可以有自己的标准，而且应该有自己的标准，问题是这些标准是怎么来的？由谁制定的？目的是什么？是否可行？ 以俺的观察，能够被广泛认可的标准一般有两种来源：一是直接采用已成为事实的业界标准，略加规范；二是由非盈利学术组织牵头，征求多家业界老大的意见，针对尚未广泛存在的未来产品，制定标准。对于IT业的标准，大多来源于第一种方式，因为这个行业依赖的就是技术创新，过早的制定标准会阻碍行业发展，所以世界多数国家的做法就是让其自由发展，初期由各个厂家推出的标准在市场上充分竞争，等到胜出者的优势已非常明显的时候，再由国际组织将其收编为国际标准也就理所当然了。对于第二种来源，也有很多先例，但一般都由各大跨国企业相互妥协的结果。这么做，不是因为世界屈服于霸权，而是世界尊重事实。事实就是如果一个标准得不到世界主要厂商的支持，那无异于废纸；而如果一个国家意图在本国强行推行与世界其它地方的主流标准都不一致的&#8221;独特”标准，结果不是失败就是等于自杀。这是由行业特点所决定的，没有一个行业像IT行业这样走在国际化的前列，这样依赖于国际分工合作，甚至其本身就是国际交流的主要工具。就中国而言，我们必须认清事实，而且勇于面对事实。在IT行业，我们还是小孩子，还处于成长中，还不是自立门户的时候！我们有什么具有研发能力的重量级IT企业吗？有什么可以在世界IT100强中玩玩游戏的企业吗？都没有。在这种现实下，中国要想拥有自己的标准，就只有一条路，那就是创新。如果中国的企业争点气，通过技术首创，就有可能先行一步，创立一个得到世界认可的标准。但很遗憾的是，俺至今没有看到有什么是我们首创的东西。甚至俺在工作的时候需要查阅论文，一般也都把中文的资料和论文略过去，因为它们绝大部分根本称不上论文，就是翻译而已，往往还翻译的不准确。如果搞学术研究的人都是这个样子，还指望什么创新？很明显，在既没有国际级的企业也没有创新能力的情况下，我们采用已存在的标准，是我们唯一的选择，这与感情色彩无关，只是尊重事实。 再来看看我们所谓的中国无线标准，是怎么回事。显然，它不是采用的事实标准，而是自己另立门户的，因此：首先，希望有人可以告诉俺，参与起草这个标准的人中有几个是得到世界同行认可的知名专家？他曾经发表过什么有关无线网络安全的经典论文？作为一个强制性标准它必须具有权威性，这种权威不是依靠行政手段可以获得的，而是基于多数人的信赖。说实话，如果靠几个名不见经传的毛头小伙子三下五除二的闭门造车出来一个&#8221;标准”是无法让人们信赖的，即便他们很有天赋。我相信，参与制定标准的人当中压根就没有什么可以得到世界同行认可的知名专家教授，因为在中国IT行业中，压根就没有这样的人。其次，希望有人可以告诉俺，有几家世界级的至少在东亚的领袖企业参与制定这个标准？没有企业的支持，这个标准怎么推行？对于国外厂商来说，现成的设计和生产线不能用，却要为了中国标准单独再搞一套设计方案，甚至专门为中国定做的CPU，当然不划算，更别提还逼得要掏钱和几家不入流的公司合作，他们不支持是理所当然，况且你也没提出什么可以站得住脚的理由；对于国内多数厂家来说，他们生产的产品不仅仅是供应国内市场，他们还想与韩国、台湾同行竞争呢，这个标准的出台无异于雪上加霜，因为会增加他们的成本，同样的东西要搞两套，一套用于海外市场一套用于国内市场，甚至被逼得要搞什么&#8221;二合一”。俺想，这种成本对于国际大公司来说可能九牛一毛，他们的反对更多是因为技术上不能信服或者看不惯这种龌龊行为，咽不下这口气；而对国内厂商来说，增加的成本或许就要了他们的命。再次，请问有多少消费者会支持这个标准？作为一个终端消费者，俺是不会支持的，因为俺不希望俺的笔记本电脑出差到国外或者到了某个企业内部就用不了了，很显然国外的消费者也会反对所谓的中国无线标准，因为他们不希望到中国旅行时一下飞机就要买网卡装软件。有人说这些人是少数，那就大错特错，因为购买带有无线上网功能的笔记本电脑的第一用户就是这些经常出门的商业人士以及工程技术人员，每天往返于中国和其它国家的旅客都成千上万，而且IT人所占比例是很高的，而且像经常往返的海外华人更是反对了。还有一点很重要，中国市场上的IT产品水货是很多的，如果这些水货并不支持所谓的中国标准，那结果是什么？结果不会是大家都不买水货了，恰恰相反，水货的流行会让一些人意图推行的标准形同废纸，大家反而都不买正货了，因为&#8221;正货”能用的地方比水货少，而且成本还高。有人说了，你装二块网卡不就行了吗？可是如果俺本来一块网卡就够了，干嘛要装二块？谁给我出第二块的钱？而且别忘了，中国已经有10几万用户了，实际数目或许更多。最后，作为程序员或者说是真正干活的人，不知道别人怎么想，反正俺是从来对这些闭门造车出来的&#8221;标准”避而远之。不仅如此，你不是强制吗？无论你怎么强制，在俺的核心设计中是不会考虑这些垃圾的，俺总有无数种办法给你饶过去，最多最后附加一个性能特慢特慢的模块以兼容的方式来对付你，当然聪明的用户也从不会使用这些附加模块。呵呵。俺抵触这些垃圾，是因为他们来路不正，声色俱厉的背后却是一双双贪婪的眼睛。曾有一位参与起草某标准的人士给俺们部门打电话先是说&#8221;某某标准就要颁布了，你们那个产品通不过检测的。”，绕了半天弯子，最后才说到正题&#8221;我做了个某某东西是符合标准的，你们要不要看看？”。去他X的，谁要看他那个垃圾，说了半天老先生的意思不就是花笔钱把他那个东西买来，用不用不管，反正能通过标准评测就行了。嘿嘿，只要你有评测的标准，不要你的东西俺也有办法对付，大不了不卖了也不会让你老先生赚着这笔不义之财。大伙可以看到，没有多少人可以从这个标准中获益，当然也就没有多少人会支持。可是，在这种情况下，为什么还要强行推行这个标准呢？答案只能是有极少数企业和个人(主要是个人)可以从中渔利，他们是谁不难分析，看看有谁在抱着标准换钱，看看有谁会为这个标准生产芯片就知道了，反正中国也没有几家企业可以生产芯片的。难道这几个人就代表我们的国家利益、民族尊严？说实话，这几个人没准早就暗地里揣着美国绿卡。下面，我还想谈谈所谓的&#8221;国家安全”，因为这些标准的出台往往打着&#8221;国家安全”的名目唬人，甚至在网吧里强行推销什么软件也打着国家安全的旗号。俺想问一句，在这个世界上，只有中国有国家安全问题吗？如果日本、美国、俄罗斯、澳大利益、法国、德国不搞一个自己的&#8221;特异化”无线网标准，他们的国家安全就会受到威胁？难道他们都是笨蛋，就我们聪明？说实话，日本曾经在IT业的发展中走过这条路，他们的计算机产品一度和谁都不一样，结果不但未能挡住IT国际厂商进军日本的脚步反而葬送了自己的发展壮大机会，导致日本自己的IT产业至今也不发达。俺不是搞加密的，但俺起码知道在加密学中有一条基本的原理：它的大概意思是说如果一种加密方法不能公开，那它就不是一种可靠的加密方法，当然也不会被采用为国际标准。道理很简单，如果知道该加密方法的人泄密就导致所有采用这个加密方法的网络都被破解，那风险也太大了，这是绝对不可以接受的。基于这个原理，在商业软件中采用的加密方法都是基于公开的算法。如果算法公开加密就被破解，只能说明这个设计根本不可用，属于小儿科的雕虫小技。但奇怪的是，据说我们的&#8221;中国无线网标准”其技术细节也是&#8221;不能”不公开的，只能通过和几家有限的小公司合作才能使用标准，很是令人费解，一个不能公开的标准还能叫标准吗？另一方面，推行中国无线网标准的一个重要理由是现在的国际标准很不安全，这会威胁我们的国家安全。这样说蒙蒙外行还可以，但如果以此作为正式理由对世界说话，会把人活活气死。先说有多少真正涉及国家安全的部门会采用市场上的大众化商业产品？相信军用部门都会采用自行设计的军用计算机，而且他们可以找厂家特别定制，而且军事部门从来也不会遵守所谓的国家标准，国家标准本来就是民用标准，和军用标准两码事。再者，稍微懂一点计算机的人也知道，无线网所起的作用就是把计算机在物理上接入网络，从这一点上来说，所有连接internet的计算机在物理上都是可以相通的，如果你的计算机没有安全防护，在网上的任何人都可以访问你的敏感数据，至于他是用无线还是有线方式连上来的根本没有区别。对于企业内部局域网而言，如果支持无线接入，那么的确有可能有人可以不进入企业内部就连上内部网络，但问题是，他所具有的最大权限就是和企业内部任何一台计算机一样。换句话说，如果一个企业或部门的资源任何人无需登录就可以自由访问，那还能称为敏感部门或者具有敏感信息吗？如果企业做了防护，无论是有线接入还是无线接入都一样安全，反过来如果没有任何防护，那也是一样危险，因为买通一个企业里打扫卫生的工人并不困难。可以这么说，即便无线网卡没有任何身份认证功能，它也没有改变多少信息安全的状况。而且，相信大伙也知道，即便是基于无任何安全防护功能的无线网卡，需要高等级信息安全的企业和部门也会采用其它附加身份认证方式，最简单的方法是要求输入登录密码，一般情况下可以要求插入智能卡并经过验证才可以登录网络，复杂点方法可以要求远程采集指纹、虹膜、声音等进行身份辨认。所以说，采用通行的无线网国际标准会威胁国家安全之说简直是一派胡言，骗骗完全不懂计算机的&#8221;领导”还差不多。 说实话，俺觉得这帮小人也着实是笨，如果他们不是采用另立门户的方式制定新标准，而是在现有国际通行标准的基础上增加一个附加安全标准，他们会更容易得逞，也不会遭遇到目前从终端用户到厂商的强大抵触。因为如果采用附加标准的方式，就相当于把国际标准升级，还能兼容以前的标准。说白了，这样的话中国的网卡可以访问采用国际标准的无线网络，而采用国际标准的网卡有可能访问不了设置为强安全认证的网络，但可以访问设置成兼容模式的普通无线网络。对于厂商来说，有需求他就会做，而且增加一点东西和设计一个完全不同东西的成本是不一样的，对于用户来说，他可以根据自己的需求自由选择。或许就因为俺对带有&#8221;中国”两个字的标准说&#8221;不”，一些号称爱国的网友会骂俺是汉奸、卖国贼，但俺要说的是：俺从心底里深深地爱着我的祖国，我指的是这片繁衍了中华民族的土地及其上的一草一木，当然也包括俺正直善良的兄弟姐妹。对于中国的IT行业，俺寄予厚望，希望它可以有一个干净、自由的环境，在公平竞争的良好秩序下茁壮成长。就目前而言，我们唯一的选择就是要么忍受煎熬自我创新，要么和国际巨头合作共同开拓全球市场，别无他途。对于国内的企业，凡是正大光明通过正常途径努力奋斗获得成功的，俺都非常尊敬，俺希望在IT行业里也能出现这些民族的脊梁，少出些让人不齿的败类。如果中国有一天拥有众多世界级的跨国企业，难道还用担心中国标准不能走向全球的问题吗？要记住，强势的国家标准依赖于这个国家是否拥有强势的跨国企业和优秀的人才，而不是反过来。强行推广的标准带不来优秀的人才也诞生不了有出息的企业，只能作为不正当竞争工具被一些小人所利用。
]]></description>
			<content:encoded><![CDATA[<p>作为一个人，俺还不算老；但作为一个IT人，在这行里混了十多年，看看周围也马马虎虎算个老人了。按理说，老人应该明白中国的现状就是这样，说也无益，可俺对IT业怀着深深的感情，可以说计算机养育了俺们全家，俺实在不忍心看着中国的IT业被一帮小人给毁了，况且离开这一行别的俺也不会干。<br />秉承IT人的特性，俺实话实说，不打算绕弯子或者隐瞒自己的观点。至于对与错，相信同道中人自有评论。</p>
<p>
<p>相信大伙都听说过&#8221;挟天子以令诸侯”的故事，而在IT业界，这样的故事一直都在上演。他们挟持的不是天子，是我们的国家！他们以国家机器的威慑力，以政府的强制力和威信作为工具，在IT的各个领域谋取个人的私利。(听着刺耳吗？但俺说的是真话)他们惯用的伎俩不外乎两个：一是通过行业主管部门强行向下推销某个软件，小鱼们一般只能找到地方上的行业主管部门，而大鱼们则通过中央级的部委，这中间就涉及很多黑暗交易；二是通过控制和左右国家的标准化部门，以国家标准的名义进行不正当竞争。<br />如果读者中有IT业类人士，你们一定会了解俺所言非虚。就俺的工作经历来看，第一个伎俩在电信、邮政、财税这些行业中司空见惯，从同行的交流中可以得知，这在其它行业中同样普遍存在，大到各地的电信邮政系统，中到企业财务系统，小到物业管理软件，甚至网吧都无一幸免。直截了当的说，这根本就是不良商人和政府内的腐败分子们狼狈为奸，以行政权力和国家的名义为后盾，谋取私利的有效手段。第二个伎俩虽然出现的频率不高，但很显然是越来越频繁了，胆子也越来越大了，而且因为往往打着民族主义旗号，不明真相的爱国青年们往往被其表象所蒙蔽，误以为他们真的是在维护国家利益。数数最近几年出台的有关IT业的标准，然后去问问资深公正的IT人，看看有几个是能让人信服的，背后是没有猫腻的。甚至是那些故意危言耸听，表面是攻击跨国公司，打着民族尊严甚至国家安全旗号的媒体文章，背后不是赤裸裸的黑色交易？<br />中国当然可以有自己的标准，而且应该有自己的标准，问题是这些标准是怎么来的？由谁制定的？目的是什么？是否可行？</p>
<p>
<p>以俺的观察，能够被广泛认可的标准一般有两种来源：一是直接采用已成为事实的业界标准，略加规范；二是由非盈利学术组织牵头，征求多家业界老大的意见，针对尚未广泛存在的未来产品，制定标准。对于IT业的标准，大多来源于第一种方式，因为这个行业依赖的就是技术创新，过早的制定标准会阻碍行业发展，所以世界多数国家的做法就是让其自由发展，初期由各个厂家推出的标准在市场上充分竞争，等到胜出者的优势已非常明显的时候，再由国际组织将其收编为国际标准也就理所当然了。对于第二种来源，也有很多先例，但一般都由各大跨国企业相互妥协的结果。这么做，不是因为世界屈服于霸权，而是世界尊重事实。事实就是如果一个标准得不到世界主要厂商的支持，那无异于废纸；而如果一个国家意图在本国强行推行与世界其它地方的主流标准都不一致的&#8221;独特”标准，结果不是失败就是等于自杀。这是由行业特点所决定的，没有一个行业像IT行业这样走在国际化的前列，这样依赖于国际分工合作，甚至其本身就是国际交流的主要工具。<br />就中国而言，我们必须认清事实，而且勇于面对事实。在IT行业，我们还是小孩子，还处于成长中，还不是自立门户的时候！我们有什么具有研发能力的重量级IT企业吗？有什么可以在世界IT100强中玩玩游戏的企业吗？都没有。在这种现实下，中国要想拥有自己的标准，就只有一条路，那就是创新。如果中国的企业争点气，通过技术首创，就有可能先行一步，创立一个得到世界认可的标准。但很遗憾的是，俺至今没有看到有什么是我们首创的东西。甚至俺在工作的时候需要查阅论文，一般也都把中文的资料和论文略过去，因为它们绝大部分根本称不上论文，就是翻译而已，往往还翻译的不准确。如果搞学术研究的人都是这个样子，还指望什么创新？很明显，在既没有国际级的企业也没有创新能力的情况下，我们采用已存在的标准，是我们唯一的选择，这与感情色彩无关，只是尊重事实。</p>
<p>
<p>再来看看我们所谓的中国无线标准，是怎么回事。显然，它不是采用的事实标准，而是自己另立门户的，因此：<br />首先，希望有人可以告诉俺，参与起草这个标准的人中有几个是得到世界同行认可的知名专家？他曾经发表过什么有关无线网络安全的经典论文？作为一个强制性标准它必须具有权威性，这种权威不是依靠行政手段可以获得的，而是基于多数人的信赖。说实话，如果靠几个名不见经传的毛头小伙子三下五除二的闭门造车出来一个&#8221;标准”是无法让人们信赖的，即便他们很有天赋。我相信，参与制定标准的人当中压根就没有什么可以得到世界同行认可的知名专家教授，因为在中国IT行业中，压根就没有这样的人。<br />其次，希望有人可以告诉俺，有几家世界级的至少在东亚的领袖企业参与制定这个标准？没有企业的支持，这个标准怎么推行？对于国外厂商来说，现成的设计和生产线不能用，却要为了中国标准单独再搞一套设计方案，甚至专门为中国定做的CPU，当然不划算，更别提还逼得要掏钱和几家不入流的公司合作，他们不支持是理所当然，况且你也没提出什么可以站得住脚的理由；对于国内多数厂家来说，他们生产的产品不仅仅是供应国内市场，他们还想与韩国、台湾同行竞争呢，这个标准的出台无异于雪上加霜，因为会增加他们的成本，同样的东西要搞两套，一套用于海外市场一套用于国内市场，甚至被逼得要搞什么&#8221;二合一”。俺想，这种成本对于国际大公司来说可能九牛一毛，他们的反对更多是因为技术上不能信服或者看不惯这种龌龊行为，咽不下这口气；而对国内厂商来说，增加的成本或许就要了他们的命。<br />再次，请问有多少消费者会支持这个标准？作为一个终端消费者，俺是不会支持的，因为俺不希望俺的笔记本电脑出差到国外或者到了某个企业内部就用不了了，很显然国外的消费者也会反对所谓的中国无线标准，因为他们不希望到中国旅行时一下飞机就要买网卡装软件。有人说这些人是少数，那就大错特错，因为购买带有无线上网功能的笔记本电脑的第一用户就是这些经常出门的商业人士以及工程技术人员，每天往返于中国和其它国家的旅客都成千上万，而且IT人所占比例是很高的，而且像经常往返的海外华人更是反对了。还有一点很重要，中国市场上的IT产品水货是很多的，如果这些水货并不支持所谓的中国标准，那结果是什么？结果不会是大家都不买水货了，恰恰相反，水货的流行会让一些人意图推行的标准形同废纸，大家反而都不买正货了，因为&#8221;正货”能用的地方比水货少，而且成本还高。有人说了，你装二块网卡不就行了吗？可是如果俺本来一块网卡就够了，干嘛要装二块？谁给我出第二块的钱？而且别忘了，中国已经有10几万用户了，实际数目或许更多。<br />最后，作为程序员或者说是真正干活的人，不知道别人怎么想，反正俺是从来对这些闭门造车出来的&#8221;标准”避而远之。不仅如此，你不是强制吗？无论你怎么强制，在俺的核心设计中是不会考虑这些垃圾的，俺总有无数种办法给你饶过去，最多最后附加一个性能特慢特慢的模块以兼容的方式来对付你，当然聪明的用户也从不会使用这些附加模块。呵呵。俺抵触这些垃圾，是因为他们来路不正，声色俱厉的背后却是一双双贪婪的眼睛。曾有一位参与起草某标准的人士给俺们部门打电话先是说&#8221;某某标准就要颁布了，你们那个产品通不过检测的。”，绕了半天弯子，最后才说到正题&#8221;我做了个某某东西是符合标准的，你们要不要看看？”。去他X的，谁要看他那个垃圾，说了半天老先生的意思不就是花笔钱把他那个东西买来，用不用不管，反正能通过标准评测就行了。嘿嘿，只要你有评测的标准，不要你的东西俺也有办法对付，大不了不卖了也不会让你老先生赚着这笔不义之财。<br />大伙可以看到，没有多少人可以从这个标准中获益，当然也就没有多少人会支持。可是，在这种情况下，为什么还要强行推行这个标准呢？答案只能是有极少数企业和个人(主要是个人)可以从中渔利，他们是谁不难分析，看看有谁在抱着标准换钱，看看有谁会为这个标准生产芯片就知道了，反正中国也没有几家企业可以生产芯片的。难道这几个人就代表我们的国家利益、民族尊严？说实话，这几个人没准早就暗地里揣着美国绿卡。<br />下面，我还想谈谈所谓的&#8221;国家安全”，因为这些标准的出台往往打着&#8221;国家安全”的名目唬人，甚至在网吧里强行推销什么软件也打着国家安全的旗号。<br />俺想问一句，在这个世界上，只有中国有国家安全问题吗？如果日本、美国、俄罗斯、澳大利益、法国、德国不搞一个自己的&#8221;特异化”无线网标准，他们的国家安全就会受到威胁？难道他们都是笨蛋，就我们聪明？说实话，日本曾经在IT业的发展中走过这条路，他们的计算机产品一度和谁都不一样，结果不但未能挡住IT国际厂商进军日本的脚步反而葬送了自己的发展壮大机会，导致日本自己的IT产业至今也不发达。<br />俺不是搞加密的，但俺起码知道在加密学中有一条基本的原理：它的大概意思是说如果一种加密方法不能公开，那它就不是一种可靠的加密方法，当然也不会被采用为国际标准。道理很简单，如果知道该加密方法的人泄密就导致所有采用这个加密方法的网络都被破解，那风险也太大了，这是绝对不可以接受的。基于这个原理，在商业软件中采用的加密方法都是基于公开的算法。如果算法公开加密就被破解，只能说明这个设计根本不可用，属于小儿科的雕虫小技。但奇怪的是，据说我们的&#8221;中国无线网标准”其技术细节也是&#8221;不能”不公开的，只能通过和几家有限的小公司合作才能使用标准，很是令人费解，一个不能公开的标准还能叫标准吗？<br />另一方面，推行中国无线网标准的一个重要理由是现在的国际标准很不安全，这会威胁我们的国家安全。这样说蒙蒙外行还可以，但如果以此作为正式理由对世界说话，会把人活活气死。先说有多少真正涉及国家安全的部门会采用市场上的大众化商业产品？相信军用部门都会采用自行设计的军用计算机，而且他们可以找厂家特别定制，而且军事部门从来也不会遵守所谓的国家标准，国家标准本来就是民用标准，和军用标准两码事。再者，稍微懂一点计算机的人也知道，无线网所起的作用就是把计算机在物理上接入网络，从这一点上来说，所有连接internet的计算机在物理上都是可以相通的，如果你的计算机没有安全防护，在网上的任何人都可以访问你的敏感数据，至于他是用无线还是有线方式连上来的根本没有区别。对于企业内部局域网而言，如果支持无线接入，那么的确有可能有人可以不进入企业内部就连上内部网络，但问题是，他所具有的最大权限就是和企业内部任何一台计算机一样。换句话说，如果一个企业或部门的资源任何人无需登录就可以自由访问，那还能称为敏感部门或者具有敏感信息吗？如果企业做了防护，无论是有线接入还是无线接入都一样安全，反过来如果没有任何防护，那也是一样危险，因为买通一个企业里打扫卫生的工人并不困难。可以这么说，即便无线网卡没有任何身份认证功能，它也没有改变多少信息安全的状况。而且，相信大伙也知道，即便是基于无任何安全防护功能的无线网卡，需要高等级信息安全的企业和部门也会采用其它附加身份认证方式，最简单的方法是要求输入登录密码，一般情况下可以要求插入智能卡并经过验证才可以登录网络，复杂点方法可以要求远程采集指纹、虹膜、声音等进行身份辨认。所以说，采用通行的无线网国际标准会威胁国家安全之说简直是一派胡言，骗骗完全不懂计算机的&#8221;领导”还差不多。</p>
<p>
<p>说实话，俺觉得这帮小人也着实是笨，如果他们不是采用另立门户的方式制定新标准，而是在现有国际通行标准的基础上增加一个附加安全标准，他们会更容易得逞，也不会遭遇到目前从终端用户到厂商的强大抵触。因为如果采用附加标准的方式，就相当于把国际标准升级，还能兼容以前的标准。说白了，这样的话中国的网卡可以访问采用国际标准的无线网络，而采用国际标准的网卡有可能访问不了设置为强安全认证的网络，但可以访问设置成兼容模式的普通无线网络。对于厂商来说，有需求他就会做，而且增加一点东西和设计一个完全不同东西的成本是不一样的，对于用户来说，他可以根据自己的需求自由选择。<br />或许就因为俺对带有&#8221;中国”两个字的标准说&#8221;不”，一些号称爱国的网友会骂俺是汉奸、卖国贼，但俺要说的是：俺从心底里深深地爱着我的祖国，我指的是这片繁衍了中华民族的土地及其上的一草一木，当然也包括俺正直善良的兄弟姐妹。对于中国的IT行业，俺寄予厚望，希望它可以有一个干净、自由的环境，在公平竞争的良好秩序下茁壮成长。就目前而言，我们唯一的选择就是要么忍受煎熬自我创新，要么和国际巨头合作共同开拓全球市场，别无他途。对于国内的企业，凡是正大光明通过正常途径努力奋斗获得成功的，俺都非常尊敬，俺希望在IT行业里也能出现这些民族的脊梁，少出些让人不齿的败类。如果中国有一天拥有众多世界级的跨国企业，难道还用担心中国标准不能走向全球的问题吗？要记住，强势的国家标准依赖于这个国家是否拥有强势的跨国企业和优秀的人才，而不是反过来。强行推广的标准带不来优秀的人才也诞生不了有出息的企业，只能作为不正当竞争工具被一些小人所利用。</p>
<p></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iusr.me/2004/04/fwd-wapi-in-the-eyes-of-an-experienced-progammer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

