禅心剑气相思骨
https://yiwei.dev/
Recent content on 禅心剑气相思骨
Hugo -- 0.155.3
en
Wed, 18 Feb 2026 00:00:00 +0800
-
从针灸到神经网络
https://yiwei.dev/posts/acupuncture-neural-networks/
Wed, 18 Feb 2026 00:00:00 +0800
https://yiwei.dev/posts/acupuncture-neural-networks/
<p>今年冬天,我被一场持续的咳嗽折磨了将近两个月。</p>
<p>看了不少西医。做了呼出气一氧化氮检测(专门判断气道有没有过敏性炎症)和肺部CT,结果一切正常。医生也开了不少药:先是抗生素,然后是阿斯美、孟鲁司特钠这类针对咳嗽变异性哮喘的药物,效果都不理想。我一度以为自己产生了耐药性,后来查了才知道这类药根本不存在耐药问题。</p>
<p>奇怪的是,去看中医之后,每次针灸后咳嗽都有明显缓解。我把这个观察告诉西医,对方不出意料地嗤之以鼻:“江湖骗子”。</p>
<p>但如果真的只是安慰剂,为什么缓解效果如此稳定、可重复?这个问题让我一直想不通。</p>
<hr>
<h2 id="一咳嗽本身变成了问题">一、咳嗽本身,变成了问题</h2>
<p>带着困惑查资料,加上和 Claude 反复讨论,我接触到了一个近年来才逐渐被医学界认可的概念:<strong>咳嗽高敏综合征(Cough Hypersensitivity Syndrome)</strong>。</p>
<p>它的核心逻辑是:咳嗽久了,气道里的神经会被"训练"得越来越敏感。原本需要一定刺激才能触发的咳嗽反射,渐渐变得一点痒就启动。而咳嗽本身又会继续刺激这些神经——更敏感,更容易咳,形成恶性循环。</p>
<p>这不只是功能上的"过敏",而是神经发生了结构上的真实改变。2021年,俄勒冈健康科学大学的研究团队对慢性咳嗽患者做了气道活检,发现其气道上皮的感觉神经密度显著高于正常人,且神经分支数量明显增多——这是神经重塑(neuroplasticity)的直接证据。(<a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC7874308/">Shapiro et al., <em>Am J Respir Crit Care Med</em>, 2021</a>)</p>
<p>到了这个阶段,肺部没有炎症是完全正常的——问题的根源早就不在气道,而在于反射弧被"过度训练"了。这也解释了我的两个典型症状:喉咙莫名发痒(刺激阈值极低),以及咳嗽完全不受主观意志控制(自主神经反射,绕过"想不想咳"这个判断)。</p>
<p>这同样解释了为什么那些药没什么用。孟鲁司特针对过敏炎症,抗生素针对细菌,对神经敏化本身都没有作用——就像修一辆刹车失灵的车,却只换了挡风玻璃。</p>
<p>目前对这类慢性咳嗽真正有效的药物,是<strong>加巴喷丁</strong>——一种原本用来治疗神经性疼痛的药。2012年发表在《柳叶刀》上的一项随机双盲安慰剂对照试验,证实了加巴喷丁能显著改善难治性慢性咳嗽患者的咳嗽频率和生活质量。(<a href="https://www.thelancet.com/journals/lancet/article/PIIS0140-6736(12)60776-4/abstract">Ryan et al., <em>The Lancet</em>, 2012</a>)它直接作用于神经传导,而非气道炎症——这本身就说明了问题的性质。</p>
<hr>
<h2 id="二针灸不只是安慰剂">二、针灸:不只是安慰剂</h2>
<p>有了这个框架,我重新审视了针灸的效果。</p>
<p>起初我以为,针灸可能只是通过心理暗示或转移注意力来缓解咳嗽。但查了一些研究之后,发现并没有这么简单。</p>
<p>2025年发表的一篇系统综述汇总了 30 项随机对照试验、共 2835 名患者,结论是:针灸相关疗法在慢性咳嗽患者中能够显著改善咳嗽严重程度和生活质量,证据等级为中等可信度。(<a href="https://pubmed.ncbi.nlm.nih.gov/39944112/">Lim et al., <em>Complementary Therapies in Clinical Practice</em>, 2025</a>)</p>
<p>更有意思的是机制层面。针刺特定穴位已被证实能激活自主神经系统中的特定回路,进而调节迷走神经的活动,产生可测量的抗炎效应。(<a href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0151882">Lim et al., <em>PLOS ONE</em>, 2016</a>)也就是说,针灸并不只是"让人感觉好一些",它通过皮肤体感输入,真实地调动了神经系统中的某些回路。</p>
<p>当然,心理预期和注意力的参与也可能存在——但这与"纯粹的安慰剂"有本质区别:前者是真实的神经调控,只是路径不同于传统西医的靶点。</p>
<hr>
<h2 id="三用-ai-打一个类比">三、用 AI 打一个类比</h2>
<p>想到这里,我发现这件事用机器学习来类比,出奇地直观。</p>
<p>AI 模型在训练时有一种常见问题叫<strong>过拟合</strong>:如果在某种数据上训练过久,模型就会对这类数据过度敏感,泛化能力下降——稍微换一种输入,就会给出异常的输出。</p>
<p>慢性咳嗽的神经敏化,本质上就是人体版的过拟合:持续的咳嗽刺激让特定神经通路被过度强化,系统变得"一触即发",对原本无害的刺激也产生剧烈反应。</p>
<p>为了解决过拟合,工程师会用各种方式来"修正"模型。对应到咳嗽的治疗,可以画出一个粗略的类比:</p>
<ul>
<li><strong>行为训练</strong>(主动练习抑制咳嗽冲动):类似于对过度激活的神经通路施加持续的衰减约束,慢慢把参数拉回正常范围;</li>
<li><strong>加巴喷丁</strong>:类似于直接压制神经信号的传导强度;</li>
<li><strong>针灸</strong>:类似于从外部注入一个旁路信号,激活了不同于咳嗽反射弧的神经回路,间接干扰了那条被过度强化的通路。</li>
</ul>
<p>AI 里有一种技术叫 Dropout:训练时随机屏蔽一部分神经元,强迫模型不过分依赖某条特定路径,从而消除过拟合。针灸的某些作用和这个逻辑有些相似——都是通过干扰特定通路的主导地位,让系统重新找到平衡。</p>
<p>这当然只是类比,不是严格的科学对应。但两件事背后有一个共同的本质:<strong>一个系统如果对某种刺激模式过度学习,就需要某种外部干预来重新校准。</strong></p>
<hr>
<h2 id="结语">结语</h2>
<p>这次生病让我更切实地体会到一件事:医学上最常见的误判,是把"我不理解这个机制"直接等同于"这个东西没有效果"。针灸的理论框架也许存在问题,但它在慢性神经性疾病上长期积累的临床经验,可能暗藏着真实的神经调控机制,值得用现代科学的语言认真对待。</p>
<p>我们会发现中医和西医描述的是同一件事,只是用了两种完全不同的语言。</p>
-
AI, 当程序员开始感到“绝望”
https://yiwei.dev/posts/ai-despair/
Wed, 28 Jan 2026 23:30:03 +0000
https://yiwei.dev/posts/ai-despair/
<p>昨晚和老友坐在街角一家有些年头的烧烤摊,炭火氤氲,烟气呛人。肉串的味道大不如前,似乎为了追求出餐效率,少了些许腌制的耐心。这种口感上的“降级”很像我们当晚聊天的底色——在一种不可阻挡的洪流面前,原本精细的手艺变得不再重要。</p>
<p>作为常年与代码打交道的人,在这个新技术以周为单位迭代的时代,我们并没有表现出外界想象的那种亢奋。相反,酒精下去,浮上来的是一种近乎绝望的清醒。老友说,我们现在的处境,像极了工业革命前夕还在挥舞锄头的农民。当内燃机驱动的收割机开进麦田时,你锄头挥得再优雅、再有技巧,在发动机的轰鸣声中都显得滑稽且多余。那些我们曾经引以为傲的 K8s 运维经验、对底层工程细节的掌控,在能自动编排工作流的 AI 面前,正迅速贬值为一种旧时代的“民俗手艺”。</p>
<p>这种无力感,本质上是“工具理性的反噬”。我们制造工具是为了解放自己,但现在的 AI 似乎不是在解放我们,而是在替代我们的思考过程。</p>
<p>聊到现在的 AI 助手,我们都觉得它们还是太“乖”了,乖得有些迟钝。你推一下,它动一下,这种 Passive(被动)的交互模式,依然停留在“搜索引擎”的逻辑里。但真正的智能,或者说一个合格的 Digital Agent,不应该是一个等待指令的终端。我想,未来的 AI 应该是一种“流动的环境”。 当我深陷在复杂的代码逻辑或写作心流中时,它应该像一个懂事的秘书,敏锐地察觉到我的认知负荷已经满了,于是主动在后台静默地处理掉杂务,拦截一切不必要的打扰,而不是弹出一个对话框问我:“需要帮助吗?”——在这个注意力稀缺的年代,不打扰,才是最高级的智能。</p>
<p>顺着这个思路,我们谈到了那个让人头疼的“文件系统”。人类的大脑从来不是按文件夹分类的,我们是按“关联”记忆的。我们会记得“那是去年冬天做的项目”,或者“那个让我熬了三个通宵的 Bug”。但现在的操作系统强迫我们将这些鲜活的记忆压缩进死板的树状目录里。我在想,未来的文件系统应该消亡,取而代之的是一个基于语意的“记忆层”。我不需要知道文件存在哪个盘符,我只需要表达意图,AI 就应该像从深海打捞沉船一样,根据时间、地点、甚至我当时的情绪,把那些碎片拼凑回来。这不仅仅是效率的提升,这是对人类思维方式的某种“回归”——让机器去适应人,而不是人去适应机器的文件协议。</p>
<p>但在巨头的阴影下,这种智能也让人恐惧。既然在大模型上拼不过算力和数据,我们一致认为,“本地化(On-Device)”或许是最后的避风港。这是一个关于尊严的博弈:没人愿意把长达二十小时的生活录音、私密的碎碎念上传到云端供巨头训练。如果能有一个 1.5B 级别的小模型,它只住在我的手机里,只记得我的习惯,只懂我偶尔冒出的灵感,并且在物理上与互联网物理断开。这种极致的隐私和封闭性,可能是我们在数字全景监狱中,唯一能保留的“自留地”。</p>
<p>夜色渐深,话题最终落到了职业的归宿上。未来的程序员,大概率会分化成两类:绝大多数人变成“预制菜加热工”,负责拼装 AI 生成的代码模块,也就是所谓的“调包侠”的终极形态;而只有极少数人,能像坚持古法烹饪的老牌厨师一样,去死磕那些 AI 暂时无法触及的物理边界和复杂系统。</p>
<p>这顿烧烤吃得有些撑,临走时,路边的白炽灯晃得人眼晕。这个世界终究是一个巨大的草台班子,AI 正在重新分配桌上的筹码,而我们是那个看着牌桌规则被改写的人。二十年后,社会分工或许会重构完成,而现在,我们这群“旧时代的农民”能做的,或许就是在巨大的收割机开过来之前,先学会怎么给它写“咒语”。</p>
<p>或者,像老友在微醺中半开玩笑说的那样:“实在不行,就别写代码了,去加仓几手内存厂商的股票吧。”毕竟,在淘金热里,卖铲子的人永远比挖金子的人活得久。</p>
-
唐诗与般若波罗蜜多心经
https://yiwei.dev/posts/tang/
Sat, 04 Jan 2025 04:30:00 +0000
https://yiwei.dev/posts/tang/
<h2 id="摘要">摘要</h2>
<p>唐代佛教盛行,众多文人墨客留下了大量禅诗佳作。王维、孟浩然、杜甫、贾岛等著名诗人皆在诗作中融入了深厚的佛教思想。《全唐诗》共收录诗僧一百一十余人,诗作两千余首,充分展示了唐诗与佛教的深度交融。佛教旨在探寻人心之本,释迦牟尼佛于菩提树下冥思苦想,终而大彻大悟,这种觉悟无疑涵盖了对人情世态与世事变迁的深刻洞见。</p>
<p>唐玄奘于公元649年重新翻译《般若波罗蜜多心经》,为佛教经典在中土的传播作出了重大贡献。至开元盛世(公元713年),唐朝不仅国力达到鼎盛,诗歌创作亦迎来空前繁荣。本文将以佛教经典为切入点,探讨唐诗与佛教之间既相互交融又彼此独立的微妙关系。</p>
<h2 id="般若波罗蜜多心经背景">「般若波罗蜜多心经」背景</h2>
<p>《般若波罗蜜多心经》,又称《佛说摩诃般若波罗蜜多心经》或《摩诃般若波罗密多心经》,简称《般若心经》或《心经》。该经是对《金刚般若波罗蜜多经》的高度浓缩,仅二百余字,因其简练精要而被视为佛教经典中极为重要的一部典籍。</p>
<p>经文中的“般若波罗蜜多”含义深远。“般若”是梵语音译,意为通达的智慧;“波罗”亦为音译,意为到达彼岸;“蜜多”则象征无极无限。而“摩诃”则意指广大,因此“摩诃般若”即“大智慧”之意。整体而言,《般若波罗蜜多心经》可解释为:“通过伟大的、原初的一切智慧之母,达至解脱彼岸的核心经典。”</p>
<p>《心经》在中国的传播历史悠久,自三国时期便已有译本传入中土。据史料可考,至宋朝为止,至少已有十次汉译,现存九种版本。最早的译本出自三国时期著名译经家支谦,而流传最广的是唐代玄奘法师于公元649年翻译的汉译本,全文共260字。此经受到历代高僧的重视,数次撰写疏注,充分彰显了《心经》在佛教典籍中的崇高地位。</p>
<h2 id="唐诗和心经的字句禅理的呼应">唐诗和「心经」的字句,禅理的呼应</h2>
<p>前文提到,唐代佛教思想盛行,禅理诗作更是屡见不鲜。在此,不妨对佛教经典《般若波罗蜜多心经》逐句解读,试图从中管窥唐诗与佛教思想水乳交融的深厚联系。</p>
<h3 id="五蕴皆空度一切苦厄">「五蕴皆空,度一切苦厄」</h3>
<p>《心经》开篇讲述了“五蕴”,即“色”、“受”、“想”、“行”、“识”。简单而言,“色”指物质,泛指一切具有形态和阻碍性质的客观存在物的集合体;“受”是感官接触外物后产生的感受或情绪;“想”是基于感官接收到的外物信息进行分析而形成的知觉和表象;“行”是通过对外物的认知而引发的行为意图;“识”则主要指人的意识活动。在佛家的观点中,这五蕴因缘和合而生,具有无常和虚妄的特性。既然五蕴本质上是虚幻不实的,无常且无自性,便可视其为空无存在。《心经》认为,观自在菩萨在体悟到大智慧时,已彻底放下对五蕴的执著。既然洞见“五蕴皆空”,则无由生出任何苦厄。因为一切苦厄皆由心而生,是“五蕴”运作的结果,而当因不复存在时,果也随之消失。</p>
<p>唐诗中直接引用佛家用语与禅语的诗句并不罕见。例如,白居易在《和送刘道士游天台》中写道:“既未出三界,犹应在五蕴。饮咽日月精,茹嚼沆瀣芬。”这首诗巧妙而独特之处在于,白居易的创作对象是一位道士,但诗中却引入了佛教概念。需要特别指出的是,“三界”是佛教术语,指“欲界”、“色界”与“无色界”,而“五蕴”则是前文所述“色、受、想、行、识”之“五蕴皆空”。然而,诗句后半部分引用了司马相如《大人赋》中“呼吸沆瀣兮餐朝霞”的典故,带有浓厚的道教色彩。这种跨越宗教思想的交织与融汇,在后续的分析中还会进一步探讨。</p>
<p>唐代诗人李绅在其诗作《题法华寺五言二十韵》中同样引用了《心经》中关于“五蕴”的思想:“指喻三车觉,开迷五阴缠。教通方便入,心达是非诠。”其中的“五阴”正是《心经》中“五蕴”的另一种称谓。诗句开篇提到的“三车”典故,源自《妙法莲华经·譬喻品第三》。经文中讲述了一位长者的几个年幼子女在燃烧的房屋中玩耍,因玩得尽兴而未察觉危险。长者为了引导他们离开,声称屋外有羊车、鹿车和牛车可以玩耍。孩子们闻言争相奔出,结果长者最终只赐予他们大白牛车。</p>
<p>这其中,羊车、鹿车和牛车分别比喻佛教的三种修行法门——声闻乘、缘觉乘和菩萨乘,而大白牛车则象征最终的佛乘,寓意生命解脱、返璞归真,达到究竟圆满的境界。诗中“是非诠”所指的是佛教中关于“诠释”方法的二元论——“遮诠”与“表诠”。“遮诠”通过否定排除错误认知,而“表诠”则肯定并显明正道理义。佛教经常使用这种对立统一的方式来阐述真理。例如《心经》中的经典句式:“色不异空,空不异色;色即是空,空即是色”,“不生不灭,不垢不净,不增不减”,皆是以此方式揭示真谛。</p>
<p>因此,诗句的含义在于佛法通过“诠释”引导众生觉悟,使人洞见被“五蕴”(即“五阴”)所遮蔽的本性,实现“五蕴皆空”。“声闻”、“缘觉”、“菩萨乘”皆是引导众生步入佛门的权巧方便,旨在帮助众生领悟佛性之理。而“三车”典故正点明了这一教义,即只有破除“五蕴”之缠,方能摆脱苦海,得度一切苦厄。</p>
<p>元稹在《大云寺二十韵》中同样直接提及佛教关于“五蕴”与“思根”的思想:“多生沉五蕴,宿习乐三坟。谕鹿车虽设,如蚕绪正棼。且将平等义,还奉圣明君。”其中的“三坟”是佛教中对“贪”、“嗔怒”、“愚痴”三种根本烦恼的称谓。这三者被视为人心难以摆脱的束缚之根源。诗意指出,许多人仍沉溺于“五蕴”之中,未能揭示其虚妄本质而觉醒,从而发掘人的本性。此外,人们长期沉迷于贪欲、嗔怒与愚痴的惯性之中,这些内在的执著如同茧丝一般,将人层层束缚,使之难以解脱。即便已经明白“三车”比喻的劝化之理,也常如作茧自缚,被纷繁复杂的烦恼遮蔽本心,无法洞见真如。元稹在诗中强调,这一切教义的核心在于引导众生领悟佛性所体现的“平等”之理。而这种平等之义不仅适用于佛家修行,也被他提升至世俗层面,用以奉劝圣明之君,以大平等的智慧治世。这不仅展示了元稹对佛教思想的深刻理解,也反映出他试图将佛理融入社会政治治理的理想。</p>
<p>从李绅与元稹的两首诗中,我们可以清晰地看到《心经》中“五蕴皆空”这一精神要旨的体现。更为关键的是,这两位诗人都认可并倡导人们如《心经》所描述的那样,通过达成“五蕴皆空”来摆脱世间的一切苦厄。这不仅反映出唐诗与佛教经典《心经》之间的紧密联系,而且体现了这种联系已超越了文字的引用,深入到精神上的认同与生活态度的取舍和统一。</p>
<p>除了直接引用“五蕴”与“思根”这一佛家术语之外,还有一些诗歌通过意境营造出空明幽远、宁静淡泊的氛围,从而呈现出“五蕴皆空”的精神境界。一方面,我们可以看到,“五蕴皆空”这一佛教思想为那些仕途失意的诗人提供了一处精神上的避风港,使他们能够在佛理中寻求心灵的慰藉与解脱;另一方面,这种禅理所强调的淡泊与空明之境,正与诗人们诗作中的孤高幽静之美相得益彰,形成了一种独特的精神共鸣。</p>
<p>唐代诗人们通过这种融合,既表达了对佛家思想的深刻体悟,也为诗歌注入了更高远的哲思,使诗意超越尘俗,达到一种更高的精神境界。这种现象反映了唐人以诗歌为载体,将佛理与现实生活融合,以追求超脱红尘与内心宁静的艺术追求与人生态度。</p>
<p>常建在《堤坡山寺后禅院》中写道:“山光悦鸟性,潭影空人心。”其中的“空”字深刻诠释了《心经》中“五蕴皆空”的思想内涵。诗中,通过自然景象的描绘,将禅境之“空”与心境的澄澈联系在一起,展现了佛家超然脱俗的思维方式。</p>
<p>王维(字摩诘)更是在诗作中直接表现了这种宁静、超脱世俗的精神境界。在《酬张少府》中,他写道:“晚年唯好静,万事不关心。自顾无长策,空知返旧林。松风吹解带,山月照弹琴。君问穷通理,渔歌入浦深。”诗的开篇便道出王维深厚的佛教思想——一切世事皆为外物,不为其所累,更不以俯视众生的姿态自居。他与世俗之间划清界限,将自身置于自然与禅境中,逐渐进入“忘我”的精神境界。诗中渔夫的形象象征着与世无争、自由自在的生活态度,体现出摆脱“宦海浮沉”之苦厄的彻底解脱。在《竹里馆》中,王维更是以精妙的笔触,从精神与感性层面展现了内心的宁静与淡泊:“独坐幽篁里,弹琴复长啸。深林人不知,明月来相照。”幽篁、琴声与明月交织成一幅清远孤高的画面,传达出对禅理“空”境的深刻体悟。</p>
<p>同样,在经历政治革新失败后,柳宗元也在诗作中表达了对超脱宁静的追求。在《渔翁》中,他写道:“渔翁夜傍西岩宿,晓汲清湘燃楚竹。烟销日出不见人,欸乃一声山水绿。回看天际下中流,岩上无心云相逐。”最后一句“岩上无心云相逐”将禅家“无住心”、“无常心”的境界表现得淋漓尽致。正如前文所述,“无住心”与“无常心”正是实现“五蕴皆空”的关键。“无住心”意味着不执著于任何内外之物,“无常心”则强调对无常之本性的彻底洞见。柳宗元借渔翁之隐逸与山水之清远,表达了对摆脱世俗纷扰、回归心灵自由的向往。这既是政治失意者心灵的避风港,也是对禅理境界的积极探寻。</p>
<p>因此,无论是王维的“竹里隐居”,还是柳宗元的“渔翁垂钓”,都通过诗意和意境,展现了对《心经》中“五蕴皆空”思想的深刻理解与诗化表达。这种“空”不仅是对外界的淡泊与疏离,更是内心对自在与解脱的追求,是对禅家“超脱有无、无住无执”之理的艺术呈现。</p>
<h3 id="舍利子色不异空空不异色色即是空空即是色">「舍利子,色不异空,空不异色;色即是空,空即是色」</h3>
<p>《心经》全文以「五蕴皆空」这一核心主题为起点,并在后文对其进行了逐一诠释。其中最广为人知的句子莫过于「色即是空,空即是色」,该句位于《心经》的第二段。在经文中,「舍利子」是舍利弗的尊称,他是佛陀十大弟子之一,以智慧卓著而闻名。正如经中所述:「舍智连通说富那,须空旃论迦头陀」,其中「舍智」意为舍利弗在智慧上的超群。佛经编排常遵循一项惯例,凡是论及智慧之事,舍利弗常被选为说法对象。这一传统在李白的诗作中亦有所体现,他甚至创作了以「舍利弗」为题的诗篇。《心经》采用了类似对话的说理方式,借此阐述其哲理主旨。</p>
<p>“色不异空,空不异色;色即是空,空即是色”是人们在诵读《心经》时最为熟悉的一句。加上后续的“受、想、行、识,亦复如是”,便完整阐述了“五蕴”。因此,在《心经》的描述中,即为“五蕴不异空,空不异五蕴;五蕴即是空,空即是五蕴”。在这句话中,《心经》指出“五蕴”并非真实存在,甚至与“空”之间并无差别。“色”指的是一切可见或不可见的事物现象,而这些现象往往引发幻觉;“空”则是万象生发的本源,意指不存在独立的自我和个体性。“色即是空”表达了对万事万物不执著的心境,即如明镜止水般的平静与通达。因此,从声色语言中悟道而不为其所缚,便是心境的超然。这种思想在诗歌创作中表现为超逸的想象、从容的态度与淡泊的情怀。“空”性的思想给予诗人最深刻的影响,尤其在历经磨难之后,成为一种心理慰藉。因此,诗歌中常涌现出“空”与“静”这一类意象,彰显出内心的宁静与超然之境。</p>
<p>唐代诗人王维醉心佛教,其诗歌中常流露出富有禅意的意境。例如在《过香积寺》中,他写道:“不知香积寺,数里入云峰。古木无人径,深山何处钟。泉声咽危石,日色冷青松。薄暮空潭曲,安禅制毒龙。”这首诗展现了平淡而淡雅的意境,并大量运用了《心经》中关于“空”的意象。诗句中的“数里入云峰”“无人径”“深山”“咽”“冷”“空潭”“安禅”等词语,无不营造出寺庙幽静清远的氛围,描绘出一种超脱尘世的宁静环境。尾联“安禅制毒龙”更是直白地点出了“安禅”这一佛教概念,意指“空净守一”的心境,而“毒龙”象征人心中的“贪念”。正是在这种空灵的宁静中,人才能战胜内心的欲望与执著,达到内心的澄明与超脱。王维通过细腻的描写,将佛教思想融入山水意境,表现出清寂淡远的禅宗情怀,体现了“空”在诗歌创作中的深远影响。</p>
<p>白居易晚年笃信佛教,自号“香山居士”,他的诗歌创作中也充满了《心经》“五蕴皆空”的思想色彩。他甚至在诗中直接表达对《心经》中“色即是空”理念的效仿与追求。例如,在《闲吟》中,他写道:“自从苦学空门法,销尽平生种种心。唯有诗魔降未得,每逢风月一闲吟。”诗歌前两句表达了他刻苦修习佛法,以“销尽平生种种心”为目标,这正是对“色即是空”教义的践行。学习这一思想,是为了在经历世事纷扰后获得内心的安宁与澄明,这与佛教“空”性的哲思一脉相承。此外,在《僧院花》中,他更直接引用“色即是空”的语义:“欲悟色空为佛事,故栽芳树在僧家。细看便是华严偈,方便风开智慧花。”诗歌首句开宗明义,指出自己希望通过参悟“色即是空”来践行佛理。“智慧花”这一意象则象征着《心经》中“般若”智慧的开显与觉悟,体现出白居易对超然智慧生活的向往与追求。</p>
<p>白居易的这些诗作,不仅是个人精神修行的写照,也展现了他对佛教教义深刻的体悟,将“空”性的思想以诗意的形式表达,折射出他晚年对“般若”智慧的虔心向往与实践。</p>
<h3 id="舍利子是诸法空相不生不灭不垢不净不增不减是故空中无色无受想行识">「舍利子!是诸法空相:不生不灭,不垢不净,不增不减。是故空中无色,无受、想、行、识」</h3>
<p>《心经》在此处阐释了“空相”(即“空性”)的内涵,指出“空性”源自于事物本身不实在的本质,可从三个方面来体现:“不生不灭,不垢不净,不增不减”。佛家认为,世间万物皆无绝对之性。首先,“不生不灭”表明事物并非如人们所认为的那样有固定的生灭,而只是因缘聚合或离散的表现。其次,“不垢不净”意味着洁净与污垢并非事物的本质属性,而是因人心的情执而生。因此,佛家倡导随缘而行,以正见正行去观照世界,而非受情执左右。最后,“不增不减”同样体现出这一原则——事物本身并无实质的增损变化,而是缘起变化的结果。这些教义强调超越主观的二元对立,以平等、无执的心态来看待一切,进而实现内心的平静与解脱。这也构成了佛教实践中“般若智慧”的核心思想。</p>
<p>佛陀在阐述“三不”之后接着说到:“故空中无色,无受、想、行、识。”这句话提出了一个极为重要的佛学概念——“无”。佛家所说的“无”并非“虚无”或“空无所有”,而是指对万事万物不执著、不染著的心态。所谓“空性”,并不意味着彻底否定或失去一切,而是强调以平常心观照世界。《心经》之所以容易被误解,是因为许多人将“空性”误读为对一切事物的抛弃和舍弃。然而,实际上,“空性”所倡导的是一种超然的心态——保持平和、不偏不倚。因此,有了这样的平常心,便不会被“色、受、想、行、识”等“五蕴”的表象所迷惑和束缚,从而做到“不生贪著、不执表象”。换言之,“空性”不是远离现实生活,而是教导人们如何在生活中以无执著之心面对纷繁复杂的境遇,从而达到内心的安定与自在。这也是《心经》教义中“般若智慧”的精髓所在,帮助修行者超越表象,直达事物的本质。</p>
<p>白居易在《读禅经》中对佛教“空性”思想作出了深刻的回应和印证:“须知诸相皆非相,若住无余却有余。言下忘言一时了,梦中说梦两重虚。空花岂得兼求果,阳焰如何更觅鱼。摄动是禅禅是动,不禅不动即如如。”其中,“须知诸相皆非相”正呼应《金刚经》所言:“凡所有相,皆是虚妄。”《金刚经》对《心经》的“诸法空相”思想进行了进一步阐释,强调世间一切现象皆是无常和虚妄的,因此,白居易在诗中指出:“须知诸相皆非相。”此外,《金刚经》又说:“应无所住而生其心。”强调即使是无余涅槃也不应执著于“无余”的状态。如果执著于“无余”,即形成了新的执念,从而落入“有余”的境地,因此白居易写道:“若住无余却有余”,指出执著“无”同样是误区。白居易的诗作中,禅理的精髓集中在最后一句:“摄动是禅禅是动,不禅不动即如如。”这一句与《心经》的理念一脉相承。所谓“禅”与“动”本质上皆不可执著,若以“禅”斥“动”或以“动”斥“禅”,甚至将“禅动相融”视作真理,反而陷入执念之中,背离了“如如”之境。“如如”是一种对万事万物不加分别、不生执念的平常心态,随缘而不被境遇所扰。唯有对“禅”与“动”都不执著,以平常心对待一切,才能达到真正的“如如不动”之境。这正是《心经》中“般若智慧”所指引的终极目标——破除一切执著,以获得心灵的安稳与解脱。</p>
<h3 id="无无明亦无无明尽乃至无老死亦无老死尽">「无无明,亦无无明尽;乃至无老死,亦无老死尽」</h3>
<p>《心经》在此提出了十二因缘,但经文在无明与老死之间省略了“行”等十支,实际上应包括行、识、名色、六入、触、受、爱、取、有、生等,共成十二支,合称为“十二因缘”[^7]。在十二因缘中,又分为“流转门”与“还灭门”两种途径。简而言之,“流转门”揭示了众生在六道轮回中生死不息的因缘,而“还灭门”则教导人们如何超脱生死轮回,达到解脱之道。</p>
<p>众生本具的真心,原本是纯净无瑕、清净本然、妙明觉照的。然而,由于一念妄动,生起了对外境有所认知的妄觉,而这种妄觉便是“无明业相”。经文中提到的“老死”,其中“老”指诸根衰颓,“死”则是身坏命终。凡有生者必有死,这是现象界的必然法则。众生自出母胎之后,由幼年、少年、壮年至衰老,不过匆匆数十寒暑,最终走向死亡。然而,死亡本身并不可怕,可怕的是死后复生、生后再死,如此循环往复,生生死死,永无休止。众生的生命正是这样一期又一期地延续下去,最终演化成无穷无尽、无边无际的生死洪流,而这正是众生无量无边的苦难之源。</p>
<p>从这一点出发,我们不妨探讨唐代禅理诗歌中所体现的生死观。</p>
<p>白居易在《天竺寺送坚上人归庐山》中写道:“锡杖登高寺,香炉忆旧峰。偶来舟不系,忽去鸟无踪。岂要留离偈,宁劳动别容。与师俱是梦,梦里暂相逢。”其中,“与师俱是梦”道出了人世间万物的虚幻无常——包括人类生命在内,皆终将消亡,无法恒久存在,这正是“无常”之意。正如世人,有人尽敛钱财,有人功成名就,但最终都归于一抔黄土。而在佛教教义中,唯有第八识——如来藏——不灭,在舍身之后继续轮回下世。此诗不仅表现出白居易的“虚无观”和“无常观”,而且其思想意境与《心经》中的教义有着惊人的相似之处,这与他晚年醉心佛教、创作佛理诗歌密不可分。</p>
<p>此外,白居易的诗歌中还表现出对“老死”及轮回观念的深刻体悟。例如,他在《山下留别佛光和尚》中写道:“劳师送我下山行,此别何人识此情。我已七旬师九十,当知后会在他生。”诗中的“后会在他生”正是佛家轮回观的体现,明确表达出“来生再会”的信念。因此,他并不担心死亡本身,而是担忧死后再生,再次卷入生死轮回之中。这一思想与《心经》中“无老死尽”的理念遥相呼应,传达出对超越轮回、解脱生死的渴望与思考。</p>
<h3 id="故知般若波罗蜜多是大神咒是大明咒是无上咒是无等等咒能除一切苦真实不虚故说般若波罗蜜多咒即说咒曰揭谛揭谛波罗揭谛波罗僧揭谛菩提萨婆诃">「故知般若波罗蜜多,是大神咒,是大明咒,是无上咒,是无等等咒,能除一切苦,真实不虚。故说般若波罗蜜多咒,即说咒曰:“揭谛、揭谛,波罗揭谛,波罗僧揭谛,菩提萨婆诃」</h3>
<p>作为《心经》的结尾,这段经文旨在强调此前阐述内容的重要性,激发人们对“般若”的信心,将其视为大神通、大光明与大智慧之道。经文指出,“般若波罗蜜多”能够消除一切痛苦,真实不虚。在佛教用语中,“揭谛”意为“去吧”或“前行”,而“波罗”意为“彼岸”,即“到达彼岸”的解脱之境。《心经》的结语以此鼓励修行者从当下开始,修持“空”的法门,迈向究竟解脱。</p>
<p>在唐代诗歌中,直接引用“般若”或“揭谛”的并不多见,但劝勉世人向佛、诵读佛经的诗作却屡见不鲜。例如,孟郊在《读经》中写道:“曾读大般若,细感肸听。”其中的“大般若”指《大般若波罗蜜多经》,其核心思想与《心经》一致,旨在阐明“诸法皆空”的真理。孟郊通过诗句表达了自己诵读佛经时的灵感与通透,表现出对佛理的深刻体悟与虔诚之心。</p>
<h2 id="从心经获得的灵魂疗愈">从《心经》获得的灵魂疗愈</h2>
<p>在唐代,各种宗教繁荣发展,尤其是佛教和道教,在社会、文化及文学中扮演了不可或缺的角色。然而,即便宗教在唐代文化中占据如此重要的位置,唐朝并未走向政教合一的道路。相反,各种宗教在唐代经历了本土化进程,形成了兼容并包的独特宗教风格。这种风格的形成,不仅源于唐代的文化氛围,更与唐人对宗教的理解和选择密不可分。</p>
<p>《心经》作为佛教经典之一,以其简洁精炼的篇幅阐述了“诸法皆空”的深奥哲理,为唐代士人和普通民众提供了一种心灵安顿和超越苦难的方法。本文试图从《心经》的核心思想出发,探讨唐代人对于佛教的信仰观念,以及这一信仰如何在精神层面为他们提供慰藉与救赎。</p>
<p>唐代人对宗教的态度并非盲从,而是基于个人境遇与生命体验进行选择和吸纳。许多唐代诗人如白居易、王维等,都曾在诗作中表达对“空”与“无常”思想的深刻体悟。通过研读《心经》,他们不仅思考生死与轮回,更寻求超越生死的解脱之道。这种精神追求,既体现了唐代人对生命意义的探索,也折射出佛教思想在中国文化土壤中生根发芽、逐渐融入人们生活的过程。正是这一过程,使佛教超越了宗教范畴,成为唐人安顿灵魂、对抗苦难的重要力量。</p>
<h3 id="重创后的疗伤">重创后的疗伤</h3>
<p>如前文所述,《心经》的核心思想是“五蕴皆空”和“诸法空相”。这一思想实际上为在政治上遭受重创的诗人们提供了心灵上的出路。尤其是“色即是空”的理念,为那些抱负无法实现的士大夫提供了一种慰藉和精神上的借口。佛教的这一出世思想,与儒家士大夫积极入世、致君尧舜的理想追求是背道而驰的。然而,正是这种思想,为那些经历人生剧变、饱受风雨冲击的人,提供了另一种精神上的“隐居”方式——即在心灵中获得安宁与超脱。</p>
<p>所谓“大隐隐于朝”,如白居易、元稹等人,尽管有心匡扶社稷,但因遭遇贬谪和政治失意,不得不退守内心世界。在经历仕途的风波与人生的失落后,他们选择借助佛教思想来为自己的失意寻找出路与解脱。佛教的“空”不仅为他们提供了对现实的超越视角,也成为他们安顿灵魂、重建心灵秩序的重要寄托。这一现象,折射出佛教在唐代知识分子阶层中的深远影响,以及其如何帮助他们从挫败中走向内心的平静与复原。</p>
<p>白居易早年的诗风充满现实主义关怀,他以诗为工具,为劳动人民的痛苦振臂高呼,抨击社会不公,谴责剥削与压迫人民的统治阶级。他将诗歌视作“补察时政”的载体,创作了大量具有讽喻性质的作品,如《新乐府》《秦中吟》等。这些诗歌语言直白,主题鲜明,旨在唤起社会的共鸣和反思,体现了其强烈的责任感与忧患意识。</p>
<p>然而,晚年的白居易诗风却发生了显著变化,他更多书写自己的闲适生活,追求内心的宁静与淡泊。这一思想转变在很大程度上源于他坎坷曲折的仕途经历。白居易因谏言遭贬,出任江州司马,其名篇《琵琶行》正是在这一时期创作而成。诗中不仅描绘了琵琶女的身世之悲,更借此抒发了自己命运多舛的感慨和仕途失意的无奈。</p>
<p>到了晚年,白居易醉心佛教,作品中充满对“无常”与“空”的思考。这种思想影响了他的处世态度,使他得以看淡名利得失,避开了不少仕途上的风险与波折。他的佛理诗,如《大林寺桃花》《闲居咏》等,展示了他在佛教哲学中寻找精神慰藉的过程。白居易通过对佛教“诸法皆空”思想的领悟,逐渐从“为民请命”的入世情怀,过渡到“修身养性、超然物外”的出世境界。这一变化,不仅是人生境遇的反映,更是他在现实挫折中对生命和价值的新认识。</p>
<p>白居易的这种生活态度在元稹的诗歌中同样有所体现。在《赠乐天》中,元稹写道:“等闲相见消长日,也有闲时更学琴。不是眼前无外物,不关心事不经心。”这些诗句直接反映了白居易逐渐远离世事、追求内心安宁的态度。元稹通过描述二人日常的悠闲交往,表现出白居易已不再为外界纷扰所动,而是专注于自我修养与内心的平静。</p>
<p>正如前文所述,白居易在其许多诗作中表现出《心经》中“空”与“宁静”思想的影子。这种思想在他的禅理诗中尤为明显。例如,在《苦热题恒寂师禅室》中,他写道:“非是禅房无热到,为人心静身即凉。”白居易认为,心静自然能够战胜外在的酷热,体现了佛教中“心随境转”与“心静则苦灭”的理念。</p>
<p>这一句“心静身即凉”,正是对“五蕴”中“受”的超越——当人们放下对感官感受的执着,不为痛苦与欢愉所困扰,一切境遇皆由心而定。当“五蕴皆空”时,所谓的苦与乐不过是心灵对外界的反应。因此,白居易不仅通过诗歌传达了佛理的精髓,更将其融入日常生活中,展现了他从仕途跌宕走向心灵宁静的精神历程。这种“放下”的智慧,使他在坎坷人生中找到了超脱与平和的力量。</p>
<p>白居易与鸟巢禅师的故事堪称妙趣横生且发人深省。据传说,《心经》正是由鸟巢禅师口授玄奘大法师后才得以广传世间。白居易第一次见到鸟巢禅师时,禅师正端坐于树巅之上。白居易惊讶地说道:“禅师坐在树上,太危险了。”不料鸟巢禅师却淡然答道:“太守的处境才真正危险——宦海沉浮,勾心斗角,危机四伏。”</p>
<p>此后,白居易与鸟巢禅师交往甚密,探讨佛理。他在诗作《题鸟巢禅师》一诗中写道:“特入空门问苦空,敢将禅事问禅翁。为当梦是浮生事?为复浮生是梦中。”这几句诗表达了他对“浮生若梦”的疑问:人生如梦般虚幻,究竟是梦中之浮生,还是浮生本身就是梦境?显然,经历了宦海的沉浮跌宕后,白居易已厌倦了那种提心吊胆、勾心斗角的生活,他将精神寄托于佛门,尤其沉醉于《心经》中“五蕴皆空”的理念。</p>
<p>鸟巢禅师对他的疑问的回答巧妙而富禅意:“来时无迹去无踪,去与来时事一同。何须更问浮生事?只此浮生是梦中。”鸟巢禅师指出,“浮生”与“梦”本无二致,来去皆无痕迹,执着于辨别“浮生”与“梦”只会徒增烦恼。这一回答正契合了《心经》所阐述的“空性”——万物的本质皆为空,既然本质无差异,又何必执着于区别对错、深究其本质?更为智慧的态度是顺应因缘、随遇而安,以平常心对待一切。</p>
<p>这一禅理深深影响了晚年的白居易,使他逐渐超脱了仕途的羁绊,从权力斗争与政治压力中解脱出来。他不再执着于功名得失,而是回归生活本真,追求平静与闲适。这种态度不仅体现在他的佛理诗中,也反映在他日常生活的点滴中。可以说,这场与鸟巢禅师的“问禅”对话,帮助白居易完成了从仕途浮沉到心灵宁静的蜕变,是他生命历程中极为重要的一次精神转折。</p>
<h3 id="内佛外儒始儒后佛的士大夫精神状态">内佛外儒,始儒后佛的士大夫精神状态</h3>
<p>唐代士大夫中普遍存在“内佛外儒”的精神状态,这是佛教、道教和儒家思想交融的结果。在诗人们的作品中,这三种思想常常交错呈现。正如前文所述,白居易的诗歌便表现出佛教“空性”思想与道教超然物外理念的交织。因此,在唐代,“外儒内佛”的精神状态并不少见,而其中最具代表性的诗人便是王维。</p>
<p>王维早年便笃信佛教,他于开元九年进士及第,步入仕途,但同时以虔诚奉佛闻名于世。正如张弓先生所言:“堪称萧瑀之后,唐代又一位居士型朝官。”安史之乱期间,长安沦陷,王维未能西逃,被叛军俘虏并迫任伪官。平叛后,他因“曾仕伪”被朝廷宽恕,但也因此仕途受挫。他在向唐肃宗的奏表中坦言“愿出家修道”,“苦行斋心”,但未获准许。然而,自此之后,王维心境已完全归于佛门,其诗作也充满禅意和出世之志。</p>
<p>王维的禅理诗正是他政治挫折后精神归宿的写照。例如,在《六祖能禅师碑铭》中,他写道:“无心舍有,何处依空?”这一句表达了他对佛门“空性”生活的深切向往。在《在荐福寺光师房花药诗序》中,他进一步阐释道:“心舍于有无,眼界于色空,皆幻也,离亦幻也。至人者,不舍幻,而过于色空有无之际。故目可尘也,而心未始同;心不世也,而身未尝物。”在这里,王维将“有无”和“色空”的对立视为幻象,强调超越“色空”与“有无”的境界。这些理念显然源自《心经》关于“空性”的哲学。</p>
<p>王维对“色空”的参悟,一方面展示了他对佛理的虔诚追求,另一方面也表明了他“避世而立”的心态。在晚年,王维自视为有罪之人,怀有深深的自责之心。他的忍辱负重、淡泊名利与佛教“空性”思想有着密切联系。《心经》所强调的“五蕴皆空”与“空性”哲学,为他提供了心灵上的慰藉,使他在儒家难以解决的精神困境中找到了超越的力量。</p>
<p>这一精神归宿,正是佛教思想在唐代士大夫群体中发挥的重要作用——它为那些仕途失意、内心痛苦的士人提供了一种自我疗愈的途径,使他们在现实的磨难中能够重新找到生命的意义与心灵的安宁。王维将这一“内佛外儒”的状态表现得淋漓尽致,他的诗作不仅是个人生命历程的印记,更是唐代士人精神状态的典型缩影。</p>
<h2 id="结语">结语</h2>
<p>本文从《摩诃般若波罗蜜多心经》出发,探讨了《心经》中的核心理念与唐代诗歌之间的联系。研究发现,唐代禅诗中有相当一部分作品阐述了《心经》的核心思想——“空性”。这一“空性”思想不仅为诗歌营造了空灵悠远的意境,更赋予了诗人对生命和宇宙的深刻思考。</p>
<p>随后,本文分析了《心经》对唐代诗人精神与心灵的慰藉功能,重点探讨了白居易和王维在诗歌创作中表现出的佛理精神,发掘出他们作品中《心经》的思想影子。白居易在仕途跌宕中,通过“诸法皆空”的思维方式获得了心灵的宁静,而王维则在经历政治挫折后,将佛教“色空”哲学融入诗作,以此寄托出世之志。</p>
<p>由此可见,作为佛教最重要经典之一的《心经》,在唐代禅诗中发挥了极其重要的作用。其核心理念贯穿于诗人的精神世界与文学表达之中,使唐代禅诗成为佛教思想与中国传统文化交融的结晶。正是这种融合,构成了唐代诗歌中一抹独特而璀璨的风景线,彰显出思想的深邃与艺术的空灵之美。</p>
-
Deploy Self-hosted GitHub Actions Runner with ArgoCD and Akuity Platform
https://yiwei.dev/posts/arc-akuity/
Wed, 25 Dec 2024 15:00:00 +0800
https://yiwei.dev/posts/arc-akuity/
<p><strong>GitHub Actions</strong> simplifies CI/CD but can become costly with GitHub-hosted runners. Self-hosted runners offer better cost control and customization.</p>
<p>This post covers deploying a self-hosted runner using <strong>ArgoCD</strong> and the <strong>Akuity Platform</strong>.</p>
<h3 id="why-argocd-and-akuity-platform">Why ArgoCD and Akuity Platform?</h3>
<p>ArgoCD ensures Kubernetes clusters align with Git-defined states, simplifying management and improving consistency. While ArgoCD is powerful, the Akuity Platform enhances it with added security, usability, and its <strong>KubeVision</strong> tool for efficient Kubernetes resource visualization and troubleshooting.</p>
-
K3s Cloud Master and Local Agent Setup
https://yiwei.dev/posts/k3s-nat/
Mon, 30 Sep 2024 00:00:00 +0000
https://yiwei.dev/posts/k3s-nat/
<p>Setting up a cloud-based k3s master node with local agent nodes allows for easy management of distributed infrastructure. This setup is ideal for scenarios such as integrating a local GPU cluster or managing edge devices like vending machines, ensuring stable network connectivity without the need for additional software.</p>
<h3 id="use-cases">Use Cases</h3>
<ol>
<li>
<p><strong>Local GPU Cluster</strong>: You can add your local GPU cluster as a worker node to the cloud k3s master, enabling centralized scheduling of complex tasks without worrying about network issues.</p>
-
Transitioning from GitFlow to GitHub PR Workflow: A Journey in Streamlining Our Development Process
https://yiwei.dev/posts/github-flow/
Tue, 02 Jul 2024 00:00:00 +0000
https://yiwei.dev/posts/github-flow/
<h1 id="transitioning-from-gitflow-to-github-pr-workflow-a-journey-in-streamlining-our-development-process">Transitioning from GitFlow to GitHub PR Workflow: A Journey in Streamlining Our Development Process</h1>
<h2 id="introduction">Introduction</h2>
<p>In our company, we originally adopted the GitFlow model for our development workflow. This model served us well, facilitating a structured approach to feature development, release management, and hotfixes. However, with the introduction of GitHub and its powerful pull request (PR) workflow, we decided to transition to a more integrated system. This blog post outlines our journey, the challenges we faced, and the solutions we implemented to streamline our development process.</p>
-
非线性优化 - Ceres Solver
https://yiwei.dev/posts/%E9%9D%9E%E7%BA%BF%E6%80%A7%E4%BC%98%E5%8C%96---ceres-solver/
Sat, 23 Dec 2023 00:00:00 +0000
https://yiwei.dev/posts/%E9%9D%9E%E7%BA%BF%E6%80%A7%E4%BC%98%E5%8C%96---ceres-solver/
<p>我们考虑这个优化问题:</p>
<p>$$
\min_{\mathbf{x}} \quad \frac{1}{2} \sum_{i} \rho_i \left(||f_i (x_{i_1}, … ,x_{i_k})||^2\right)
$$</p>
<p>$$
\text{s.t.} \quad l_j \le x_j \le u_j
$$</p>
<p>这个问题又称为<strong>非线性最小二乘</strong>问题。</p>
<p>具体来说,我们寻找$x$的最小值,并且$x$满足了约束$l_j \le x_j \le u_j$,使得函数$\rho_i \left(||f_i (x_{i_1}, … ,x_{i_k})||^2\right)$的和最小。我们又把$\rho_i \left(||f_i (x_{i_1}, … ,x_{i_k})||^2\right)$称之为<strong>残差块(ResidualBlock)</strong>,$f_i (x_{i_1}, … ,x_{i_k})$成为<strong>代价函数(CostFunction)</strong>,且依赖于$x_i$。$x_i$称为<strong>参数块(ParameterBlock)</strong>。同时参数块受到了$l_i$和$u_i$的约束。</p>
<p>特别的这里的$\rho_i$称为<strong>损失函数(LossFunction)</strong>,用于减少外值对解的影响。</p>
<p>特别的,当我们的$\rho_i = f(x) = x$且上下界都为无穷大时,我们的问题简化为:</p>
<p>$$
\min_{\mathbf{x}} \quad \frac{1}{2} \sum_{i} \left(||f_i (x_{i_1}, … ,x_{i_k})||^2\right)
$$</p>
<h2 id="一个最简单的例子">一个最简单的例子</h2>
<p>我们考虑优化一个函数:</p>
<p>$$
\frac{1}{2}(10-x)^2
$$</p>
<p>我们用<code>Ceres Solver</code>来求解这个问题。很显然,这里的代价函数是$f(x) = 10 - x$,$\rho$为 1,且$x$在实数域上没有约束。所以我们定义我们的代价函数</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c++" data-lang="c++"><span style="display:flex;"><span><span style="color:#66d9ef">struct</span> <span style="color:#a6e22e">CostFunctor</span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">template</span> <span style="color:#f92672"><</span><span style="color:#66d9ef">typename</span> T<span style="color:#f92672">></span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">bool</span> <span style="color:#66d9ef">operator</span>()(<span style="color:#66d9ef">const</span> T<span style="color:#f92672">*</span> <span style="color:#66d9ef">const</span> x, T<span style="color:#f92672">*</span> residual) <span style="color:#66d9ef">const</span> {
</span></span><span style="display:flex;"><span> residual[<span style="color:#ae81ff">0</span>] <span style="color:#f92672">=</span> <span style="color:#ae81ff">10.0</span> <span style="color:#f92672">-</span> x[<span style="color:#ae81ff">0</span>];
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> true;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>现在我们可以解决这个优化问题:</p>
-
单目视觉vSLAM
https://yiwei.dev/posts/%E5%8D%95%E6%95%B0%E8%A7%86%E8%A7%89vslam/
Fri, 22 Dec 2023 00:00:00 +0000
https://yiwei.dev/posts/%E5%8D%95%E6%95%B0%E8%A7%86%E8%A7%89vslam/
<p>Matlab 官方提供了完整的单目视觉 vSLAM 的 pipeline,<a href="https://www.mathworks.com/help/vision/ug/monocular-visual-simultaneous-localization-and-mapping.html">https://www.mathworks.com/help/vision/ug/monocular-visual-simultaneous-localization-and-mapping.html</a>。这里对 Matlab 的这边文章的关键点做一个笔记和讨论,具体的实现可以参考原文文档。</p>
<h2 id="初始化数据集">初始化数据集</h2>
<p>Matlab 提供了<code>imageDatastore</code>类用于初始化图像存储集合,其接受一个图像的文件夹路径的参数。</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-matlab" data-lang="matlab"><span style="display:flex;"><span>imageFolder = [dataFolder,<span style="color:#e6db74">'rgbd_dataset_freiburg3_long_office_household/rgb/'</span>];
</span></span><span style="display:flex;"><span>imds = imageDatastore(imageFolder);
</span></span></code></pre></div><h2 id="初始化地图">初始化地图</h2>
<p>在 SLAM 管线中,首先我们应该对相机进行标定,相机标定可以用<a href="https://www.mathworks.com/products/computer-vision.html">Computer Vision 工具箱</a>中的相机标定工具。如果预先知道了相机的内参,可以通过<code>cameraIntrinsics</code>类直接进行初始化。</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-matlab" data-lang="matlab"><span style="display:flex;"><span><span style="color:#75715e">% Create a cameraIntrinsics object to store the camera intrinsic parameters.</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">% The intrinsics for the dataset can be found at the following page:</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">% https://vision.in.tum.de/data/datasets/rgbd-dataset/file_formats</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">% Note that the images in the dataset are already undistorted, hence there</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">% is no need to specify the distortion coefficients.</span>
</span></span><span style="display:flex;"><span>focalLength = [<span style="color:#ae81ff">535.4</span>, <span style="color:#ae81ff">539.2</span>]; <span style="color:#75715e">% in units of pixels</span>
</span></span><span style="display:flex;"><span>principalPoint = [<span style="color:#ae81ff">320.1</span>, <span style="color:#ae81ff">247.6</span>]; <span style="color:#75715e">% in units of pixels</span>
</span></span><span style="display:flex;"><span>imageSize = size(currI,[<span style="color:#ae81ff">1</span> <span style="color:#ae81ff">2</span>]); <span style="color:#75715e">% in units of pixels</span>
</span></span><span style="display:flex;"><span>intrinsics = cameraIntrinsics(focalLength, principalPoint, imageSize);
</span></span></code></pre></div><p>在例子中使用的数据集已经提供了相机的标定参数,我们可以直接使用。注意,对于一般相机获取到的照片来说,我们应该进行照片的去畸变,Matlab 提供了去畸变函数<code>undistortImage</code>,具体用法如下</p>
-
基于TinyTex的中文本地Tex环境
https://yiwei.dev/posts/%E5%9F%BA%E4%BA%8Etinytex%E7%9A%84%E4%B8%AD%E6%96%87%E6%9C%AC%E5%9C%B0tex%E7%8E%AF%E5%A2%83/
Thu, 16 Nov 2023 00:00:00 +0000
https://yiwei.dev/posts/%E5%9F%BA%E4%BA%8Etinytex%E7%9A%84%E4%B8%AD%E6%96%87%E6%9C%AC%E5%9C%B0tex%E7%8E%AF%E5%A2%83/
<p>在TinyTex之前,我已经换过无数个排版工具。从最开始的Word,到Pages,再到基于Markdown开发的MWeb和Ulysses。我很喜欢Ulysses,因为他既支持Markdown,又通过MathJax支持了LaTex语法。但是Markdown的排版能力还是非常有限的,尤其是<code>theorem</code>库的缺乏,Markdown只能作为一个快速笔记软件使用。</p>
<p>后来,我一直在使用Overleaf,不得不说Overleaf是一个非常不错的项目,至今市面上都没有更好的替代品。这也导致Overleaf的价格非常高,甚至学生价格都很高。作为一个研究生和普通的程序员的低频用户,肯定无法为这么高昂的价格付费。而单单免费版本,则又缺乏了类似GitHub同步之类的功能。之所以使用LaTex排版而不是Word,最大原因之一就是LaTex对Git优化,连Git都无法用了,Overleaf实在没有更多吸引我的地方。</p>
<p>之后,我同样使用了一些第三方的LaTex环境。比如在macOS上很好用的Texifier。Texifier这个项目不得不说也是花了很多心思,但可以看得出团队的预算不足,很多地方存在设计的瑕疵和开发的Bug。而且作为一款编辑器来说,他实在算不上功能强大。只不过在LaTex的开箱即用上面,至少做到了顺手。</p>
<p>我还使用了MacTex(或者是Tex Live)+ VScode + LaTex Workshop,从易用性到编辑器的熟悉程度以及到各种细节小问题的处理上,这一套方案基本是最佳方案,唯一的遗憾是庞大的MacTex和墙内的渣网速。在调研搜索过程中,看到了TinyTex这个发行版,TinyTex又有R语言的R Markdown背书,从文件大小到稳定性基本都满足了一个基本的Tex排版要求。</p>
<h2 id="1-下载tinytex二进制发行版">1. 下载TinyTex二进制发行版</h2>
<p>TinyTex的发行版可以直接从GitHub, <a href="https://github.com/rstudio/tinytex-releases">https://github.com/rstudio/tinytex-releases</a>下载获得。我下载的是<code>TinyTeX</code>版本,<code>TinyTeX-2</code>的体积过于庞大,<code>TinyTeX-1</code>和<code>TinyTeX-0</code>的预置package又太少。</p>
<p>下载完成后解压缩放到任意文件夹下,并且将<code>bin</code>目录添加到<code>PATH</code>变量中。我是用的是macOS,因此我的<code>PATH</code>为</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>export PATH<span style="color:#f92672">=</span>$PATH:$HOME/TinyTeX/bin/universal-darwin
</span></span></code></pre></div><h2 id="2-更新tlmgr源和安装中文支持">2. 更新<code>tlmgr</code>源和安装中文支持</h2>
<p>设置好环境变量后,重启终端就可以访问<code>tlmgr</code>。为了在国内更快的访问速度,可以修改<code>tlmgr</code>源为清华源,执行</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>tlmgr option repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet
</span></span></code></pre></div><p>然后安装<code>ctex</code>包获得中文支持</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>tlmgr install ctex
</span></span></code></pre></div><h2 id="3-安装vscode--latex-workshop">3. 安装VScode + LaTex Workshop</h2>
<p>在VScode中安装LaTex Workshop插件,安装成功后打开任意<code>tex</code>文件就可以愉快的书写啦。</p>
<p>对于中文支持,可以使用<code>CJKutf8</code></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-latex" data-lang="latex"><span style="display:flex;"><span><span style="color:#66d9ef">\documentclass</span>{article}
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">\usepackage</span>{CJKutf8}
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">\begin</span>{document}
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">\begin</span>{CJK*}{UTF8}{gbsn}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">\section</span>{前言}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">\section</span>{关于数学部分}
</span></span><span style="display:flex;"><span>数学、中英文皆可以混排。You can intersperse math, Chinese and English (Latin script) without adding extra environments.
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">\end</span>{CJK*}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">\bigskip</span> <span style="color:#75715e">%% Just some white space
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>You can also insert Latin text in your document
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">\bigskip</span> <span style="color:#75715e">%% Just some white space
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">\begin</span>{CJK*}{UTF8}{bsmi}
</span></span><span style="display:flex;"><span>這是繁體中文。
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">\end</span>{CJK*}
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">\end</span>{document}
</span></span></code></pre></div><p>进行中英文混排。</p>
-
渲染方程中的路径积分
https://yiwei.dev/posts/%E6%B8%B2%E6%9F%93%E6%96%B9%E7%A8%8B%E4%B8%AD%E7%9A%84%E8%B7%AF%E5%BE%84%E7%A7%AF%E5%88%86/
Mon, 16 Oct 2023 00:00:00 +0000
https://yiwei.dev/posts/%E6%B8%B2%E6%9F%93%E6%96%B9%E7%A8%8B%E4%B8%AD%E7%9A%84%E8%B7%AF%E5%BE%84%E7%A7%AF%E5%88%86/
<p>路径追踪是第一个光线传输算法,并广泛应用于Realistic Rendering中。路径追踪将渲染方程的积分式转换成一个路径积分的形式,并且通过蒙特卡洛积分方法对每一项进行积分,从而得到一个统计上无偏的渲染结果。因为路径积分的无偏属性,路径积分也常常被用作为渲染的Ground Truth,用于对比其他的渲染方法。</p>
<h2 id="渲染方程">渲染方程</h2>
<p>要完全推导路径积分并且用代码表示路径积分的计算过程,我们需要从渲染方程入手。</p>
<p>首先需要明确的一点是,渲染的目标是计算最终进入眼睛(摄像机)的辐射亮度(Radiance),即单位面积,单位立体角上的光通量(辐射功率)。另外一个重要的概念是辐射照度,辐照度(Irradiance),即单位面积上光通量(辐射功率)。根据几何光学的线性假设,当光射到物体表面产生反射的时候,其反射方向的辐射亮度的微分,和入射方向上辐射照度的微分成线性关系。这两者比例常数由入射角$\omega_i$和反射角$\omega_o$和物体表面属性直接给出,我们把这个函数称之为BRDF(双向反射分布函数),$f(p, \omega_i, \omega_o)$。双向反射分布函数理解起来比较具有挑战性,一个简单的方法是将其辐照度和辐亮度类比为连续型概率的中的随机变量和累积概率函数,那么累积概率函数和随机变量的微分比值,即BRDF,就是概率密度函数。</p>
<div>
$$dL_o(p, \omega_o) = dE(p, \omega_i) = f(p, \omega_i, \omega_o)L_i(p, \omega_i)cos\theta_id\omega_i$$
</div>
<p>有了BRDF函数,我们就建立起了,对于物体表面上的一个点,点$p$,其反射的辐射亮度$L_o(p, \omega_o)$和入射的辐射亮度之间的关系,进一步的,如果我们考虑$p$上的自发光的辐射亮度$L_e(p, \omega_o)$,那我我们就可以建立起渲染方程</p>
<div>
$$L_o(p, \omega_o) = L_e(p, \omega_o) + \int f(p, \omega_i, \omega_o)L_i(p, \omega_i)cos\theta_id\omega_i$$
</div>
<p>如果我们只考虑不透明反射模型,而不考虑更复杂的折射和次表面反射,那么我们的积分范围即是围绕表面法线的半球积分。</p>
<h2 id="方向积分形式和面积积分形式">方向积分形式和面积积分形式</h2>
<p>从渲染方程中,对于$L_e$项是相对简单的,我们可以从物体表面材质定义获得。对于积分项,我们则需要知道每个方向的$L_i$。首先需要明确一点,在真空环境中,光在传播过程中,辐射亮度并不发生变化。对于$L_i$项来说,其就等于它来自方向的点$p’$的反射的辐射亮度。为了更好的表示这一点,我们用函数$t(p, w_i) = p’$表示。函数$t$指的是,从$p$点出发,沿着$w_i$方向,第一个相交的点,即为$p’$。由此,渲染方程可以改写为</p>
<div>
$$L_o(p, \omega_o) = L_e(p, \omega_o) + \int f(p, \omega_i, \omega_o)L_o(t(p, \omega_i), \omega_i')cos\theta_id\omega_i$$
</div>
<p>然而我们无法显式定义函数$t$,于是上面这个式子就无法显式定义,对于上面函数的展开,则必然包含着一个关于函数$t$的递归项无法消除。这使得我们仅仅可能通过递归黎曼求和的形式得到积分结果,而无法使用诸如蒙特卡洛近似的方式进行数值上的快速拟合。</p>
<p>为了显式改写该函数,我们重新定义一些记号,用于方更方便阅读。</p>
<p>首先是反射的辐射量度和入射的辐射亮度。在光线传输过程中提到,对于真空来说,辐射亮度在传输过程中不发生变化。那么对于一个点的入射辐射亮度,即是其来自方向反射(或者自发光)的辐射亮度。于是我们是用$L(p_1, p_0)$记号替代$L_i$和$L_o$,其表示点$p_1$到点$p_0$的辐射亮度。</p>
<p>同样的,BRDF方程记号我们也可以做相应的变化,我们使用$f(p_2, p_1, p_0)$表示从点$p_2$出发,击中表面点$p_1$,发生反射到达$p_0$的光路的BRDF。显然,该表达方式蕴涵了之前的立体角,从而在数学上是等价的。</p>
<p>经过上面两次记号的变化,在表达式上我们已经消除了立体角$\omega$的存在,然而微分项$d\omega_i$依然存在,我们需要将该微分项同样转换为关于点的表达式。由于</p>
<div>
$$\omega = \frac{Acos\theta'}{d^2}$$
</div>
<p>我们便将立体角的微分转换为对应顶点处的面积微分,为此,我们引入一个函数</p>
<div>
$$G(p_0, p_1) = V(p_0, p_1)\frac{|cos\theta_0||cos\theta_1|}{||p_0-p_1||^2}$$
</div>
<p>其中函数$V(p_0, p_1)$为可见性函数,如果两个点相互可见,则$V=1$,否则$V=0$。</p>
<p>于是渲染方程可以改写为</p>
-
《动物庄园》自由和平等的谎言引发的独裁
https://yiwei.dev/posts/%E5%8A%A8%E7%89%A9%E5%BA%84%E5%9B%AD%E8%87%AA%E7%94%B1%E5%92%8C%E5%B9%B3%E7%AD%89%E7%9A%84%E8%B0%8E%E8%A8%80%E5%BC%95%E5%8F%91%E7%9A%84%E7%8B%AC%E8%A3%81/
Thu, 24 Dec 2020 11:30:03 +0000
https://yiwei.dev/posts/%E5%8A%A8%E7%89%A9%E5%BA%84%E5%9B%AD%E8%87%AA%E7%94%B1%E5%92%8C%E5%B9%B3%E7%AD%89%E7%9A%84%E8%B0%8E%E8%A8%80%E5%BC%95%E5%8F%91%E7%9A%84%E7%8B%AC%E8%A3%81/
<p>一部小说描述的是故事情节,一则寓言揭示的是事物的本质。《动物庄园》出版于1945年,值二战胜利前夕。作者乔治.奥威尔在书中描写了一只猪引发的革命,随着时间推移,革命开始退化为独裁统治,并最终失败。</p>
<p>推想革命失败的原因,有人说是独裁政治,有人说是极权主义,这些当然是革命失败的显然因素。然而这巨大的不幸却一早就隐藏在了自由和平等的巨大谎言中。动物们的革命动力来自于老麦哲的美好愿景。肥沃的土地,丰富的食物,整个庄园都是欣欣向荣的样子。老麦哲宣告,推翻人类统治,建立一个自由与平等的庄园。动物们坚定不移的相信,自由和平等带来的是美好的一切,是没有压迫没有剥削的乌托邦的社会。</p>
<p>然而现实并不是如此。整一个自然界中永远不会存在自由和平等。无论是残忍的生存法则,还是一条条的生物链,都昭示着自然界对自由和平等嗤之以鼻。没有任何理由能说明为什么老虎可以吃别的动物,也没有任何原因可以解释为什么蚂蚁天生就弱小,被其他动物欺凌。动物们所谓的自由和平等绝不会催生出一个乌托邦一般美好的社会,而他们的信仰却成为独裁者的欺世的谎言。正如书中的动物们,他们不断被聪明狡诈的猪们威胁说,“你们可不想琼斯先生回来吧。要是琼斯先生回来,我们就再也不会有自由”。动物们都害怕失去自由,然而动物们却都不知道到底什么是自由,谁也无法定义什么是人人平等。所有人知道的,便是记着老麦哲的美好愿景,他们误以为,那是自由和平等带来的未来。这样不明就里的相信,使得信仰变成了统治者统治的工具,信心成为独裁者控制的最佳法器。</p>
<p>反过来问,我们的世界是否要自由和平等。需要的!我们需要的自由是一套完整制度,完整法令保护下的人格的独立。法国大革命《人权宣言》对自由的定义是:“自由即有权做一切无害于他人的任何事情。”在二战中,罗斯福提出了四大自由:“言论自由,信仰自由,免于匮乏的自由和免于恐惧的自由。”在联合国人权宣言中,四大自由被重申。反观《动物庄园》中动物们的自由,却哪里找得到言论,信仰,免于匮乏和恐惧的自由。反而较之以前,动物们被更多的剥削,这一点从鸡们被麦哲伦要求上缴更多的鸡蛋就可以看出。但是具有讽刺的是,动物们并没有马上意识到自己被愚弄,动物们心中所想的事,反而是需要更加努力的工作。比如Boxer就是一个典型的例子,他从最开始和小公鸡约定要提前半小时起床工作到后来的提前一个小时提前工作。Boxer是革命的忠实拥护者,他小心翼翼的维护者革命的成果,他更加是自由和平等的拥护者。但是正因为他的固执地坚信老麦哲的政治思想——即自由会带来丰收,而无人类的约束即是最大的自由。他的固执使得他深受毒害,最终也造成了他惨死悲剧。</p>
<p>作为寓言故事,《动物庄园》影射了当时俄国从十月革命到1940年的历史过程。其实在现实过程中,不乏这样的革命者。中国历史上垒起呐喊着消灭暴政的各样农民起义,最终沦为新的苛政。而作为革命的主题的农民们,依然把持着美好的愿景,甘心的被奴役。着眼于中国现代史,这样的事件也屡见不鲜。革命者曲解社会主义,塑造了共产主义的美好愿景,却直接导致了大跃进等经济上的严重倒退。</p>
<p>那么我们需要什么样的自由和平等?动物们所需要的,不仅仅是一个美好的愿景,不仅仅是一场革命,不仅仅是推翻一个领袖,不仅仅是七戒这样的一张宣言,更不仅仅是一个能带领动物们走向自由的麦哲伦一般的领袖。他们需要的是一套制度以及能使这套制度运行的动力。而动物们所想的自由,所想的美好愿景,是这一套法律能够给予保护的人格的独立。动物们需要的是一套法案,他规范了所有动物的职责,任何超越这些职责的动物都应当受到谴责。他限制了所有人的职能,没有一个人——比如麦哲伦——可以独断的决定一切。当然动物们还需要的是带动整个社会运作的动力。从动物们的风车计划就可以看出动物们并没有能力支撑起他们小小庄园的运作。他们松散的结构根本无法供给自身。这样一个缺乏能量来源的乌托邦社会,最终沦为麦哲伦手中的玩物,和人类大摇大摆的做起交易,并安上了一个救世主的美名。</p>
<p>我们无比渴望自由,但是正如孙中山先生所说,这个世界上没有绝对的自由。在此告诫改革者们,即使是一套有漏洞有缺陷的制度,也远远比假大空的空想愿景更好。</p>
-
Asynchronous function in Unity
https://yiwei.dev/posts/asynchronous-function-in-unity/
Mon, 16 Nov 2020 11:30:03 +0000
https://yiwei.dev/posts/asynchronous-function-in-unity/
<h2 id="async-and-await-keyword">Async and await keyword</h2>
<p>Since Unity 2019, Unity introduces C# task and async/await keyword to MonoBehaviour. For Unity callback functions like <code>Start</code>, <code>Update</code>, now it supports the async version, and with the <code>async</code> keyword in the front, the function now will be dispatched asynchronously automatically by the engine.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c#" data-lang="c#"><span style="display:flex;"><span><span style="color:#66d9ef">private</span> <span style="color:#66d9ef">async</span> <span style="color:#66d9ef">void</span> Start()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> Debug.Log(<span style="color:#e6db74">"Start task delay 2 seconds"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">await</span> Task.Delay(TimeSpan.FromSeconds(<span style="color:#ae81ff">2</span>));
</span></span><span style="display:flex;"><span> Debug.Log(<span style="color:#e6db74">"Task delay 2 finished"</span>);
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>The function on the above will be executed and the first log shows immediately while the second log shows after 2 seconds.
The C# build-in HTTP library also provides a nice async wrapper, which can be used in the asynchronous MonoBehaviour as well.</p>
-
Rendering Equation
https://yiwei.dev/posts/rendering-equation/
Sun, 12 Jul 2020 11:30:03 +0000
https://yiwei.dev/posts/rendering-equation/
<iframe src="https://onedrive.live.com/embed?resid=3B28EE8BB218C5BA%2136170&authkey=!AJTAvgfb5YoYD8c&em=2&wdAr=1.7777777777777777" style="width: 100%; aspect-ratio: 4/3;" frameborder="0">
Presentation of Rendering Equation
</iframe>
-
The Last of Us
https://yiwei.dev/posts/the-last-of-us/
Sun, 08 Jul 2018 11:30:03 +0000
https://yiwei.dev/posts/the-last-of-us/
<p>上个星期的时候,玩完了The Last of Us,还有DLC – Left Behind。玩完的时候,有一种怅然若失的感觉,一直想写一篇文章来结束这20小时的故事,但总觉得不知道感情的着落点在何处,甚至沉思了许久,写了又删,结果便是连开头都没有挤出一点。</p>
<p>这个星期意外的发现,顽皮狗在游戏中专门放入了特典,对游戏中的每一段CG都加入了两位主角主演,以及编辑的一些评价。原本便意犹未尽,于是这周,把所有的CG以及顽皮狗的制作特辑都欣赏了一遍,总算可以来一个告别,以至于愈发觉得有必要来写一些什么。</p>
<p>在The Last of Us之前,我才刚刚结束顽皮狗的神秘海域系列。大概是一个星期的时间,每天晚上都在玩神秘海域。一口气结束了神秘海域1-3合集,神秘海域4,还有大型DLC失落的遗产。第一次接触神秘海域4,被完美壮阔的风景所惊艳,然后是神秘海域2的火车剧情更加是惊叹不已,再到最后的遗产,开始慢慢发现固定的好莱坞式剧情,随后玩法的慢慢重复,角色性格固化,便不难理解顽皮狗宣布神秘海域全系列终结的原因。一度讨厌“恐怖游戏”,一直不太喜欢僵尸题材,但因为对顽皮狗的喜爱,开始尝试The Last of Us。结果没想到的是这个游戏给我了PS4上最大的惊喜。</p>
<p>序章开始的时候,Sarah被士兵无情的杀害,Joel在Sarah去世前,无助和痛苦成为了他这二十年对这个世界的报复。Bill说过一句话,在这个末日的世界中,你不能关心别人,因为他们最后只会成为让你被杀害。顽皮狗并没有告诉我们Joel这二十年到底经历了什么。但是从他的行为,其他角色的只言片语中知道,他并不是英雄,甚至连好人都不是。</p>
<p>第一次Joel带着Ellie穿越军事防区的时候,Joel随手杀死了守卫的士兵。Ellie问Joel,你杀过很多人么?在经历了这么多游戏,会突然觉得很神奇。以前,每一个游戏都是主角一路突突突,遇神杀神,遇佛杀佛,仿佛死亡是一件很轻松的事情。然而在The Last of Us中,顽皮狗无时无刻不在渲染死亡的恐惧。亏缺的物资,漫长的击杀CG还有无处无在的感染者。杀人变成了一件不得不做的事情。</p>
<p>所以Joel一定不会为了Ellie付出自我。一个莫名其妙的小女孩,甚至是一个被感染者。在这样的一个末世,对别人的任何一点更多的关心,都会招来杀身之祸。你能做的,就是对一切事物冷漠,自私自利。</p>
<p>但是Joel并不讨厌她。甚至Joel会在那么一两个地方,被Ellie的坚持和勇敢所感动。但是Joel并不是一个善于表达的人,也更不会对Ellie敞开心扉。Sarah的去世已经让Joel对这个世界彻底失望。更何况,对Ellie倾注多一点点的情感,在这人人自危的末世,指不定哪一天失去Sarah的那一幕会在Ellie身上重演。</p>
<p>为了强化这种情感的羁绊,编剧甚至引入了Henry和Sam俩兄弟。Henry就像是Joel的侧写,一个Joel善良一面的侧写。为了Sam,Henry可以付出一切。他们自私,在危急关头抛弃Joel和Ellie逃跑。他们依然善良,在Joel和Ellie落水后,把他们救上岸。Henry对Joel说,换作你你也会这么做,为了保护她你不惜牺牲一切。这是第一次——编剧透过第三人称告诉我们——Ellie在Joel的心中,就好像埋下了一颗种子,在未来的某一时刻,会发芽,然后爆发,最后Joel彻底接受Ellie。</p>
<p>Sam被感染的时候,Henry无奈之下,枪杀了Sam。Henry在自杀前,用枪指着Joel说,喃喃自语,it’s all your fault。“你”当然指的是Henry自己。编剧用Henry和Sam讲诉了一个Joel和Ellie的侧写。在世界末日之时,谁也不知道明天会是如何。也许在Ellie会变成另一个Sarah,而Joel则变成下一个Henry。Joel从来都没有表示什么。他杀人依旧是那么利索可怕,甚至折磨起人来也丝毫不手软。然而我们却那么深刻的感受到,Joel所害怕的便是在他眼前失去Ellie,就好像二十年前失去Sarah那样,以至于Joel是如此希望弟弟Tommy能代自己护送Ellie找到火萤。</p>
<p>直到Joel找到出走的Ellie,Ellie当着他的面说,你到底在害怕什么,而我比你更害怕,身边的所有人不是抛弃自己便是死去,只有Joel带着自己走过这么多困难。Ellie把Joel视为父亲和唯一信任的人。而Joel却因为害怕而不敢接受她。直到Ellie说,I am not her。也许这是二十年来,第一个对着Joel的面说起Sarah的人,而这一下,也彻底击中了Joel心中善良柔软的那部分。</p>
<p>故事进入后半段。两个主角从陌生人,开始真正变得互相依赖。Joel会跟Ellie说Sarah。他说,如果Sarah还活着,她和Ellie一定会是好朋友。Sarah一直是Joel的善良和柔软的那部分,也是在这个末世下,Joel身上剩下的人性。而终于在二十年后,被这个陌生的小女孩唤起。</p>
<p>也许编剧觉得这么多还不足够让Joel彻底的把Ellie当作自己的女儿,于是便精心策划了Joel的受伤。全篇只有一章,玩家可以从Ellie的视角去看世界。Joel的重伤把这个冬天变得特别难熬。Ellie学会打猎,从一个被人照顾的小女孩,开始担负起照顾Joel的责任。甚至为了保护Joel,不惜引开敌人而不幸被抓。 于是,编剧告诉了我们这个世界真正邪恶的一面。人们因为食物匮乏而互相杀害,甚至是吃人也正常不过。Ellie无疑坚强,勇敢。然而在Ellie杀死David的时候,Ellie的情绪已经在奔溃边缘。前来救Ellie的Joel冲进来抱住Ellie,这是他第一次抱住Ellie,也终于,Joel真正接受了父亲这个角色。</p>
<p>经历了人间最恐怖的地狱以后,故事给了我们一个巨大的温馨。看着长颈鹿在废墟缓缓的走动,看着Ellie活蹦乱跳的样子,我们暂时忘记了一路过来的血腥和恐怖。Joel对Ellie说,我们可以不必这样。Joel已经无法再失去Ellie,更不愿意她受到任何伤害。</p>
<p>在他们到达医院之前,Ellie溺水了。Joel手足无措,他只想就活Ellie,甚至在士兵靠近,枪抵着脑袋的时候,他还在抢救Ellie。编剧把二十年前,序章里Sarah的意外投影在Ellie身上,在Joel第二次经历到的时候,我们就好像Joel一样,无论如何,不能再失去Ellie了。 对啊,去他妈的拯救世界。</p>
<p>不是好莱坞电影中英雄般的结局,甚至反派都不能称作反派,更加的,连BOSS战都被CG带过,然而当看到穿着手术服的Ellie静静地躺在车后座,多少人像我一样,还好,Ellie还活着。只有Ellie或者,全世界都死了又怎么样呢?</p>
<p>当世界有了声音,人们便听到了别人所听到的。当世界有了画,人们便见到别人所见到的。当世界有了语言,人们便联想到别人所想到的。当世界有了电影,人们便经历到别人所经历到的。而当世界有了游戏,人们便听到了,见到了,联想到了,经历到了所有的一切。谁说游戏不是艺术呢? 顽皮狗大概是这个世界上最会讲故事的游戏公司。从来不觉得,李逍遥就一定要保护灵儿回苗族,从来不觉得因为父亲,劳拉就一定会成为古墓丽影。所有的故事都在为发展找铺垫,找借口。而顽皮狗却因为铺垫而展开故事。而作为玩家,在这十五小时,拿着手柄和Joel,和Ellie一起走完这一整年的旅程,愈发地从内心,和他们产生一样的情感共鸣。</p>
<p>总觉得说什么都不够评价The Last of Us。但如果硬要说一句感受,大概是这么一种感觉:</p>
<p>想马上出门,买一台PS4和The Last of Us,然后封藏在地下室。等多年后,我有了孩子——最好是女儿——然后在她十四岁的时候,送她The Last of Us,然后和她一起经历Joel和Ellie的这段故事。</p>
-
满江红·二十三生日所作
https://yiwei.dev/posts/%E6%BB%A1%E6%B1%9F%E7%BA%A2%E4%BA%8C%E5%8D%81%E4%B8%89%E7%94%9F%E6%97%A5%E6%89%80%E4%BD%9C/
Tue, 28 Feb 2017 11:30:03 +0000
https://yiwei.dev/posts/%E6%BB%A1%E6%B1%9F%E7%BA%A2%E4%BA%8C%E5%8D%81%E4%B8%89%E7%94%9F%E6%97%A5%E6%89%80%E4%BD%9C/
<p>家住江南,又到了,初春颜色。南洲处,几番风雨,几番漂泊。五载年华弹指去,此为蜗角须臾国。笑尘埃、二十三年非,长为客。 停云处,青山碧;谪仙诗,追黄鹤。叹营营众宦,诛文伐墨。千百年传吾辈话,岂能未老头先白。吐狂谈,欲与古人歌,同君乐。</p>
-
谢池春
https://yiwei.dev/posts/%E8%B0%A2%E6%B1%A0%E6%98%A5/
Wed, 30 Apr 2014 11:30:03 +0000
https://yiwei.dev/posts/%E8%B0%A2%E6%B1%A0%E6%98%A5/
<p>岁晚蓝田、曾是将军飞虎。罢南山、桑麻社曲。雕弓花射,醉言英雄故。客长亭、霸陵羁旅。 江边老叟,拟泛扁舟吴楚。梦干戈、伤心柝鼓。吾庐寒小,未得刘郎顾。看江山,一蓑烟雨。</p>
-
敬赠王琪琳吾兄一百字
https://yiwei.dev/posts/%E6%95%AC%E8%B5%A0%E7%8E%8B%E7%90%AA%E7%90%B3%E5%90%BE%E5%85%84%E4%B8%80%E7%99%BE%E5%AD%97/
Fri, 31 Jan 2014 11:30:03 +0000
https://yiwei.dev/posts/%E6%95%AC%E8%B5%A0%E7%8E%8B%E7%90%AA%E7%90%B3%E5%90%BE%E5%85%84%E4%B8%80%E7%99%BE%E5%AD%97/
<p>我本楚狂人,凤歌笑孔丘。 当逢接舆客,停马轻貂裘。 剑阁有郎俊,年少出杭州。 天涯难一遇,相逢在南楼。 美酒沾白露,纷纷与君酬。 千古同一醉,借消万古愁。 酒罢同君语,长饮复还休。 高山俯仰止,大河亘古流。 莫逆平生死,刎颈相交游。 人间有知己,对歌笑万侯。</p>
-
酒中仙
https://yiwei.dev/posts/%E9%85%92%E4%B8%AD%E4%BB%99/
Fri, 31 Jan 2014 11:30:03 +0000
https://yiwei.dev/posts/%E9%85%92%E4%B8%AD%E4%BB%99/
<p>我本骑鲸人,受封酒中仙。 千杯醉不倒,万倾梦里眠。 潦倒穷姿态,请君听我言。 人生难百岁,往事如尘烟。 魏王军百万,吩咐酒尊前。 当作云中客,逍遥一神仙。 主人出白马,宾客取长绢。 珍奇千山事,都做换酒钱。</p>
-
应王之铮兄诗
https://yiwei.dev/posts/%E5%BA%94%E7%8E%8B%E4%B9%8B%E9%93%AE%E5%85%84%E8%AF%97/
Fri, 22 Nov 2013 00:00:00 +0000
https://yiwei.dev/posts/%E5%BA%94%E7%8E%8B%E4%B9%8B%E9%93%AE%E5%85%84%E8%AF%97/
<p>快饮楼头九重天,按乐清歌笑众贤。 六孔音停陈百岁,七弦声动说千年。 金锤朱亥魏和赵,匕首荆卿秦与燕。 暂住歌筳安簟枕,请君共我醉时眠。</p>
-
酬之铮兄诗
https://yiwei.dev/posts/%E9%85%AC%E4%B9%8B%E9%93%AE%E5%85%84%E8%AF%97/
Fri, 22 Nov 2013 00:00:00 +0000
https://yiwei.dev/posts/%E9%85%AC%E4%B9%8B%E9%93%AE%E5%85%84%E8%AF%97/
<p>吾本雕朽质,尝闻八斗才。 高歌藏海境,谈笑有蓬莱。 醉月寻仙迹,幽游到古台。 终南多迷困,驾鹤与君开。</p>
-
得来烹煮味偏浓,笑傲江湖打哄
https://yiwei.dev/posts/%E5%BE%97%E6%9D%A5%E7%83%B9%E7%85%AE%E5%91%B3%E5%81%8F%E6%B5%93%E7%AC%91%E5%82%B2%E6%B1%9F%E6%B9%96%E6%89%93%E5%93%84/
Fri, 22 Mar 2013 00:00:00 +0000
https://yiwei.dev/posts/%E5%BE%97%E6%9D%A5%E7%83%B9%E7%85%AE%E5%91%B3%E5%81%8F%E6%B5%93%E7%AC%91%E5%82%B2%E6%B1%9F%E6%B9%96%E6%89%93%E5%93%84/
<p>最近新版的笑傲江湖热播,虽然某些故事颇有恶搞之嫌,原本的桃谷六仙这样的剧情也被强搭硬牵放到了东方不败身上。原本任盈盈数次救令狐冲也被改为东方不败数次舍命。难怪看客们说来,任盈盈简直小三无疑。虽然众多剧情改变,但是新笑傲江湖的人物刻画还是较为准确,也没有大改原著。对着小说也看了一遍,在次便谈谈书中令狐冲和林平之两位。</p>
<p>《笑傲江湖》金庸作于稍晚时期。笔法成熟文件,寓意深远。金庸武侠的一大特点便是寓史于文。在中华历史中,鬼斧神工一般开凿出一个小缝,然后江湖上的腥风血雨也都在这个小缝中铺展开来。金庸先生博闻强记,每一段故事随是夹缝中求生,却是有血有肉,恍惚历史上真有其人,真有其事。但是《笑傲江湖》却从未点名历史时间。只是从字里行间,我们能估摸着知道,约是宋朝以后的故事了。话虽如此,正如金庸先生自己所说,《笑傲江湖》中的故事虽然没点名在哪一个朝代,但是故事本身却可以发生在任何一个朝代。所谓的正派,勾心斗角,所谓的魔教却能出手救人性命。所谓的君子剑到头来却是笑里藏刀,所谓的妖女却是一往情深。一切的一切,每一步走的都是有违常理,却也合乎人性。是故说金庸先生笔力雄厚,更是拿捏的十分精稳。</p>
<p>那么这样一部影射政治勾心斗角的奇文,其承载点又于何处?回转来,便是从令狐冲这个浪荡不羁的人爆发出来。至于林平之,只不过是这政治恶斗的牺牲品罢了。</p>
<p>在书中,首先出场的并不是令狐冲,反倒是林平之。林平之出场之时,便带着一种大家子弟的样子。穿的是锦袍,骑的是骏马,有一群小跟班在后面喊,少爷,公子。虽说是大家子弟,但是在林平之身上,我们却看不到那种纨绔子弟特有的傲娇之意。他对任何人都是和和气气的。甚至对身份甚低的茶馆老头也是和和气气。对旁边的人,虽然我们没有看到那种大口喝酒,大口吃肉的豪气,但是却也从不拘泥小节。最好的是,林平之自己虽然武功低微,但是见到青城派的人调戏民女之时,心中却毫无畏缩,金庸先生曾经说过,武侠武侠,在侠而不在武。纵然是武功平平,但是心中有任侠之心,这样的人就可称之为大侠。文至此处,林平之确实可称之为大侠。</p>
<p>林平之的出场,笔墨并不少。整整两章都从林平之的眼睛里看世界。林平之还是一个单纯的人,他眼睛中的世界也是单纯和纯粹的。甚至正邪也没有多大的分辨。最关键的是,就因为这样单纯的世界中,才有了令狐冲戏剧化的出场。</p>
<p>在《笑傲江湖》一书中,令狐冲正式出场反倒是在四五章之后,而前面的文字,却是大家口中的令狐少侠,令狐大哥,以及令狐败类了。金庸先生这样大费周折的用大量笔墨引述他人的话,无非是把令狐冲描写的更加戏剧化。与其说是林平之性格上不如令狐冲,倒不如说是,金庸太偏爱笔下这位令狐少侠了。</p>
<p>令狐冲出场和林平之却有异曲同工之妙。林平之救下了岳灵珊,令狐冲救下了仪琳。而且两个人较之对手,武功都是平平。林平之被青城派打得一塌糊涂,令狐冲也被田伯光砍得重伤。林平之不惧生死,数次对父母说,大丈夫一人做事一人当。令狐冲也是舍命跟田伯光打赌。两件非常类似得事情,在叙述上却完完全全的不一样,甚至人物的形状,性格都是高下立分。我们对此时的林平之的感情若何?同情,甚至对他的意气用事有些许厌恶。但是说到意气用事,令狐冲比林平之又多了不知多少倍。我们看到的令狐冲却真的是那个令狐少侠了。原因还是那一个,金庸实在是太偏爱令狐冲了。</p>
<p>林平之的对手是机关算尽的余沧海之子。我们看到的林平之是,少不更事甚至完全不知江湖险恶的一个小孩子。于是他这一场架,没有赢得多大的赞赏,没有人大声叫好,有的只是看着一个小孩子被欺负,大家心头的那一阵同情罢了。反过来看令狐冲,令狐冲的对手田伯光却是一个有血有肉的坏好人。一方面他是众人唾弃的采花大盗。另一方面,我们又看到他是言而有信,甚至愿意拉着妨碍自己好事的令狐冲喝上一杯的爽快人。虽然令狐冲被他欺负的不成人样。我们从令狐冲没正经的言辞中,也从田伯光那些,“我当你是兄弟,大家都是爽快人,卖你个面子”这些语不着调的言辞中,影射出了令狐少侠身上那种不羁的灵气。所以,虽然听到他满身是血,甚至是命不久矣。我们却没有伤心,没有同情,反倒是想说,这小子牛逼好样的。</p>
<p>都所谓性格受到环境的影响。我们不妨看看林平之和令狐冲的生活环境。写到此处,我又不得不想提笔骂上金庸先生一句,他实在是太偏爱令狐冲了。林平之从小就是在父母的保护下长大,也从小学了不错的武功。做事也从不畏首畏尾。但是我们却看到林平之身上一种被戏剧性扩大的性格,冲动。林平之的冲动来自于他骨子里的倔强。林平之很倔强,不肯向人低头。我们很难说这是一种好的性格还是一种坏性格。在人心险恶的江湖,冲动带来的结果就是被人欺侮。林平之挂在口边的总是,孩儿这口气咽不下,不妨提剑跟他们拼命。他不懂的包掩仇恨,甚至一味的放任仇恨。林平之会把仇恨牢记于心,谁对他好谁对他不好他心里都会记着。但是他却不懂的控制,不懂的君子报仇十年不晚。所以林平之的倔强,是一种匹夫心态。</p>
<p>令狐冲的倔强却是完完全全不同。有人说令狐冲整天笑嘻嘻的没个正经样,哪来的倔强。但是不妨看他在金刀王家的所作所为。打死不肯跟人说一句好话,打死不与他们为伍。这不是一种倔强?又看他和田伯光,打死不肯求饶一句,直到死前都还是笑嘻嘻的,这更是令狐冲的倔强。但是他和林平之不同的是,他的傲气不是来自于仇恨,而是来自与骨子里的那种气魄。令狐冲是不计较仇恨的。甚至他的世界里,仇恨是一个很难的东西。正是因为这样,令狐冲也很少有仇家。他被田伯光坎的奄奄一息,后来却和这个采花大盗成为好友。纵然他对林平之很是吃醋,但是从不忘这个小师弟。纵然岳不群怀疑他,猜忌他,虽然他郁闷了一些日子,却也不放在心上,照样喝酒取乐。甚至,桃谷六仙把他折磨的生不如死,他也从来没真正放在心上。令狐冲式的倔强不是和人过不去,也不是和事情过不去,而是他骨子里的傲气罢了。而林平之式的倔强则是和仇恨生息相关,这也导致了后来他被仇恨冲昏了头脑。</p>
<p>至于为什么要说金庸先生偏爱令狐冲。大家且看林平之,林平之是家中娇生惯养的富二代,因此他的性格养成也与父母疼爱有关。令狐冲从小孤苦伶仃,被岳不群收养。在令狐冲长大之时,岳不群还是君子的样子。师父师母都从不会调笑,都是一本正经的人。挂在嘴边的也是满口的道德正义。但是在这样的环境下,令狐冲骨子里那种不羁的灵魂却还是保留下来了。我们要问为什么,只能说,金庸实在是太爱令狐冲了。</p>
<p>最后,我们不禁要问,林平之爱岳灵珊吗?令狐冲爱任盈盈吗?第一个问题,不知道。第二个问题,答案却是肯定的。首先回答第一个问题。林平之爱岳灵珊吗?林平之和岳灵珊在一起不过是令狐冲面壁思过时候的事情。金庸在书中并没有细写。电视剧里,把林平之表现的是阴险毒辣,利用岳灵珊达成自己的目的。但实际上,当当这样考虑是不周全的。林平之对这个妻子还是有感情的。在小说之初,林平之就宁可牺牲自己,也不要师父,以及这个师姐受辱。问题在于,这样的感情是纯粹的吗?我们不知道。我们不知道的是林平之被仇恨冲淡了感情还是利用了感情填补他心中的仇恨?但不管怎么样,这样的感情是不纯粹的。甚至他们两个在一起都让人很好奇。岳灵珊贪玩,林平之却只顾着学剑。这样的故事,我们只能说,岳灵珊爱平之是绝对的。但是平之是不是爱这个师姐,我们却不得而知。</p>
<p>岳灵珊是个很好的女孩子。人们往往因为她移情别恋而痛恨她。其实我们看的很清楚,这只不过是情窦初开的少女情怀罢了。有人说,岳灵珊的性格是不会移情别恋的,只不过金庸要把这个人的位置让给任盈盈罢了。因为任盈盈实在是太完美了。回到之前的问题,令狐冲爱岳灵珊吗?爱,令狐冲太宠爱他这个小师妹了。但是这一种爱却不是夫妻情人那样的互相怜惜。但是令狐冲对盈盈的感情却是完完全全的爱恋。因为任盈盈实在是太配令狐冲了。我们往往只看到令狐少侠身上那种放荡不羁的样子,以为他和贪玩爱闹的灵珊是一对儿,我们却忘了令狐少侠身上的那种豪气。而他的那种不羁,只不过是他豪气的一种片面的表现罢了。至于任盈盈,我们却也找的到这样的豪气。从出手救自己的情敌,在从和令狐冲对饮,为令狐冲不顾生死,又和江湖上各路豪杰交好却从不是因为所谓的正邪偏见。听她琴身知她细腻,看她舍命救令狐冲知她情深意切,看她设计左冷禅知她冷静多谋。而令狐冲也是这样的人。令狐冲虽不会抚琴,但听到笑傲江湖曲心中登时开朗欢心。他对盈盈也是一往情深。从他的处事的态度,他也是足智多谋,从不拘泥小节。这样的两个人在一起才是千古绝配。</p>
<p>一句话来说这两个人。两个性情并无多大差异。起初的处事为人,都能称上一句少侠。但是令狐冲性格不羁,林平之却困于仇恨。因此令狐冲越走越开阔,林平之越走越狭隘,最终把自己逼上绝路。</p>
-
念奴娇
https://yiwei.dev/posts/%E5%BF%B5%E5%A5%B4%E5%A8%87/
Fri, 22 Mar 2013 00:00:00 +0000
https://yiwei.dev/posts/%E5%BF%B5%E5%A5%B4%E5%A8%87/
<p>银钩铁划,笑狂吾,信手文章风骨。抽剑平来神鬼事,指点兜鍪艚卒。快意恩仇,情长儿女,拟作痴情物。英雄千古,闲来翻书观雪? 归去岛上桃花,妙理浊醪,按孔笙箫说。华发刀搁闲驻马,回首千松飞屑。笑傲江湖,轻舟短钓,醉奏逍遥绝。青山共我,微风敲竹云月。</p>
-
死生契阔,与子成说
https://yiwei.dev/posts/%E6%AD%BB%E7%94%9F%E5%A5%91%E9%98%94%E4%B8%8E%E5%AD%90%E6%88%90%E8%AF%B4/
Sat, 23 Feb 2013 00:00:00 +0000
https://yiwei.dev/posts/%E6%AD%BB%E7%94%9F%E5%A5%91%E9%98%94%E4%B8%8E%E5%AD%90%E6%88%90%E8%AF%B4/
<p>"执子之手,与子携老",字面间,我们可以看出是一对痴心男女的盟约。又有人提出该诗是描述基友之情。今翻阅李辰东先生文,看到此诗的释疑,便程上来给大家分享。注:本文内容原文参见,李辰东,≪诗经通释≫第一编第一卷,水牛出版社印行,民国60年8月15日。在此做一个摘录,翻译以及整理。</p>
<p>击鼓(郑风) 击鼓其镗(音汤),踊跃用兵。土国城漕,我独南行。从孙子仲,平陈与宋。不我以归,忧心有忡。爰(音原)居爰处,爰丧其马。于以求之,于林之下。死生契阔,与子成说(音悦)。执子之手,与子偕老。于嗟阔兮,不我活兮。于嗟洵(音宣)兮,不我信兮。</p>
<p>诗意关键:</p>
<p>第一、“土国城漕”的“漕”在什么地方?</p>
<p>第二、“从孙子仲”的“孙子仲”是谁?他是什么地方,什么时候的人?他与“漕」又有什么关系?</p>
<p>第三、“平陈与宋”是什么时候的陈宋?为什么要平定他们?</p>
<p>第四、“死生契阔,与子成说。执子之手,与子偕老”,一定是一对男女的婚约(李辰东先生原文如是,其正确性在下文探讨),绝对不是对上文孙子仲讲的话。孙子仲是男的,又怎么可能与他白头偕老呢?这首诗里明明就有一对男女,男的就是“我独南行”,“不我以归”,“不我活兮”,“不我信兮”的“我”,也就是诗人。而女方则是“与子成说”,“执子之手”的“子”。但是诗所讲的是“平陈与宋”,又怎么会在平定陈宋时发生恋爱故事呢?</p>
<p>第五、“爰居爰处”的“居”“处”是在什么地方?“爰丧其马”又是在什么地方?“于以求之,于林之下”的“林”是在什么地方?</p>
<p>第六、“死生契阔,与子成说”是在什么地方订的婚约?从孙子仲出征的是“我”,“我”是男的,怎么突然出现一位女子?这位女孩子一定于孙子仲有关系,否则怎么会在孙子仲的平陈与宋中出现呢?</p>
<p>第七、“不我以归,忧心有忡”的“归”是回到什么地方,他们是从什么地方来的?</p>
<p>这些问题通通都得解决,才能了解这首诗。兹一一解答于下:</p>
<p>根据顾祖禹的≪读史方舆纪要≫上说有个地方叫白马县,春秋时候呢,卫之曹(应当为漕)邑。又说了白马城在卫南县西南三十四里。又说,今县西北十里有白马古城,一云在县南二十里。顾祖禹这些话是在哪里说的呢?我们查考该书十六卷,可知道,顾祖禹说的是河南省滑县。所以我们可以推测漕在现在的河南省滑县。同样在这一卷中,顾祖禹又说了,“古豕韦氏国,春秋时卫地,汉置白马县”。由此可见,白马县是春秋时的豕韦氏故国。在≪新唐书≫宰相世系表里面说了,刘氏啊在商有豕韦氏,后来被宣王所灭。这就意味着,豕韦氏到了宣王的时候才属于卫国。结合这两点就可以得出一个结论,汉代的白马县就是周代的漕,漕原来是豕韦氏国,到了宣王时被灭属卫。</p>
<p>接下来我们来研究下孙子仲。同样是≪新唐书≫的宰相世系表中说了,“孙氏出自姬姓。卫康叔八世孙武公和,生公子惠孙,惠孙生耳,为卫上卿,食采于戚,生武仲乙。以父王字为氏,世居汲郡。”还是新唐书的地理志中又说了,“卫州,汲郡望,县五:汲,卫,共城,新郎,黎阳”。于黎阳注说,有白马津。这就意味着,白马津属于汲郡,而且呢卫武公这一支系世世代代所居住的地方。诗上说了“土国城漕,我独南行。从孙子仲,平陈与宋”,这个孙子仲既然在城漕,他一定就是卫国人。豕韦氏又是在宣王的时候被灭改漕属于卫。那么城漕一定是在宣王之后。惠孙是卫武公的儿子,宣王时候的人,又世世代代居住在汲郡。古人聚族而居,在这个地方找孙子仲,自然是惠孙了。孙是辈分,对卫厘侯而言,仲是老二。所以诗人就称他为孙子仲。到他的孙子武仲乙的时候,就拿他的名字作姓了。武仲乙之所以拿祖父名字惠孙的孙做姓,自然是受到诗经的影响。春秋的时候,诗经已经是士大夫必读的课本,等于圣经一样,用诗经中的名字命名的,比比皆是。武仲乙显然知道诗经仲孙子仲就是他祖父,引以为荣,就以孙为姓。否则怎么会无缘无故把自己的姬姓改了呢?所以,我们就以这个人物来解释以下的历史。</p>
<p>第一点,为什么会有“平陈与宋”呢?先看看陈与宋到底在什么地方。≪读史方舆纪要≫在陈州(今河南淮阳县)这篇中就说了,“周初封舜后妫满于此,为陈国”。因此呢,陈国就在现在的河南省的淮阳县。同样这本书又在商丘县说,“古商丘县为阏伯之墟,春秋宋国都也”。这个地方呢是宋国在现在在河南省的商丘县。刚刚说了,孙子仲就是惠孙,而惠孙是卫厘侯的儿子。于是我们顺着这条路来找为什么“平陈与宋”。≪竹书纪年≫在历年纪下面就说了,“十三年,王在彘,共伯和即于王位,号曰共和”。又说呢,“二十六年,王陟于彘。周公、召公立太子靖为王,共伯和归其国”。≪雷学淇竹书纪年义证≫,引鲁仲连子说,“诸侯逢和以行天子事,号曰共和元年。十四年历王死于彘,共伯使诸侯奉太子靖为王。而共伯复归于卫”。 根据这个文献,我们就可以知道,共伯和是卫国人。我们再看≪史记≫卫康叔世家里面说了,厘侯十三年(前841),周厉王逃亡到彘地,由召公、周公共同掌管政权,号为“共和”行政。厘侯二十八年(前827),周宣王立为天子。四十二年(前813),厘侯逝世,太子共伯余立为国君。共伯之弟和曾被厘侯宠爱,厘侯给了和很多财物,和便用这些财物收买武士,在厘侯的墓地袭击共伯余,共伯被迫逃到厘侯墓道自杀。于是“卫人因葬之厘侯旁,谥曰共伯,而立和为卫侯,是为武公”。所以卫武公就是共伯余的弟弟共伯和。关于共伯和还有共伯余,史学家还有很多讨论,大家可以网上讨论,不陈词于此。</p>
<p>我们搞清楚了卫武公是共伯和,下面我们来看一下宣王。宣王的复兴与卫国有莫大的关系。宣王就是周宣王,也就是上文所说的“周公、召公立太子靖为王”。宣王是共伯和,周公,召公共同扶立宣王为王,宣王的复兴工作也就从平定陈宋开始。为什么?我们看宣王复兴的时候得两大劲敌。一个是西北的玁狁,一个是东南的淮夷。但是玁狁已经侵略到镐京,情势危急,所以平定淮夷只能拖后。可是问题来了,这个时候的安徽,江苏,山东一带都被淮夷占据,陈宋又在南北的要冲,所以必须要先平定陈宋,才能安心与玁狁作战。我们刚才说到,宣王的复兴的中间人物都与卫国有关,这就解释的通,为什么要平陈与宋。下面还带来一个问题,平陈与宋的时间是哪个时候的事情呢?根据诗经里描述宣王的复兴过程来看,应该是宣王三年。先看完平陈于宋这个时期的诗经的诗篇在做讨论。</p>
<p>不过击鼓这首诗虽然发生在平陈与宋这个时候,但是描绘的确是一个爱情故事。要知道这个爱情故事,要做一定的了解:现在我们看诗经,是经过整理重排的。这意味着诗经不同处的诗歌可以记载了同一件事情。于是为了找到这个爱情故事的本来样貌。我们把涉及陈宋两国所有的诗篇都拿出来看。这样就发现了诗歌的原貌。比如陈城里面有宛丘,东门之枌篇就说了,“东门之枌,宛丘之其栩。子仲之子,婆娑其下“。子仲之子,把他解释成孙子仲之子,自然是极其自然的。“子仲子之,婆娑其下”的意思的是说,孙子仲的女儿在那下边婆娑起舞。宛丘篇说,“子之汤兮,宛丘之上兮。洵有情兮,而无望兮”。在这一篇中,有提到了她在宛丘跳舞,这不是巧合吧。而后面一句“洵有情兮,而无望兮”表明了这个男的感觉到没有成功的希望。陈城的东门有池,东门之池篇又说了,“东门之池,可以沤麻,彼美淑姬,可与晤歌”。孙子仲是卫人,姬姓,“彼美淑姬”提出了姓氏,这不是无缘无故的吧?可以看出这个女孩子当时住在陈国的东门,所以东门之杨,出其东门这些有关东门的诗歌应该不是无缘无故产生的。再者,东门的北边有邛地,邛地上有一防亭,防亭鹊巢篇就说了,“防有鹊巢,邛有旨苕。谁侜予美?心焉切切”。这首爱情诗描绘的,应该也不是虚构的。那么将这些地名,故事串联起来,我们就可勾出一幅美丽生动的爱情故事来。也就是尹吉甫和孙子仲女儿的爱情故事。至于为什么,在下文有详细解释(至于为什么是爱情不是基友情,下文也会给出说明)。他们不仅在一起恋爱,而且还一起私定婚约。可是定了婚约不久,女的就要回卫国。但是并没有告诉男方。男的到陈城看她时却找不到她,心急到处寻找,一直到株林才找到这个女子。也就是诗中的“于以求之,于林之下”的林了。因此这样通篇诗歌也就解通了。下面逐字解释一下这首诗歌。</p>
<p>“击鼓其镗(音汤),踊跃用兵”。镗是指击鼓的声音。踊跃就是换了积极之意,用兵也就是练武了。所以这句诗就可以理解为,击鼓镗镗作响,我们在积极的备战。“土国城漕,我独南行”。国原来指的是城漕。古代的时候以土筑城,故曰土国。这里的关键在于“我”。这里的“我”是跟随孙子仲平陈与宋的,征服陈宋以后又回到了卫国。这个“我”呢又在和孙子仲的女儿在谈恋爱。这个需要整理卫国的诗歌。但是这里我们就可认为这个“我”是尹吉甫。“我独南行”就是单独派我到了南边,陈宋在卫国之南。所以也就是到了陈宋之地。</p>
<p>“从孙子仲,平陈与宋。不我以归,忧心有忡”。也就是跟着孙子仲去平地陈宋。“不我以归”是指孙子仲的女儿回卫国去了,但是这个男的却没有回去。所以导致的结果就是忧心有忡。忡,充,古通。所以忧心有忡就可以理解为内心被忧伤充满。 “爰(音原)居爰处,爰丧其马。于以求之,于林之下”。爰的意思可以解为“于之”。孙子仲的女儿居住在东门,尹吉甫常来看她。后来这个女孩子回去了卫国,这个男孩再来找他的时侯找不到了。但是在哪里又找到了这个女孩呢?便是于林之下了。连起来整句话的意思就是,她在这里居,她在这里住。可是来寻找她的时候,却不见了她的马。于是我到处寻找,终于这林(株林)中找到了这个女子。</p>
<p>“死生契阔,与子成说(音悦)。执子之手,与子偕老“。这是全诗意义最为关键重大的一句。关于契阔的解释拿不准就影响到了全诗。毛序解释为殷勤,勤劳,从而推出这是描写基友情的一首诗。这样的解释牵强附会。契,即为默契的契。所谓合也,而阔就是分别的意思了。所以死生契阔的意思就为生死离合。与子成说。这一个字不应该读shuo,而应该读成他的通假字yue。解释为相好,相悦。而百度上解释为shuo,誓言也是不可靠的。说也没有誓言之意。后面一句,显而易见。所以整句话就是,(曾今与你相好)生死离别,我都要于你在一起,彼此相悦。咱们手牵着手,一起白头偕老。</p>
<p>”于嗟阔兮,不我活兮。于嗟洵(音宣)兮,不我信兮“。活,应当是“佸”,会的意思,而洵则为远的意思。于嗟一种感叹的发语。我们可以感觉到作者一种悲伤的情感在里面。结合这一点,诗意不难解释,现在我们要离别了,不要在与我见面了。现在远离了,也不要相信我了(这是李辰冬先生给的,我认为可以引申为,以前的誓言就让它远去吧,诸如此类的意向)。</p>
<p>全文看来,击鼓完完全全就是一首爱情诗歌,只不过不是一首相爱白头携老的诗歌,而是一首两人分手离别的感叹。</p>
<p>至于大家所说的基友情,则来自于百度知道。百度知道曾今搞了一个活动,所谓的改正大家用错的诗句。但其实这个活动反而是改错了(在这里不由的抨击百度,在明显学术上有争议,而且学术观点倾向于现在的时候,百度为了抢眼球竟然出现这种误人子弟的事情)。</p>
-
满江红·别友人远游
https://yiwei.dev/posts/%E6%BB%A1%E6%B1%9F%E7%BA%A2%E5%88%AB%E5%8F%8B%E4%BA%BA%E8%BF%9C%E6%B8%B8/
Sat, 23 Feb 2013 00:00:00 +0000
https://yiwei.dev/posts/%E6%BB%A1%E6%B1%9F%E7%BA%A2%E5%88%AB%E5%8F%8B%E4%BA%BA%E8%BF%9C%E6%B8%B8/
<p>余将远游,与友赋诗共酒,歌数阕,不由泪下以作此词,再歌,酣然大醉焉。</p>
<p>八斗文章,堪寻访,建安风骨。谈笑里、东坡词黯,杜郎诗缺。三尺青蛇击逆虏,不堪苦恨惆怅结。遣行客,叹此事无关,干风月。 秦关好,伤离别。击悲筑,衣如雪。怅西风悲切,杜鹃啼血。游宦年年悲白发,可怜故国清秋节。君思我,回首笑人间,闻歌阕。</p>
-
自题
https://yiwei.dev/posts/%E8%87%AA%E9%A2%98/
Sat, 26 Feb 2011 00:00:00 +0000
https://yiwei.dev/posts/%E8%87%AA%E9%A2%98/
<p>一枝笔,一方砚。 一竹青箫,一霜寒剑。 别来情未减,斟一樽忘返留连。 轻奏菩萨蛮,试演临江仙。 目断秋霄落雁,醉来时响空弦。 一寸稠墨,把草堂翰林染遍。 暂回眸,再访太白放翁牧之与乐天。 书一川江南,掬一表闺怨。 楼上千帆过尽不是,阁下枯荷听雨窗前。 月绕松林花间竹苑。 竹杖芒鞋瘦马,竿纶玉箫舸舰。 一抹寒江雪,一蓑轻雨烟。 笑谈几朝乐事,狂书几车竹简。 繁华惊变,一杯醇酒,不自的旋。 且任一生逍遥,长醉京华二十年。</p>
-
侠客
https://yiwei.dev/posts/%E4%BE%A0%E5%AE%A2/
Sun, 09 Jan 2011 00:00:00 +0000
https://yiwei.dev/posts/%E4%BE%A0%E5%AE%A2/
<p>雕弓羽箭,呼鹰古垒,暴虎危山。冯河涉险,悬崖飞探,终抽的鱼肠龙渊。云游水转,日暴竹编,雪压青毡。淋漓醉墨,三分入木,看龙蛇飞落蛮笺。浮屠拐子,会杀天狼恶虎。诗情将略,一时才气超然。平生事,最好当时少年。我欲倚天抽宝剑,裁得星月三千。再欲笑谈风雨间,寻得太白稼轩。最欲解佩遗嘉妍,赢得昭君飞燕。桂花斟一樽美酒,问君予尔谁先?琉璃烫一柄龙泉,试为舞作一片。纵壮志,欲问成败谁边?有豪情,拟载千秋诗言。一叶扁舟一箫剑,一曲古音一笔砚。归去?散发狂颜。寻见?斯人谓作逸轩。</p>
-
洛神
https://yiwei.dev/posts/%E6%B4%9B%E7%A5%9E/
Sun, 21 Nov 2010 00:00:00 +0000
https://yiwei.dev/posts/%E6%B4%9B%E7%A5%9E/
<p>余从川蜀,归至杭都。穿蜀道,越长江,过险山,涉急湍。途经洛阳,解辔寄旅。人疲马倦,奔劳多累。六龙回驾,金乌渐隐,寒烟欲笼,流霞将颓。俯仰乾坤,犹觉天地之黯淡,察望皎月,忽感广寒之余悲。同行见我寂寂,笑谓曰:吾闻洛神,居于洛水。玉颜红袂,闻名宓妃。纤身弄巧,嫩葱扬琴,采采兮若处子之怀玉,涓涓兮若暮春之浽溦。媛女若此,曷不顾之?</p>
<p>于是乎余下马独行,至洛水之濒。情移神骸,忽焉思散。倚岩和衣而睡,少顷,闻一人呼,逸卿。余奇之,环而睹一丽人,步凌波于山隅,怀玙璠而逸美。叹曰:此何人哉?其洛神乎?之倾城者,无可比之。</p>
<p>其形也,娇若芙蓉,纤若秋枫。动则沉鱼,翩则惊鸿。飜飖兮若凫鸟之穿流霞,含婉兮若碧柳之濯渌波。远而望之,则若烟水蒙蒙;迫而察之,则若露雾寒淞。冰肌璐质,霜颈瑶承,明眸若黛,蕳睫如幪。藏玉扇以羞涩兮,射急电而嗔怒。闭爽目以倦怠兮,扬修眉而欢愉。皓齿璞琚,敛于丹唇,柔情绰态,讷于语言。凝脂流香,姝于粉靥;螓首叆霼,艾于素颜。佩琬琰之皓洁兮,腰木兰之薆熏。戴金翠之首饰兮,被璀璨之华衣。采兰芷之芳美兮,击流水之微漪。噫!此真仙人邪!其美之至极矣。</p>
<p>其声也,婉若鹅绒,柔弱春风。潺潺兮若山溪之鸣说,铮铮兮若纤指之抚弦。清澈兮若歌鸟之婉转,温暖兮若太阳之华暄。口含蘼麝,气吐幽兰。姚琼璧之皎洁,声佩璐之珊珊。灼芙蕖之姿态,托言辞之欣欢。</p>
<p>善哉!余奇之,恭然而问:小生不知仙子何人?曷故至于斯域?莞尔而不答。再顾之,以去。</p>
<p>余归以告之,曰:其洛神乎?其姿态于臆久矣。</p>
-
About
https://yiwei.dev/about/
Mon, 01 Jan 0001 00:00:00 +0000
https://yiwei.dev/about/
<img src="https://yiwei.dev/profile.jpg" style="max-width: 320px"/>
<p><a href="https://yiwei.dev/resume.pdf">Yiwei Gong</a>, <a href="https://github.com">@imwithye</a></p>
<p>Co-Founder, Solution Architect, Computer Graphics, AI</p>
<p>National University of Singapore</p>
<p>Co-Founder of <a href="https://vrcollab.com">INFR AI</a></p>
<p>Love Study!</p>
<p>Based in Singapore 🇸🇬 and Shanghai 🇨🇳</p>
<p>imwithye#gmail.com</p>
<p>Golang C++, Python, C#, JavaScript, Unity, Unreal, HLSL, CG, CUDA</p>