<?xml version="1.0" encoding="GBK" ?>
<rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dcterms="http://purl.org/dc/terms/">
 <channel>
  	  <title><![CDATA[蜻蜓点水 举重若轻]]></title>
	  <link>http://eishn.blog.163.com</link>
	  <description><![CDATA[ 君子终日乾乾]]></description>
	  <language>zh-CN</language>
	  <pubDate>Fri, 16 Oct 2009 15:59:11 +0800</pubDate>
	  <lastBuildDate>Fri, 16 Oct 2009 15:59:11 +0800</lastBuildDate>
	  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
	  <generator><![CDATA[NetEase Space]]></generator>
	  <managingEditor><![CDATA[eishn]]></managingEditor>
	  <webMaster><![CDATA[沈崴]]></webMaster>
		  <ttl>120</ttl>
	  <image>
	  	<title><![CDATA[蜻蜓点水 举重若轻]]></title>
	  	<url>http://ava.bimg.126.net/photo/FlkqMvptMUXJR9TUObEkuA==/212795082393634857.jpg</url>
	  	<link>http://eishn.blog.163.com</link>
	  </image>
  <item>
  	<title><![CDATA[习武漫谈]]></title>	
    <link>http://eishn.blog.163.com/blog/static/652318200991634552920</link>
    <description><![CDATA[<div><center><img title="" alt="" src="http://t.douban.com/lpic/s3559390.jpg" style="width: 240px;">&nbsp;&nbsp;&nbsp;&nbsp;<img title="" alt="" style="width: 210px;" src="http://lz.book.sohu.com/data/book/91/6091/6091.jpg"></center>
<br>

<p>对武术有兴趣。学校晨练会打长拳, 觉得武术就是刚猛、舒展。后来又有兴趣学太极, 觉得武术就要打出来好看。瞧那架势。后来发现可能是练岔了。《问中医几度秋凉》里有提到, 我学的大概是武术操。读中医, 自觉打拳可能没这么简单, 若是经络气血没到, 就会伤身。所以过去习武之人都附带医学, 是有道理的。而且武术中医本来就有诸多共通之处。</p>

<p>所以近两年完全是从头学的。第一件事就把意卸了。过去学太极拳, 说以意带式, 话虽如此但我觉得自己基础远还没有到这个程度。硬要以意带动身体, 是不利的。身体若本无意在, 臆想出来, 是走火入魔的。若知道这一层, 意在自己手中, 就可以用意了。气沉丹田, 先养内劲。然, 孙禄堂说, 气沉丹田也不过是逐本之末而已, 所生所养实为浩然之气。所以, 也没追求气沉丹田, 顺便把劲也卸了。而后有内劲。</p>

<p>所以我最喜欢的应该是内家。尤太极、八卦和形意。而内家、外家, 可能就是一物之两面。单内家各拳种也有刚柔之别。中医中, 我自然想到独阴不存独阳不活。内家拳实含外家拳理, 外家亦然, 否则整个道理可能就说不通了。从此, 我对外家拳的看法由之一变。我常看到有人提到这点, 硬要划出内家、外家的分野, 不是非常必须的。</p>

<p>因为不是主这行的, 没有人逼你速成, 故可以慢条斯理地探究这些道理。还有关键一点, 很少人天生异禀, 既为凡人, 没有必须要有所成就的道理。我也从不相信世上有什么可以十年内有成。有趣味无压力, 纯为爱好, 这是外行可开心的地方。</p>

<p>所以喜欢在网上找资料找老师学习。也经常看到传统武术于跆拳道、柔道等功夫谁更厉害, 或者是否工于实战的争论。这种程序员式的争论我见得多了, 尤爱看有人骂传统武术, 我也不参与。就作消遣。虽然感觉上是对传统武术的, 于我却没有纠结。我不觉得以实战, 武术就分出高下了。《逝去的武林》说武术七八分对己, 两三分对人。我更倾向于学习有利于修养, 而不能用于攻击的武术。</p>

<p>当然显然武术也有很强的实战性。传统武术的研习者说, 一回合致命的技艺是现今所不容的, 规则导致武术无法融入体育竞技。而为了让武术进入体育比赛, 武术观赏化也让一般人觉得传统武术等同于不实用的花架势, 这让他们忧心。某种意义上说, 我赞同他们的看法。当然不可否认, 真正的传统武术十年出师, 不符合快餐化的时代精神, 难以商业包装, 势微是必然的。</p>

<p>相反, 如今已是一派歌舞升平、醉生梦死, 距离武术黄金十年, 那个国仇家恨的时代远矣。迎合大家, 现代气息的伪传统武术, 自会取而兴盛。和伪中医一样, 不正是群众美好的愿望所需要的吗。精通伪国术的真相的, 有识之士就会挺身而出, 把传统武术和中医连根拔除, 彻底消灭之, 不亦快哉。</p>

<p>武术到了今天, 即是套路, 确实是大众看法。感谢电影和肥皂剧的普及。这给人一种华而不实的感觉。按《逝去的武林》李仲轩的说法, 套路即内功。令人眼前一亮。我想套路须有练功套路和实战套路。李仲轩提到这点, 武术就形意而言, 练功和实战是有区别的。学武术的大抵都有设想过实战的情形, 前面说过, 对我而言, 武术纯粹是文化修养, 是刀鞘而不是刀。真要对决, 恐怕只能用王八拳。无论学到何种盖世神功。</p>

<p>以前我喜欢写些华丽的计算机程序, 后来, 越写越简单, 更没什么封装, 几乎和初学无异了。我觉得这种程序最令我感到舒服。所以我完全没有看不起王八拳的意思, 相反是很欣赏的。看起来写点程序对理解一些拳理, 还是有帮助的。反之亦然。比如, 我现在就相信掌握过于高超的编程技艺, 没有国学文化的调解, 是很危险的。当然, 此语原出金庸。</p></div>]]></description>
	    <author><![CDATA[沈崴]]></author>
	    <comments>http://eishn.blog.163.com/blog/static/652318200991634552920</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://eishn.blog.163.com/blog/static/652318200991634552920</guid>
    <pubDate>Fri, 16 Oct 2009 15:45:52 +0800</pubDate>
    <dcterms:modified>2009-10-16T15:58:07+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[曹操、诸葛亮太难演了]]></title>	
    <link>http://eishn.blog.163.com/blog/static/652318200981781623638</link>
    <description><![CDATA[<div><center><a href="http://jiazhougongfang.bbs.pepo.cn/page/bbs/pages/bbstopic/getTopicById.aspx?id=605318"><img title="曹操、诸葛亮太难演了 - 沈崴 - 蜻蜓点水 举重若轻" alt="曹操、诸葛亮太难演了 - 沈崴 - 蜻蜓点水 举重若轻" style="width: 480px; height: 394px;" src="http://i2.sinaimg.cn/ent/d/w/2008-12-10/U2184P28T52D3525F872DT20081210160921.jpg"><br>多图杀猫</a><br><br><embed allowScriptAccess="never" allowNetworking="internal"   src="http://swf.ws.126.net/flvplayer081128/%7Efalse%7E0003_V5IBGHMAO%7Evimg2.ws.126.net/image/snapshot/2009/9/A/P/V5IBGHMAP%7E.swf" style="display: block;" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" quality="high" width="480" height="394"><br><a href="http://2tu.us/t2x">新《三国》首版片花暴光</a></center></div>]]></description>
	    <author><![CDATA[沈崴]]></author>
	    <comments>http://eishn.blog.163.com/blog/static/652318200981781623638</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://eishn.blog.163.com/blog/static/652318200981781623638</guid>
    <pubDate>Thu, 17 Sep 2009 08:16:23 +0800</pubDate>
    <dcterms:modified>2009-09-18T15:25:41+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[用 Python 写自己的 C Module]]></title>	
    <link>http://eishn.blog.163.com/blog/static/6523182009810115428341</link>
    <description><![CDATA[<div><p>
本文说一下如何把 python 翻译成如假包换的 c 源码, 然后编译成一个 python module。据官方博客称性能接近或超过 c。用到了 pypy —— python 史上最大的玩具。
</p>

<p>
</p><p>先写个 python 源码文件, 待会编译出来:</p><pre># hello.py 文件<br><br><span style="font-weight: bold;">def</span> hello(a, b):<br>   <span style="font-weight: bold;">print</span> a, b<br>   <span style="font-weight: bold;">return</span> 'OK'<br><br><span style="font-weight: bold;">def</span> target(drv, args):<br>   <span style="font-weight: bold;">return</span> hello, [str, str]<br></pre>
<p></p>

<p><br>
</p><p>先测试通过:
</p><pre>&gt;&gt;&gt; <span style="font-weight: bold;">imp</span><wbr style="font-weight: bold;"><span style="font-weight: bold;">ort</span> hello<br>&gt;&gt;&gt; result = hello.hello('hello', 'world!')<br>hello world!<br>&gt;&gt;&gt; <span style="font-weight: bold;">print</span> result<br>OK<br></pre>
<p></p>

<p><br>
</p><p>翻译成 c 并编译:<br><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="text-decoration: underline;">$ pypy/translator/goal/translate.py --batch hello.py
</span></p>

<p>
生成的目标在, /tmp/usession-dist-USERNAME/testing_1/testing_1.so 。<br><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="text-decoration: underline;">$ mv /tmp/usession-dist-USERNAME/testing_1/testing_1.so _hello.so</span><br><br>
也可以写个自动化脚本编译完自动拷贝出去, 生成 testing_1.so 的目录位置在 driver.cbuider 对象里。可以参考 translate.py 写一个自己的编译平台 (哦, 一个玩笑)。
</p>

<p>
我们得到了 _hello.so 。里面有这么一个接口, 可以想见 python 调用起来很方便 (c 定义):<br><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="text-decoration: underline;">PyObject *pypy_g_pyfn_hello(PyObject *l_a_0, PyObject *l_b_0);</span><br><br>
至少在 pypy-1.1.0 里是这样的, 以后就不一定了。
</p>

<p><br>
</p><p>测试。先写个 _hello.so 的 python wrapper:
</p><pre># hello.py 文件, _hello.so 的 python wrapper<br><span style="font-weight: bold;">from</span> ctypes <span style="font-weight: bold;">imp</span><wbr style="font-weight: bold;"><span style="font-weight: bold;">ort</span> *<br>_hello = PyDLL('/PATH/TO/_hello.so')<br>_hello.RPython_StartupCode()<br>hello = _hello.pypy_g_pyfn_hello<br>hello.restype  = py_object<br>hello.argtypes = [py_object, py_object]<br></pre>
<p></p>

<p><br>
</p><p>测试通过:</p><pre>&gt;&gt;&gt; <span style="font-weight: bold;">imp</span><wbr style="font-weight: bold;"><span style="font-weight: bold;">ort</span> hello<br>&gt;&gt;&gt; result = hello.hello('hello', 'world!')<br>hello world!<br>&gt;&gt;&gt; <span style="font-weight: bold;">print</span> result<br>OK<br></pre>
<p></p>

<p><br>
</p><p>这样, 我们就可以用 rpython 来写可编译执行的 python c module 了 (这是 c 后端, 据称在 cli 和 jvm 上能做的事情更多一些)。然后好处是, 你的模块可以同时兼容 python2、python3、pypy 了。进一步他是个 c lib (pypy 会导出 c 接口), 其实在任何语言平台上都是可以用的。
</p>

<p>
不过, 这显然不是标准的 pypy 应用, 事实上我们应该用 pypy 的 MixedModule 来写。不过可惜的是 MixedModule 编译到 python c module 的功能已经在 pypy-1.1.0 取消了。pypy 团队在事后就此事和广大 pypy 用户进行了讨论, 取消该功能是否是个好主意 (在已经取消的前提下)。官方觉得, 还是专注于把 jit 搞好吧, 其他炫的东西先放一放, 毕竟 jit 搞定了, 你就不再需要什么 python c module 了。总之, 你需要等很久, 无聊的话, 像这篇文章这样玩一下也不错 。
</p>

<p style="color: rgb(102, 102, 102);">PS: 喜欢把 python 编译执行的朋友, 可以试一下 Cython 和 ShedSkin, 他们是专门为这个目标设计的。</p></div>]]></description>
	    <author><![CDATA[沈崴]]></author>
	    <comments>http://eishn.blog.163.com/blog/static/6523182009810115428341</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://eishn.blog.163.com/blog/static/6523182009810115428341</guid>
    <pubDate>Thu, 10 Sep 2009 11:54:28 +0800</pubDate>
    <dcterms:modified>2009-09-16T08:24:17+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[中國書畫史半部在湖州]]></title>	
    <link>http://eishn.blog.163.com/blog/static/6523182009824511595</link>
    <description><![CDATA[<div><center><img title="中國書畫史半部在湖州 - 沈崴 - 蜻蜓点水 举重若轻" alt="中國書畫史半部在湖州 - 沈崴 - 蜻蜓点水 举重若轻" src="http://news.hz66.com/Files/newscenter/2009/02/19/1%E4%B9%8C%E7%AF%B7%E8%88%B98.JPG"></center><br><br>當時與人同遊於湖州霅溪公園, 我若有所思地說, 米南宮的《苕溪帖》正是泛舟於那一旁河水之上所就。是我最喜歡的行書之一了。對著公園的畫壁詩書, 我歎道, 半部詩畫史都在湖州, 幾面牆壁又怎能容下呢, 就連那些名篇工匠都還沒刻上去呢。旁邊問, 既然如此, 現在的湖州為何如此不顯? 我說大概是因為那時藍營又稱湖州幫吧, 人走茶也涼, 秋風掃落葉。時代變遷, 文化凋零, 往事已矣。如今也衹有那遠來的姑蘇客, 古風依舊, 尚依稀記得湖州在建國前幾千年歷史上的輝煌了[1]。<br><br>我比較喜歡行書, 算是對半部書法史有所了解。忽然興之所至, 說一下湖州有關的書法人。本來也沒想過要寫湖州的書法, 過於浩瀚且不想查資料, 累人。今天記下來, 或許只是為了備忘。上次講到巨鹿大戰破釜沉舟殲滅四十萬秦軍一戰成名的八千子弟、烏程 (湖州秦代古稱) 軍, 還有那不肯過烏江相見的江東父老, 就是你湖州人, 這段英雄悲壯的歷史, 衹怕湖州人自己都已經淡忘了吧。現在知道湖州項王城、霸王門這些地方的人, 除了小時候就有印象的中年人, 就剩老人了。網上《史記》記項羽起兵吳中, 基本被考證到蘇州新鮮設立的吳中區了。然後誰跑出來說話了呢? 是顏真卿。<br><br>顏魯公時任湖州刺史。在項羽駐軍的地方, 立弁山碑 "西楚霸王, 当秦之末, 与叔梁避住于吴中, 盖今之湖州也。虽灭秦而宰制天下, 其魂魄犹思乐兹邦, 至今庙食不绝"。一般來說, 司馬遷所撰, 被人奉為信史, 歸其治史態度。顏真卿其人格魅力更令人敬佩, 被認為絕不可能妄言。身處中唐亂世的顏真卿為人正直, 在安史之亂中平叛有功, 為玄宗所識。後身為國家重臣, 明知是一去不返, 仍赴汝州撫叛。叛將李希烈脅迫顏真卿上輸漂白自己, 遭怒斥。李希烈羞愧不已, 扣留了颜真卿。顏真卿面對威逼利誘全然不為所動, 大義凜然慷慨赴死, 至死痛罵反賊。顏真卿死後, 舉國哀悼, 三軍慟哭, 其高風亮節為世人楷模。<br><br>從孔子的知其不可為而為之, 到浩然天地正氣, 再到我心光明, 亦复何言! 這就是中國士人, 這就是顏體字的風骨。我們初學書法時, 常說要從顏體字練起, 以顏字為骨不管多大的字都可以寫, 氣勢磅礴。不知湖州人在練習書法時, 臨摹湖州前任市長的筆跡時, 想到字如其人, 想到隨字跡千古流傳下來的那股精神, 心中是否會感慨萬千。<br><br>除了顏魯公、楚霸王的遺跡, 還有更多年輕湖州人所不自知的, 比如湖州中心城區, 是愛山街道、愛山廣場, 和愛山臺。仁者樂山, 智者好水。愛山所謂, 源於湖州另一任市長蘇軾留在湖州的名句 "道場山頂何山麓, 上彻雲峰下幽穀, 我從山水窖中來, 尚愛此山看不足"。李煊寫道 "儂家生長碧湖頭, 打漿真從鏡裏遊。難怪當年蘇學士, 杭州不住住湖州", 可以發現其實湖州才是讓蘇東坡真正寄情的地方。可惜蘇學士生老湖州的願望最後沒有實現, 蘇軾在湖州任上發生了 "烏臺詩案", 貶放黃州。<br><br>除了詩詞, 蘇軾同樣以書法聞名, 和上面提到的米芾一樣, 屬宋四家。宋字不似晉唐, 浪漫飄逸, 就連皇帝和奸臣大抵都寫得一手充滿個性的好字, 令人印象深刻。觀宋帖, 深得生活樂趣, 百看不厭。<br><br>湖州的另一古稱, 吳興, 在書法史上也是振聾發聵。行書的創立者, 王羲之、王獻之都是吳興太守。而趙孟頫則是吳興人 (湖州人)。在霅溪公園韓世忠像邊 [2] 是趙孟頫的吳興賦。我在湖州有看到兩份吳興賦的字碑, 另一個是在湖州園林 [3] 也是趙孟頫別業的蓮花莊內。趙孟頫寫字, 上下前後大小疏密, 一筆一劃, 安排縝密, 用儀器也無法找出破綻, 精美漂亮之極, 令人驚歎。二王就不說了, 都是練字者傾其一生難以超越的人。自古以來, 無數書法家為此發出望洋興嘆的感慨。我寫得一手爛字, 一如《寒食帖》說的, "死灰吹不起", 再練也枉然, 卻能放下心態享受欣賞和臨字的樂趣, 不亦快哉。<br><br>而想到碼這麼一大篇文字, 卻是因為另一位書法家, 杜牧的關系。那時杜牧聽聞湖州美女如雲, 就跑去打望。果然對一清麗出俗的女孩子一見鍾情, 為了說服她的家人, 便約定十年為期, 必來湖州做市長, 到時來娶這女子。由是要當上湖州刺史成為杜牧的終極奮鬥目標。輾轉黄州、池州和睦州, 歷時十四年的打拼, 杜牧終於做上了湖州刺史。然而此時該女子已經出嫁。杜牧質問 "昔既許君矣, 為何適人?", 答曰 "向約三年, 不來而後嫁, 嫁已三年矣"。這讓杜牧傷心欲絕, 寫下 "自是尋春去較遲, 往年層見未開時。如今風擺花狼藉, 綠葉成蔭子滿枝" 的悵詩。<br><br>"清明時節雨紛紛, 路上行人於斷魂。借問酒家何處有? 牧童遙指杏花村" 可見當時杜牧的心境。<br><br>每到一年七夕, 在歡樂的氣氛中我都會想起惆悵的杜牧。七夕是個相當溫情的節日, 是父母獻給女兒的女兒節, 是姐妹們一起相伴度過的乞巧節。七夕作為中國的情人節, 一如中國人的愛情, 含蓄到甚至不像是情人節, 因為它本來就是情人的節日。因為商業需要, 我們把西洋情人節的成功模式搬進七夕。在歡騰的氣氛中, 在節日的餐館前排隊等候, 等候消失於快餐文化中。很難再有時間為了一個虚幻的約定去努力、去等待十年, 這種一刹那凝固, 卻能在千百年後依然能被人在無意間想起的愛情。這幕喜劇不是比悲劇更可悲嗎。或許我門可以再靜靜地看著星空, 天上的鵲橋, 牛郎和織女在那裏相會呢。那一幕靜謐之美, 一如書法一樣永恆。<br><br>半部書畫史都在湖州, 然而今天湖州卻在中國消失了。是我們拋棄了她, 還是她拋棄了我們? 到了七夕, 我就會想起杜牧, 想到書法, 想到該寫些什麼。達則兼濟天下, 窮則獨善其身。當你想告訴別人, 像中國人一樣活在天地之間是一件相當開心的事情, 往往是沒有效果的。一個人的福分, 衹有自己努力, 不是別人能硬塞給他的。<br><br>哦, 對了。文房四寶之首, 就是湖州的湖筆。<br><br><br>-<br>[1] 直到上個世紀, 湖州仍然在創造輝煌的歷史。中國四大商幫中唯一一個地區性商幫, 富可敵國的湖商, 崛起於近代。傾資財幫助孫中山革命, 是主要財力來源, 並且在革命中湖州人捨生取義, 為現代中國的締造奮不顧身。在已經佚去的歷史中, 也是上海的主要構建者之一, 壟斷上海的金融、商業、地產等高層架構, 上海幾乎就是湖州人的財產, 也造就了亞洲第一大都會城市的繁榮。新中國建立以後, 當時還沒有現在私有制的概念, 土地財產均分, 有財產就必須死。湖商的輝煌也就成為絕響, 瞬間淡出歷史。上海也逐漸淪為亞洲的二流城市。<br><br>據網文《再論湖州的發展》(http://bbs.sogou.com/110218/u96uyPyA49mIBAAAA.html) 描述: 新中國成立後, 湖州近代史上的從政從商者隨著舊政權的垮臺而逐漸隱退, 在遠走他鄉的同時, 一大批山東團營級老幹部降臨這座江南小城, 除了在生活上多娶了一房湖州女人外, 在文化上很難和湖州人融合在一起, 他們執政湖州時顯得束手無策, 湖州人一直很藐視他們, 稱之為 "彎舌頭", 整個城市象一對貌合神離的夫妻, 過著同床異夢的生活。但是從商的念頭一直跳動在小城人的心間, 直到文革其間, 一位李姓商人被 "投機倒把罪" 判處死刑後, 湖州僅剩的一點元氣也蕩然無存。改革開放後, 湖州經濟社會的發展變得中規中矩, 象奧運會會上跳水的常規動作, 沒有難度系數, 唯求入水花小罷了。<br><br>—— 湖州的老本一直吃到八十年代, 便被蘇州和新貴杭州超越。在 GDP 上。<br><br>[2] 公園旁就是馬軍巷, 韓世忠駐軍和金國決戰的地方, 立像以為紀念。<br>[3] 《江南園林志》稱, 南宋以來, 園林之勝首推四州, 湖、杭、蘇、楊。湖州居首。<br></div>]]></description>
	    <author><![CDATA[沈崴]]></author>
	    <comments>http://eishn.blog.163.com/blog/static/6523182009824511595</comments>
    <slash:comments>3</slash:comments>
    <guid isPermaLink="true">http://eishn.blog.163.com/blog/static/6523182009824511595</guid>
    <pubDate>Wed, 2 Sep 2009 16:51:15 +0800</pubDate>
    <dcterms:modified>2009-09-18T15:15:53+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[上海 python 聚会]]></title>	
    <link>http://eishn.blog.163.com/blog/static/65231820097242653395</link>
    <description><![CDATA[<div><p></p><center><img title="上海 python 聚会 - 沈崴 - 蜻蜓点水 举重若轻" alt="上海 python 聚会 - 沈崴 - 蜻蜓点水 举重若轻" src="http://www.chinachunqiu.com/wp-content/uploads/2009/08/P8090031.JPG" style="width: 600px;"></center><center style="font-size: 9px; color: rgb(102, 102, 102);"><a href="http://www.chinachunqiu.com/">图片来源于 meng9999 的博客</a></center><p></p>

<i style="font-size: 13px;">
<p>我们 python 上海社区最近于 2009 年 8 月 9 日进行了一次技术聚会, 由支晓勇准备了场地和设备, 志愿者们录像、摄影, 打理了各种事务。活动看上去井井有条, 还是比较圆满的。而且会后各种资料整理得相当齐全, 尤其是<a href="http://www.tudou.com/playlist/playindex.do?lid=6791340" style="color: rgb(51, 51, 136);"><b>视频资料</b></a>让没有赶去上海的朋友也能身临其境。在此感谢所有志愿者付出的辛勤工作!</p>

<p>同时也要感谢 robbin 和 javaeye 社区为活动做的支持和宣传。Javaeye 的号召力, 轻松挤爆了科学会堂。在第一个演讲中还可以持续不断地听到有搬凳子加座位的声音。自 2001 年以后从诸如 c++、java 那些忍受快十年的技术, 轻身一跃, 完全转到 python 以后, 我就逐渐走向了 c++ 和 java 技术设计思想的反面。但 javaeye 是少数我比较关注的 java 类社区。Javaeye 社区是国内动态语言技术的先行者, 对 ruby 技术的推广不遗余力, 同时也是 python 技术的重要山头之一。Robbin 也参加了聚会, 一如他的照片可以一眼认出来。本人较照片更有型。</p>

<p>应组织者支支的要求, 我做了 eurasia3 相关技术的主题演讲 (<a href="http://www.tudou.com/playlist/playindex.do?lid=6791340&amp;iid=34406198&amp;cid=21" style="color: rgb(51, 51, 136);"><b>第五段视频</b></a>)。</p>
</i>

<br><br>

<p>昨天 8 月 23 日, 我们就如何把以后上海 python 聚会的组织得更好, 于科技会堂再次进行了线下讨论。我们觉得上海 python 技术聚会一直有在办, 以后可以更常态化, 并且做到更好、做到超赞。归纳一下, 我们谈到以下几点。</p>

<h2>1. 我们需要好的场地。</h2>

<br>

<p>好场地可以产生好氛围。上次聚会我提到像科技会堂、学校教室容易产生上课的效果, 而我们可能更喜欢放松、愉快的效果, 比如茶话会形式。场地影响到活动形式, 然后改变活动内容, 我们可能不再以会课、演讲形式为主, 而使用更轻松的活动方式。我们提到将来可以采用的场地和形式有咖啡馆、一茶一座、公园以及烧烤等。</p>

<p>与会人士纷纷表现出向往的神情。</p>

<p>支晓勇提到, 作为长三角 python 用户组, 不能局限于上海。下一次可以开展到苏州、南京、杭州等地方。组织方可以提供方便, 比如把上海或者其他地方的人打包运到杭州。根据案例算上交通、饮食每人共需花费 60￥, 费用自理。旅游 + 技术, 交流 + 休闲, 还能把 python 技术推广到长三角各个城市。</p>

<p>所有人表示支持, 高呼满塞。</p>

<p>这就产生一个衍生话题, 活动经费的问题。我认为像上次那样由组织者也就是支晓勇承担所有场地和设备的费用 (科学会堂场地租用是 700￥, 仅租用场地方投影 400￥ … 等等) 可行但不利于长期开展活动, 或许个人可以长期负担这项开支, 但是这也对活动产生限制, 比如我们就不能开展上面提到的旅游聚会, 我们总不至于让组织者个人来支付所有人的旅行的开销吧。同时我们认为为了举办活动而收取固定会费也是不可取的。</p>

<p>我们很快想到了解决办法, 在活动前的一段时间, 我们可以先在网上召唤出足够多可选的场地, 并给出每个场地产生的费用。比如咖啡馆, 每人只要买一杯 20￥ 的饮料即可蹭一下午, 烧烤亦然。公园场地、科学会堂则在网上对当此活动每人需要分摊的经费进行公示。我觉得如果谁有认识不错的场地提供方, <span style="font-weight: bold;">我非常推荐给他们拉下生意, 比如咖啡馆、酒吧之类</span>, 只要他们愿意为我们提供实惠的价格和良好的服务, 这绝对是双赢的好事情!</p>

<p>大家在网上对列出的场地进行投票, 选出支持率最高的。</p>

<p>我认为在会的志愿者大家都是活动的参与者和决策者, 大家一起提供场地选项, 投票决定。只是志愿者要更热心一些。然后比如大家认为下一次活动可以在杭州举行, 那么我们就根据投票里面公示的地点、日程和费用, 包车, 并把杭州场地搞定。除了上海, 比如南京的同学在志愿者的努力下也应该可以一起打包前往。</p>

<h2>2. 我们需要好的内容。</h2>

<br>

<p>几个世纪以来, 漫长而又沉闷的演讲, 无尽的技术剖析, python 技术推广一直是我们的光荣传统。</p>

<p>我的观点是, python 技术和技术聚会也可以是一种生活, 我们可以不用刻意去搞一次技术交流, 因为这本来就是周末可以选择的一种休闲, 它带来愉悦, 这就像生活本身一样自然。我们享受生活。如果这不是生活, 就会是一种负担, 我们很难坚持做一件给自己带来压力和负担的事情。</p>

<p>我们谈到很多有意思的交流的方式, 比如 7 分钟演讲。演讲者可以随时被番茄轰炸下去。提出 7 分钟演讲的同学说, 他参加这类活动, 场面火爆, 天涯海角、绿树红花、千奇百怪、海阔天空、欢声笑语、鸟语花香。我们还可以像广州 python 聚会和 google 那样插播乐器演奏和才艺表演。并且鼓励参与者做一些有趣的技术演示, 提供看得到的好玩, 比如 pygame 、硬件 DIY 等。</p>

<p>加入诗歌朗诵、才艺表演, 把技术聚会变成周末娱乐, 回过头来发现本质上依然是技术交流, 依然是会课, 这不是更好的 python 推广吗。就好像本质上是填饱肚子, 除了让人如同嚼蜡, 我们还可以选择把菜做得相当艺术。</p>

<p>活动内容集思广益, 投票决定。决定活动形式和大家感兴趣的技术话题, 其中当然也包括较为严肃的会课, 提供入门或者某些专题技术的系统讲解。一些大家不太感兴趣的话题只要人数足够也提供专场活动。这也是大家所需要的。这并不矛盾, 社区里不同口味的技术人员应该可以自己组织起不同形式的活动, 甚至可以在同一场分成不同话题和形式的多个讨论区。</p>

<p>我提到技术沙龙应该还具有更多的功能。比如撮合项目, 可以是开源项目、公共项目也可以是商业项目, 让志同道合的人走到一起, 发现商机, 共同解决技术难题, 或者合作创业。而这又回到前面, 我们需要一个能让大家充分放松、令人愉悦的环境, 还有开放式的、扫除拘谨的活动形式。这样就不会像上课那样只有一个演讲者在那里讲, 所有人都可以方便地交流观点, 互相认识。</p>

<p>我们需要这么一个平台, 不是么?</p>

<p>开始的自我介绍就会比较重要, 可以让大家先介绍一下自己, 网名, 从事的工作和感兴趣的技术。每个人一旦开讲, 就会消除很多拘束, 大家迅速熟悉起来。</p>

<p>对于喜欢在技术交流上作商业广告的同学, 我并不排斥。只要对大家真的有用, 并且不要过了限度变成你的广告发布会, 我也不会强烈反对。</p>

<h2>3. 接下来的活动</h2>

<br>

<p>我们谈了下以后可以为 python 技术聚会长期开展能做的事情。我们纷纷表示为了正义的 python 事业有力出力, 没钱卖血。基本上, 我们可以贡献的是投影仪、摄像机等器械, 人力还有时间。希望更多的朋友能够加入进来, 人多力量大。</p>

<p>接下来可能会先找一下提议、投票等组织工具, 如果现有的不够用/不够好用, 反正这里都是程序员 ……</p>

<p>长三角地区, 如果你有熟悉的场地, 如果你有亲戚朋友或者自己在经营咖啡馆酒馆茶馆, 如果你比较熟悉旅行社, 如果你能够为 python 技术聚会提供任何帮助, 欢迎联系我们。</p>

<p>你可以发信联系支支同学 (他是上次活动的组织者, 他把全家都动员了)。</p>

<p></p><center>支晓勇 hunterpig(at)gmail.com | 当然也可以联系我 wileishn(at)gmail.com</center><p></p></div>]]></description>
	    <author><![CDATA[沈崴]]></author>
	    <comments>http://eishn.blog.163.com/blog/static/65231820097242653395</comments>
    <slash:comments>2</slash:comments>
    <guid isPermaLink="true">http://eishn.blog.163.com/blog/static/65231820097242653395</guid>
    <pubDate>Mon, 24 Aug 2009 14:06:53 +0800</pubDate>
    <dcterms:modified>2009-08-25T08:55:58+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[[热烈庆祝][转贴] 清华大学与微软签3年协议 软件全面正版]]></title>	
    <link>http://eishn.blog.163.com/blog/static/652318200921315614424</link>
    <description><![CDATA[<div><p style="text-indent: 2em;"></p><center><img title="[转] 清华大学与微软签3年协议 软件全面正版 - 沈崴 - 蜻蜓点水 举重若轻" alt="[转] 清华大学与微软签3年协议 软件全面正版 - 沈崴 - 蜻蜓点水 举重若轻" src="http://www.zhaosheng.com/css/images/t_logo_1.png"><img title="[转] 清华大学与微软签3年协议 软件全面正版 - 沈崴 - 蜻蜓点水 举重若轻" alt="[转] 清华大学与微软签3年协议 软件全面正版 - 沈崴 - 蜻蜓点水 举重若轻" src="http://img.download.pchome.net/30/vt/logo.png"><img title="[转] 清华大学与微软签3年协议 软件全面正版 - 沈崴 - 蜻蜓点水 举重若轻" alt="[转] 清华大学与微软签3年协议 软件全面正版 - 沈崴 - 蜻蜓点水 举重若轻" style="width: 52px; height: 52px;" src="http://i3.sinaimg.cn/IT/cr/2008/0506/512410668.gif"></center><p></p><p style="text-indent: 2em;"><a href="http://tech.163.com/" target="_blank">网易科技</a>讯 3月11日消息，<a href="http://go.tech.163.com/info/web/2.html" target="_blank">网易</a>科技获悉，近日清华大学计算中心办公室发布通知，称已与微软签署3年合作协议，参与校园软件正版化计划，校内计算机上的操作系统与办公软件均将采用正版。</p>
<p style="text-indent: 2em;">据了解，此次协议中的软件包含微软Vista操作系统中英文版本及Office 2007普通版/专业版中英文版本。在实验室、公共计算机机房、多媒体阅览室、办公室等场所，清华教职工均可登陆校内系统免费下载安装。</p>
<p style="text-indent: 2em;">去年8月份，上海大学曾与微软签署高校正版化协议，让校内用户免费下载软件并享受升级服务，其中包括中英文版Windows XP/Vista及Office 2003/2007。同年9月天津大学信息网络服务中心也引入了微软正版软件，供全校师生免费下载。</p>
<p style="text-indent: 2em;">中国工程院院士倪光南今天发表博文称，某些高校将“软件正版化”误当作了“软件进口化”，此举或开启微软软件一统中国高校天下的进程。</p>
<p style="text-indent: 2em;">倪光南表示，Vista推出后市场反响并不好，我国目前已经立项开发具有自主知识产权的操作系统。Office 2007所采用的OOXML文档标准也与我国国家标准UOF相冲突。高校与微软合作，在校内推广这些软件，是对国产软件的歧视，将不利于我国软件业的自主发展。</p>
<p style="text-indent: 2em;">倪光南称，如果大家都采取这些高校的做法，那么倡导软件正版化只能提升进口软件的销量。他建议有关部门能够采取措施，防止“软件进口化”的蔓延，将正版化与提高我国软件企业自主创新能力和扩大内需结合起来。（牛千）</p>
<p style="text-indent: 2em;">
(本文来源：<a href="http://tech.163.com/">网易科技报道</a>  )
<a href="http://tech.163.com/"><img title="[转] 清华大学与微软签3年协议 软件全面正版 - 沈崴 - 蜻蜓点水 举重若轻" src="http://img1.cache.netease.com/tech/img07/end_i.gif" alt="gogo" width="12" border="0" height="11"></a>
   </p></div>]]></description>
	    <author><![CDATA[沈崴]]></author>
	    <comments>http://eishn.blog.163.com/blog/static/652318200921315614424</comments>
    <slash:comments>1</slash:comments>
    <guid isPermaLink="true">http://eishn.blog.163.com/blog/static/652318200921315614424</guid>
    <pubDate>Fri, 13 Mar 2009 13:56:14 +0800</pubDate>
    <dcterms:modified>2009-03-13T14:18:03+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[关于中医的量化问题]]></title>	
    <link>http://eishn.blog.163.com/blog/static/6523182009184341235</link>
    <description><![CDATA[<div><p>突然想起一段时间以前 Python 技术论坛上突然冒出一位自称是 Joe 的神人, 每贴必然要把中医或者国学拖出来骂一下解气。尽管在技术论坛上骂国学, 并不是一件很酷的事情。但是, 基本上, 我和神人同学大概反对的是同一样东西, 只不过他把他骂的东西叫做中医、国学, 而我叫做庸医, 伪国学而已。所以这趟我不是来和 Joe 神人作对的, 我甚至也不习惯去反对什么东西, 比如说对于儒家的见解我和于丹老师大部分都是不同的, 但是这并不影响我去欣赏于丹的论语心得, 毕竟她把孔子的东西以道不远人的方式展现出来, 雅俗共赏, 这真是太赞了。</p>

<p>而且和大部分担心国学会失传的人不同, 我这趟也不是来保护国学的。因为国学压根就不会完蛋, 尽管外国人一直在灌输中国文化的愚昧落后, 但是他自己赶紧给收藏了。所以就算国学在中国灭亡了, 还是会被外国人发扬光大。佛祖拈花达摩西来, 就好像佛家离开印度了, 照样会在中国繁荣一样。</p>

<p>因为 Joe 神人曾经说过, <a href="http://groups.google.com/group/python-cn/browse_thread/thread/2a221e046e488fab/e9bccb8121af942e">"中西医谁可量化数字化不用我再多言了吧"</a>, 所以今天只是突然来了兴致, 谈谈这个很小很小的量化问题。基本上中医我是不懂的, 这里随便说说我的看法。</p>

<p>中医是否是可以量化的, 有本中医书上说, 如果不准备治死人, 那么随便开几克药就可以了。这和西医差不多, 不管你是 90 斤还是 90 公斤的人, 治感冒成人一律一日三片。书上又说, 对于有经验的中医这是受不了的, 认为这是庸医, 该开上百克的时候你就是要有这个胆量去玩命一下。所以这个剂量显然是有定论的, 如果该当开一百克你开个三克, 那是没有用的。这个道理很浅显, 从这个角度看无论中医和西医都是可量化的。所以现在有些学者把这个药量确定下来, 整理医案, 做成西医一样的数字系统, 什么病用什么药治, 用多少都有章可循。</p>

<p>所以中医是严格量化的, 不过仅仅量化到西医这种程度, 这还量化得不够, 老中医可能觉得这仍然是庸医。蒲辅周有个人尽皆知著名的医案, 说是解放后 1954 年石家庄暴发乙脑, 老中医郭可明用白虎汤进行治疗取得奇效, 然到 1956 年 1 月北京再次发生乙脑, 北京尝试用石家庄的经验进行治疗, 却完全没有效果。老中医蒲辅周提出 "石家庄与北京的乙脑虽同在暑季, 但石家庄久晴无雨, 乙脑患者偏热, 属暑温, 用白虎汤清热润燥, 故见奏捷; 而北京今年雨水较多, 天气湿热, 患者偏湿, 属湿温。倘不加辨别, 而沿有清凉苦寒药物, 就会出现湿遏热伏, 不仅高烧不退, 反会加重病情"。结果是 "群医称是, 即改投通阳利湿法, 效果立竿见影, 不少危重病人转危为安, 一场可怕疫病得以迅速遏止"。所以中医说, 治病光看人, 还不够, 还得把气候一起算进来。</p>

<p>即使在牛顿力学中, 三个星体的引力影响就可以形成混沌, 把天地人一起放进来辩证施治, 各项因素相互影响, 这种量化就更为复杂了。有人看到高明的中医开起药来似乎没有定论, 就说 "中西医谁可量化数字化不用我再多言了吧"。糟糕的是中医在这个时候依然是精确定论的, 比如说早在内经里就已经出现了这种术数量化系统, 我们可以叫做运气系统, 这在上面这个医案中也有涉及。表面上有点玄, 解释起来倒也不难。就是五季气候都有所不同, 每季对五脏都有影响 (春夏长夏秋冬分别对应于肝心脾肺肾); 而每一天从早到晚也有这种变化 (比如中午热早晚冷); 最有趣的是一个甲子之间不同干支的年份对人脏器的影响也不同, 这个解释起来也容易, 既然天文行星的运行对潮汐都有影响况且是人呢。五运六气互相的影响和叠加都是有严格的运算规定的。这些东西看上去很玄, 但是前面用来解释的可都是通俗科学, 当然我这里只是尝试在解释运气的表面现象而已。</p>

<p>到目前为止, 都在讲中医是可以量化的, 即使中医还要关心天地人之间的影响, 但是辩证施治也是可以运算和量化的。然后我们发现了把中医归纳到西医中去的曙光, 有人就提出废医存药的主张, 这样就能把中医装进西医的框架中去。有人觉得废医存药是不对的, 前段时间流行过一本《人体使用手册》, 有朋友说内容挺吓人, 不过我觉得书里面有一点写得挺对, 在中医里面除了开药之外还有许多东西, 比如说针、砭、经络按摩之类的, 等到要用药解决问题了, 已经是下策了。扁鹊说我要等到人家生病了才能治好所以我是最烂的, 这说明在中医中治病是下品; 黄帝问歧伯说治病除了吃药, 还有没有痛苦更小的解决办法, 歧伯说用针啊, 这说明在中医中用吃药来治病是下品。</p>

<p>所以更可恨的是中医量化有量化的道理, 不量化有不量化的道理。我在想为什么一定要量化呢, 中医为什么不能具有艺术性呢。比如说鲁迅先生很烦的药引, 作为庸医骗人的伎俩让许多从课本中看世界的同学痛恨, 但药引的存在也是有价值的, 药对人身体起作用, 药引和君、臣、佐、使严格量化的配伍规则不同, 他是一种艺术性的东西, 对人的心理起作用, 给病人以信心, 或者唤起一种具有治疗效果的心理意向。除了药引, 中医中还有其他唤起心理治疗意向的招, 比如同样一种用于发散的药, 你不做成丸而是做成散, 病人听到散这个字, 自然会联想到发散, 心里是发散的意向, 影响到身体, 使发散的药效更佳。</p>

<p>以前流行过佛洛伊德的精神分析治疗, 也没有人跳出来强求说这是一种不可量化的东西, 因为外来的东西都是好的。要是在中医里面, 医生胆敢通过自己气立、神机的反应来推测病人的状况那么就变成了骗子。</p>

<p>当然我也是支持西医的, 西医外科十分强大, 也有很多优于中医的地方, 不过这就不是今天要说的东西了。许多人觉得近代中国的落后归功于中医、儒家什么的, 其实历史从来不是文明必然战胜野蛮的, 即使是南宋这样在经济、科技、文化上全面领先的超级大国依然避免不了被征服的命运, 即使是清朝这样没落的帝国依然能够同时对抗诸多当时最为强大的西方强国, 并击败俄国、法国、德国等国家, 而最近我看到有文章称当时西方列强的科技水平似乎仍然没有超过中国的明朝。过去中国的落后, 似乎更应归功于大量野蛮国家的军事征服和堂而皇之、肆无忌惮的掠夺 ──── 当然这也不是今天要说的内容。</p></div>]]></description>
	    <author><![CDATA[沈崴]]></author>
	    <comments>http://eishn.blog.163.com/blog/static/6523182009184341235</comments>
    <slash:comments>10</slash:comments>
    <guid isPermaLink="true">http://eishn.blog.163.com/blog/static/6523182009184341235</guid>
    <pubDate>Sun, 8 Feb 2009 16:34:12 +0800</pubDate>
    <dcterms:modified>2009-02-08T16:34:12+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[泡泡已经自暴自弃了?]]></title>	
    <link>http://eishn.blog.163.com/blog/static/65231820081012105137345</link>
    <description><![CDATA[<div><center><img src="http://img.blog.163.com/photo/NZElP4dNZ8bWncgklDKGlA==/5137481274923687076.jpg"></center>
<br>在悠悠的历史长河中, 曾有那么一款即时聊天工具一直令人难以忘怀。我们曾亲切地称之为 ──── 破破。<br>曾经的文件传输之王, 也能便捷地向手机发送短信, 最为牛逼的是某公司会为你的短信买单。<br><br>随着一次又一次的升级, 破破的使用寿命越来越短, 常常撑不了几天就要重装了。聊天记录也人间蒸发了。<br>曾几何时, 文件穿墙能力也没有了, 变成了龟速传输, 续传也常常失效了。<br><br>今天有人用 QQ 发了张截图给我, 告诉我破破一直在不停重启。难道说破破已经开始自我放逐之旅了?<br><br>破破的研发团队从来都是我景仰和崇拜的偶像。<br>在以前全公司都开始转向 Python 的时候, 他们仍然伟大而光荣地守持着先进而未来的 CXX 技术。<br>而且他们打死你也不支持 Unix / Linux, 这该是怎样毅然而然地决心啊。<br><br>为了让破破能够运行在桌面上, 我们绞尽脑汁, 然而不管 wine 怎么升级, 都差那么一点。<br>──── 你不得不佩服破破, 在满世界都被 wine 成功模拟的情况下, 他居然成功漂亮地抵抗了 wine。<br>最后我只能被迫单独为破破开一个 VM。<br><br>公司里许多程序员都在请求伟大的破破团队开放接口, 我们不需要你向全社会开放, 只要开放给公司内部,<br>也不需要你动手, 我们义务免费为你开发 Unix / Linux 版。但是这些尝试都可耻地失败鸟。<br><br>伟大的破破正在升华。<br><br>与之对应的是 QQ 的沉沦。今天, QQ 已经有官方的 Linux 版本了 …… 烂归烂, 总算是有了。<br>为了对应 QQ 咄咄逼人的攻势, 万人瞩目伟大的破破, 发布了最新的自杀 and 重启版。<br><br>尽管该产品已经进化成公司的内部软件, 但破破的新动向终究还是令人万分鸡冻。<br>
</div>]]></description>
	    <author><![CDATA[沈崴]]></author>
	    <comments>http://eishn.blog.163.com/blog/static/65231820081012105137345</comments>
    <slash:comments>10</slash:comments>
    <guid isPermaLink="true">http://eishn.blog.163.com/blog/static/65231820081012105137345</guid>
    <pubDate>Wed, 12 Nov 2008 10:51:37 +0800</pubDate>
    <dcterms:modified>2008-11-12T11:04:57+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[仗义每从屠狗辈 负心多是读书人]]></title>	
    <link>http://eishn.blog.163.com/blog/static/65231820089643617781</link>
    <description><![CDATA[<div><p>上个月与山西某大学历史专业的晚辈<a href="http://cid-d786b680c7dc8001.spaces.live.com/">竹嘉</a>同学就湖州、项羽以及安吉的历史问题有过<a href="http://www.douban.com/group/topic/4096144/"><strong>讨论</strong></a>。</p>

<p>我多次声明, 要是早知道竹嘉是搞历史的, 绝不出来 “班门弄斧”。因为我知道要是动了这帮人的奶酪, 指出他在历史上的低级错误, 他绝对会死皮赖和你纠缠到底。然后你还要浪费时间和他讨论, 仅仅是为了他的死不认帐。这实在不值, 所以一般人就不再计较。</p>

<p>我也没有闲到和这种水平的朋友打口水仗的程度, 但我也不像一般人那样对无赖招数易于厌烦。我<a href="http://eishn.blog.163.com/blog/static/65231820088645249130/"><b>前面</b></a>说过, 学界之所以变成这个样子, 中国之所以变成这个样子, 就是我们有时候太宽容了。尽管不得不把他驳得理屈词穷, 和这种历史水平的人争论, 还是让我觉得自己很失败。那位同学最后发现我的历史水平高高在上, 更不好惹, 赶紧逃之夭夭。</p>

<p>不过非常不幸, 我是抓住小辫子不放的人。装象是很容易, 可一旦露了破绽, 我就会痛打落水狗, 还没完没了地鞭尸。在其逃之夭夭仅一个月以后, 闲得蛋疼, 我便又把他拉出来鞭尸解闷了。更不幸的是这并不是结束, 而仅仅是开始。现在我们再来欣赏一下山西某大学历史专业某同学的历史水平吧。</p>

<br>
<pre>    | 2008-09-02 11:03:23 竹嘉 (湖州)<br>    | 项羽? 人家明明是避祸在会稽, 关湖州什么事?<br></pre>

<br>
<p>于是我矫正该错误, 当时我疏忽了他是学历史的, 这无疑是捅了蜂窝。当然这也不能怪我, 因为他讲的东西, 其历史常识之匮乏令人匪夷所思。常识错误之一, 项羽不仅关湖州什么事, 而且湖州是项羽起兵前最主要的活动地区。尽管这是常识, 我下面还会继续补充说明。</p>

<p>常识错误之二, 该同学以为会稽就是今天的绍兴了。如果按照今天的行政划分, 那当然就不关湖州什么事了; 但如果是会稽地区、秦会稽郡, 那自然就是另一回事了。连这个都不知道你敢说自己是学历史的?</p>

<p>经过我费劲地指引, 他才明白过来, 忙上网恶补。然后得意忘形, 居然开始掉起项羽和会稽的书袋, 好像前面那些低级错误不是出自他口。唉, 又开始装象了。但无奈这位小朋友基础太差, 得意地抄出大段大段的史料, 却完全没有消化。对史料的分析脑缺得一踏糊涂。今天有空, 我继续给竹嘉补一课。且看上回竹嘉同学如何信口开河。</p>

<br>
<pre>    | 2008-09-02 20:21:09 竹嘉  (湖州)<br>    | 在《史记》行文中, "吴中" 似乎是作为一个区域性名词而非专指一地。使用了一下 Word 查找,《史记》中仅此一见。<br>    | 关于八千人兵源,《史记》卷四一《项羽本纪》: "梁乃召故所知豪吏, 谕以所为起大事, 遂举吴中兵。使人收下县, 得精兵八千人"。 <br>    | 项羽避祸吴中，活动范围当包括今湖州地域，但从击杀郡守，起事会稽郡府看来，避祸期间的反秦活动，或在吴县居多。<br></pre>

<br>
<p>当然了, 这里打起自己巴掌项羽又关起湖州什么事了, 这个先按下不表。《史记 -项羽本纪》是项羽起兵湖州比较重要的史料, 居然从击杀郡守一事便推出项羽反秦在吴县居多这种和事实相反的结论, 这种治史方法和基本功着实让我大开眼界。</p>

<p>《项羽本纪》我自小就通读过多遍, 尽管《史记》是项羽起兵湖州的重要史料, 然而其中存疑和矛盾的地方非常多, 包括击杀会稽郡守一事也很可疑。所以我一般不会作为直接证据。然不加分析就言之凿凿地拿出来夸夸其谈, 难道是无知者无畏吗? 即使这段记载可以确信, 那当如何分析?</p>

<p>秦统一天下以后, 其统治在楚地是相当薄弱的。当时楚人多不服, 有楚遂三户, 亡秦必楚的说法。后来亡秦的陈涉、吴广、刘邦、项羽皆是楚人。而楚地之越人则更是彪悍, 越人破秦以后, 即便项羽败亡, 孝景时江东越人仍和中央政府玩了把大的, 差点把汉朝都颠覆了。籍避祸于吴越之会稽, 实为秦之软肋。吴县乃会稽郡治所, 秦在越地稍弱, 在这里却是重镇, 按秦之苛法你就不怕被连坐吗? 别说在这里反秦了, 在这里避祸都是找死。</p>

<p>再看项羽巨鹿以二万破秦数十万主力, 其战力之强惊天地泣鬼神。吕思勉先生曾分析过, 武装战力和民族血统关系不大, 主要还是要勤于练兵。我认同这个说法。这里可以反衬出越人军队经过长期严格训练, 随便拉几千乡勇上去, 越人虽强悍但要直接和百战百胜的数十万秦军对抗还不是痴人说梦么。所以《史记》作为间接资料, 这里还是要经过自己大脑分析的, 等下还会有直接资料, 这里先按下不表。</p>

<p>数千人规模的部队每天在那里练兵准备反秦。放在会稽郡治所吴县可能吗? 那么答案自然只有一个, 项羽避祸反秦只可能在吴中这个地方。竹嘉小朋友说吴中是一个地区, 好像又不关湖州什么事了, 不过很可惜, 吴中专指湖州地区。唐朝湖州刺史颜真卿在弁山项王庙立碑, 写有 "西楚霸王当秦之末, 与叔梁避仇于吴中, 盖今湖州也"。我不是书呆子, 据我分析, 吴中这个区域可能比湖州还要小, 专指乌程。我不会把未经分析的史料贴出来招摇, 我可以把史料哪些是可信的哪些是不可信的分析给你看, 让你心服口服。</p>

<p>首先项羽不可能在湖州安吉运作, 道理和吴县一样, 因为安吉在秦朝是鄣郡治所。安吉的安城原是越国早期的都城, 发展到秦代, 必然是一大都会重镇, 故之所以成为鄣郡治所。而且安吉多山不易部队集结。湖州乌程县地处鄣郡和会稽郡间, 民风彪悍, 乃秦力所不及之地, 虽有山地可供驻扎然又地势平缓易于集结和移动, 土地肥美物产丰富, 在楚越之地, 无论从哪方面去看在这里组织大规模反秦武装都是最为合适的。显然这也是唯一的选择, 由此可知吴中乃指以乌程县为中心的湖州地区。湖州大量文物遗迹都支持上述论断, 弁山考为项羽驻军处, 理论与事实相符。</p>

<p>回到《史记》项羽击杀会稽郡守的记载。脑袋秀逗了的会稽郡守居然也要 "赶时髦" 去 "反秦" 了, 费了好大劲才找到项羽, 为什么啊? 因为项羽远在乌程, 根本不在吴县啊。项羽既来, 第一件事情就是把已经秀逗了的 "同盟" 郡守干掉。你觉得这件事情可疑吗? 相信大家已经有自己的判断了吧。秦末江西俱反, 江东项羽于湖州起兵势逼吴县, 会稽陡然处于风雨飘摇之中, 郡守无奈邀籍谈判, 后面一如《史记》所载。若不带兵, 大家凭什么畏惧你? 不举兵而先诛郡守实无异于自杀, 此一家之言供大家参考。这既符合《史记》又和湖州弁山与项王城遗址相合、史料和文物相映, 而且整个逻辑看上去舒服多了。但无论如何, 《史记》这段记载正好说明项羽避祸期间的反秦活动根本不在吴县。</p>

<p>奇怪的是竹嘉同学居然是湖州人, 湖州到处都是项羽留下的文物和遗迹, 出去学了会儿历史, 跑回来居然说 "项羽关湖州什么事", "只能作为民间传说", "避祸期间的反秦活动, 或在吴县居多", 才学到点皮毛就趾高气扬, 要和民间划清界限了? 真是奇也怪哉。这不得不让我对山西某大学的教育水平刮目相看。</p>

<p>我在前面已经写过许多关于学界的事情了, 诸如上海交通大学的 CPU, 国防科技大学、中科院的操作系统。今天补上一个人文学科, 功德圆满。我在全国各地有许多各行各业的朋友, 从黑涩会小混混到坐在办公室里的程序员, 再到坐在办公室里写黑涩会程序的小混混程序员都有。最讨厌的还是那些读书人, 本来一个人可能还是有情有义的, 儿不嫌母丑的, 对家乡也是颇有良心的; 读了点书回来就全变了。</p>

<p>仗义每从屠狗辈, 负心多是读书人。今天看来, 果然不假。</p>

<br><br>
<p><b>P.S. 现在不仅有许多湖州人身在福地不自知, 连一些安吉、德清县人对自己家乡的历史也是稀里糊涂, 这些地方在历史上远比杭州牛逼得多, 甚至和湖州都有一拼, 难道想步严州府的后尘吗? 你们顶多只能算是暂住在那里, 没有资格自称安吉人、德清人。</b></p></div>]]></description>
	    <author><![CDATA[沈崴]]></author>
	    <comments>http://eishn.blog.163.com/blog/static/65231820089643617781</comments>
    <slash:comments>13</slash:comments>
    <guid isPermaLink="true">http://eishn.blog.163.com/blog/static/65231820089643617781</guid>
    <pubDate>Tue, 7 Oct 2008 16:44:44 +0800</pubDate>
    <dcterms:modified>2008-10-10T15:26:56+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[Eurasia 3.0.0 alpha5 将于 2008 年十月发布]]></title>	
    <link>http://eishn.blog.163.com/blog/static/652318200882582733480</link>
    <description><![CDATA[<div>比起很多开源项目来, Eurasia 3.0.0 的发布要漫长许多, 经过将近两年的开发, Eurasia 3.0.0 即将走到第 5 个 alpha 版本。其实从 alpha2 开始,&nbsp; Eurasia3 就已经进入实战, 并已经完成数个产品了。然作为开源项目, 在发布上还是需要谨慎的。我的想法是将 beta 版当 release 来做, 既如此, alpha5 就应当做 beta 版来做。所以 alpha5 是相当重要的一个版本, 一方面是指稳定性, 另一方面这是一个冻结特性的版本。在 alpha5 以后, 除非有明显并且严重的设计错误, Eurasia3 的接口将不会再发生变化。<br><br>最后, alpha5 将会有许多出乎意料、令人激动的重大改进, 这都将在今年十月份揭晓。<br></div>]]></description>
	    <author><![CDATA[沈崴]]></author>
	    <comments>http://eishn.blog.163.com/blog/static/652318200882582733480</comments>
    <slash:comments>4</slash:comments>
    <guid isPermaLink="true">http://eishn.blog.163.com/blog/static/652318200882582733480</guid>
    <pubDate>Thu, 25 Sep 2008 20:27:33 +0800</pubDate>
    <dcterms:modified>2008-09-25T20:29:10+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[编译中文 Python 文档 (LaTeX2HTML)]]></title>	
    <link>http://eishn.blog.163.com/blog/static/652318200882523153649</link>
    <description><![CDATA[<div>随着 <a href="http://code.google.com/p/eurasia" target="_blank">Eurasia 3.0.0 a5</a> 的临近, 文档的跟进变得越来越重要。这趟, 我决定把 Eurasia3 文档做成标准的 Python 模块文档。做法很简单, 先把文档写成 LaTeX, 然后调用 Python/Doc/tools/mkhowto 脚本编译成 HTML 等文档。<br><br>直接用 LaTeX CJK 来编译中文文档很顺利, 但是 Python 的 mkhowto 脚本好像对 CJK 支持有些问题。我对调试没什么兴趣, 经过分析, 用一个转换脚本了事。步骤如下。<br><br>首先编写 LaTeX 文档, 但是在文档中不要申明使用 CJK 支持。<br><br>% 一个 tex 文件<br>\documentclass{manual}<br>\title{标题}<br>\author{作者}<br>\authoraddress{<br>&nbsp;&nbsp;&nbsp; 邮箱: \email{xxx@gmail.com} \\<br>&nbsp;&nbsp;&nbsp; 项目: \url{http://code.google.com/p/xxx/}<br>}<br>\date{2008}<br>\release{x.x.x} % release version<br>\makeindex<br>\begin{document}<br>...<br>\end{document}<br><br><br>诸如此类, 然后调用 mkhowto 脚本。<br><br>/PATH/TO/PYTHON/SOURCE/Doc/tools/mkhowto xxx.tex<br><br>这样 Python 的 HTML 文档就生成好了。不过文档里的中文是乱码。然后编写一个转换程序, 把乱码转成 UTF-8 中文。<br><br>#!/usr/bin/env python<br>import os, os.path<br>dirname = 'HTML文档目录'<br>for filename in os.listdir(dirname):<br>&nbsp;&nbsp;&nbsp; if filename[-5:].lower() != '.html':<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; continue<br><br>&nbsp;&nbsp;&nbsp; fullname = os.path.join(dirname, filename)<br>&nbsp;&nbsp;&nbsp; data = unicode(unicode(open(fullname).read(), 'utf-8').encode('iso8859-1'), 'utf-8').encode('utf-8')<br>&nbsp;&nbsp;&nbsp; fd = open(fullname, 'w')<br>&nbsp;&nbsp;&nbsp; fd.write(data)<br>&nbsp;&nbsp;&nbsp; fd.close()<br><br>原理是先按 utf-8 编码把乱码文件 decode 成 unicode, 然后 encode 到 iso8859-1, 然后再用 utf-8 decode 到 unicode, 最后用 utf-8 输出。这样乱码文件就还原了。<br></div>]]></description>
	    <author><![CDATA[沈崴]]></author>
	    <comments>http://eishn.blog.163.com/blog/static/652318200882523153649</comments>
    <slash:comments>4</slash:comments>
    <guid isPermaLink="true">http://eishn.blog.163.com/blog/static/652318200882523153649</guid>
    <pubDate>Thu, 25 Sep 2008 14:31:53 +0800</pubDate>
    <dcterms:modified>2008-09-25T14:31:53+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[猜猜看, &quot;神七&quot; 控制系统用的是什么 OS?]]></title>	
    <link>http://eishn.blog.163.com/blog/static/65231820088231162860</link>
    <description><![CDATA[<div>中午不幸看了新闻, 近距离地观察了神七的控制系统, 突然非常激动, 大家来猜下这次是什么 OS?<br><br>上海交通大学, 陈进: 神七用的是汉芯吗? 这个一定要支持国产哦。<br>... 晕啊, 我问的是 OS, 没有问 CPU 啊。<br>陈进: 哦, 漂过。<br><br>中科院、信产部: 以民族产业的名义你得用红 ...<br>国防科技大学: 靠, 以我们两年没收的七千万, 和国家安全的名义, 神七得用麒麟。<br>... 不好意思, 不过好像都不是哦。<br>国防科技大学: 哦, 我是来打酱油的。<br><br>Debian、Gentoo、FrOpNeBSD ... (齐声道): 不是我, 不是我, 不是我, 不是我 ...<br>汉澳 (害羞地): 也不是我。<br>洪磊 (激动地说): 番茄, 一定是番茄, 我就知道番茄占有率高。<br>... 嗯, 挺像的。<br>神七小组: 靠, 再仔细看看, 这个像 XP 吗, 瘟 2000、瘟 98 还差不多撒。<br>洪磊: 较什么真啊, 看仔细了把你们也送进来陪我。<br><br>莱得蒙德 (哭): 这不是真的吧, 就算是我们国内也不大会这么给我面子啊。<br></div>]]></description>
	    <author><![CDATA[沈崴]]></author>
	    <comments>http://eishn.blog.163.com/blog/static/65231820088231162860</comments>
    <slash:comments>2</slash:comments>
    <guid isPermaLink="true">http://eishn.blog.163.com/blog/static/65231820088231162860</guid>
    <pubDate>Tue, 23 Sep 2008 13:16:02 +0800</pubDate>
    <dcterms:modified>2008-09-23T13:16:02+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[论 Ubuntu 的墙掉]]></title>	
    <link>http://eishn.blog.163.com/blog/static/6523182008813105015970</link>
    <description><![CDATA[<div><center><img src="http://www.ownlinux.cn/wp-content/uploads/2008/09/cctv-dongfangshikong-linux-4.jpg"></center><br><br>

<center><embed allowScriptAccess="never" allowNetworking="internal"   style="display: block;" pluginspage="http://www.microsoft.com/isapi/redir.dll?prd=windows&amp;sbp=mediaplayer&amp;ar=media&amp;sba=plugin&amp;" src="http://winmedia.cctv.com/dongfangshikong/2008/09/dongfangshikong_300_20080912_1.wmv" type="application/x-mplayer2" loop="0" autostart="0" enablecontextmenu="1" showstatusbar="1" showaudiocontrols="1" showcontrols="1" width="400" height="300"></center><br><br>

<p>好吧, 我没装番茄花园, 所以不能保证上面那段视频是否有效, 因为我没兴趣来测试 wmv。这是昨天晚上东方时空 "论番茄倒掉" 的视频, 华华说视频链接在 <a href="http://v.cctv.com/flash//dongfangshikong/2008/09/dongfangshikong_300_20080912_1.flv">[这里]</a> 大家自己拿去看吧。</p>

<p>昨天晚上无聊, 生生地看完了这个节目。感觉如果红旗那位口齿不清、逻辑混沌的同学不出来误导观众的话, 正面的宣传效果或许还会好些。纵观全篇, 颇有许多值得玩味的东西, 现在我们不妨来聊一下吧。</p>

<p>一开始番茄就 K.O. 了, 番茄你快去死吧, 关我屁事啊, 我想。不幸的是估计是番茄在 CCTV 装机量比较大, 节目对洪磊的英年早逝惺惺相惜了半天, 那些职业精英 (浆糊) 们又蹦出来捣了, 实在无聊。弄得好像给 Windows 加两恶意插件很有技术含量一样, 改改操作系统随便出两个定制版对一般的 Linuxer &amp; BSDer 来说不就跟玩儿似的啊。洪磊你说是不是啊。</p>

<p>长期以来, 这些无良媒体不仅瞎折腾, 而且成天误导青少年教坏小孩子。比如黑客, 多光荣多的职业啊, 被电视扯成入侵计算机系统的 Cr@cker 了, 更要命还暗示小孩子做坏事很酷很牛逼, 黑客就这么没有技术含量? 搞得现在的小屁孩随便下个入侵软件玩就敢说自己是黑客, 还以为做坏事很光荣。弄了半天, 这些软件不正是我们写的吗, 电视里那些侃侃而谈自称黑客的同学对我们而言不过是用户吧, 我要是真想玩, 一天可下几十万的机器, 只是这些事情是黑客所不耻的。不过对我个人而言是不会把特别危险的程序传播给小屁孩的, 你们只能拿到玩具嘛; 而且黑客高兴了还会替别人打打补丁, 我们是不是很讨厌啊, 哈哈哈。</p>

<p>把黑客最不耻的人称作黑客, 这就是现在媒体的水平, 我们每次聚会、腐败的时候都不免要骂一下。就在我正欲换台的时候, Linux 来了。What's the ... ! 这还是我们熟悉的 CCTV 吗? 这一瞬间我震惊了, 全国人民惊呆了, 全宇宙都不知所措了 ... 不过幸运的是接下来的内容会告诉我们没错, 一如既往, CCTV 还是那个 CCTV。</p>

<p>顺着节目的话题下来, 我很快就被雷到了。中科红旗总裁贾栋扯到, 性价比在哪里, Windows 很快功能很强大, 这是公认的 (贾栋啊, 你以为你是 MindCraft 啊, 你没认真用过 Linux 吧) ... 不过 Windows 嘛吗贵, Linux 很便宜只要 40￥。我在想印象中我怎么好像没有用过这么贵的 Linux 啊? 我家里有 7 台用着各式各样 Linux 的电脑, 岂不要开销 343￥ 了啊。然后我就等 Ubuntu, 等啊等, Ubuntu 没有出来, 红旗倒是闪亮登场了。还好, Redhat 还是抢到了一个镜头。看来 Linux 要是不收费, 比红旗便宜, 像 Debian 啊 Gentoo 什么的在 CCTV 上还是没希望出头的。这倒也是, 要是在电视上说大部分 Linux 不要钱, 红旗明天不就要关门了吗?</p>

<p>红旗继续口若悬河道, Linux 区别于微软的一个最主要的特性就是开源, 开放了源代码的 Linux 不存在版权问题, 可以任由技术爱好者们修改和补充 ... 红旗啊红旗, 你又误导观众啊, Linux 区别于微软的主要是因为它是自由软件, 而不是因为开源, 你不知道微软也开源的吗? Linux 可以任由修改和补充不存在版权问题? 怪不得你总是被指控侵犯了 Linux 版权啊, 自由软件社区 (比如 IBM) 真要是告你你早该挂了吧。对 Linux 和 GNU 软件进行修改产生的衍生版也必须是开放源代码的, 这就是 Linux 的版权, 而且衍生版是可以在源码外附加收费条款的。这就是自由软件版权 GPL 不同于 BSD 的地方。</p>

<p>和 Linux 严格的 GPL 不同, BSD 协议宽松到你可以在源代码的基础上闭源和商用, 完全成为你的东西 ──── 甚至是这么一个宽松到极点的开源协议, 我们伟大的民族操作系统产业也敢违反 ──── 麒麟操作系统作为 FreeBSD 的衍生版, 不管你做了多少修改和创造, 根据 BSD 协议你都必须申明是 FreeBSD 的派生物。我们没有要你公开源代码啊, 仅仅是耻于宣布借鉴了 "国外" 的东西, 而骗不到国家拨给你用来发展 "民族" 操作系统的那几十亿人民币, 就敢破坏世界软件界的游戏规则, 令人彻底无语了。看看给我们带来无数欢乐的 <a href="http://www.seekit-online.com/index.pl">[汉澳]</a> 操作系统吧, 人家就不避讳自己是 FreeBSD, 所以说它并没有侵权。堂堂国防科技大学还不如南宁九奔公司, 你不觉得羞耻吗?</p>

<p>敢于挑战 Linux GPL 版权的红旗公司, 敢于挑战 FreeBSD BSD 协议的国防科技大学, 都无一例外具有(政)(府)人员的背景, 民族产业, 民族操作系统, "民族" 多少罪恶假汝之名以行啊。</p>

<p>然后妓者问, 如果没有盗版你们会更爽吗? 红旗回答, 嗯嗯 ... 啊啊 ... (欲言又止), 没有盗版还会有潜规则嘛, 我们的销售人员在公关的时候就经常抱怨, 搞潜规则搞不过微软嘛。哇噻, 红旗这个太带劲了。</p>

<p>看完整个节目细细品味, 这个稿子相当可疑, 它看上去特像红旗的软文。软文能做到 CCTV 上去, 按照红旗的背景和能量, 我大概可以预见国内在微软倒掉之后, Debian (Ubuntu 等) 的源就会被拔网线墙掉了。然后以 "民族产业" 和 "国家安全" 之名大家只许用实际上并不便宜的红旗了, 这种情况大概已经不是第一次出现了吧。这种强烈的预感驱使我写下了这篇文章, 大家早作准备各自逃难去吧。</p>

<p>不过在本文结束前我也必须表扬一下 CCTV 的同学, 这次节目 "在客观上" 也确实为 GNU/Linux 的普及作出了相当大的贡献。特别是那段 Compiz Fusion, 3D 桌面的演示, 对那些活在 Redmond OS 幻觉中的可怜用户来说实在是太酷太牛逼了。用户会发现原来不必一次又一次地在地狱中重装系统, 忍受杀毒软件的折磨, 拥有一切包括那个漂亮的 3D 桌面只需要把一次重装的时间用来熟悉现代的 Linux 就可以了 (Ubuntu 在易用性上简直无可挑剔, 在 H@cker 中认为是幼儿园才用的系统)。这次对微软的杀伤实在是太大了, 微软一定恨死你了。</p>

<p>还漏了什么? 没错, 最后值得一提的是 Sourceforge 居然也在镜头下匆匆闪过, 难道是剪接错误? 要知道美帝一边说你没有言A论B自C由, 暗地里美帝的思科公司可是不遗余力的把墙公关给你 ──── 据说该墙对黄_色-网站丝毫不感兴趣, 专杀 Sourceforge 以及 (此处省略数万字) 这些技术网站, 意图就是扼杀你的技术力量。所以这绝对没有任何政x治意味, 仅仅是剪接失误而已, 请大家千万不要抱有任何希望或者过度解读 ──── 当然, 本文也不宜过度解读。</p></div>]]></description>
	    <author><![CDATA[沈崴]]></author>
	    <comments>http://eishn.blog.163.com/blog/static/6523182008813105015970</comments>
    <slash:comments>5</slash:comments>
    <guid isPermaLink="true">http://eishn.blog.163.com/blog/static/6523182008813105015970</guid>
    <pubDate>Mon, 15 Sep 2008 20:00:19 +0800</pubDate>
    <dcterms:modified>2008-09-15T20:00:48+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[写在一些够带劲的文章之前]]></title>	
    <link>http://eishn.blog.163.com/blog/static/65231820088645249130</link>
    <description><![CDATA[<div>运动会期间各种公益广告令人目不暇接, 这些自轻自贱的广告人试图给人们造成一种错觉, 就是中国人的素质比起洋爷爷来要差很多, 很乡下, 很不文明, 急需洗脑。或许对蓟县人民而言确实如此, 但是在同等经济条件下中国人的素质还没有如此不堪吧, 顶多是缺点钱吧, 我想。<br><br>在庐山上曾有人和我说要是所有地方都像庐山这样每走几段路就有垃圾筒, 他绝对不会乱扔烟头, 我觉得很有道理。后来住在深圳时楼下有个路口, 过马路时要等一个漫长得离谱的红灯, 我想人们乱穿马路还是有一定道理的, 随意把制度问题诬陷为平民素质太差这显然是不公平滴 ──── 我正在想着, 两个过马路的香港人已经开始抱怨人行道已经绿了为什么还有这么多车也是绿灯可以开过来?<br><br>这个问题论及文明就比较高深了, 好吧, 问你个问题, 我们努力建设的精神文明在哪里? 是强制在全国学校推广的京剧? 是大家削尖脑袋抢着去听的交响乐? 是于丹的心灵鸡汤、神爱世人? 还是北大的补品青华的组装机? 或者直接一点, 中华文明存在于车子房子女人票子的比拼之中?<br><br><div style="text-align: center;"><span style="font-weight: bold;">如果连你自己都这么觉得, 那活该你在还没有钱之前, 被殖民地同胞以任何理由深情以及悲情地鄙视了。</span><br><div style="text-align: left;"><br></div></div>没错, 这年头所有的事情都有点荒腔走板, 或者后现代。以前西方同胞也还硬得起来, 上帝或者耶酥的爸爸曾经教导我们说 "以眼还眼以牙还牙", "那些贱人, 屠光他们的城", "异教徒, 让他绝子绝孙" ... 到了后现代, 西方人也西装革履起来, 尽管做的还是屠城的事情, 表面上却爱护起小动物一副温文尔雅软扒扒的样子了。<br><br>自从中体西用被斗臭以后, 我们比西方人西化得更彻底了, 我们不仅表面上软扒扒, 骨子里也变成了棉花糖。这是中华文明该有的样子吗? 当然不是, 怕是某些人搞错了吧。<br><br><div style="text-align: center;"><span style="font-weight: bold;">中华文明存在于卧薪尝胆、刺客列传、赵氏孤儿、秦皇汉武这些看不见摸不着的东西里面。<br></span><div style="text-align: left;"><span style="font-weight: bold;"><br></span>我们的文明是硬邦邦的, 光明正大爱憎分明有仇必报, 绝不怨天尤人扭扭捏捏。没有了这些历史性格, 不管你在破坏下抢救出多少文物, 钦定多少非物质遗产, 我们的文明还是不复存在了。<br><br>所以我们需要硬起来, 我们需要侠客精神, 至于乱扔烟头随地吐痰这种事情就爱怎么着就怎么着吧。像犹太人一样天网恢恢, 君子报仇十年不晚, 这样你的后代才抬得起头, 以后美帝也不敢一如屠杀日本人、朝鲜人、台湾人、两伊、南斯拉夫、格鲁吉亚和俄罗斯人一样随便屠杀汉人和藏人。另一方面, 如果光明卖了过期奶、康师傅卖了自来水大家就一直抵制到他破产, 那么以后谁还敢作坏事? 会出现今天靠卖劣质假鞋完成资本积累的温州人摇身一变成为诚信经营典范、靠推动 G%F*W 起家的外资公司百度摇身一变成为杰出民族企业 ──── 的这些事情吗? 这恐怕不是中国人的作风吧?<br><br>下面我会写几篇抓住小辫子不放、痛打落水狗的文章, 有些事情可能是最近发生的, 而有些事情已经过去相当久了。作为一名传统的中国人, 我是小鸡肚肠的、光明正大的, "我要明明白白地告诉你们, 我都记得, 而且一个也不放过"。过去不放过, 现在还会像伍子胥一样继续鞭尸。<br></div></div></div>]]></description>
	    <author><![CDATA[沈崴]]></author>
	    <comments>http://eishn.blog.163.com/blog/static/65231820088645249130</comments>
    <slash:comments>8</slash:comments>
    <guid isPermaLink="true">http://eishn.blog.163.com/blog/static/65231820088645249130</guid>
    <pubDate>Sun, 7 Sep 2008 13:34:02 +0800</pubDate>
    <dcterms:modified>2008-09-12T08:40:06+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[一个 SVN 引发的血案]]></title>	
    <link>http://eishn.blog.163.com/blog/static/652318200872905150732</link>
    <description><![CDATA[<div>赖勇浩说你上个 svn 撒。<br>于是我在 belkin&nbsp;7231-4p 增强型上加装了 svn 的 ipk, 结果 svn 报段错误。<br>疑似是 uClibc 库的问题, 于是用高版本的 uClibc 重新作了份 OpenWRT 的 img, 准备写到盒子里去。<br>让盒子进入恢复模式最简单的方法是搞挂他, 于是一冲动就 ssh 到 belkin, 把 /lib 目录清了。<br>结果发现不慎把本机 IP 设成了作为路由器的盒子的 IP, 刚才其实是删除了本机的的 /lib 目录, 于是小黑挂掉了。<br>要更新 belkin, 就得先救活小黑, 于是用移动硬盘里面的 XeeeUbuntu 启动 EeePC, 刻一张 Ubuntu 的修复盘。<br>不幸刻录机插错了电源, 转了一会儿便爆掉了, 同时爆掉的还有连接在一起的 EeePC 和移动硬盘, 这回我亏大了。<br><br>一个 svn 引发的血案。丘处机说你上个 svn 撒, 然后小黑、EeePC、移动硬盘和刻录机便纷纷挂掉了。<br>诸事不顺, 看来奥运其间不适合搞 svn, 于是拖家带小直奔龙王山避暑去了。<br><br>此致纪念。<br></div>]]></description>
	    <author><![CDATA[沈崴]]></author>
	    <comments>http://eishn.blog.163.com/blog/static/652318200872905150732</comments>
    <slash:comments>3</slash:comments>
    <guid isPermaLink="true">http://eishn.blog.163.com/blog/static/652318200872905150732</guid>
    <pubDate>Fri, 29 Aug 2008 12:51:50 +0800</pubDate>
    <dcterms:modified>2008-08-29T12:55:59+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[开幕式不错呵]]></title>	
    <link>http://eishn.blog.163.com/blog/static/65231820087904523125</link>
    <description><![CDATA[<div>尽管和印象系列有些似曾相识, 开幕式的焰火灯光和布景的确还挺好。后来听说这些是 x86 和 XP 做的系统, 一开始我怎么也不信, 不过看到据说是现场拍下来的这个图片以后, 我信了。<br><br><a href="http://img.blog.163.com/photo/16l0S3cK4fGkApWuTzEhUA==/874261277664002825.jpg" target="_blank" style="text-align: center; display: block;"><img src="http://img.blog.163.com/photo/16l0S3cK4fGkApWuTzEhUA==/874261277664002825.jpg"></a><br></div>]]></description>
	    <author><![CDATA[沈崴]]></author>
	    <comments>http://eishn.blog.163.com/blog/static/65231820087904523125</comments>
    <slash:comments>5</slash:comments>
    <guid isPermaLink="true">http://eishn.blog.163.com/blog/static/65231820087904523125</guid>
    <pubDate>Sat, 9 Aug 2008 12:45:23 +0800</pubDate>
    <dcterms:modified>2008-08-09T12:50:22+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[奥运编码器]]></title>	
    <link>http://eishn.blog.163.com/blog/static/65231820086261470252</link>
    <description><![CDATA[<div>为迎奥运, 特地写了个发帖编码器, 希望还没被封站的各位站长喜欢。<br><br>escape = lambda s: __import__('re').compile(r'(\\u([0-9a-f]{4}))').sub(lambda m: '&amp;#%d;' %int(eval('0x' + m.groups()[1])), repr(s)[2:-1])<br><br>后来看了 est 的回帖, 发现我这个只能算是脱裤子放屁版。以下正解由 est 提供, 达人在此快来瞻仰!<br><br>escape = lambda s: '&amp;#' + ';&amp;#'.join(str(ord(x)) for x in s) + ';'<br><br>这里是效果:<br><br>&amp;#12304;&amp;#38472;&amp;#22825;&amp;#20339;&amp;#12305;&amp;#12288;&amp;#12288;&amp;#36814;&amp;#25509;&amp;#21478;&amp;#19968;&amp;#20010;&amp;#26216;&amp;#26342;&amp;#65292;&amp;#21628;&amp;#21560;&amp;#27745;&amp;#26579;&amp;#31354;&amp;#27668;<br>&amp;#12304;&amp;#21016;&amp;#27426;&amp;#12305;&amp;#12288;&amp;#12288;&amp;#25351;&amp;#26631;&amp;#25913;&amp;#21464;&amp;#21619;&amp;#36947;&amp;#19981;&amp;#21464;&amp;#65292;&amp;#23614;&amp;#27668;&amp;#39128;&amp;#28385;&amp;#19996;&amp;#35199;<br>&amp;#12288;&amp;#12288;<br>&amp;#12304;&amp;#37027;&amp;#33521;&amp;#12305;&amp;#12288;&amp;#12288;&amp;#25105;&amp;#23478;&amp;#22823;&amp;#38376;&amp;#24120;&amp;#25171;&amp;#24320;&amp;#65292;&amp;#22806;&amp;#22320;&amp;#20154;&amp;#20986;&amp;#21435;<br>&amp;#12304;&amp;#23385;&amp;#29141;&amp;#23039;&amp;#12305;&amp;#12288;&amp;#12288;&amp;#25910;&amp;#23481;&amp;#36807;&amp;#23601;&amp;#26377;&amp;#20102;&amp;#26696;&amp;#24213;&amp;#65292;&amp;#20320;&amp;#36824;&amp;#25954;&amp;#26469;&amp;#36825;&amp;#37324;<br>&amp;#12288;&amp;#12288;<br>&amp;#12304;&amp;#23385;&amp;#24742;&amp;#12305;&amp;#12288;&amp;#12288;&amp;#19981;&amp;#31649;&amp;#36828;&amp;#36817;&amp;#37117;&amp;#26159;&amp;#23458;&amp;#20154;&amp;#65292;&amp;#21487;&amp;#26159;&amp;#20998;&amp;#31561;&amp;#32423;<br>&amp;#12304;&amp;#29579;&amp;#21147;&amp;#23439;&amp;#12305;&amp;#12288;&amp;#12288;&amp;#21482;&amp;#35201;&amp;#20320;&amp;#26377;&amp;#20154;&amp;#27665;&amp;#24065;&amp;#65292;&amp;#25105;&amp;#20204;&amp;#27426;&amp;#36814;&amp;#20320;<br>&amp;#12288;&amp;#12288;<br>&amp;#12304;&amp;#38889;&amp;#32418;&amp;#12305;&amp;#12288;&amp;#12288;&amp;#25105;&amp;#23478;&amp;#20303;&amp;#30528;&amp;#27915;&amp;#22823;&amp;#20154;&amp;#65292;&amp;#24320;&amp;#25918;&amp;#33258;&amp;#24049;&amp;#36523;&amp;#20307;<br>&amp;#12304;&amp;#21608;&amp;#21326;&amp;#20581;&amp;#12305;&amp;#12288;&amp;#12288;&amp;#22312;&amp;#25105;&amp;#30340;&amp;#20307;&amp;#20869;&amp;#25773;&amp;#31181;&amp;#65292;&amp;#20026;&amp;#20182;&amp;#30041;&amp;#19979;baby<br>&amp;#12288;&amp;#12288;<br>&amp;#12304;&amp;#26753;&amp;#21647;&amp;#29738;&amp;#12305;&amp;#12288;&amp;#12288;&amp;#36827;&amp;#20140;&amp;#26242;&amp;#20303;&amp;#37117;&amp;#24471;&amp;#21150;&amp;#35777;&amp;#65292;&amp;#19981;&amp;#36319;&amp;#20320;&amp;#25304;&amp;#31036;<br>&amp;#12304;&amp;#32701;&amp;#27849;&amp;#12305;&amp;#12288;&amp;#12288;&amp;#31532;&amp;#20960;&amp;#27425;&amp;#36827;&amp;#26469;&amp;#27809;&amp;#20851;&amp;#31995;&amp;#65292;&amp;#27809;&amp;#35777;&amp;#36824;&amp;#25304;&amp;#20320;<br>&amp;#12288;&amp;#12288;<br>&amp;#12304;&amp;#25104;&amp;#40857;&amp;#12305;&amp;#12288;&amp;#12288;&amp;#21271;&amp;#20140;&amp;#27426;&amp;#36814;&amp;#20320;&amp;#65292;&amp;#20026;&amp;#20320;&amp;#24320;&amp;#22825;&amp;#36767;&amp;#22320;<br>&amp;#12304;&amp;#20219;&amp;#36132;&amp;#40784;&amp;#12305;&amp;#12288;&amp;#12288;&amp;#20809;&amp;#26045;&amp;#24037;&amp;#36153;&amp;#23601;&amp;#33457;&amp;#20102;&amp;#20960;&amp;#21313;&amp;#20159;<br>&amp;#12288;&amp;#12288;<br>&amp;#12304;&amp;#34081;&amp;#20381;&amp;#26519;&amp;#12305;&amp;#12288;&amp;#12288;&amp;#21271;&amp;#20140;&amp;#27426;&amp;#36814;&amp;#20320;&amp;#65292;&amp;#22312;&amp;#22826;&amp;#38451;&amp;#19979;&amp;#31579;&amp;#27801;&amp;#38138;&amp;#22320;<br>&amp;#12304;&amp;#23385;&amp;#26976;&amp;#12305; &amp;#24178;&amp;#23436;&amp;#27963;&amp;#28378;&amp;#22238;&amp;#32769;&amp;#23478;&amp;#21435;<br>&amp;#12288;&amp;#12288;<br>&amp;#12288;&amp;#12288;<br>&amp;#12304;&amp;#21608;&amp;#31508;&amp;#30021;&amp;#12305;&amp;#12288;&amp;#12288;&amp;#25105;&amp;#23478;&amp;#22823;&amp;#38376;&amp;#24120;&amp;#25171;&amp;#24320;&amp;#65292;&amp;#25910;&amp;#20837;&amp;#26469;&amp;#33258;&amp;#21508;&amp;#22320;<br>&amp;#12304;&amp;#38886;&amp;#21807;&amp;#12305;&amp;#12288;&amp;#12288;&amp;#23601;&amp;#24403;&amp;#25903;&amp;#25345;&amp;#39318;&amp;#37117;&amp;#20154;&amp;#27665;&amp;#65292;&amp;#27809;&amp;#20160;&amp;#20040;&amp;#20102;&amp;#19981;&amp;#36215;<br>&amp;#12288;&amp;#12288;<br>&amp;#12304;&amp;#40644;&amp;#26195;&amp;#26126;&amp;#12305;&amp;#12288;&amp;#12288;&amp;#22825;&amp;#22823;&amp;#22320;&amp;#22823;&amp;#37117;&amp;#26159;&amp;#26379;&amp;#21451;&amp;#65292;&amp;#37027;&amp;#26159;&amp;#22312;&amp;#25918;&amp;#23617;<br>&amp;#12304;&amp;#38889;&amp;#24218;&amp;#12305;&amp;#12288;&amp;#12288;&amp;#20294;&amp;#20320;&amp;#33509;&amp;#26159;&amp;#37329;&amp;#21457;&amp;#30887;&amp;#30524;&amp;#65292;&amp;#25105;&amp;#23601;&amp;#31561;&amp;#24453;&amp;#20320;<br>&amp;#12288;&amp;#12288;<br>&amp;#12304;&amp;#27754;&amp;#23792;&amp;#12305;&amp;#12288;&amp;#12288;&amp;#21271;&amp;#20140;&amp;#27426;&amp;#36814;&amp;#20320;&amp;#65292;&amp;#20351;&amp;#21170;&amp;#35752;&amp;#22909;&amp;#24863;&amp;#21160;&amp;#20320;<br>&amp;#12304;&amp;#33707;&amp;#25991;&amp;#34074;&amp;#12305;&amp;#12288;&amp;#12288;&amp;#35753;&amp;#22823;&amp;#22920;&amp;#37117;&amp;#21152;&amp;#27833;&amp;#21435;&amp;#23398;&amp;#33521;&amp;#35821;<br>&amp;#12288;&amp;#12288;<br>&amp;#12304;&amp;#35885;&amp;#26230;&amp;#12305;&amp;#12288;&amp;#21271;&amp;#20140;&amp;#27426;&amp;#36814;&amp;#20320;&amp;#65292;&amp;#26377;&amp;#22806;&amp;#22269;&amp;#25252;&amp;#29031;&amp;#20102;&amp;#19981;&amp;#36215;<br>&amp;#12304;&amp;#38472;&amp;#22869;&amp;#36805;&amp;#12305;&amp;#12288;&amp;#12288;&amp;#26377;&amp;#32654;&amp;#20803;&amp;#23601;&amp;#20250;&amp;#26377;&amp;#22855;&amp;#36857;<br></div>]]></description>
	    <author><![CDATA[沈崴]]></author>
	    <comments>http://eishn.blog.163.com/blog/static/65231820086261470252</comments>
    <slash:comments>5</slash:comments>
    <guid isPermaLink="true">http://eishn.blog.163.com/blog/static/65231820086261470252</guid>
    <pubDate>Sat, 26 Jul 2008 13:47:00 +0800</pubDate>
    <dcterms:modified>2008-09-10T09:57:02+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[[沈著湖州文史志] 第一章 治水英雄防风王]]></title>	
    <link>http://eishn.blog.163.com/blog/static/65231820085484747953</link>
    <description><![CDATA[<div><p style="text-align: center;"><img title="[沈著湖州文史志] 第一章 治水英雄防风王 - 沈崴 - 蜻蜓点水 举重若轻" alt="[沈著湖州文史志] 第一章 治水英雄防风王 - 沈崴 - 蜻蜓点水 举重若轻" src="http://travel.people.com.cn/mediafile/200712/11/P200712111830531938013424.jpg"></p>

<br><br>

<div style="font-size: 16px;">
<p>九百多年前, 一位慎姓京官外放湖州。当其所乘官船路过湖州归安县的潞溪时, 不禁为眼前的小桥流水和碧水青山所动, 于是产生了在此颐养天年的念头。没过多久, 致仕后的慎氏果真携家眷来潞溪定居, 过上了世外桃园般的生活, 且 "后人蕃衍多业儒", 成为湖州潞村的一大望族 [1]。慎氏后人中, 有一位中国的考古大家, 他就是慎微之先生。</p>

<p>二十世纪初, 随着西方近代考古学的传入, 黄河流域频频传出重大的考古发现, 一时黄河流域俨然成为中华文化的 "唯一" 发源地。在意识到这种思潮的荒谬之后, 江南史学界开始发掘长江下游的史前文化。出于小时候的经历, 慎微之先生马上把目光投向了离家不远的钱山漾。1934 年夏, 恰逢湖州大旱, 钱山漾水位落至 1857 年以来的最低, 露出多至三分之二的湖底。趁此良机, 慎微之冒暑拾取了大量的石器, 并据此写出巨著《湖州钱山漾石器之发现与中国文化之起源》。距今约 5250 ~ 4150 的良渚文化 [2] 遂浮出水面。</p>

<p>湖杭地区的良渚文化坐实了中华 5000 年的文明史, 同时随着我们在湖州钱山漾发掘出诸多保存完好的丝织品 (距今 4700 年), 中国丝绸的最终发源地也终于尘埃落定。这些文明的证据 [3] 慢慢撩开了历史的重重迷雾, 去伪存真。他们揭示了中华文明的起源, 就在于湖州地区。</p>

<p>因为得天独厚的气候地理条件, 湖州地区成为远古蛮荒时代最适宜人类居住的地方之一, 而太湖、下渚湖等水系则更使湖州成为人类文明诞生的摇篮。早在 10 万年前的旧石器时代, 湖州西苕溪流域就已有古人类生活了 [4]。经过五六千年前的新石器时代 [5], 到 5000 年前的良渚文明时期, 当时中国正处于部落联盟时期, 众古国皆以湖州德清传说中防风国地区 [6] 的部落为盟主。至此湖州地区已经成为中国整个东部和南部的文明中心。</p>

<p>这是一个空前强盛的农业文明。作为日用品的陶器、玉器工艺先进制作精美, 尤以黑陶著称。而且先民早在 5000 年前就已经穿上了丝制的衣服, 并且住在宽畅的九室 "豪宅" 里 [7]。皆令人叹为观止。同时湖州地区水网纵横渔业发达, 先民善于驭风驾舟。"四夷咸来归附", 不仅如此, 湖州地区的先民亦开始向中原地区发展。他们经过安徽、河南一直到达古代富饶的黄土高原, 带去了先进的文明和农作物, 并在那里定居下来。中原地区的华夏族由是形成 [8]。</p>

<p>在部落联盟时代, 作为整个中华文明的基础和根源, 湖州部族遂成为类似于后来周代之东周国一样的宗主国。是为夏之前的第一个朝代, 后来历史的发展也无不契合。</p>

<p>至 4000 年前, 气候变暖冰雪融化, 引发了一场世界范围的大洪水。湖州平原成为一片泽国, 更多的先民开始向北迁徙。据传说, 北方部落由禹带领治水, 而南方则是在防风王 (汪芒氏) 的带领下治水。在这一历史时期, 北方部族逐渐由夏禹统一。于是打破共和制, 构建一个统一王朝的想法开始在禹的思想中形成。根据吕思勉先生的地缘军事学说, 较之浙北平原, 中原地区更易于大规模军事集结, 故中原必更具有侵略性, 北方军事联盟对于南方农业地区的征服终不可避免。而现在禹的面前, 是建立夏王朝最后的障碍, 湖州地区曾经的宗主国, 南方防风国地区强大的部落联盟, 仍然占据着中国的半壁江山。</p>

<p>公元前 2198 年, 夏朝建立的前夜。在禹的努力下曾经席卷天下的洪水开始退却了。禹用的是疏通的方法, 将洪水导向大海。防风国承接的正是最后一段将大水导入东海的工程。防风氏不仅使用疏的方式, 也使用堵的办法, 搬运土石堵住洪水使其改道, 将其引入大海。其间治理了湘溪、英溪、阜溪以及塘泾河, 并且建立河道将下渚湖和东苕溪连通起来。防风王的事迹被传颂到了中原, 华夏族里大家纷纷传说, 在遥远的东方有一个防风王治理洪水非常厉害, 他不仅身材高大是个巨人, 而且力大无比, 能够开山造丘引水入海。现在洪水既退, 作为中原部落联盟的首领, 禹在绍兴茅山召开了一次盛大的庆功大会, 治水立下大功的防风王自然也在邀请之列。</p>

<p>然而庆功大会上离茅山最近的防风王却姗姗来迟, 禹盛怒之下将其杀害 [9]。然而, 防风氏的头颅被砍下后, 却没见出血, 大家正在惊异中, 突然一股白血从防风颈腔冲天而出。禹和各路诸侯都觉得不对劲, 经过调查这才知道当时天目山山洪爆发, 苕溪泛洪, 防风王因为救助被水冲走的百姓和大家一起排洪这才晚到。禹懊悔不已, 在防风国建立防风祠并亲自拜祭。</p>

<p>然而无论如何, 作为诸侯霸主的禹和后来的齐桓公一样大会诸侯, 并在诸侯会议上除掉了南方部落联盟的首领。中原集团遂踏入沃野千里的浙北平原, 中国第一个南北朝时期以北方征服南方而告终。一如秦灭东周国, 位处湖州的宗主国既破, 中国第二个朝代夏便随之建立了。</p>

<p>而防风王汪罔氏的部族为了逃避中原华夏族的军事征服, 开始向浙西和安徽逃亡, 有些则驾船向着日本的方向出海了。随着南方部落联盟核心地区的陷落, 中国南方曾经无比繁荣的良渚文明诸部逐渐解体, 慢慢退出了历史舞台。一个时代结束了。然而防风氏毕竟有功于中华, 无论历史如何书写, 都成为我们无法抹去的历史记忆。对防风王的祭祀载入了夏朝祀典。浙北越人至今祭防风而不祭禹, 称 "祭禹要肚疼"。史载 [10] "越俗, 祭防风神, 奏防风古乐, 截竹三尺, 吹之如皋, 三人披发而舞" 庄严悲凉, 表达了对蒙冤先祖的哀思。</p>

<p>在湖州德清广袤的下渚湖湿地, 凭栏四望, 湖上秋水长天, 一枝枝羽状的芦花花穗, 染着落日余辉, 仿佛金与银在变相辉映, 又像是淡淡血痕, 洇润在素白色的锦缎上。当年的治水英雄告别这里的父老乡亲去会稽赴会时, 面对这故土圣泽, 满湖雪白的芦花和遍地翻滚的金色稻浪, 脸上大概绽开出芦花般灿烂的笑容。</p>

<p>然而哪里想到, 他这是 "壮士一去兮不复还" 的最后微笑 [11]。</p>
</div>

<br><br>

<div style="font-size: 14px; color: rgb(51, 51, 51);">[1]《浙江文物》双月刊, 2006 年第五期《穿西服、打赤足、拎竹篮的 “石头博士” —— 纪念钱山漾遗址发现者慎微之先生》 , 闵泉著 (http://www.zjww.gov.cn/magazine/2006-11-14/4327386.shtml)。这里对该文原文有多次引用。<br>
[2] 于钱山漾后两年后的 1936 年, 同一历史时期的良渚遗迹遂被发现。遂以为命名, 称良渚文化。然良渚文化核心地区实在湖州是为考古界定论, 本文对于湖州 "防风国" 所考亦为佐证。<br>
[3]《中华读书报》, 2005 年 4 月 20 日, 林元锋《文明的证据》(http://www.gmw.cn/01ds/2005-04/20/content_220262.htm)。这里对于文中某些学术认识有所引用。<br>
[4] 溪龙遗存, 2002年10月至11月, 安吉、长兴两地发现旧石器时代文化遗物地点 30 多处, 石制品300多件。<br>
[5] 邱城遗址 (太湖马家浜文化, 距今 6000 年), 安乐遗址 (崧泽文化, 距今 5500 年)。<br>
[6]《路史 - 国名纪》注引《吴兴记》: "吴兴西有风山, 古防风国也。下有风渚, 今在武康东十八里。天宝改曰防风山, 禺山在其东二百步"。<br>
[7] 中华人民共和国国家文物局, 2005 年 6 月 24 日《湖州发现4000年前豪宅, 钱山漾遗址考古发掘结束》(http://www.sach.gov.cn/tabid/300/InfoID/3956/frtid/106/Default.aspx), 报告中称: "除了这些文物之外，考古人员发现一栋大型建筑遗址，这个遗址是一个八室的套间，占地面积达290平方米。…… 这个大房子的发现，充分反映了距今4000年前太湖地区先民们已掌握了高超的建筑空间分隔与组合技术，为中国史前建筑提供了珍贵的资料"。<br>
[8]《〈山海经〉考古》称中国夏朝的主体是先越之民。以稻作、语系、玉葬佐证。这在考古界已经得到证实, 故中原部族乃是由良渚文明即湖州地区向西向北迁徙所得。<br>
[9]《国语 - 鲁语》仲尼曰: "丘问之: 昔禹致群神于会稽之山, 防风氏后至, 禹杀而戮之, 其骨节专车。此为大矣"。<br>
[10] 梁《述异记》。<br>
[11] 网上关于 "防风国"、"防风王" 以及汪姓始祖的著述 (http://ks.cn.yahoo.com/question/1306121627641.html), 原作者暂无考。文末文采飞扬、语颇隽永, 为之倾倒。故原文引用, 稍有改动, 聊表敬意。</div>

<br><br>
<p><img title="[沈著湖州文史志] 第一章 治水英雄防风王 - 沈崴 - 蜻蜓点水 举重若轻" alt="[沈著湖州文史志] 第一章 治水英雄防风王 - 沈崴 - 蜻蜓点水 举重若轻" src="http://www.uzai.com/sightImg/zhejiang/xiazhuhu_map.gif"></p></div>]]></description>
	    <author><![CDATA[沈崴]]></author>
	    <comments>http://eishn.blog.163.com/blog/static/65231820085484747953</comments>
    <slash:comments>2</slash:comments>
    <guid isPermaLink="true">http://eishn.blog.163.com/blog/static/65231820085484747953</guid>
    <pubDate>Wed, 4 Jun 2008 20:47:47 +0800</pubDate>
    <dcterms:modified>2009-09-18T15:06:06+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[沈崴路由器建站教程]]></title>	
    <link>http://eishn.blog.163.com/blog/static/65231820083995420860</link>
    <description><![CDATA[<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://usa.asus.com/100/images/products/460/460_m.gif">

<h2>前言</h2>

<p>尽管在国外有一些闲置的服务器, 但是却不敢拿来建网站。网站这种应用出境率太高, 即使像 fr_eebsd.org 这种良民, 被 GF\/\/ 也是很容易的事情。到时候不仅 $ 打水漂, 可恨连 VPN 都用不了, 上网只能戴套, 实在是划不来。</p>

<p>于是乎我决定利用 ADSL/HTTB 带宽建站。至于服务器, 实在不想和豆瓣的阿北一样用笔记本来做, 一方面耗电, 另一方面笔记本常有爆炸事件, 不敢在无人职守的情况下超长待机。故决定使用 NAS (网络存储服务器, 网盘) 来做。</p>

<p>这里性价比最高的是 Buffalo 的 Linkstation 网盘, 首选的是 LinkStation HD-H120LAN120G 这个型号, 居然拥有高达 400M 的 MIPS CPU 以及  64M 的巨量内存 (耗电 20W 左右)。当然非常不幸的是, LS 120G 全上海断货, 而且奸商奇货可居哄抬物价, 这令 Cr@cker 非常不爽。</p>

<p>最终这直接导致了我选用路由器这种 "难民级" 设备来建站, 鸟枪变炮。于是就有了这篇文章。</p>

<br><br>

<h2>硬件篇</h2>

<p>当然也会有少数人不理解, 路由器怎么可以拿来做网站呢? 是啊, 你一两百块钱买过来的这个小盒子尽管便宜, 却也是一台完整的高性能计算机了, 除了没有显示器和鼠标键盘。当然啦, 只要你愿意, 加个诸如摄像头或者声卡什么的外设还是可以的。</p>

<br>
<center><a href="http://neture.homeip.net/digiland/index.php"><img src="http://benlau.e-fever.org/modules/xcgal/albums/userpics/10001/normal_200503011129.jpg"></a></center>
<br>

<p>大部分的路由器的固件都是可以重新刷过的, 诸如 LinkSys、D-Link、Buffalo、Netgear、ASUS 这些品牌的路由器都在著名固件 "OpenWrt" 支持之列。这里有一份详细的 <a style="text-decoration: underline; color: rgb(51, 51, 136);" href="http://wiki.OpenWrt.org/TableOfHardware">支持列表</a>, 请先查阅。</p>

<p>经过研究, 我觉得 ASUS 系列的路由器较为实惠。首选 ASUS WL-HDD 这款 "网络硬盘盒", 他的特点是比起一般的路由器多一个 2.5 IDE 硬盘接口以及一个  USB 1.0 接口, 可以加装一块硬盘和 USB 盘用于存放网站数据。</p>

<p>其次是 ASUS WL-500b (可以升级到 WL-500g) 和 ASUS WL-500g 路由器, 他们使用和 WL-HDD 一样的硬件, 也带有一个 USB 1.0 接口。使之同样成为建站和网络打印服务器的首选。</p>

<p>WL-HDD/500b/500g 售价都在一两百元上下, WL-HDD 稍贵, 我在上海以 248￥ 拿到的货。他们的硬件配置都是 MIPS BCM4702 125MHz CPU、16MB SDR 32bit 内存和 4M 闪存 (耗电 10W)。</p>

<p>另一个版本 WL-500gP 稍贵, 拥有 200MHz CPU, 著名改*机网站 <a style="text-decoration: underline; color: rgb(51, 51, 136);" href="http://neture.homeip.net/digiland/index.php">"数&amp;位天堂"</a> 就是构建于 ASUS-WL-500gP 之上。网站上有 WL 全系列硬件配置表, 若要选购以作改机之用, 可以参考。</p>

<br>
<center><a href="http://neture.homeip.net/digiland/"><img src="http://neture.homeip.net/digiland/img/upload/table2008022001.gif"></a><br>(图片来源 <a style="text-decoration: underline; color: rgb(51, 51, 136);" href="http://neture.homeip.net/digiland/index.php">"数位+天堂"</a>)</center>
<br>

<p>下面专为 ASUS 的 OLEG 固件开辟一节, 未在其他硬件上测试过, 其他路由器用户可快速掠过, 去到 OpenWrt 固件部分。</p>

<br><br>

<h2>ASUS 专用固件 OLEG</h2>

<p>固件 (Firmware, 韌體) 被保存在路由器闪存中, 通常是一个完整的  Linux 操作系统。将路由器原固件改成自定义固件, 可以实现在原有路由器功能上增删定制任意自己想要的功能, 就像是操作一台完整的电脑一样。</p>

<p>刷新固件, 常用于使路由器自动下载  BT、绕过 ISP (诸如网xx通、电yy信) 的多a用b户c共d享e限f制, 绕过 ISP 的 DNS 域a名b劫c持d等流_氓行为。这里就不详加讨论了, 请诸位自己找资料。</p>

<p>OLEG 是 <a style="text-decoration: underline; color: rgb(51, 51, 136);" href="http://neture.homeip.net/digiland/index.php">"数位天*堂"</a> 选用的固件, 是通过 ASUS 官方固件修改而来。门槛较低, 兼容性高, 这里推荐初级 ASUS 用户使用。下面是刷机步骤。</p>

<p style="padding: 10px 25px 10px 30px; background-color: rgb(204, 204, 204); color: rgb(0, 0, 136); font-size: 10pt;">
1. 造访 http://oleg.wl500g.info/ , 下载最新的固件 (WL-HDD 用户请下载 1.9.2.7-9 及以前的版本, 其后版本不支持 WL-HDD)。<br>
2. 解压缩 WLxxx-1.9.2.x-x.zip 得到 trx 文件。<br>
3. 访问自己的路由器地址 http://192.168.1.1 (WL-HDD 是 http://192.168.1.220, 推荐使用直接的网线连接而不是无线方式), 登录后找到 "System Setup" 的 "Firmware Upgrade" 项, 上传 trx 文件。<br>
4. 稍候片刻, 等待机器自动重启。<br>
</p>

<br>
<center><img src="http://neture.homeip.net/digiland/img/upload/wl-500gp_firmware_20080124.gif"><br>
(图片来源 <a style="text-decoration: underline; color: rgb(51, 51, 136);" href="http://neture.homeip.net/digiland/index.php">"数位+天堂"</a>)<br></center>
<br>

<p>重启后会再次进入管理界面, 设置用户名。这样你就可以通过 telnet 来登入路由器了 (密码: admin)。哇噻, 我的到了一个 Linux Shell!</p>

<p>接下来接入 USB 盘或者插上 IDE 盘, 如果不喜欢命令行的 fdisk 工具, 可以先使用其他工具分区格式化再接入 ASUS WL 设备。然后执行 "fdisk -l", 下面是在我机器 (WL-HDD) 上的显示。</p>

<pre style="padding: 10px 25px 10px 30px; font-size: 10pt; color: rgb(0, 255, 0); background-color: rgb(17, 17, 17);">Disk /dev/ide/host0/bus0/target0/lun0/disc: 120.0 GB, 120034123776 bytes<br>255 heads, 63 sectors/track, 14593 cylinders<br>Units = cylinders of 16065 * 512 = 8225280 bytes<br><br>                                Device Boot    Start       End    Blocks   Id  System<br>/dev/ide/host0/bus0/target0/lun0/part1               1       14395   115627806   83  Linux<br>/dev/ide/host0/bus0/target0/lun0/part2           14396       14461      530145   82  Linux swap<br>/dev/ide/host0/bus0/target0/lun0/part3           14462       14527      530145   82  Linux swap<br>/dev/ide/host0/bus0/target0/lun0/part4           14528       14593      530145   82  Linux swap<br></pre>
<br>

<p>接下来就是挂接硬盘 (当然, 如果对原装的 4M flash 有信心, 也可以不加硬盘撒):</p>
<pre style="padding: 10px 25px 10px 30px; font-size: 10pt; color: rgb(0, 255, 0); background-color: rgb(17, 17, 17);"># mount /dev/ide/host0/bus0/target0/lun0/part1 /opt<br># swapon /dev/ide/host0/bus0/target0/lun0/part2<br># swapon /dev/ide/host0/bus0/target0/lun0/part3<br># swapon /dev/ide/host0/bus0/target0/lun0/part4<br></pre>
<br>

<p>安装 ipkg (硬盘/U 盘已经加载置 /opt 目录):</p>
<pre style="padding: 10px 25px 10px 30px; font-size: 10pt; color: rgb(0, 255, 0); background-color: rgb(17, 17, 17);"># mkdir /opt/tmp<br># mkdir /opt/tmp/ipkg<br># wget http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/ipkg-opt_0.99.163-9_mipsel.ipk<br>ipkg.sh install ipkg-opt_0.99.163-9_mipsel.ipk<br># wget http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/uclibc-opt_0.9.28-13_mipsel.ipk<br># ipkg.sh install uclibc-opt_0.9.28-13_mipsel.ipk<br># ipkg update<br></pre>
<br>

<p>这样我们就可以像使用 debian apt-get 一样直接通过 "ipkg install xxx" 来安装已经编译好的二进制程序了。</p>

<p>在 http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/ 位置拥有大量的 ipk 文件, 这些都是 ipkg 包, 实际上, 我们大可不必使用 ipkg 程序来安装这些软件。</p>

<p>ipk 文件实际上是 tgz 格式的, 解包后会得到 data.tar.gz 和 control.tar.gz 两个 tgz 文件 (tgz 套着 tgz? 貌似很奇怪的样子), 而 data.tar.gz 就是二进制程序结构。使用解包的 data.tar.gz 文件, 可以提供一种更为灵活的系统维护形式 (初级用户不推荐)。</p>

<p>好了, 简单的配置就这样了, 请玩家继续深入阅读 OLEG 的相关参考资料。</p>
<p style="padding: 10px 25px 10px 30px; background-color: rgb(204, 204, 204); color: rgb(0, 0, 136); font-size: 10pt;">
<a style="text-decoration: underline; color: rgb(51, 51, 136);" href="http://neture.homeip.net/digiland/viewtopic.php?id=158">数.位天堂::ASUS 500 改机讨论区 WL-500g::系列改機基本步驟</a><br>
<a style="text-decoration: underline; color: rgb(51, 51, 136);" href="http://www.sprayfly.com/wiki/Sprayfly">Sprayfly::WL-HDD/500 Setup Guide</a>
</p><p>

<br><br>

</p><h2>OpenWrt 固件</h2>

<p>OpenWrt 固件通常是骇_机族的首选, 基本上你可以自由定制包括 Kernel 在内的所有东西, 这往往给人一种很爽的幻觉。除此之外, OpenWrt 还有一个叫做 DD-WRT 的表兄 (访问其<a style="text-decoration: underline; color: rgb(51, 51, 136);" href="http://www.dd-wrt.com">主站</a>需_破.墙_) 以及 DebianWRT 的堂兄, 也可以在 OpenWrt 上跑 Gentoo。</p>

<p>其中 DD-WRT 在管理上相当便捷, 玩家也是颇多的, 这里也推荐大家不妨尝试一下。而在路由器上跑 Debian, 就比较诡异了, 而跑 Gentoo 就更是说不出的诡异了。这里我的首选还是 OpenWrt, 因为我需要一个足够小, 占用资源足够少的固件, OpenWrt 定制起来非常方便, 自己编译吧。</p>

<p>当然 OpenWrt 已经有编译版了, 只是想用 OpenWrt 而对定制没有要求的同学可以偷懒了。</p>

<p>这里做得比较漂亮的是 <a style="text-decoration: underline; color: rgb(51, 51, 136);" href="http://porta2030.tossug.org/wiki/Software%3Bzh-tw">Hive</a> 版, 安装配置相当方便, 可以通过其站点 <a style="text-decoration: underline; color: rgb(51, 51, 136);" href="http://downloads.hivenet.org/firmware/OpenWrt-brcm-2.4-jffs2-4MB.trx">获取</a> 资料。而 OpenWrt 官方也提供编译版 <a style="text-decoration: underline; color: rgb(51, 51, 136);" href="http://downloads.OpenWrt.org/whiterussian/rc6/bin/">下载</a>。</p>


<p>下面, 就让我们来建立一个 OpenWrt 固件。首先, 显然你已经有一台运行 Linux 的计算机 (什么, 你是 Windows 用户? 那你来看我的博客做什么?), 然后上到 OpenWrt 官网, <a style="text-decoration: underline; color: rgb(51, 51, 136);" href="http://www.OpenWrt.org">下载</a> 源码 (当然也可以使用 SVN)。</p>

<p>OpenWrt 有两个分支, 较新的是 "Kamikaze(神风? 晕)" 版, 另一个是 "whiterussian(白俄罗斯)" 版 <a style="text-decoration: underline; color: rgb(51, 51, 136);" href="http://downloads.OpenWrt.org/whiterussian/rc6/whiterussian_rc6.tar.bz2">下载</a>。这里选用较为稳定的 whiterussian RC6 版本。下面我们开始配置编译。</p>

<br><br>

<h2>编译 OpenWrt</h2>

<p>下面以我的 ASUS WL-HDD 设备为例, 来讲解 OpenWrt 的编译和配置。</p>
<pre style="padding: 10px 25px 10px 30px; font-size: 10pt; color: rgb(0, 255, 0); background-color: rgb(17, 17, 17);">$ wget http://downloads.OpenWrt.org/whiterussian/rc6/whiterussian_rc6.tar.bz2<br>$ tar -xjf whiterussian_rc6.tar.bz2<br>$ cd whiterussian_rc6.tar.bz2<br>$ make menuconfig<br></pre>
<br>

<p>接下来会出现配置选单, 大部分的选项使用默认即可。可以酌情修改配置, 一般来说只要不是改得太过分, 生成的固件都是可用的。因为我是 ASUS WL-HDD 的盒子, 所以我主要是在系统中取消了 httpd 服务 (后面会提到我将使用 Eurasia3 应用服务器提供 web 服务), 并且将 IDE 硬盘的支持设置为 "内建 ([*] builtin)" 模式。</p><p>
</p><pre style="padding: 10px 25px 10px 30px; font-size: 10pt; color: rgb(255, 255, 0); background-color: rgb(0, 0, 255);">1. OpenWrt Package Selection ---&gt;<br> Busybox Configuration ---&gt;<br>  Networking Utilities ---&gt;<br>   [ ] httpd<br><br>2. Kernel Configuration / Device Support ---&gt;<br> [*] IDE Support, EXT3 filesystem support<br></pre>
<br>

<p>USB 支持可以在系统安装好后使用模块加载 <a style="text-decoration: underline; color: rgb(51, 51, 136);" href="http://wiki.OpenWrt.org/UsbStorageHowto">资料</a>。</p>
<pre style="padding: 10px 25px 10px 30px; font-size: 10pt; color: rgb(255, 255, 0); background-color: rgb(0, 0, 255);">3. Target Root Filesystem ---&gt;<br> [*] jffs2<br></pre>
<br>

<p>这里决定了生成映像文件使用的文件格式, 其中 squashfs 是只读的, jffs2 是可写的, 我们通常选择 jffs2 格式, 以后可以直接读取编辑路由器的  flash 存储器。</p>

<p>配置完成后执行编译。</p>
<pre style="padding: 10px 25px 10px 30px; font-size: 10pt; color: rgb(0, 255, 0); background-color: rgb(17, 17, 17);">$ make V=99<br></pre>
<br>

<p>当编译完成后, 你可以在 whiterussian_rc6/bin 目录下找到生成的 trx 映像。</p><p>

</p><p>比如 OpenWrt-brcm-2.4-jffs2-4M.trx 这个映像, "brcm" 是通用的路由器硬件, jffs2 是文件系统, 4M 是指适用 flash 存储器大小, ASUS WL-HDD/500 的 flash 都是 4M, 适用于这个映像。</p>

<p>Kamikaze 和 Whiterussian 不同, 它生成诸如这样的映像 OpenWrt-brcm47xx-2.6-squashfs-64K.trx, 在硬件型号上可以自由配置。特别诡异的是在 Kamikaze 下 64K 指 4M flash, 而 128K 是指 8M flash 以此类推。</p>

<p>终于, 我们拿到了 trx 映像文件。其中只有 menuconfig 这一步有点工作量。貌似把系统日志部分 (syslogd) 砍掉, 可能会导致路由器重启失败, 需要保留, 其他服务应该都是可以取消的。</p>

<p>至于程序库, 可以等以后手工编译添加进系统。诸如 libpthread、libreadline 这些库是以后运行 Stackless Python 需要的, 对于非常常用的可以编译到镜像里去。</p>

<p>至于OpenWrt SDK 和 Image Builder, 我们在下面的开发中其实并不会用到, 不必选择编译。</p>

<p>在编译过程中, 会去网上拿许多依赖的 package 源码文件。比起 Kamikaze 来, Whiterussian 要下载海量的资源, 如果你网速不够快, 那么可以直接去 OpenWrt 官网上拿 (不推荐, 除非网速真的很慢)。你需要修改 whiterussian_rc6/scripts/download.pl 这个脚本, 清空 "foreach my $mirror (@ARGV) { ... }" 代码块即可。</p>

<p>编译完成以后, 请保留 whiterussian_rc6 目录, 这是我们接下来做交叉编译 (Cross Compiling) 的平台。</p>

<br><br>

<h2>使用 OpenWrt</h2>

<p>将 OpenWrt trx 映像写入路由器, 你需要 whiterussian_rc6/scripts/flash.sh 这个工具。你也可以从 <a style="text-decoration: underline; color: rgb(51, 51, 136);" href="http://downloads.hivenet.org/bin/flash.sh">这里</a>下载这个脚本。</p>

<p>现在将路由器调至回复模式, 计算机和路由器直接使用网线连接, 确信能够 ping 到。作好准备工作。</p>

<p>以我的 ASUS WL-HDD 为例, 连好网线以后, 按住 reset 按钮, 同时插上电源, 黄灯开始规律闪烁即进入 flash 回复模式。接下来确认 WL-HDD 在 192.168.1.1 这个位置 (当然如果你已经设置过 nvram, ip 以 nvram 为准), 如果 ip 不是 192.168.1.1, 你需要先修改 flash.sh 文件中关于 ip 的设定。</p>
<pre style="padding: 10px 25px 10px 30px; font-size: 10pt; color: rgb(0, 255, 0); background-color: rgb(17, 17, 17);">$ apt-get install tftp<br>$ chmod +x flash.sh<br>$ ./flash.sh OpenWrt-brcm-2.4-jffs2-4M.trx asus<br></pre>
<br>

<p>完成 Firmware 上传之后, 程序会回到 shell 下, 等待黄灯熄灭 (即开始更新 Firmware), 再等到 WLAN 绿灯亮起, 此时 Firmware 已经写入机器, 并且机器已经完成重启。恭喜恭喜!</p>

<p>解下来我们可以使用 telnet 192.168.1.1 登录进路由器。进入 Linux Shell 以后, 你可以使用 nvram show/set 命令来显示和设置 nvram, 修改机器 IP 等数据, 重启机器使修改生效。例如:</p>
<pre style="padding: 10px 25px 10px 30px; font-size: 10pt; color: rgb(0, 255, 0); background-color: rgb(17, 17, 17);">nvram set lan_ipaddr=192.168.0.2<br>nvram commit<br></pre>
<br>

<p>Whiterussian 启动时加载 IDE 硬盘存在 BUG, 你需要修改 /etc/modules.d/20-ide 文件, 调整内核模块的加载顺序如下:</p>
<pre style="padding: 10px 25px 10px 30px; font-size: 10pt; color: rgb(0, 255, 0); background-color: rgb(17, 17, 17);">ide-core<br>pdc202xx_old<br>ide-detect<br>ide-disk<br></pre>
<br>

<p>重启以后, ide 硬盘就可以被识别出来了。如果编译进了 fdisk, 那么可以用 fdisk -l 来查看硬盘。</p>

<p>和 OLEG 不同, OpenWrt 不用经过配置就可以使用 /etc/init.d 初始化脚本目录, 在里面添加启动脚本挂载硬盘, 并删掉不喜欢的服务。</p>
<pre style="padding: 10px 25px 10px 30px; font-size: 10pt; color: rgb(0, 255, 0); background-color: rgb(17, 17, 17);">#!/bin/sh<br># chmod +x /etc/init.d/S90Example<br>mount /dev/ide/host0/bus0/target0/lun0/part1 /mnt<br>swapon /dev/ide/host0/bus0/target0/lun0/part2<br>swapon /dev/ide/host0/bus0/target0/lun0/part3<br>swapon /dev/ide/host0/bus0/target0/lun0/part4<br>killall logger<br>killall syslogd<br>killall crond<br>killall klogd<br></pre>
<br>

<p>下面使用 free 命令, 看看剩下多少内存留给我们接下来的应用 (果然是寸土寸金啊)。</p>
<pre style="padding: 10px 25px 10px 30px; font-size: 10pt; color: rgb(0, 255, 0); background-color: rgb(17, 17, 17);">              total         used         free       shared      buffers<br>  Mem:        14296         7580         6716            0           56<br> Swap:      1572828            0      1572828<br>Total:      1587124         7580      1579544<br></pre>
<br>

<p>这样, 这个  Linux 系统已经可用了。</p>

<br><br>

<h2>OpenWrt 下的本地编译环境</h2>

<p>在 OpenWrt 下也可以进行本地编译, 你可以 <a style="text-decoration: underline; color: rgb(51, 51, 136);" href="http://www.uclibc.org/downloads/root_fs_mipsel.ext2.bz2">下载 root_fs_mipsel.ext2.bz2</a> , 并查阅 <a style="text-decoration: underline; color: rgb(51, 51, 136);" href="http://wiki.openwrt.org/BuildingPackagesHowTo">相关资料</a>。</p><p>

</p><p>这里你不必真的在路由器上挂接 root_fs_mipsel.ext2 到文件系统上, 你可以在本地计算机上挂接并拷贝到路由器的 U 盘或者硬盘上。</p>
<pre style="padding: 10px 25px 10px 30px; font-size: 10pt; color: rgb(0, 255, 0); background-color: rgb(17, 17, 17);">$ mkdir ~/tmp<br>$ mkdir ~/tmp/root<br>$ mount -o loop root_fs_mipsel.ext2 ~/tmp/root<br>$ cd ~/tmp<br>$ tar -cjf root_fs_mipsel.tar.bz2 root<br></pre>
<br>

<p>然后把 root_fs_mipsel.tar.bz2 拷贝到路由器硬盘上解压缩。</p>
<pre style="padding: 10px 25px 10px 30px; font-size: 10pt; color: rgb(0, 255, 0); background-color: rgb(17, 17, 17);"># cd /mnt<br># wget http://192.168.x.x/root_fs_mipsel.tar.bz2 # 如果本机有 HTTP 服务, 那么可以通过 wget 从本机上取得文件<br># tar -xjf root_fs_mipsel.tar.bz2<br></pre>
<br>

<p>这样我们就得到了 /mnt/root 目录, 里面包含了完整的编译环境和需要的库文件。接下来以 /mnt/root 为根 ('/') 目录, 即可使用本地编译环境。</p>

<pre style="padding: 10px 25px 10px 30px; font-size: 10pt; color: rgb(0, 255, 0); background-color: rgb(17, 17, 17);"># chroot /mnt/root/ /bin/ash -<br># gcc -v<br># exit<br></pre>
<br>

<p>不过你应该永远避免在路由器上进行本地编译, 首先是速度极慢, 然后诸多依赖也不能满足 (比如 Include 等), 但是这里架设的编译环境也并不是没有用处, 因为在 root_fs_mipsel 的 lib 目录下有许多我们需要的重要的库文件可以直接拿来使用, 省去许多费事的编译。</p><p>

<br><br>

</p><h2>为 OpenWrt 编译 Stackless Python</h2>

<p>很显然, <a style="text-decoration: underline; color: rgb(51, 51, 136);" href="http://code.google.com/p/eurasia/">Eurasia3</a> 才是王道。不过这个 Web 应用服务器依赖于 Stackless Python。找了半天, 也只有 Python 的 ipk 包。好吧, 自己编译吧。</p>

<p>除了高度定制, 自己编译 OpenWrt 映像的另一个好处就是交叉编译环境已经准备好了。现在让我们回到 whiterussian_rc6 目录, 来设定交叉编译环境, 很简单, 你只要在你的 PC 中输入下面几条命令。</p>

<pre style="padding: 10px 25px 10px 30px; font-size: 10pt; color: rgb(0, 255, 0); background-color: rgb(17, 17, 17);">$ export PATH=/PATH/TO/whiterussian_rc6/staging_dir_mipsel/usr/bin:/PATH/TO/whiterussian_rc6/staging_dir_mipsel/mipsel-linux-uclibc:/PATH/TO/whiterussian_rc6/staging_dir_mipsel/bin:$PATH<br>$ export AR=/PATH/TO/whiterussian_rc6/staging_dir_mipsel/bin/mipsel-linux-uclibc-ar<br>$ export AS=/PATH/TO/whiterussian_rc6/staging_dir_mipsel/bin/mipsel-linux-uclibc-as<br>$ export LD=/PATH/TO/whiterussian_rc6/staging_dir_mipsel/bin/mipsel-linux-uclibc-ld<br>$ export NM=/PATH/TO/whiterussian_rc6/staging_dir_mipsel/bin/mipsel-linux-uclibc-nm<br>$ export CC=/PATH/TO/whiterussian_rc6/staging_dir_mipsel/bin/mipsel-linux-uclibc-gcc<br>$ export CPP=/PATH/TO/whiterussian_rc6/staging_dir_mipsel/bin/mipsel-linux-uclibc-cpp<br>$ export GCC=/PATH/TO/whiterussian_rc6/staging_dir_mipsel/bin/mipsel-linux-uclibc-gcc<br>$ export CXX=/PATH/TO/whiterussian_rc6/staging_dir_mipsel/bin/mipsel-linux-uclibc-g++<br>$ export RANLIB=/PATH/TO/whiterussian_rc6/staging_dir_mipsel/bin/mipsel-linux-uclibc-ranlib<br>$ export ac_cv_linux_vers=2.4.30<br>$ export CFLAGS="-Os -s"<br></pre>
<br>

<p>现在你的编译环境已经是面向 OpenWrt MIPS 系统的了, 与本地编译唯一的不同, 就是你需要对源代码包的 configure 脚本增加 --host=mipsel-linux 参数。</p>

<pre style="padding: 10px 25px 10px 30px; font-size: 10pt; color: rgb(0, 255, 0); background-color: rgb(17, 17, 17);">$ ./configure --host=mipsel-linux<br>$ make<br>$ make install<br></pre>
<br>

<p>大部分 x86 体系的软件包都可以在交叉编译平台上通过编译。不过 Stackless Python 貌似并不支持 MIPS 体系的计算机, 为此我编写了一个补丁, 你可以访问 <a style="text-decoration: underline; color: rgb(51, 51, 136);" href="http://www.stackless.com/pipermail/stackless/2008-April/003428.html">这个地址</a>, 将邮件中 "# stackless-2.52.mips.xcompile.patch" 以下部分复制出来保存为 stackless-2.52.mips.xcompile.patch 文件。下面我们就可以编译 Stackless Python 了。</p>

<pre style="padding: 10px 25px 10px 30px; font-size: 10pt; color: rgb(0, 255, 0); background-color: rgb(17, 17, 17);">$ wget http://www.stackless.com/binaries/stackless-252-export.tar.bz2<br>$ tar -xjf stackless-252-export.tar.bz2<br>$ cat stackless-2.52.mips.xcompile.patch | patch -p0<br>$ cd python-2.52<br>$ export CROSS_COMPILE=yes<br>$ ./configure --prefix=/opt/Stackless-2.5.2 --host=mipsel-linux<br>$ make<br>$ make install<br></pre>
<br>

<p>现在我们在本机的 /opt 下得到了 Stackless-2.5.2 目录, 打包放到路由器的 /opt 目录下, 我们就可以正常使用 Stackless Python 了。</p>

<p>关于在其他版本的 Stackless Python 里如何 H@ck 代码以支持 MIPS 架构, 请仔细阅读 patch 文件。据 Richard Tew 说他对在 Stackless 中加入 MIPS 支持颇感兴趣, 除非他能跑得过 Python 的开发速度 (这好像有点冷~~`)。很显然 Guido 把 Stackless 拒之门外是一个严重错误, 喂喂, 别再鼓捣 Python 3000 什么拉!</p>

<p>现在登入 WL-HDD, 下载 Eurasia3, 编写一个 Eurasia3 (这里使用 svn 版, 我正准备发布的 alpha4 的原型, alpha2 可以在<a style="text-decoration: underline; color: rgb(51, 51, 136);" href="http://eurasia.googlecode.com/files/Eurasia-3.0.0a2.tar.gz">这里</a>下载) 的测试程序:</p>

<pre style="padding: 10px 25px 10px 30px; font-size: 10pt; color: rgb(0, 255, 0); background-color: rgb(17, 17, 17);"># !/opt/Stackless-2.5.2/bin/python2.5<br>from Eurasia.web import config, mainloop<br><br>def controller(client):<br> client.write(<br>  'HTTP/1.0 200 OK\r\n'<br>  'Content-Type: text\r\n'<br>  '\r\n'<br>  'hello world!' )<br><br>config(controller=controller,<br> port=80)<br>mainloop()<br></pre>
<br>

<p>做了一下小测试, hello world 每秒可以达到 40 个以上的请求数, 尽管比起一台普通的 PC 同样的 Eurasia3 程序慢了几百倍, 但是对于一台嵌入式设备而言, 已是颇令人满意了。</p>

<p style="color: rgb(136, 136, 136);">
<b>PS:</b>据阿北说他的笔记本是做开发用途, 而不是做了网站, 这里勘下误。<br>
</p></div>]]></description>
	    <author><![CDATA[沈崴]]></author>
	    <comments>http://eishn.blog.163.com/blog/static/65231820083995420860</comments>
    <slash:comments>26</slash:comments>
    <guid isPermaLink="true">http://eishn.blog.163.com/blog/static/65231820083995420860</guid>
    <pubDate>Wed, 9 Apr 2008 21:54:20 +0800</pubDate>
    <dcterms:modified>2008-09-15T20:05:11+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[在中国股市里你不会被套]]></title>	
    <link>http://eishn.blog.163.com/blog/static/652318200831105337749</link>
    <description><![CDATA[<div><div style="margin-left: 80px;"><img src="http://img2.quotes.money.163.com/chart/stimechart2/0000001.png"><br><br></div>有两种做股票的方式, 一种是投资, 另一种是投机。<br><br>1. 一般认为中国股市缺乏投资价值, 故股市中不存在投资人。<br>2. 用屁股想想都知道不可能有投机者会选择去做中长线。故股市投机必是短线甚而超短线运作, 在短期内无论涨跌, 即使亏本也须认赔, 必按时出货。而套牢必是长期持仓的结果, 不会发生在投机者身上。<br><br>综上所述, 中国既没有投资者, 而职业的投机者又不会被套牢, 故在中国股市中你不会被套牢。<br><br></div>]]></description>
	    <author><![CDATA[沈崴]]></author>
	    <comments>http://eishn.blog.163.com/blog/static/652318200831105337749</comments>
    <slash:comments>2</slash:comments>
    <guid isPermaLink="true">http://eishn.blog.163.com/blog/static/652318200831105337749</guid>
    <pubDate>Tue, 1 Apr 2008 22:53:37 +0800</pubDate>
    <dcterms:modified>2008-04-01T22:53:37+08:00</dcterms:modified>
  </item>    
 </channel>
</rss>