很久以来,网上对一句古诗里的一个字的读音吵的很热闹,是的就是那句著名的“远上寒山石径斜”,最后的这个“斜”字该怎么读,据说现在的小学生课本里的注音是 xie,而有些人只记得自己小学的时候学的是 xia,于是就大喷那些教科书的编辑,连这么简单的字音都要弄错,改了读音就是破坏了格律诗的音韵美感,进而就是要断送了文脉,云云
我是很懒的看那些半瓶醋们瞎起哄的,档次太低,基本都只是因为自己小时候学了个 xia 的读音,而且还说什么这是古音,为了押韵,所以要按古音去读
那么这个说法到底对不对呢?很显然,我放在这个题目下,给这些半瓶醋定下了这么个调子,起码我是对这个说法嗤之以鼻的。那么按照老规矩,我要回答三个问题:
1,这句诗到底要怎么读
2,古音到底什么样
3,读古诗要不要按照字的古音去发音
这三个问题的答案看起来也都很明显对吧,以前的课本确实标注的是 xia,古人写诗肯定是按古音设计的押韵,所以古诗就应该按古音去读
但是恐怕,你知道的,都是错的
首先我上学的时候,课本上对这个字的注音也确实是 xia,考试这么考的,标准答案这么写的,但是我一直是不认可的。这不是单纯的对一句诗一个字的逆反心态,而是我对小学课本里以唐宋格律诗为代表的韵文的读音整体的疑问:“远上寒山石径斜”的“斜”字,如果读成 xia,理由不过就是,为了照顾韵脚的押韵,这个字应该按照古音,读成 xia
我在上学前就读过这首诗,但是因为就是小孩瞎读,也没被教过,自然就是读的 xie,小学又学这首诗的时候被纠正了这个字。当时没觉得怎么样,反正就是一个考点嘛,试卷上要这么答题而已。但是随着我逐渐把小时候跟着家大人背过的诗都回顾起来,逐渐就发现有点不太对了,继而就有了新的问题:是不是格律诗的韵脚字为了押韵都应该读古音?是不是读韵文就应该读古音?如果这是一个规则,那就应该是可以用在同类的其他同类的现象上的,如果这不是一条规则,那就不需要去学习这个知识点
所以我又回顾了中小学以及之前学过的其他格律诗,比如:
少小离家老大回,乡音无改鬓毛衰,儿童相见不相识,笑问客从何处来
我记得课本的注音里,第二句的“衰”不能读 shuai,而是读 cui,理由也是押韵。但是我小时候就产生过疑问:cui 和第一句的“回”确实押韵了,但是和最后一句的“来”怎么押韵呢?小学老师当然没有回答我这个问题,因为考试不考
后来,还是和“回”“来”有关的一首诗让我彻底懵了,那就是杜圣人的第一七律:
风急天高猿啸哀,渚清沙白鸟飞回。无边落木萧萧下,不尽长江滚滚来。万里悲秋常作客,百年多病独登台。艰难苦恨繁霜鬓,潦倒新停浊酒杯。
在我当时看来,只有“来”和“台”的韵押上了,圣人手笔怎么会连韵脚都是乱的,而且还能被奉为七律第一
当然了,答案都可以笼统的归结为,在古音里,这些字都是押韵的
既然如此,为什么读《回乡偶书》和《登高》的时候,这些韵脚字不读古音?不怕破坏了格律诗的音韵美吗
更有甚者,其实我们现在用的绝大部分汉字,古音都和现在的普通话发音不一样,现在说起古代的字音,总会有人提所谓的切韵唐韵平水韵佩文韵府词林正韵等韵书,并且说某某地方的方言就是古音。但是这里有个基本概念就是,这些韵书中所定义的描述的语音系统和规则,很可能是人为设计的,而不是自然形成的,就像现代汉语的普通话,只是以北京音为语音基础而设计出的语音体系,不等于就是北京话的读音。某些地方的方言可能确实保留了一些字的古音的某些痕迹,但是离古音还是有距离的,甚至可以说,这些古代韵书里所记录的语音系统,不是任何时代任何地方的方言,更可能是融合了多种语音习惯后形成的语音体系,用于让来自不同地区的人学习和交流用的,而写韵文,就是其中的一种使用方式
如果读古代韵文就要读古音,那么为什么只有韵脚字读古音?《山行》里不只一个“斜”字有古音,第二句的“白云”有入声字,“人家”要不要读 yin gia?柳宗元的《江雪》:
千山鸟飞绝,晚景人踪灭,孤舟蓑笠翁,独钓寒江雪
至少三个韵脚字,都是入声字,为什么不读古音?音韵美感丢了个干净
那些认为“斜”要读古音 xia 的人,恐怕根本不知道还有这些问题,因为这些半瓶醋对汉字古音的了解,也就仅限于一个“斜”字——而且其实,“斜”的古音,也不是 xia,而是略微更接近 sia 的读音,有点像戏曲里所谓的尖字,但是完全发舌尖音,这种字音在很多北京中老年土著的语音里更常见,比如很多北京大妈把“报销”都读成报 siao
好吧,以上是我嘲笑“石径 xia”的片儿汤话。其实我倒是觉得,读古代的文学作品,就按普通话的读音就好。否则,中国文学史几千年,通过比较各个时代的韵书可以发现,每个时代的汉字读音都多少有点不太一样,古代文学作品那么多,难道读每个时代的作品,都要按照当时的字音去读?那就干脆不要读了,因为几乎没法完全恢复。汉字古音的问题交给专业的研究者,作为普及性的阅读,知道这些字有古音,韵脚字在古音里是押韵的,也就足够了,“鬓毛衰”就是鬓毛 shuai,因为现在还能见到的“衰”字读 cui 也只限于一些现代汉语里不用的词汇,比如“齐衰”、“斩衰”、“墨衰绖”这些丧礼专用的词汇,现代社会连“五服”的概念都没了,这些词汇也只会出现在古代文化研究和古籍阅读里,“衰”的 cui 的读音不是现代汉语需要保留的读音了,也就不必再计较什么古诗里的鬓毛 cui。至于所谓的多音字,更多可能是因为中国太大,古代太长,导致的汉字读音长期在各地的文盲嘴里各自独立演化后,被文化人强行以文字符号记录,留下的胎记——这个事我也还得再整理一些资料才能把逻辑全都理顺
但是总之呢,我支持“石径斜”读石径 xie,我不知道小学课本是不是真的改了,如果确实是改了,那就是和我不谋而合
2026年01月11日
从古诗里的一个字说开去
2025年11月20日
中老年被淘汰也是理所当然吧
随着我逐渐的步入中老年阶段,我渐渐的开始能理解为什么中老年人会被时代淘汰
每一代人都有一代人的知识基础和认知方式,因此也只能理解那些建构在这种知识结构之上的符合自己认知方式的事物。而时代的发展,往往是隐藏各种知识,让这些知识只存在于少数人的认知里,对于大多数人来说,只需要看到开头和结果,而不需要知道中间的过程
就以我所在的程序员这个行业来说,我对这个行业的理解方式,是需要知道代码的运行过程,才能理解软件的功能,而现代的编程,越来越多的使用封装好的类库,现成的 API,不需要知道代码具体怎么运作的,只需要知道 Object.method() 的结果是什么,就可以写代码,学编程也就逐渐变成了记函数记类库.至于类库怎么运作,为什么这个类库可以实现这个功能,内存是怎么管理的,甚至更底层的,操作系统是如何管理各种设备的,那就只有少数人知道了,即便计算机专业的毕业生,对于体系架构和操作系统这种必修专业课,理解的程度也未必比类库的使用方法更多,因为不影响写代码赚钱,那谁还要学这些
其实这也不是程序员行业特有的,比如五十年前,汽车司机是一个专门的职业,不止需要学开车,还要会修车。家父曾是军队的运输兵,退伍之后在某大型国有科研单位做司,因此从小我的记忆里,怹就是不断的出差。家父也曾向我说起,他的日常工作,就是出差修车带徒弟三件事,修车甚至要拆发动机变速箱,在齿轮螺丝的层面上去操作。过去车不如现在,路也不如现在,所以对人的要求就比现在要高得多。现在开车就只剩下操作刹车油门和方向盘,越来越多的人(被迫)选择自动挡,连什么时候该换挡都不知道,当然也就更不会修车。而即便是去 4S 店修车,基本上也根本不是修,4S 的修理工也未必有几个人知道发动机变速箱的结构,只会在电脑上看数据,然后拆装零件
当然了,每个领域要发展,行业要繁荣,都需要让大量的从业者能进来,那就必须降低门槛,让本来没资格做这件事的人,没有接受过足够训练的人,也能来做这件事。而同理,时代的发展,也需要尽可能的隐藏科技的细节,对于一般的使用者来说,只需要知道每个按钮能完成什么功能就可以了。但是中老年,由于受教育的时代较早,接触的东西较多,一直以来都是通过相对更偏向于底层的原理去理解现象解决问题,因此形成的路径依赖,就形成了一种理解模式,必须知道发生了什么,才能在行为和结果之间建立起联系。所以他们理解不了为什么手机上点几下,就可以吃上饭,因为他们不知道背后是数据的流传,是有人看到数据之后在做饭送饭。其实那些用 app 订餐溜到飞起的小孩也不见得懂这个过程,但是在他们的认知里,没有那么复杂的底层原理的好奇心,他们就是觉得这是理所当然的
之所以说这些屁话,是因为我遇到的活生生的问题。我觉得我是个典型的工科人,让我接受一个结论,就需要解释清楚一些深层次的原理,至少要追到其他学科。比如我从小就非常痛恨吃菠菜和胡萝卜,我妈总说这些东西有益健康,现在也有很多所谓的健身博主减肥营销号,推荐各种这个素那个油的,这些都是所谓的营养学或者医学问题,但是要让我接受这个结论,至少要从生物学或者化学物理学的层面上来说明问题,否则我不是不接受,我是压根理解不了
君子欺之以方,就是要用对方能听懂的话去骗人
所以当我看着那些用手机指指点点的小孩,我也会想起我刚用上触屏手机的时候,那个奇妙的心态,我也会回忆起在电阻屏和电容屏之间做取舍的经历,甚至想到我曾经深挖过电阻屏和电容屏的实现过程,当然了,在更老一辈工程师的眼里,他们看我对触摸屏的一知半解,也会嘲笑我对电阻屏电容屏的那些肤浅的认知
2025年10月5日
无意中在网上瞥见了一篇《无意中在应用层瞥见了一个微内核的操作系统调度器》
大概扫了一眼,其实就是前天我和朋友出去玩,在景区经过一座窄桥的场景。我们有四个人,都是不老不小的,而对方是一个夕阳红老年团,这样对面走到一座桥,桥很窄,不能双向并行。我们本着尊老的原则侧身闪开,让他们先走,而对方导游也很客气的说他们人多,走的慢,让我们先过。我们依次逐个通过,和对方的团擦身一过,嘴里一直念叨着“谢谢”,大爷大妈也纷纷回应没事小心点,场面甚是和谐
在计算机领域里,就是这里所谓的,有限的资源怎样分配给需求规模差异较大的多个用户的问题。其实这可以还原到我中学数学课上老师讲过的一个基本的不等式关系:两组数字,同序逐个相乘再求和,比逆序逐个相乘再求和要大,乱序居中,也就是:
对于 a0 <= a1 <= …. <= a(n-1) 和 b0 <= b1 <= …. <= b(n-1),sigma(aib(n-1-i), 0 <= i <= n-1) <= sigma(aibj, 0 <= i, j <= n-1) <= sigma(aibi, 0 <= i <= n-1)
这个不等式关系可以用在日常,就比如,我们上学的时候做值日,或者在宿舍里轮流洗漱,经常出现好多人要排队用一个水龙头,现在的排队,几乎所有需要排队的事,都可以体现这个规律,就是,让最快的人排在前面,可以缩短所有人的整体等待时间。就像我们在景区遇到的场景,如果我们不愿拆散两个团队,那当然是让小团先走,如果是一群人,就是走的最快的人先走
当然了,计算机领域的问题都可以由人来制定规则,从而实现全局利益的最大化,而日常生活的参与者,只能指望他们是经济学意义上的理性人群而已,不能指望他们都理解数学规则,即便理解也不会贯彻到行为里,排队从来不考虑谁更耗费时间,那当然都是希望自己排在前面,如果有人加塞,为什么不是我
原文其实还是有点意思的,对于数学不好的程序员,绕过数学原理,直接看设计实现,也算是一条捷径:https://www.cnblogs.com/thisiswhy/p/19106038
2025年09月18日
吾道仍然一以贯之
当初学研究方法的时候,老师经常讲一个思路:如果实验里出现了看似截然相反的现象,那就说明一定有一个没有被发现的原因在影响着这一切,甚至有可能是存在更高维度的参数在默默的发挥着作用而不为人所知。找到这个原因,发现这个维度,就是突破。这个道理后来被我总结为孔子的“吾道一以贯之”,并且用在了看人看事上,经常有人会做出看似矛盾的事,一定是背后有其他的原因,或者存在更高的角度可以统合的解释这些事。比如某个一贯吝啬的人突然大方起来,要请我吃饭,那要么是平时的吝啬是我看走了眼,要么就是他肯定有事求我——所以,饭可以去吃,做好两手准备:可能是个机会可以重新认识这个人,但是也要警惕杯酒释兵权甚至鸿门宴
就比如已故的篮球巨星科比,有大量关于科比的评论都说科比“独”,宁可在三个人的包夹防守下强行投篮不进,也不传球给被放空的队友。这种现象当然是常见的,也有记者说,科比解释过这种球为什么会打成这样,大致是说,科比认为有些队友训练不努力,水平也不高,而自己那么玩命的训练,他们不配接到传球,即便是自己在三个人包夹防守下,命中率也要好过那些被放空的队友。而科比加入美国男篮打奥运会的时候,却有很不一样的发言:把对面最厉害的那个人留给我来防守——这就和那个“独”的形象很不一样。但是如果我们相信科比不是精神分裂,相信这是同一个人相同的思维逻辑,那就要找到那个“一以贯之”的“吾道”是什么——应该就是,始终去做当前场景下,对球队赢球最有利的事。所以科比的“独”,也是基于,那些不努力训练的队友,他们即便被放空,命中率也低于被三人包夹的科比,因此不传给他们球,而在国家队里,身边的队友都是最好的球员,不需要科比去玩命得那些勉强的分,而防守是最容易被忽视的环节,因此更需要有人来做。团队项目里,赢家的思维就是:如果我能多做一点,队友就可以轻松一点,让每个队友做好自己最擅长的事,剩下的我来补齐
这就像我们码农领任务,一般我都会建议最好的工程师最后去领,让其他人先把自己能做的事分走,高手就是要留下来啃硬骨头,这才是高手存在的意义和价值
这也可以用来解释,像我这种斗地主不看牌就要叫地主的人,为什么会玩篮球这种团队项目,而且对传球和防守的兴趣远远大于得分,还喜欢公路自行车,而且是大组赛这种团队比赛个人荣誉的形式,尤其以前跑业余比赛的时候专是喜欢陪跑,就只为的是给其他的朋友带风
我记得上学的时候有一次在东楼斗地主,ljer 就突然冲我吼:你先看看牌再叫地主。我说我就是想打地主牌,因为不想被队友拖后腿。大家哈哈一笑,只 ljer 说:真独
但是和我打过篮球的人基本上都说我对传球和防守的兴趣远大于得分,其实我上学的时候就是这样,甚至校运会决赛的时候让校队教练都看不下去了,因为那年他正好也是我们班的篮球课老师,所以认识我,半场休息的时候直接对我说:你喜欢传球,但是现在需要得分了——后来我也确实打开了得分模式,也在交替反超的时候进了两球,因为老师说的很对,比赛打到那个时候,确实需要得分。后来毕业以后,有一起打球的同事也问过我:你工作都没这么喜欢团队配合,怎么打篮球这种团队项目你也玩,而且喜欢传球大过得分?
这个问题吧,其实也好解释:因为我对胜负的预期不一样。斗地主这种游戏,赢了就是赢了,没有别的目标,而像打篮球这种游戏,大部分时候我觉得得分也确实不是最需要我做的,打野球的时候,喜欢得分的人是多的,那就给他们投嘛,我专心传球挺好。但是因为打野球往往分拨是随机的,有时候就是凑到了比较弱的一队,那也就只好尽量刷分,这么打我也是可以的,毕竟我确实不喜欢被队友拖后腿,但是我也同等的不喜欢拖队友的后腿
骑车就更好玩了,比如著名车手米凯尔兰达,我对他的全部的好印象,就是来自,这是个很有个性的运动员,在比赛里往往会因为一些很有趣的原因,在不损害自己队友利益的前提下,出手帮助其他车队的车手,比如几个车手较劲,其中一个车队的人比较多,形成以多打少的局面,最终导致某个车手落单,孤掌难鸣,就有过这种时候兰达看不过眼,仿佛一位江湖大侠打抱不平似的,去帮那个落单的追其他的对手。现代的公路自行车大组赛是很少有的几种集体配合去争取个人荣誉的比赛之一。有的项目是集体项目,比如篮球足球田径游泳的接力赛这种,最后的胜者是某某队,全队每人一块金牌,但是冠军只有一个,就是这个队。还有的比赛就是个人项目,可能运动员有教练团队有医疗营养团队,但是比赛就是运动员自己站在赛场上面对对手,最后的冠军也是这一个人,金牌就是给这个运动员的。而公路自行车大组赛则是需要队友在赛场上互相帮助,但是最后获得荣誉的是某个运动员个人,换句话说,每个队友其实在规则上也都可以是对手,都可以来抢这个金牌——这种事在职业赛场上也确实出现过。那么如何让车队形成凝聚力,就颇有一些学问了。而我在这样的比赛里,其实最想成为的,不是冠军,而是能帮别人获得冠军的那个人
这也不矛盾,因为无论是传球还是带风,本质上都是在各自的项目里做辅助的角色,传球让队友得分,在篮球里就是 assist
就像我的工作,从亲手写代码,写好代码,到做测试,做质量,帮助别人写好代码,再到做测试工具,测试流程,带测试团队,帮助别人把测试做好,但是我自己又回到了写代码的位置上,角色不断的从辅助到辅助的辅助,最终却也成了闭环,这也许就是物极必似,冥冥中自有天意吧
前不久美国篮球名人堂的增选典礼上,著名女篮运动员苏伯德在发言中感谢了很多在她的成长中给予帮助的人,最后用一句轻描淡写的“感谢你们的帮助(assist)”潇洒的结束了演讲,催人泪下,这位 WNBA 顶级助攻大师整个职业生涯最精彩的就是传球,是 WNBA 多届的助攻(assist)王,历史助攻第一,无数球星得到她的 assist,但是最后却以一句感谢其他人的 assist 为自己入选名人堂的发言作为结尾,精彩
2025年09月16日
说个故事吧
当年汉武帝为了讨好李夫人,想给李广利封侯,但是汉朝祖制,无军功不得侯,所以汉武帝让不会打仗的李广利挂帅带兵,当然选的也确实是低难度任务,结果还是打的乱七八糟。这事到了著名的作秀专家司马光手里,这个两脚书橱却说,打仗这么要紧的事,与其给李广利刷业绩,都不如违反祖制直接封侯,造成的危害可能都更小
司马光这张嘴是专门的胡说八道,从来都是反正话来回说,汉武帝倘若真是违反祖制硬封李广利,他还是会有牢骚可发,所以这书呆子的话不必当真,等读论写到这的时候我再单独骂。我想说的是,汉武帝只是钻了个空子,没好心眼,但初衷也没那么坏,规矩有在这,他起码还知道遵守
说这个是因为吧,前不久的某一轮迭代周期里,出了一次重大事故,某小哥们为了大干快上,违规改了线上主线的数据和代码,当然结果很好,高效快速解决问题,事后复盘也确实觉得以他当时的认知,无视规则也不太奇怪,而且补流程也论证了他的修改是当时的最优解
但是毕竟是违规,所以关于怎么处理这个事,我们讨论的还挺激烈,他的老大态度几次转折,从功大于过到功过抵消,从有限鼓励到冷处理,直到现在都没服气,因为我是分别处理的,解决问题有奖,违规受罚,毕竟规矩都有,我也没钻空子
所以那次就算是第一次,表彰会和批斗会,同时开,发了贡献奖,也念了检查,我俩一起……毕竟我也有个权限给的太大的错——不过我没打算改……因为我觉得,收紧权限还是弊大于利
有人说这是第一次也希望是最后一次有这种事,我倒觉得大可不必——是的,这说明了我对这种行为的态度:可以有下一次
但还是不想出事故
2025年08月25日
坏人不一定都是好人惯出来的,还可以是好人逼出来的
动画片 Bad Guys 讲了五个犯罪高手在一场大案中,和曾经的犯罪高手现在的州长 Diane 联手打掉披着羊皮的 Marmalade 的故事。在这场冒险中,五大高手也完成了心灵的蜕变,改邪归正。而 Bad Guys-2 则延续了这个剧情,讲五大犯罪高手改邪归正后的故事
故事的开始,五个犯罪高手试图找一份合法的工作,结果处处碰壁,用现在职场上的话说,不是业务技能不过关,而是各种背景调查不合格,不是技术问题,而是政审问题。这个设定可以说非常的写实,就像现在的求职,总会要求履历没有 gap,没有犯罪记录;考公务员有所谓的查家谱,虽然没有明确的写进录取标准里,但是潜规则往往是比规则更强大更可怕的东西;而对于所谓的污点艺人复出,也是各种反对的舆论,甚至戒毒法里明确写明,戒毒人员再就业不受歧视,但是实际上,大家都懂的
这就是个很有意思的现象了,就像故事里的这些角色,曾经是犯罪高手,但是已经下定决心改邪归正,就像那些曾经违法犯罪,但是已经接受了法律的惩罚,完成了劳动改造,这时候最需要的,就是回归社会,这也是劳动改造的目标和意义。那么进入社会,最基本的需求就是生存,在现代社会里,最重要的生存途径就是找到一份工作,有合法的收入。但是这时候主流社会通常都是会拒绝他们,比如我们身边可能存在的刑满释放人员,他们在现实里想要回归主流社会,肯定也不会太顺利,比如街坊邻居的指指点点,周边居民的排斥,没准纷纷搬家甚至要求他们搬走,至于工作,就更不要想了,求职肯定是四处碰壁,现在基本上所有的用工单位都会要求求职者没有犯罪记录吧。这时候能够接纳他们的,大概就只剩下见不得光的世界,他们也只能还是去找那些曾经的犯罪同行,让劳动改造的成果付诸东流
所以剧情里适时的出现了另一个犯罪团伙,要和这五个 bad guys 合作搞更大的案子。其实故事讲到这里,即便这五大高手重操旧业甚至变本加厉,我都是可以同情甚至鼓励他们的,因为这次,不是他们愿意犯罪,而是真正意义上的被社会逼到了对立面上去
不知道会不会有人去想一个问题:从法律上讲,刑满释放人员,也就是翻过错误,但是已经为错误的行为付出了法定的代价,并且接受了劳动改造,也就是由专门的司法机关对其进行了教育,能被释放,也就意味着,司法机关认为这些人对社会的危害已经消除了,至少是足够低的,才会让他们重获自由,回归社会,理论上他们已经不再是之前的犯罪分子了,而是和我们周围的每个个体差不多的一个人,为什么却得不到社会的接纳?如果觉得他们付出的代价不足以抵消过去的罪恶,那应该针对法律和法官,量刑太轻,法规太松,如果是觉得他们接受的教育不足以让他们脱胎换骨洗心革面,那应该针对劳动改造的措施和尺度,总之都不应该针对这些依照法律和流程走完了全套的改造流程,接受了规定的教育,并且经过审查被认为合格,可以回归社会的一个个个体。法律对他们曾经犯下的错误有处罚的标准,法官依照法律判决,劳改所对他们进行了改造和再教育,并且认为他们已经过关,难道还有人对法律法官和劳改所不信任吗?不去弹劾法官,不去指责法律,不去骂劳改所,是因为惹不起吗?是因为不敢吗?是因为反正在舆论上在口头上用一些绝对安全的措施来针对这些刑满释放人员更容易吗?打不过关张就去打刘备?呵呵
当然了,故事里的五大 bad guys 并没有重新走上犯罪道路,而是和曾经的大盗州长一起,巧妙的和犯罪团伙周旋,最终粉碎了阴谋。所以故事的结尾,也许是为了迎合市场的需求,有个符合主流意识形态的收尾(如果是在国内,那就是为了过审),Bad Guys 小组和曾经的大盗州长诈死瞒名,在追悼会上都得到了主流社会在口头上的原谅,但也当然就不会回归到主流的社会里去,而是组建了一个全新的特工小组——是的,他们公开的身份都被消除了,而且甚至,就连官方现有的职能架构里都没有他们的位置,只能是为他们另开了一个部门,而且还是个不为人知的秘密部门
2025年08月15日
这该死的好胜心
小时候在家读李白的行路难,欲渡黄河冰塞川,将登太行雪满山,注解和赏析都说,李白真是郁闷啊,想渡河,想登山,既不是没心气,也不是没本事,可就是天气不好,时运不济,想做的事做不成,实在是委屈的要死。可是我总是觉得,河就在那,山就在那,想渡想登,去就是了,难道一定要等到一个风平浪静天朗气清的黄道吉日?要做的事,便是冰雪在前,也直需履之蹈之,破之踏之,成了是英雄,败了是烈士,冰雪下渡河登山,更显得豪杰本色,而倘不想去,即便海晏河清天高气爽,也是端的不会出发。若是还怕丢了面子呢,也便不妨专找个冰塞川雪满山的日子,然后幽幽的说一句:这事可不赖我
只是彼时年少,在家读书,有家大人看着用功,这等大逆不道的话是断不敢说出口的,毕竟屁股还要留着坐板凳,不能坏在板子下面。而且当时这也只是小孩子的胡思乱想,讲不出个道理。一直到后来,知道了李白的一些生平,也看了一些别人眼里的李白,才觉得,大概这么想的人,应该不是只我一个吧
多年之后离家,远在京城,有一次许老太爷和钱老师闲聊天,我在旁边伺候,说起了钱老师年轻时候的事,钱老师自己把这两句念叨了出来,许老太爷随口说着“不至于不至于”,我便一不小心,把这个话又说了出来,也只是刚起了个头,只说一句“当然不一样,李白也没那么想渡河登山吧”,钱老师当即哈哈大笑,许老太爷咂么了一口酒,也摇摇头,我便没敢继续说下去
当年也是岁数小,两位前辈闲聊之际,我在不打紧的时候插一句嘴,问点幼稚可笑的问题,也是常有,虽然属实的不规矩,但是二老只道我童言无忌,便不计较,偶尔还点拨一二。只是这次的反应颇耐玩味,我也记了很久
后来钱小三说,钱老师对我当时那句话很感欣慰,所以才有了所谓的“你比我跟我爸还熟”的说法。许悦也告诉我,老太爷觉得我这句话算是给他解了个围
往事不提,但我真是觉得李白的那点小心思,实在是扭捏得紧。倘若河干山崩,再去感慨,可能我更能理解吧
我自 2018 年回来骑车,只去过两次鬼笑石防火道,都是 2018 年左右,而且最陡的那段爬坡,竟然每次都要下来推一小段,因为真的骑不动。然而 2018 年显然不是我最好的时候,2019 年下半年甚至现在,我觉得都比那时候要好得多。而且印象里,似乎那一段,也不如南雁路上白瀑寺的那几百米陡吧,那也是可以骑上去的。因此,我很想再去骑一次防火道,只是想看到底能不能不推车。但是听其他骑车的人说,那条路现在不许骑车了。其实以前也不许,只是以前只有路障,只有栅栏,没人值守,自从前几年防疫,真的有人管了。所以,这个复仇计划,大概也就没机会实现了吧
平时喜欢打篮球的,应该都知道打三拨这个玩法,就是分三队,两队打,一队看,约定每局打多少分或者几个球算赢,然后输的下场,换场下的队来和赢的打。其实不只三拨,随便几拨都可以这么玩,反正就是打擂台,赢家不下台就对了。往往就有可能,甲队可能特别强,一直赢,其他乙丙两队就一直被打败。我经常就会在这乙丙两队之一里——也不知道是我不吉利,还是我拖了队友的后腿。有时候比如我在乙队,听到队友会给丙队加油,让他们打败甲队,否则我们乙丙两队就总没有能对打一次的机会。然而我却不喜欢,反倒心里默念,甲队千万不要输了,等我来打败你。如果真的丙队打赢了甲队,那……我就得打赢丙队,否则我岂不是在最弱的队里
是的,我是有点好胜心的,也还有点记仇,而且不只是希望仇家倒霉,还要能亲手复仇,所以像伍子胥鞭尸这种事,我就会很理解,也知道他有多不甘心。又比如灌篮高手里,赤木和鱼住之间互相鼓励的话,也很像是我能说出来的“遇到我之前不要被淘汰了”。八十年代的乔丹在东部决赛输给活塞队之后,对杜马斯说的那句“你们要赢下决赛”,我就很理解,这绝不仅仅是什么风度,这是骄傲的人对自己最大的放纵,乔丹已经输给活塞了,如果活塞又输了决赛,那就等于说,有两个队都比乔丹和他的公牛队更强,这对乔丹来说,就是更大的打击,多了一个要复仇的对象
但是像去不了的防火道,于我而言,就是伍子胥的楚平王
我曾和老太爷说起过这个心态,老太爷就说,太执拗了不好,但也是许悦后来告诉我,老太爷背后还说“那小子就这样也行”。不过毕竟这话是许悦传来的,还是可以打个折扣哈哈
2024年12月18日
你真的相信明天会更好吗
最近被明天会更好的翻唱刷屏,我还真拿新老版对比着反复听了几遍,怎么说呢,最起码老版绝大部分人的咬字是真规矩,应该都是严格训练过的,又或者是方言区保留了更多的习惯,比如“的”大部分人都唱成 dì,“了”字大部分人也都唱成 liǎo,虚字唱实音,这是我小学三年级的音乐老师教的,第二次听到有人讲这个规矩,是我在大学的时候溜进中文系听诗选课的时候教授讲过,而新版基本上都没这么唱的,不知道是不是普通话的习惯导致的
内地声乐界起码也是知道这个规矩的,比如国歌标准版就是这么咬字,军歌是这样的咬字,五六十年代那些黑白老电影也是这样的咬字,但是现在应该是都没这个讲究了,毕竟不是那个时代了,港台现在好像也很少有这样咬字的了
整体的感觉,就像很多我的朋友们说的,老版中气十足,让人觉得虽然今天挺不错,但是明天肯定会更好,新版气若游丝,让人觉得还是今天好,明天肯定不如今天
清末的谭鑫培是慈禧太后最喜欢的京剧演员之一,曾被程长庚评价为“子声甚甘”,说白了就是嗓子太软,但是程大老板也说,二十年后将是老谭的天下。后来果然,满城争唱叫天儿。难道是老谭的软嗓子把大清国唱没了?肯定不是嘛,那就是大清国要完,才流行老谭的这种软嗓子
所以北宋早期的诗坛只是非常短暂的流行过学李商隐,但是很快,王朝初建那种蒸蒸日上的气氛就让诗人们放弃了李商隐,因为时代不接受,每个人的心里都是要搞事情的热情,和李商隐那种腻乎乎的范格格不入,毕竟大炼钢铁的时候就要喊劳动号子,听邓丽君不提神。冲锋要吹号,睡觉要听小夜曲,所以推车的时候范围问赵本山,你这一股子一股子的我往哪使劲?李海说,喊点有节奏的
唐初曾经有过一次关于文艺和时代的关系的讨论,主持会议的是李世民,可见规格应该够高了。李世民就说,并不是文章诗赋把隋朝写亡了,而是因为隋朝要亡,才会出现那样的文章诗赋
就像我在老文里说过的,体育歌曲不要找娘炮来唱,既然没人相信明天会更好,何必还要唱这种歌呢
2024年04月17日
理发之王
这个年代,思想家和艺术家从来都不是一群人,深刻的道理往往都是烂片在传播,就比如这个片,从叙事从拍摄技法从剧本从演员演技各个角度看这都是个烂片,但是它所表达的对科技和人的关系的思考上,却不能说不深刻,只是不知道是因为哪一条众所周知的原因,用了这么个题材来表达——电影都拍不好的人,竟然在讨论哲学?这还真不是开玩笑
剧情呢,也很简单,就是关于人的创造和机器复制之间的关系,这是个自从有工业化生产开始就存在的问题,这个片子放在美发行业的背景下来讲故事:有人发明了一台美发机器,可以通过分析每个人的相貌,计算出最合适的发型,并且内置了各路美发大师的各种技巧,打造出完美的发型。看起来确实是个能提高发廊劳动效率的工具对吧,但是就有人不接受,只是这个理由很牵强,是怕被机器的设计公司控制,失去自身的竞争力。不过剧中也提到了,用这机器的青年发型师李重光,确实因此提高了产出效率,但也因此失去了不少提升技术的锻炼机会。最终,一场人机对决以人获得实质的胜利结束,剧本的设计算是一个能自圆其说的大团圆结局
随着 AI 工具的发展,越来越多行业的从业者在杞人忧天的担心自己会不会被机器取代。我在各种渠道和老文里都提到过,如果一份工作只是单纯的搬运,那就一定会被机器取代,无论搬运的是具体的麻袋还是抽象的知识点,机器只是不善于创造,但是移动复制都是机器的长项。美发行业似乎看起来最难被机器取代的行业之一,因为它的本质是满足人的审美需求,产出的是在物理世界里实质存在的看得见摸的着的东西,但是剧情就是放在这个大背景下去讲,但是这种担忧恐怕是很多行业都有的。我自己就身处 IT 行业,对于 AI 这玩意,我所在的行业既是制造者,也是最早的使用者,因此也便成了第一批感受到冲击和恐慌的行业,一霎时各种所谓的低代码工具全都冒出来了,也有人喊出了以后不再需要程序员这样的口号
有人制造焦虑,自然也就有人真的焦虑,但是焦虑了一年,似乎也没看到什么实质性的变化,大家还是老样子,所谓的低代码平台和编程辅助工具,也基本都是雷声大雨点小,但是大家还是焦虑
造成这种焦虑的因素很多,最重要的恐怕是,太多靠复制搬运挣工资的低端从业者对机器和自己的复制能力有深刻的认识,知道在这个赛道里自己永远不可能打败机器,而同时也有足够的自知之明,知道自己无法切换到其他的赛道去差异化竞争,比创造力不如其他从业者,比复制搬运又不如机器,那么等待自己的只有离开这个行业这一条路
有一个流派的 AI 就是基于大量的数据,不去探索数据背后的深层原因,而是只关注 as-is 的数据关联,从而也可以做出还不错的产品,这就有点类似给小学生讲的故事,蚂蚁搬家说明要下雨,至于为什么蚂蚁搬家和下雨之间有关联,不重要,只要记住这个现象,看到蚂蚁搬家就是要下雨。这样做产品足够了,毕竟没有牛顿的年代里我们也能在树下捡苹果,古代中医就是这么干的。但是现代科学的发展和人类的好奇心却让我们不断探索背后更深层的关联,而这是机器不擅长的,也是人类应该做的事
只有一个问题就是:我们真的需要很多人去做这种深刻的思考和研究吗
2023年12月28日
真理不可轻传
整理硬盘,发现长安三千里看完了没删,删之前又点开看了两眼,就想起李白自称的,自己写诗都是随手写随手扔,十之八九都丢掉了。现在传世的李白诗文加上不同版本疑似伪作,也就一千多一点,这么算来李白起码写过上万的作品,考虑到李白爱吹牛逼的个性,三五千也总是要有的,只是大部分都丢了。可惜吗?也未必,毕竟作品都是依托于作者的性格,只有李白的这个性格才能造就这样的诗文,而李白的这个性格也必然导致作品大量散失的结果,本来也是一体两面的事,总不能像某个江州小吏那样,人还没死就亲自给自己编全集,反复修改,还誊抄好几个副本到处保存生怕失传,真数据备份的先驱
如果把司马迁当成历史学家,那肯定是有大问题的,但是把他当成小说家,那么酷爱胡说八道编故事就反倒成了优点。司马迁还有一点好处就是,起码底线是有的,写一家之言的目的也不是扬名立万,而是藏之名山,传之其人。周某人说这是封建时代的作法,到了上世纪二三十年代已经不再流行,岂不知中晚唐就已经有人在实践了
这就让我想起大学时候的一位老师,讲课专喜欢挑注释挑课本上推荐阅读的这些小字部分去讲,用他的话说就是,大字部分自己看都能看懂,小字里面藏着更深刻的道理,那才是需要老师教才能理解的。无独有偶,还有一位曾带我读书的前辈先生也说起过,他的老师喜欢把一些最重要的东西写在不起眼的地方,所以他读老师的文稿就特别仔细。当时我还年少无知,傻呵呵的问,如果被学生忽略掉了怎么办,先生说,那就说明这学生不配学到这些重要的学问,这些学问就活该要失传。后来我看武侠小说,越是各种高级的秘籍,越要藏在隐秘的地方,就忽然理解了这种一百年前早已不流行的作法,就像是入门的考试,只有克服了一系列的困难,才能证明有更进一步学习的资格。这个套路在动画片里常见,比如中华小当家进阳泉酒家,更直接的是金米进大林寺,老师傅还担心他过不去入门的考试,而主持大师却说,如果他是这个材料,一定能考上,如果不能通过,那就说明资质不够,不是我们要找的人
也大概是因此吧,有时候我也会故意埋一些皮很厚的哏,静等着有人看懂了,和我一起偷偷一笑。当然了,大部分时候这种包袱都是不响的,那也无所谓了
2023年12月11日
闲扯一个橙子
吃完饭没事,看到桌上有橙子,就想吃,但是水果刀被猫蹭过,要洗过才好用,我又实在懒,所以手剥橙子来吃。挺酸,勉强吃了心里不服气,又见另一种不知道是橙还是柑的水果,比刚才的橙子小点,但也是很难剥皮,所以又费劲不小。不过这小的倒是很甜
突然就想起晏子春秋里讲的“橘生淮南则为橘,生于淮北则为枳”,也便顺便想起了这句话在我这里的几次反转。很多人应该都是在小学课文里知道这句话的,剧情呢,太过家喻户晓,我也就不掉书袋了。小学课文里当然是讲晏子很机智,我也就这么接受了若干年
但是后来吧,大概是到了中学,生物课讲了门纲目科属种,我就突然好奇,查了一下橘和枳,却发觉这俩根本不是一种水果,在生物学的分类上很接近,同属不同种,所以其实应该不存在什么产地不同水果就变了的事,这就好像尼安德特人不可能换个地方生存就成了智人吧——我也不知道能不能,但就算能,应该也不是肉眼可见的时间尺度内能完成的,橘枳应该同理
但是这里就有有个问题就是,橘和枳都是南方水果,理论上楚人应该很熟悉才对,而晏子是山东人,一个山东人拿对南方水果的误解和楚人逗咳嗽居然还赢了,这事怎么就这么不对劲呢
这事吧,有几种可能。比如,可能是楚王不和他一般见识,因为毕竟楚王听晏子说淮南淮北一番话后,是嬉皮笑脸的道了个歉的。齐是老牌的诸侯,楚也是大国,晏子时代的楚王应当在康昭之间,具体这次晏子见到的是谁我就没查过了,但是这几任楚王哪个都不太软,但也都不小气,不是那种玩赖的人。但也还有个可能就是,因为这事出自晏子春秋,换句话说是专业记录晏子事迹的书,曾经这本书的真假都有争议,一直到汉墓里出土了一本,说明起码不是汉朝以后的人造假,至于是不是战国就有假的,那就不好说了。而且给谁写书不得写过五关斩六将呢,那庄子里的故事还都是惠施被庄子说的哑口无言呢,所以没准这事就是编的
一直到,后来,我大学的时候,没事乱看书,看到考工记有一句“橘逾淮而北为枳”,才觉得触目惊心,原来这事不一定是瞎说,即便橘和枳不是一种水果,但是古人是真的当它们是一回事的,所以山东人完全可能说出这种话而南方人也认可,因为这个误会在当时是公认的
不过后来我就琢磨吧,周礼这玩意的来头,也是扑朔迷离,都说是出自周公,但是无凭可查无据可靠,好像最早只能追溯到汉书里的几句话,说是汉武帝时代在什么山洞密室之类的地方发现,然后成为机密档案,一直到刘向才开始研究,所以这玩意的来头,实在是……呵呵了
说到这,就突然想起所谓的晚清神书——好吧这是我瞎给起的名字,不知道学术界有没有给这些书起个专门的名字,大致就是,晚清到民国期间,突然有好多来历不明的神奇的书出现,其来头大部分都是什么,家里祖宅几辈子没打扫过,突然想起来装修一下,结果在房梁上发现一本书,还有家里牲口棚柴火垛不知道放了多少年没有清理过,突然心血来潮翻开一看,底下埋着一本书,而这些书的内容大都神秘莫测,有各种闻所未闻的“史料”,大抵是什么赵光义因为和花蕊夫人有一腿所以醋海生波杀了宋太祖赵匡胤之类这个水平的异闻奇谈。这事的真假暂且不论,也不必论对吧,但是就这个套路,这个模式,熟悉不熟悉?眼熟不眼熟?提个醒,古文尚书是怎么发现的
明白了吧,哈哈哈
2023年10月25日
大模型的未来是垂直领域大模型
摘要
大模型的话题还在继续升温,垂直领域大模型也不断受到关注,越来越多人相信它会是大模型未来发展的方向,并且有大量讨论从需求、行业发展、应用等角度阐述垂直领域大模型,但是从理论角度来理解这个趋势的介绍却比较少。大模型应用向领域垂直化发展的趋势,是否有其必然性?又或者垂直领域大模型也只是大模型众多应用尝试中的一种,也要在千军万马中努力争取成为挤过独木桥的幸存者?本文就是尝试在这个角度做一些讨论。
这里和下面所谓的垂直领域大模型,特指使用针对特定领域设计的算法训练领域数据得到的大模型,和通过其他方式得到的可能用于专门领域的大模型做对比。
引言
上周百度的发布会引出了关于《决定大模型未来的,为何是原生应用》、大模型如何商业化产品化、应用前景到底如何的讨论。由于文章较长,我就没有麻烦文心一言和 chatGPT 来帮忙摘要,而是人肉浏览了一遍,大致是说,大模型要和已有的应用功能结合,比如使用大模型的 NLP 能力让地图导航的交互更便捷,更拟人,而不是让大模型去导航,导航仍然是地图的功能,大模型只是让这个功能更好用。这样让上帝的归上帝,凯撒的归凯撒,功能归 app,交互归大模型,“当越来越多AI原生应用改变人类生活,人工智能造福于人类的美化愿景才能真正实现”,AI 技术也才能实现自我造血,可持续的发展下去。
我和几位奋斗在 AI 教学和科研战线的老同学在闲聊中也说起过类似的话题,由于师出同门,所以大家在观点上都有很明显的传统学院派倾向,对大模型的态度和工业界有很大的差异,都认为大模型对 AI 学科的最主要贡献就是引流,吸引资本和眼球,提升 AI 的关注度,用来拉经费用的。
其实早在年初 chatGPT 刚火的时候,就有 AI 领域的资深研究者表达过类似的态度。比如前 MSRA 的 NLP 负责人周明博士就在一次讨论上说,chatGPT 在他看来最大的意义在于,让 NLP 进入公众视野,让更多人知道他们这些 NLP 研究者干的事是有用的,并且调侃说,chatGPT 最大的实用领域有两个,一是青少年教育,因为知识内容固定,不需要定期更新,再就是陪老太太聊天,什么电视剧主角是谁之类的话题,反正说错了也无所谓。这种半开玩笑半无奈看似漫不经心,但是又有多少实话是夹杂在不经意间说出来的呢。
今年各个行业都被 chatGPT 迷住了,都想用大模型,纷纷投入资源,也有各种大模型纷纷出炉,但是像 chatGPT 这种通用大模型在每个行业领域内的表现又确实很一般,因此通用大模型火了大半年,还在继续火,而同时服务于特定领域的大模型越来越被关注。也有人在问,有没有可能,随着大模型的不断发展,越来越大,会出现一个更好的超级大模型,能够驾驭所有行业的垂直领域,到那一天,现在花在领域大模型上的投入就全都打水漂了。
超级大模型的想法,很美好,所以只能是个想法而已。且不说有没有人真的去干这件事,会不会得到各个行业的配合,能否收集到充分的数据用于训练,需要多少算力和能源,单说理论上,这个事就不成立。
美好的超级大模型
模型无论大小,都还是一段程序,仍然没有超越算法和数据。通用大模型的数据都是通用数据,领域专用的数据较少,因此也不能指望它们对特定领域能达到什么深度,这就像只接受通识教育的人不会成为行业专家一样。也有人认为,对于已有的大模型,如果用更多行业更多领域更多数据去训练大模型,是不是会得到一个全知全能的大模型?或者即便全知全能的代价太高,如果只保留现有大模型的代码,把数据替换成某个特定的领域,是不是就可以获得新的大模型?
答案可能有点悲观——这就要从算法领域的一个常识说起。
没有免费的午餐
算法领域有个常识,就是 NLF:No Free Lunch(Wolpert,1996;Wolpert and Macready,1995)。NFL 的逻辑其实很直接,简单说就是:因为算法的确定性,所以算法无法避免归纳偏好,同时问题也是有倾向性的,如果把算法无差别的用在所有问题上,就会发现,所有算法的平均水平都一致——简单说就是,你深思熟虑,我都选 C,只要考试题足够多,咱俩的成绩就一样,谁也没比谁更差。
—————————— TLDR start ——————————
算法的定义要求每一步的结果是确定的,所以计算机擅长处理确定性的问题,答案非黑即白。但是在实际应用里,一定会有模棱两可的场景,如果进入算法流程,就需要“选边站队”,而且是固定的永远选某一边。最简单的例子比如,折半查找时,遇到元素数量是奇数,正中间的那个元素归前还是归后,排序问题遇到相等是否交换元素顺序。作为算法,不可能这次归前下次归后,也不能随机交换相等的元素,无论选了哪边,都必须永远坚定的选择,不能朝秦暮楚。
这种确定性是算法内在的要求,就像周志华教授在西瓜书里说的,如果算法给出的是随机的结果,那就会导致问题的答案不稳定。而恰是算法内在的这种确定性,导致了算法必然有归纳偏好(inductive bias),永远倾向某一边。而同时,实践里要解决的问题,通常也都有倾向性,我们对于问题的关注角度和预期都有差异。当问题和算法的倾向一致时效果就会比较好,反之就会差。因此选择算法当然有讲究,什么算法针对什么问题,是有规律的,选择算法首先要理解问题。同样,评估模型质量首先也要考虑算法的偏好和问题的倾向性是不是一致,是不是选对了算法。当然,这不是说某个问题必须用什么算法,而是选对了算法,可以更大概率更高效的解决问题。
NFL 的证明在各种算法书上很容易找到,不难,但是有点繁,西瓜书里用二分类问题做了个简单的说明。实践里,回归问题可以通过阈值转化成分类问题,多分类问题可以转化成多个二分类问题,所以这种理论问题,只要二分类搞清楚,多分类和回归也就大概能明白。有兴趣可以参考西瓜书 8-9 页的证明过程,我就不抄了,大致说一下思路:
- 算法就是建立问题到答案的映射关系,对于二分类来说,就是一个离散集 U 到 {0, 1} 上的映射。U 和 {0, 1} 之间实际的相关性记为映射 f: U->{0, 1};
- 通过数据划分的方法,选定 U 的真子集 X 作为学习样本,通过学习算法 L 拟合出映射 h: X->{0, 1},h 就是通过算法 L 训练得到的模型。所谓好模型,就是 h 尽量贴合 f;
- 对 h 进行验证,计算在每个 (U-X) 内的元素上 f 和 h 的差,也就是看 h 对那些在训练中没有用到的数据的表现,然后和 f 去对比,然后取平均,也就是计算每个元素上 h 和 f 的差的平均值,得到平均误差;
- 化简 h 模型和 f 的平均误差的表达式,发现表达式中不包含变量 L,说明 h 和 f 的平均误差和算法 L 无关。
因此可以说明,所有算法的平均误差都是相同的。
—————————— TLDR end ——————————
基于 NFL,如过把算法用在所有的问题上,那么所有算法的平均表现没有差别,也就是说,一个算法如果在这类问题上有优势,也就一定在其他问题上有弱点,从而达到总体平均误差在一个水平上。归纳偏好和问题的倾向性匹配的时候效果好,不匹配效果差,算法偏好和问题倾向的匹配程度会影响效果,所以有的算法就是适合且只适合某些类型的问题。这也很符合我们日常的经验,当算法偏好和问题倾向不匹配的时候,就很难效果好,这个“难”可能体现为结果不被接受,P / R / A 差,训练调优成本高,效率低等多种形式。
NFL 字面直译是“没有免费的午餐”,但我总觉得要表达的不是这么个意思,不妨翻译成“效果守恒”——出来混迟早要还,收之桑榆失之东隅,谁也别想占便宜。所以西瓜书也反问:是不是“被一盆冷水浇透了”?
幸好 NFL 针对的是各种算法面对不同类型问题时候的平均表现,而且有个大前提是,假设各种问题的出现几率是平均的。很多对 NFL 的滥用就是因为忽略了这一点,我们要解决的问题,并不是平均的,总会有出现概率的差异,或者重要性的差异。换句话说,NFL 的成立所要求的前提条件在现实中并不存在,或者至少是被回避掉了,而对于足够复杂的问题,本来也不应该幻想能得到“既要又要我还要”的答案。因此在各种教材里,提到 NFL 都是作为“算法服从问题”的理论依据,所有 ML 圈的人都在念叨“没有最好,只有最合适”的口头禅,我以前做模型质量、算法评估和机器学习测试的时候也不断提醒自己以及一起工作的同事,一定要先想清楚问题是什么,我们需要什么,关注什么,再来讨论模型和算法。
但是即然总误差相同,那也就意味着如果追求局部误差减小,就必然放大其他部分的误差——同理,放大局部的误差,可以实现另一部分误差的缩小。对于看似不太好的算法,也可以反思它适合什么场景,而不是一棍子打死。凤凰熬汤不如鸡,但凤凰存在的意义本来也不是作为食材。
超级大模型 vs 领域大模型
回到前面的问题,例如 xxGPT 即然在某些方面有短板,各领域能力类似下图,这种不均衡是不是可以通过增加数据类型、调整训练算法的方式来补齐短板?
想法很美好,即然在某个领域技能偏弱,就增加这部分数据重新训练。但是根据 NFL,适合训练 NLP 的算法,未必适合训练编程,适合训练逻辑模型的算法,也未必适合训练计算模型。所以增加数据的同时,就也要调整算法。于是,在数据和算法都更新,兼顾了各方面后,得到了没有短板的全能大模型 almightyGPT:
这种模型,用 90 年代末叛逆青年韩寒的话说就是“全面发展,全面平庸”——任何领域都挺像那么回事,但也就只是那么回事。这种大模型,如果遇到转门针对某个领域的模型会怎样?比如,针对艺术领域的算法和数据训练 artGPT:
很显然,别的领域可能 almightyGPT 有优势,但是至少在艺术领域,artGPT 可以站稳脚跟,妥妥打赢 almightyGPT。同理,其他领域的专用模型也可以稳赢。最终结果就是,在每个细分领域的战场上,almightyGPT 都有一战之力,但也只限于一战而已。那么 almightyGPT 的生存难度可想而知。
当然了,almightyGPT 可以增加投入,引入各领域的数据,但还是由于 NFL,不能单纯的“去子留母”,而是连算法也要更新,才能得到进化版的 almightyGPT+:
没错,全面碾压其他的各种 xxGPT,但这一定是以增加数据增加算力为代价的,只要其他模型调整算法,用同样的算力,扩充某个特定领域数据,仍然会出现单项超越——换句话说,只要大家烧一样多的钱,针对特定领域的专用模型在专业领域里仍然还是能打赢通用模型,偏科胜全才。
所以这显然不是一条能保持优势的路。与其补短,不如避短,训练模型只针对特定领域,使用模型只针对特定问题。想通了这个,也就回答了前面的两个问题:为什么不会有全能大模型?是不是换了数据训练出的模型就能用于其他领域?
确实悲观。
但是这里有个逻辑不严谨的地方就是,大模型的算法也许很清楚,但是当数据量增加,参数增加,神经网络的深度增加,而且增加到现在找个规模,甚至未来还会继续增加,这时算法到底干了什么,已经没人知道了。也是因此,学院派对大模型的某些也反应就很正常了。
专门训练 vs 微调
还有一种很流行的思路是,随着通用大模型可接受的输入越来越大,是不是可以使用语境学习(ICL)的思路,通过微调(SFT / PEFT / RLHF 等)提升通用大模型在垂直领域的表现?
说实话,我还没仔细查相关的研究和实验,但是按照日常的直觉,隐约觉得还是专门设计的领域大模型会胜出,毕竟,领域大模型可以从预训练阶段就开始建立知识,而微调只能依托在现成大模型已有的基础上加强,这就相当于“用你的爱好挑战别人的饭碗”,如果不是天才,一定输的很惨。
当然了,这不是说微调没意义,毕竟这是获得一个可以用于特定领域的大模型的比较快速的方式,如果对特定的领域,只是需要让大模型来扫个盲,入个门,那微调的结果也差不多能应付,如果遇到个客户说就想要这个,那也不必和客户较劲。不过要解决学科和行业真正有难度的问题,还是需要专门训练的领域大模型。微调只是成本低,不是效果好,皮鞋扎几个洞当凉鞋穿,那就是凑合应个急,也不是不可以。
对未来不负责任的畅想
大模型各司其职
基于以上,我们对大模型的态度和使用方式也就有了。以 chatGPT 为例,处理数学应用题就是 chatGPT 的弱项之一,曾经就连简单的鸡兔同笼都能让它胡说八道。但是值得注意的是,无论问题回答的多么离谱,chatGPT 都能一直保持着一种有来有回的对话,并没有像 TayTweets 那样丧失优雅的交流方式,因为毕竟 NLP 是 chatGPT 的相对舒适区,chatGPT 擅长的还是在 chat,而不是解决具体学科领域内的问题,虽然 chatGPT 每个版本升级都在增加数据增加参数增加迭代增加自由度增加算力,但是仍然存在相对的短板。
所以很多行业都在研发自己的大模型,让别人解决共性问题,我们解决特性问题,不重复制造轮子。比如彭博社推出的面向金融的 BloombergGPT,学而思的 MathGPT,北大的 ChatLaw,都是顾名思义就知道是什么垂直领域的大模型。同样的,编程有著名的 Copilot,那么当然也需要有专门为 BA 设计的 chatBA,专门做测试的 qaGPT。
对于广大各行各业的用户来说,对于大模型的需求就是只要自己本行业本领域内表现好就行了,股票大模型不需要会给恐龙化石做分类,通用大模型的某些能力用不到,却还要为此买单,岂不是心里很不爽?更况且垂直大模型的训练成本应该也远远低于通用大模型,甚至当前很多领域都还在数据建设阶段,现有的数据仓库数据湖的主体都还是传统数据结构,可能根本也没有那么多可用于训练的数据。
因此大模型的发展方向一定不会是一个或者一类综合的超级全能大模型,而是多领域大模型的组合。NLP、计算、逻辑等基础能力可能会被某些机构和组织垄断,形成“基础模型提供者”,而更多的厂商会去竞争不同领域内的模型,就像操作系统和应用软件的关系,通识教育和专业教育的关系。例如 chatGPT 的强项在于 NLP,就专注做交互,作为前端接收用户的问题,然后分配给对应的领域大模型,必要时领域大模型还可以调用 app 的功能,最后汇总结果,NLP 根据情景遣词造句,生成合适的输出返回给用户。与其担心随着通用大模型的发展,花在垂直领域的资源打了水漂,还不如反过来考虑一下,如果有 Windows、Linux、Oracle 这种级别的基础能力大模型出现,花在通用大模型上的资源是不是打了水漂。实际上李飞飞等一大批学者早在两年前就在《基础模型的机遇和风险》(On the Opportunities and Risks of Foundation Models)中对大模型的同质化提出了警告。
甚至随着需求的进一步提出,还会对每个垂直领域继续细分,比如 Copilot 继续细分出 Copilot-Python 和 Copilot-Java。对于程序员来说,这当然是个好消息——我指的不是 Copilot 会持续的进化,而是,只要人类还在继续提出问题,就一定需要专门的模型去解决这些问题,所以程序员需要持续技能进化,要做的事情一定越来越多。
失业的只是不能与时俱进的码字工。
无惧泡沫
AI 自从 50 年代提出概念,发展至今几起几落,每次的节奏完全一样,就是“技术突破 – (被)画大饼 – 资本涌入 – 没有产品 – 凉凉”循环上演。如今这个风口可以追溯到三十年前的深蓝。在过去的一年里 GenAI 和大模型火爆,的各行各业都表现出了浓厚的兴趣,纷纷畅想如何使用 chatGPT 为代表的各种大模型工具,然而接近年底,仍然罕见一个真正影响某个行业的成功实践案例,再加上因为众所周知的原因,很多行业如今都没有余粮,如果再不趁热解决产品落地的问题,早晚还是回到新一轮的圈圈里。
80 后应该都对 90 年代末的互联网泡沫记忆犹新,当时也是出现了一大批“风口上的猪”。但是随着泡沫破裂,整个进入了多年的萧条。这其实是无法避免的,互联网在当时就是个新生事物,所有人都知道这将是一件强大的工具,但是没人知道该怎么使用它,因此当时那些雨后春笋般创业的公司,本质上就是气球里的大量分子在不同的方向做布朗运动,谁也不知道气球什么时候能被突破,突破口在哪,大家都在做各种尝试。所以泡沫对于互联网也未必全是负面影响,至少它让所有人认识了互联网,经过洗牌也孕育出了第一批互联网巨头,培养了从业者的技术兴趣,也摸索出了互联网的打开方式。
同样的剧情在电子商务、移动互联网、o2o 也都出现过,在 AI 领域的前几次浪潮里其实也在反复上演,只是 AI 的气球始终没有被突破。
大模型会捅破这个气球吗?
最后
NFL 简单说就是有强项必有弱点,这太像日常生活的经验了,简直让我有种“一切都被按照 NFL 设计,包括人类”的恐惧感,甚至怀疑它不是真的。曾经也确实看到过一篇文章,大致是说算法理论有新突破,会打破 NFL。当时没仔细看完。粗略浏览,但是由于根深蒂固的对 NFL 的信任,导致我也没仔细盘一下作者的思路。当时没保存,写这篇的时候想回顾一下,但是再搜又找不到了。
知识越多的人总会越趋向保守,对陌生的观点有本能的排斥,更愿意相信能看懂的东西,从而保持自身在体系内的位置,因此才有了“无知者无畏”的说法。而机器可以调整算法,更快吸纳新数据,重塑模型,这大概是人类学习最难超越机器学习的方向吧。
2023年10月16日
玩大模型别忘了 NFL
最近和几位奋斗在 AI 教学和科研战线的老同学闲聊,明显感觉到传统学院派对大模型的态度和工业界有很大的差异。在学术界看来,大模型对 AI 学科的贡献就是引流,吸引资本的眼球,提升 AI 的关注度,用来拉经费用的。所以我们就以 chatGPT 为例,聊起了它的作用,在学术界看来,这东西能干啥。在讨论中,有个概念被屡次提到,就是 NLF:No Free Lunch。因为基于 NFL,模型有优势,就必有劣势,这也符合事物两面性的规律,所以这么多行业突然关注 chatGPT,认为它有用,难道它不符合 NFL?这就引起我再来看一下 NFL,是不是有什么误解。
熟悉 ML 的人不可能不知道 NFL,因为它确实被广泛使用,甚至是被过度的使用。曾经我也基于这个定理做了不少引申,但是渐渐越来越觉得,有些引申是不是过头了。所以想把这个问题拿出来反思一下,到底出于怎样的误解导致了这种滥用。
NFL(Wolpert,1996;Wolpert and Macready,1995)的逻辑其实很直接,简单说就是:因为算法有确定性,所以算法无法避免归纳偏好,同时问题也有倾向性,所以归纳偏好和问题的倾向性匹配的时候效果好,不匹配效果差,如果无差别的用在各种问题上,对误差求平均,就发现,所有算法的误差平均值一致——简单说就是,谁也没比谁更差。
—————————————————————————— TLDR start ——————————————————————————
稍为展开几句:
算法的定义要求每一步的结果是确定的,所以计算机擅长处理确定性的问题,答案非黑即白。但是在实际的问题里,一定会有模棱两可的问题,如果进入算法流程,就需要一个“选边”,而且是固定的永远选一边。我们经常听“法外狂徒张三”说的所谓刑法“疑罪从无”原则,就是这种类型的选边,所以从逻辑(不是实践)的角度,也可以构造出“疑罪从有”的刑法体系——那就太可怕了。这种机械的分类,是算法内在的要求,就像周志华教授在西瓜书里说的,如果算法给出随机的结果,那就会导致不稳定。
而恰是算法内在的这种确定性,导致了算法必然有归纳偏好(inductive bias),永远倾向某一边。而同时,实践里要解决的问题,通常也都有倾向性,当问题和算法的倾向一致时效果就会比较好,反之就会差。因此选择算法当然有讲究,什么算法针对什么问题,是有规律的。所以选择算法首先要理解需求,同样,评估模型质量首先也要考虑算法的偏好和问题的倾向性是不是一致,是不是选对了模型。当然,这不是说某个问题必须用什么算法,而是选对了算法,可以更大概率更高效的解决问题。
NFL 的证明有点长,西瓜书里用二分类问题做了个简单的模拟。实践里,回归问题可以通过阈值转化成分类问题,多分类问题可以转化成多个二分类问题,所以这种理论问题,只要二分类搞清楚,多分类和回归也就大概能明白。有兴趣可以参考西瓜书 8-9 页的证明过程,我就不抄了,大致说一下思路:
对于一个离散集 U 到 {0, 1} 上的映射 f: U->{0, 1},给定 U 的真子集 X 作为样本,通过学习算法 L 拟合出映射 h,希望 h 尽量贴近 f。计算在每个 U-X 的元素上的 f 和 h 的差的平均值,得到 L 的平均误差。通过计算,L 的平均误差的结果,和 L 无关,也就是,所有算法的平均误差都是相同的。
—————————————————————————— TLDR end ——————————————————————————
算法偏好和问题倾向的匹配程度会影响效果,这也很符合我们日常的经验。如过我们把算法的意义还原到“完成目标的工具”,那么,每个工具有各自适用的场景也是理所当然的事,工具箱不能只有锤子,然后把一切都当成钉子,这显然是不对的,就好像专业摄影师都有一柜子镜头来应对各种拍摄场景,每个镜头就是一种算法,拍摄的场景和题材就是要解决的问题,虽然没有固定的什么镜头拍什么题材的规则,但是哪个焦段的镜头更适合什么题材,更容易出好片,确实有规律可循。
当算法偏好和问题倾向不匹配的时候,就很难效果好。这个“难”可能体现为结果不被接受,pre / rec / acc 偏低,也可能是训练和调优的成本高,效率低——当然了,被上帝亲吻过的金手指不在讨论范围内。因此可以认为,每个算法都有擅长的领域和不擅长的领域。那么如果用相同的算法处理所有的问题,会怎样呢?答案就是 NFL:都一样。
这就像摄影师永远用同一支镜头拍所有的题材,那自然会遇到难以驾驭的场景,太远的够不着,太大的装不下,无论长焦广角,都会有捉襟见肘的时候,每个镜头只在某个场景下出的片最好,晴朗的户外,手机也能压过单反,这就是 NFL 要说的事。之所以存在那么多算法,就是因为每个算法都有擅长和不擅长的领域。之所以存在那么多编程语言,就是因为……好吧就算 php 是最好的语言
NFL 虽然字面直译是“没有免费的午餐”,但我总觉得要表达的不是这么个意思,我觉得不妨翻译成“效果守恒定理”,出来混迟早要还,失之东隅收之桑榆,谁也别想占便宜。所以西瓜书也反问:是不是“被一盆冷水浇透了”?
幸好 NFL 针对的是各种算法面对不同类型问题时候的平均表现,而且有个大前提是,假设各种问题的出现几率是平均的。忽略这一点,就是导致滥用 NFL 最常见的原因,因为我们要解决的问题,并不是平均的,总会有出现概率的差异,或者重要性的差异,换句话说,NFL 的成立所要求的前提条件在现实中并不存在,或者至少是被我们回避掉了,我们要解决的问题从来不是这么平均。还以前面镜头的例子来说,比如今天拍摄题材是室内人像,如果只带一支镜头,那么摄影师大概率会选择 50mmF/1.2、85mmF/1.2 或者百微这样的镜头,而不会是超广角或者长焦镜头(除非有特定的艺术创作思路,大师有特例)。
因此在各种教材里,提到 NFL 都是作为“算法服从问题”的理论依据,所有 ML 圈的人都在念叨“没有最好,只有最合适”的口头禅,做模型质量评估和机器学习测试,首先要想清楚的也是问题是什么,关注什么。但是 NFL 的原始表述其实是说,所有模型的总误差相同。即然总误差相同,那也就意味着总体误差是零和的,如果我们追求局部误差减小,就必然放大其他部分的误差——其实也同样意味着,放大局部的误差,可以实现另一部分误差的缩小。三国演义所谓的“利于水者必不利于火”,藤甲兵也是通过油泡古藤,放弃对火的防御力,换得了坚硬和防水技能点爆表。我以前做算法评估和模型质量的时候也不断提醒自己以及一起工作的同事,一定要先想清楚问题是什么,再来讨论模型和算法,有所长必有所短,所以要扬长避短,而不是盲目补短。同理,对于看似不好用的算法,也可以反思它适合什么场景,而不是一棍子打死,凤凰熬汤不如鸡,但凤凰存在的意义本来也不是作为食材。
这个结论其实也符合我们日常的直觉,就是不会有一件大杀器能够解决所有的问题,瑞士军刀功能多,但是干什么都比不了专用的工具,用一个更直接的比喻来说,就是韩寒在 90 年代末作为叛逆青年提出的“全面发展全面平庸”,认为能投入学习的精力有限,如果什么都学,结果就是什么都一般般。如果仅从实用角度,他似乎也没大错,现实的问题都有其领域,在基本的通识基础上,就应该每个人各有擅长,用人用其长处,专家型社会就是需要偏科的人才,只不过当时的主流教育界把这个偏科的时间点放在了高二以后,而韩寒认为可以提前到初二。
想通了这个,可能会影响我们对 chatGPT 的态度和使用方式。chatGPT 也应该不会超越 NFL,对于有些问题 chatGPT 可能处理的非常好,但是有些则不擅长,因此当我们需要利用 chatGPT 去处理弱项的时候,就需要各种设计,把问题转化到它适宜的领域,或者借助其他的工具。例如 chatGPT 处理数学应用题是弱项,曾经就连简单的鸡兔同笼都能让它胡说八道。但是如果我们把数学题变成编程题,让 chatGPT 给出代码,情况就会有(不足够敏锐就察觉不到的)一点好转。
但是值得注意的是,无论问题回答的多么离谱,起码 chatGPT 仍然保持着一种有来有回的对话,并没有像 TayTweets 那样丧失优雅的交流方式。毕竟 NLP 是 chatGPT 的相对舒适区,chatGPT 擅长的还是在 chat,而不是解决具体学科领域内的问题。这很可能就是 NFL 的表现,就好像马戏团的演出犬,和导盲犬、搜救犬、军犬、警犬的训练方法和要求,各自肯定都不一样,导盲犬的某些训练要求,可能对于马戏团来说根本不需要,让军犬去执行搜救任务,大概效果也不见得好于搜救犬。chatGPT 在 NLP 领域的技能点很高,也就意味着必然有些其他领域拉垮,如果要保持 NLP 等优势技能不降的同时提升其他诸如数学、逻辑等当前的弱项,那除非打破前面的总前提,继续增增加各种资源,提升技能点的总数,相当于警犬和宠物狗比较,肯定各维度都领先—— chatGPT 每个版本升级都在增加数据增加参数增加迭代增加自由度增加算力(虽然并不明确算法到底有没有更新),但是仍然存在相对的短板。所以有很多行业正在研发自己的大模型,比如彭博社推出的面向金融的 BloombergGPT,学而思的 MathGPT,固然都有蹭热度之嫌,但也是这些行业对于大模型的一种应用思路。
回到 NFL,即然无论怎么调优,算法结果的平均期望四舍五入约等于“都选 C”,那么 ML 还要不要搞呢?答案显而易见,毕竟,不会走的表一天可以准两次,慢 5 分钟的表从来都不准,但是哪个更有用呢
2022年05月24日
一个 fault injection 测试的三次演化
TLDR
fault injection 测试通过制造故障,并收集系统的运行状态和功能表现,判断系统在故障场景下持续提供服务的功能稳定性。出于某些需要,我做了一个这种有点偏门的测试,测试的场景是各种硬件和环境错误。最开始的测试甚至都不是自动化的,渐渐写了几个脚本,形成了自动化的流程,再增加测试场景。具体的测试场景可能很小众,但是其中却也用到了一些相对大众的方法。都是做测试,总是会有共性的地方吧。
0,程序员的玩具
这年代,大家手里都有点到此一游的照片,蓝光 4K 的电影,无损的绝版音乐之类自己很珍惜的数据,这些东西很快就会塞满一块又一块硬盘。硬盘总是有寿命的,虽然不值钱,但是数据无价。所以在坏了几块硬盘,损失了十几 T 数据,手工 copy 总是搞不清楚数据在哪之后,我终于写了个基于 syncthing 的数据备份。
简单描述一下这个小玩意吧,就是 n 个节点组成集群,节点间数据互相备份,无论哪个节点的硬盘坏了,都可以保证整个集群内至少有一个副本还保留着,并且能在其他节点上补齐副本的数量。数据的复制由 syncthing 完成,我的代码只负责决定什么时候把哪些数据的几个副本复制到哪些节点上。
硬件:

- 古老的 cubieboard2 开发板,有 sata 接口和有线网,没有 wifi,两个 USB 2.0,一个接 U 盘,一个接无线网卡(如果是双卡版会更好,可以省下一个 USB 口);
- u 盘,暂存新数据;
- SATA 磁盘,保存副本数据;
- 有线网,节点间数据复制;
- 无线网,各种外部连接、登录和 api。
基础软件:
- Archlinuxarm,滚动更新;
- syncthing,节点间数据复制;
- redis + zk,维护文件的副本分布关系表和各节点的基本信息(不得已的选择,一直在想办法换掉);
- nginx,暴露 api,提供每个节点的 heartbeat 和状态参数。
我的服务细分有五六个,真正做事的只有两个:
- meta,维护自身数据,比如运行状态,磁盘容量,节点间关系,上报到 redis;
- ctrl,确定 U 盘里暂存的数据的每个副本要分配到哪些节点。
现在有四个节点在运行,每个节点的软硬件完全一样。我尝试写过前端,但是我的前端实在不灵,也尝试过用一些日志和结果工具,但是没耐性仔细研究。而且出于对命令行的执念,我一直用命令行玩的也挺开心,所以前端就基本上一直没动作,一直就是个 CLI 工具,唯一的 GUI 就是 syncthing 自带的 web 界面。

1,墨菲说,能坏的都会坏
hint:即使是 TDD,也不意味着写出来的代码没有 bug,代码实际运行的条件永远比开发的时候想象的更恶劣,因此在测试中有必要发挥想象力,给代码更苛刻的测试环境。当然,这一切都有个限度,这取决于这段代码所承担的功能到底有多重要。密码学领域有句话,安全的加密就是破解的代价大于密码本身。同样的道理,测试到底要进行到什么程度,就取决于代码的价值和测试的代价。
代码有了,没测试肯定不行,否则怎么知道备份运行的靠不靠谱。我最担心的就是各种故障,所以制造了一些故障的场景,这就有了最原始的 fault injection 测试。其实测试场景都很简单,就是各种故障,目前我只考虑了以下几种:
- 磁盘故障:U 盘,SATA 硬盘;
- 网络故障:有线网络,无线网络;
- 服务故障:syncthing 服务,meta 服务,ctrl 服务,zk,redis;
- 节点整体故障,比如断电。对于集群来说,这和断网的区别不大,但是对单个节点来说意义就很不一样。
测试通过标准:存储的数据不丢,在其他节点补齐没有完成或者丢失的副本。所以如果出现丢失副本或者副本没有及时补齐,那就是 bug 了。
但是在以下场景,理论上确实无法保证不丢数据,或者补齐副本,因此以下场景不做测试:
- 数据刚进入暂存路径,没有进入处理流程(但是超时未发现暂存数据是 bug);
- 数据副本数 <= 硬盘故障节点数,如果数据的几个副本恰好都在故障的 硬盘上,那么丢数据是预料之内的事;
- 无故障节点数 < 数据副本数,这时候找不到足够的节点存储副本,那么副本无法补齐(但是未发现副本数不足是 bug)。
环境是现成的,用例也有了,就可以开始测试了。我的第一个 case 是硬盘故障,测试方法说出来笑掉大牙,就是直接拔 SATA 线——纯纯的原始社会手工测试。
2,上帝说,要有自动化
hint:做自动化测试,首先要明确有没有可能,是不是必要。测试的场景能否通过代码实现,实现的代价有多大,对应的自动化测试会被使用的频率等。软件研发是工程,没有对不对,只有好不好。所谓好,就是在各方面因素之间找到平衡。自动化测试就要在 ROI 上找平衡,确定自动化的范围。敏捷希望快速响应,强调持续集成,持续构建,持续发布,因此必须有足够的自动化测试来支持,但同时,也是因为敏捷希望快速响应,因此自动化测试的程度必须恰到好处,不能在自动化测试的实现和维护上浪费太多的资源。在这个意义上,项目有多少场景可以方便的实现自动化测试,并且足够频繁的使用,一定程度上也会影响对敏捷方法的选择。如果发现自动化测试的难度大,或者维护成本太高,并且执行的机会较少,甚至自动化测试的 ROI 反而低于手工测试,那要么是代码的可测性太差,要么是这个项目不太适合敏捷的方法。自动化测试只是方法和工具,我们追求的是质量和效率。
这个 fault injection 就很适合自动化测试:
- 故障场景大部分都可以用各种命令工具来模拟,linux 下有非常丰富的模拟异常的工具,这些是自动化测试可能性的基础;
- 没有太多的上下文依赖,每个场景都可以单独拿出来测试;
- 测试的需求足够频繁,完全可以串接进流水线;
- 测试需要的数据只是各种文件,很容易准备。
基于此,我觉得做个自动化难度不高,而且效果明显。模拟大部分故障的方法都很简单:
- 磁盘故障:这部分方法非常多,比如把磁盘设备配成 /dev/full 模拟磁盘写满,通过设置 /sys/block/sdc/device/timeout 模拟磁盘超时,配合 dmsetup 设置超长延迟,也就相当于磁盘不可读/写。例如,设置 /dev/sda 读写延迟 500ms:

- 网络故障:用 tc 命令设置网络延迟和限制带宽等,设置超长的网络延迟还可以模拟断网。例如,eth0 网卡延迟 100ms:
- 服务故障:直接 kill 或者 systemctl stop / disable 来模拟服务故障,但是正常退出还是太温和,没有达到测试的效果;

- 节点故障:直接 reboot 模拟节点失效,但是恢复太快,我尝试过在 rc-local 里增加 sleep,但是效果不好,而且正常重启的破坏性不够。
hint:自动化测试往往需要准备大量的数据,尤其长链路的业务,经常是后面环节的 case 所需要的数据依赖前面环节的操作结果,这时候如果要单独测试一个 case,就需要生成很多基础数据作为支持。这时候直接保存数据就显得很笨拙,不如保存生成数据的 sql 等脚本更符合敏捷的精神。在测试的时候生成数据,测试后清理,这样虽然增加了额外的步骤,但是以代码和文件的方式来保存自动化测试的数据,换来的是维护性的提升和管理的便利,不但便于保存,而且可以纳入代码管理,也便于和 CI/CD 集成。但是有些项目的有些测试场景中,关联的数据库元素太多,导致测试前需要构造大量复杂的数据,牵涉到多个数据库的多个表,甚至外部数据库,那就需要提升一下可测性了,比如必要的重构,重新考虑代码的实现方式,是不是真的需要这么复杂的关联关系。
我的测试数据就是各种大小的文件,我在测试开始的时候通过 fio 来生成文件,因此就不需要准备文件,只保留一些 fio 的配置。而且 fio 生成数据也挺快的,就是可能缩短磁盘寿命。例如,在当前路径生成一个 10M 的文件,文件名为 file10m,命令是:

后面的参数都可以写成配置,比如:
512k1024.fio

我的重点在于快速生成数据,而不是磁盘性能测试,因此没有特别指定缓存并发和 ioengine 等。fio 是个测试磁盘性能很有用的工具,还可以直接写裸盘,可以读写混合,可以选择缓存方式,以及各种其他功能,参数非常丰富,值得更深入的研究。
第一次演化:从自(己)动(手)到自动
hint:大部分自动化测试都是来自手动测试,反复执行的手工步骤最终都会被写成脚本执行。最初的自动化测试往往就是很简单的一些命令,但是能带来很大便利,提高效率,这也是自动化最开始的雏形。尤其在团队里,这个现象更明显。很多项目在研发期间,每个工程师都可能为了自己的使用便利而编写一些准备环境或者功能验证的脚本,都很值得关注。这些小工具分散在每个人的手里,其实也是一种浪费,如果进行收集整合,形成流水线或者 toolkit,在组织内共享,能发挥更大的作用。敏捷强调自动化,在有意识的做自动化的同时,也要关注这些分散在工程师手里的自然形成的自动化工具,鼓励工程师把自己的小工具拿出来。
专项测试的分类其实有点乱,有些类型是基于测试的方法,有的类型是基于测试的目的。自动化测试是测试方法层面的分类,而 fault injection 是测试目的层面的分类,所以用自动化的方法模拟故障,既是 fault injection,也是自动化测试。
一开始我确实几乎都是手工在执行命令,很快就烦了,于是把命令串起来,加上结果收集,就有了最早的脚本。测试的流程也很简单,只模拟磁盘故障,所以流程有两种:
稳定状态下出现故障:
- 确认集群的状态可用;
- 触发故障;
- 等待同步结束或超时,检查副本数和其他丢失的副本状态;
- 记录结果;
- 恢复节点故障,再检查一次集群的状态。

同步文件期间出现故障,和稳定状态下的故障相比,在 setup 环节增加了触发文件同步的步骤:
- 确认集群的状态可用;
- 在暂存路径跑 fio 生成一组文件,等待副本开始复制;
- 在副本复制期间触发故障;
- 等待同步结束或超时,检查副本数和其他丢失的副本状态;
- 记录结果;
- 恢复节点故障,再检查一次集群的状态。

通过计算路径的 md5 来判断路径文件一致,计算路径 md5 我做的比较简单粗暴,用 md5sum 计算文件的 md5,通过计算出路径下每个文件的 md5,然后和相对路径和文件名排序后写进临时文件,再计算临时文件的 md5 的方式,回避了路径 md5 计算的问题。例如,把 node1 上 /some/data_path 复制到 node2 的 /another/data_path,那就需要计算两个 ?/data_path 的 md5。计算 data_path 路径的 md5 的方法就是,在 node1 和 node2 上(python 有 paramiko 可以很方便的在其他节点执行命令)分别执行:

这里要注意把路径拆清楚,node1 的副本路径是 /some/data_path,node2 的副本路径是 /another/data_path,因此需要 cd 到各自的 test_path,这样写进 /tmp/some_random_file 的排序后的文件名才是一致的,才有比较的意义。
第二次演化:分离和扩展
hint:自动化工具可以大而全,也可以小而美。大而全的工具无所不能,各种功能应有尽有,不应有的没准也有,都集合在一起,一旦拥有别无所求,但是这种工具往往也很难驯服,需要大量时间精力去磨合,让它完美的贴合项目的需要。而小而美的工具,每一件都专注于一件事,考验的是使用者的想象力,只要能恰当的组合,也有无限的可能性,而且因为是组合的用法,先天就便于结合新的功能。敏捷擅长应对项目的变化,尤其在预判项目的发展方向缺乏绝对把握的时候,搭建自动化平台和技术选型中如果选择了大而全的工具,一旦未来项目的走向超出预期,不得不重新选择工具,就很可能导致前期的投入浪费,也许小而美的工具组合更值得考虑,轻量化,便于拆解和重组,在变化中不至于全部被放弃,也更符合敏捷小步快跑的精神。
最初的自动化测试,就是选择若干节点作为被测试的节点,在上面执行故障模拟的脚本,而且其实也只测试了磁盘失效场景。渐渐的,当我想多测一些场景,增加更多脚本的时候,就需要复制粘贴改命令。这么做很快就觉得不爽了,所以我做了如下的改动:
- 分离控制机和 SUT,用 python 通过 paramiko 库向节点发送要执行的脚本;
- 分离配置和测试脚本,专门用一个脚本记录每个节点的相关配置,如 ip、登录信息、路径等,为异构节点保留扩展性;
- 分离共同操作。很显然,这里有些操作是每个 case 都要执行的,比如测试前检查集群状态,fio 生成文件,测试结束后恢复集群状态,清理测试文件等,因此这些就构成了 setup 和 teardown;
- 分离选择和操作,选择要模拟故障的节点和设置故障场景拆成独立的两步,这样在选择故障节点的时候可以增加更多的筛选逻辑,比如随机选,按条件选节点(比如当前磁盘最满的)等;
- 增加网络、开关机等故障的脚本,增加磁盘全盘 / 局部读写延迟以及组合的场景;
- 增加日志,记录测试时间和场景,case 失败时记录故障。
以上这些分别形成独立的脚本,这就可以自由组合了,比如,在 2 个随机节点上分别模拟磁盘延迟和断网(能实现,但是我没测过,因为我只有 4 节点,这个场景理论上一定会失败)。
第三次演化:按需调度,自由执行
hint:把各种错误场景拆分成独立的操作,并且有识别事故、保存现场、恢复环境的功能,只需要再加上随机调度,就离 monkey test 只有一步之遥了。这都得益于拆分的独立性以及组合的便利性,小工具的美就这样体现出来了。其实有的时候,尝试把旧思想和旧方法组成新的组合,也有可能形成新的方法。
既然各种故障都分离成独立的脚本了,那就可以按照测试场景的需要任意组合,只要前后加上 setup 和 teardown,中间的测试可以随便换。而且实际的故障出现也没有规律,可能出现在单个节点上,也可能出现在多个节点上,因此也要制造随机的故障场景来测试,这就接近 monkey test 了。monkey test 是测试方法层面的分类,所以无规律的模拟故障场景,既是 monkey test,也是 fault injection。

得益于各种操作分离成独立的脚本,随机测试其实做的很简单,不再有用例的概念,只有场景:
- 判断副本数和故障节点数量,需要满足:故障节点数 < 副本数 <= 正常节点数,例如 4 节点 2 副本的环境下,故障节点只能测到单节点故障;
- 单独的线程在暂存路径不断生成数据,触发副本同步;
- 随机选择节点,随机选择场景,排列组合,随机故障,并记录故障的节点、场景、起止时间;
- 收集同步结果,记录失败场景的时间点。
这里有点麻烦的就是,失败后记录的时间,需要放进故障时间线内,通过对比才能找到失败时的故障场景。这里其实也可以自动化,但是还没有自动化。考虑到 debug 也需要我去查同步的记录,因此也没有增加太多的麻烦,只是 debug 的时候像极了刑警审嫌疑犯,不断的追问代码:9 点 57 分 32 秒到 10 点 11 分 17 秒之间你在做什么,有 log 可以证明吗……
同步记录查起来还是很方便的,syncthing 有 event 的概念,每个文件同步成功后都会形成一条记录,就是一个 event,我在调用的时候也保存了 event,同步结束后就会比较一次,文件和 event 一致才算是同步成功。但是这其实也埋了不少同步 / 异步通信中断 / 阻塞的 bug,每隔几天就会爆出个把,好像总也改不完,让人心灰意冷。不过只要 event 的记录没错,经过比对,还算是可以很方便的看到哪些文件同步失败。
3,和其他测试工具对比
其实我一开始根本没想过要做成一套工具,所以也就不存在和其他测试工具对比的问题,一切都是顺其自然走下来的。其实用其他测试工具能不能做呢?肯定也可以。实际上如果当初我就想到了要做个工具化平台化的 fault injection,也许我就找个测试框架来用了。但是翻回头看看,这个工具本身也确实有些特点吧,比如:
- 是工具集,不是框架,不内置,不修改脚本内容,只是调度各种脚本,故障模拟都还可以独立运行,保留其他组织方式的可能性;
- 不依赖测试脚本的实现方式,扩展性更强,兼容更广。模拟故障都是 shell,如果换成其他用例,用其他方式实现,只要能用 shell 执行的,都可以在外面包一层 shell 收进来用;
- 其实也不是不能 GUI 化,但是我没做。别问,问就是不会;
- 同理,输出太丑,纯文本。
4,未解之谜
受限于我的知识技能包、时间和精力以及实验条件,其实还有很多该测而未测的场景,以及值得做而没做的实验,比如:
- arm 上模拟 CPU 受限和故障,我还没跑通;
- SATA 如何设置更丰富的磁盘故障,我还没找到更好的方法,比如读写慢速和短时间延迟不改路径的实现方式、SATA 没有 SCSI 那么丰富的工具集,SCSI 还可以直接模拟全盘失效,并且方便的扫描恢复,SATA 怎么做我还没查到;
- 模拟的所有故障都是稳定故障,如何模拟不稳定的故障,比如网络频繁闪断,脚本断网的间隔还是太长了;
- 如果磁盘本身是 Raid 盘,不同的 Raid 实现方式下会怎样,我还没试过,如果有机会很想试试,但这已经和实用无关了,纯粹只是好奇心;
- 在 docker 上模拟测试,会不会简化?效果怎样?没试过;
- 备份服务还会升级,比如异构节点,节点再发现,随时出入集群,同节点多硬盘等,那么数据备份和恢复的策略也要跟着变,到时候怎么测?还没想好。
5,总结
这是一个测试场景比较小众的自动化测试,我的实现过程也毫无章法,最开始并没有想好要形成怎样的架构设计,只是让几个脚本跑起来,就这么开始了,然后丰富场景,一直到现在我觉得几乎可以用来做 monkey test,其实也只是遵循了一些基本的道理。我对架构和设计的理解是 TAOUP 打下的底子,因此这种半盲目的实践好像也并没有走太多的弯路。
- 敏捷擅长小步快跑,因此对各种自动化的要求,对工具的选择,都需要灵活,身在其中的工程师需要有想象力,发现各种可能性;
- 细分,做好每件小事;组合,做好一件大事;
- 利用已有工具简化资源的维护,便于应对变化;
- 不要想的太复杂,先动手做起来,不必背负太遥远的未来,没有开始才是最大的问题。没想好也不见得是坏事,有时候可能反而不受限制;
- 自动化不是想出来的,而是用出来的。手动测试做多了,自然会发现无脑重复的部分,于是就有了自动化;
- 命令行是好东西,纯文本是好东西,灵活简便,还可以合进流水线。
简化,细分,命令行,纯文本,小工具,大组合,这些 Unix 哲学强调的观念,都是无数工程师反复实践过的经验,怎么强调都不过分。Unix 诞生 50 多年以来不断演化,其设计理念和敏捷暗合,可见优秀的工程实践都遵循着类似的原则,这种长久不变的内核,值得多花点力气去学习。
2022年01月31日
四猫斋的故事
去年的今天,家里有了猫。因为这些猫,我家就成了四猫斋。虎年到了,说说猫的故事,就算是应景吧
既然叫四猫斋,那肯定要有四只猫对吧,其实四猫斋最早只有两只猫,后来成了六只猫,最后才固定成四只猫。个中缘由其实说来简单,但是好像也没那么简单
妻念叨着要养猫很多年,之前我一直以家里房子太小为理由反对,两个人住都渐显的局促,哪有猫折腾的地方。后来曾有朋友搬家,临时把猫寄养在我家,妻获得了铲屎官的半个月体验卡,之后此心更笃。前年终于换了新房子,妻旧事重提,我还反对,但是好像没什么理由了。直到去年的一天,妻和我大吵了一架,忘了是因为什么事,反正她很生气,突然妻就告诉我,她早已联系过一个养猫的,说是家里猫太多养不过来,要我和她一起去买一只回来——我虽然不敢再反对,但是怎么都觉得这好像是给我下了个套呢
车开了好久,到那人家里了一看,果然好多猫,有一间屋子专门放猫,好像是五只,四大一小,大的三公一母,三只大公猫好像是蓝猫虎斑蓝白,大母猫是只暹罗猫,小的是只纯黑的母猫,不知道是大母猫和哪个公猫的崽。据那家的主人说,十一假期他不在家,回来发现屋里多了这只小母猫,还有三四个死小猫,应该是那期间母猫下了好多崽,结果却只活了这一个
妻看上了这个小黑猫,但是小黑猫很粘娘,于是妻决定把母女一锅端。和猫主人算了帐,带着两只猫回家
临走的时候那个人说,大母猫很可能又怀孕了。回来以后,带着两只猫们去兽医院打针体检什么的,医生给大母猫做了检查,大猫果然是又怀孕了,而且应该是有四五个。总之,四猫斋就此有了开天辟地的两只猫:大佬猫和小二黑
大佬猫,暹罗猫,它的名字总会被当成是大老猫,所以必须强调,是大佬猫,不是大老猫。大佬猫是群猫之母,所以一开始曾被称为老母亲。四猫斋创世两只猫之首,其他几只猫都是大佬猫的孩子们,所以自然是当之无愧的大佬。平素大佬猫也颇有大佬的风范,可远观而不可亵玩,除非它愿意,否则只要稍微凑近它,大佬猫就……跑了。妻叫它渣渣,因为它只有要吃要喝的时候才会围着妻转,吃饱了就自己趴着,想摸它一下它就要躲。妻说这性格简直就是个渣女嘛,所以叫渣渣——唉,看看这一窝生出来的五颜六色的孩子们,好像是挺渣的哈。大佬猫平时总是很淡定的趴着,无论怎么逗弄,激光笔也好,单摆球也罢,它只是安静的看着,仿佛看穿一切的淡定,颇有大佬的风范,那威风真不是盖的,总是那么冷静从容,只是偶尔也会少女心萌动,玩玩小球之类,或者带着孩子们操练一下,满屋子疯狂一阵,哪怕是快要生孩子的时候,也照样带着小二黑满屋子的跑酷,没荒废了体育课。听原来的猫主人说,大佬猫小时候,有一次他在睡觉,大佬猫爬到了他脸上,他迷迷糊糊的抓起来大佬猫就给扔了出去。大概是从那之后,大佬猫就吓着了,对人类缺乏信任,所以没有一般暹罗猫的那么黏人。这稍微让我们有点失望,但是怎么办呢,既然都已经带它回家了,那就对它好点吧,希望可以为它重新建立起和人类的友好关系
小二黑,四猫斋创世的两只猫之一,大佬猫健在的大女儿,因为和大佬猫一起来到四猫斋,大佬猫既然是“大”,那么小二黑自然就是“小”,通体纯黑的颜色,所以是“黑”,而“二”,则是来自它的性格。小二黑当之无愧是四猫斋群猫智商的天花板,擅长开各种门,门口挡着东西也有办法利用各种巧劲挪开,只要不上锁的门全能给打开,尤其擅长推拉门,驾轻就熟信手拈来
两个月后,三月十号下午开始,一直到晚上,大母猫生出了四只小猫,两个黑的,一个灰的,一个花的。实在是很费解,怎么一胎生的小猫都不一样。后来有人告诉我,猫确实可能一胎好几只的爸爸都不一样——好吧,谁让它是渣渣呢
自从有了四个小猫,小二黑则成长的很快,就仿佛一瞬间懂事了似的,虽然偶然也有和弟弟妹妹抢吃奶的劣迹,但是大部分时候还是很有个姐姐样的,尤其小崽们学走路学上下楼梯的时候,好多次都是小二黑在旁边默默的看着,就在弟弟妹妹几乎快要摔倒的时候它突然冲上去扶住,俨然是个大猫。但是六只猫确实是有点太多了,让本就不富裕的家庭雪上加霜,于是在它们满月后,妻决定把两个新生的小黑猫送了人。至于为什么是这两个,其实理由很简单,因为已经有一个黑猫了,颜色一样,一是不新鲜,二是怕认错,只留下了胖子和花崽
胖子,全名张二灰,外号灰公公。是的,顾名思义,就是公公,大家都懂的。胖子是在四猫斋出生的,所以有幸被妻赐姓,可以随她姓张,“灰”当然是颜色,而“二”,自然就是随着小二黑,是性格。胖子小时候一看就知道能长大个,自幼就有健硕的背阔肌,刚一个多月就显露出了发达的背阔肌和大爪子。妻喜欢胖猫,可惜全家的猫都有暹罗的血统,身材都随了大佬猫。因此妻每每看着张二灰,都会说这是全家的希望,因为有蓝猫的血统,所以可能是唯一有希望长胖的。果然,张二灰没有让妻失望,身材逐渐膨胀,越来越魁梧,是四猫斋最强壮的力量型选手。但是这绝不是说胖子就没有技巧性和灵活性,很灵活,非常灵活,柔软的胖子,力量和技巧并重。胖子天生尾巴不太好,尾巴根是折的,不能伸直,有人说这叫麒麟猫,是福相。大佬猫怀孕的时候有一次和小二黑跑酷,结果摔着了,我怀疑就是那一下,摔坏了肚子里的张二灰的尾巴。听说猫的尾巴是保持平衡的,所以它小时候我总担心影响它走路,但是现在看来,根本没啥事,不但跑的欢,而且那么胖居然轻功一点不受影响,比如小二黑打开的窄窄的门缝,胖子总能大老远的飞身一跃,精准的钻进去,只是爬高上低的时候总是嘴里念念有词的给自己配音,每次从高处下来都要嘿嘿哈嘿哼哼唧唧的,不知道在念叨着什么,大概是因为体重太大,行动的负担比较重吧。胖子体型大,力气也大,走起路虎虎生风,因此惹祸也最多,很多时候可能也不是故意的,只是因为个子太大,到处钻如果钻不进去,那就靠力气,杀伤力大,一转身就打碎个花盆什么的,因此经常挨妻的揍。但是呢,后来妻就懒得揍了,因为胖子实在是油盐不进。比如小二黑挨揍就会特别紧张,心跳加快,所以还没打两巴掌就舍不得了,而胖子就不会,挨揍的时候面无表情,也不挣扎,仿佛没这回事,甚至还要还手。妻说胖子不知道害怕,揍着都没有成就感
张小花,昵称花儿,有时候也叫花崽,很显然也是因为在我家出生而被妻赐了姓,而且我怀疑它的爸爸是以前那家人家的虎斑,所以就有了一些明暗的条纹,而且年龄最小,因此按照我家的起名逻辑,自然就是张小花。张小花是四猫斋最小的小姑娘,无论年纪还是体型,现在体重只有胖子的一半,也不知道是胖子太胖了,还是它太瘦了。张小花还是四猫斋的颜值担当,所以仗着姿色无与伦比,也占了不少便宜,比如最受宠,从来舍不得揍它,因此张小花的脾气就特别大,也最任性,早早的就养成了刁蛮公主的个性,每天早上必须腻味五分钟,要不然就往地上一躺,堵着门不让出去,而且话还最多,每天喵喵喵的最贫嘴的就是它,伶牙俐齿的,是个话痨,稍有不满意就唠唠叨叨,还哪都敢去,大摇大摆的进厨房,赶都赶不出来。大概也是因为体重轻吧,所以张小花的轻功最好,一米多高的桌子也挡不住它的一撅屁股一长腰的猛一蹿。但是就像武侠小说里常见的人物模板,轻功好的一般力气都小,所以张小花其实惹不出大祸,打坏东西什么的都很少。张小花好奇心最强,因为不挨揍,所以就敢到处乱跑,而且还是因为个子小,没有它钻不进去的缝,因此现在我家有个新的度量衡单位,叫“一花”。比如,冰箱不要靠着墙放,要和墙壁保持距离,宽度差不多张小花可以钻进去,这个距离就叫“一花宽”。那么如果是胖子能钻进去的宽度呢,那就叫“一胖宽”,一花一胖,统称“一猫”
家有四猫,每个都不一样。我就琢磨着,它们四个如果团队合作,我和妻肯定斗不赢他们了。平时大佬猫永远稳坐中军帐,冷眼看世界,心如止水,深不可测。小二黑智商高,自己能开发各种新技能,但是如果遇到需要蛮力的时候,那就出胖子,而各种技巧类的事情呢,自然是花崽的强项咯。实际上它们也确实开始有团伙作案的迹象,走着瞧吧,以后一定是越来越刺激,每天都要斗智斗勇了
当然了也不能忘了送走的那两个小小黑。其中一个送给了妻的朋友,住的是大别墅,还有一个原住猫作伴。另一个被一个北漂小伙抱走,这个小哥们早早就问了妻给它们吃什么品牌的猫粮,买了一样的,而且好像以前也养过猫,家里什么装备都有。我和妻一起送它去的,他住在五环外的出租公寓,只有一间房间。其实我对这小伙的第一印象还可以,房间里很简单,就是北漂小青年的基本装备,一台电脑,一对哑铃,一些游戏手办,还挺干净,不像有些刚毕业的单身汉那样房间里乱七八糟臭袜子脏衣服的到处扔。我们嘱咐了他一些注意事项,他说他会把手办都锁好,其他的就随它祸害都可以
后来两个小小黑的新主人都经常给我们发一些小小黑的日常生活照片,看起来对它们都还好。住在大别墅的自然养尊处优,两只猫虽然也有打闹,倒也都没有被亏待。公寓小哥后来也告诉我们,他出钱把租的房子的纱窗换成了金属网,因为怕小小黑抓破了跑出去。有时候我也想,一个妈生的孩子,长相都差不多,只是因为一念之差被送去了两个不一样的环境,从此走上了不一样的猫生
一个是大户人家的二分之一,另一个是穷小子眼里的独一无二,到底谁才更幸福
2021年12月31日
双鱼人看双鱼陨石
很久没因为看电影写点什么了,因为懒,没别的。2021 年的最后一天,看了个烂片,双鱼陨石,忍不住想写几笔
故事很简单,主角王得志为了赚钱在离婚中赢得儿子,加入了一个四人科考小组,去无人区考察。四人组捡到了一块陨石,给它取个名字叫双鱼。双鱼陨石有点奇怪的功能,能够复制触摸过陨石的人,而且是连身体带精神甚至连身上的衣服装备都一起复制,简单说就是本体和副本没有任何差别。但是两个个体都会出现一系列衰弱病态,最终要么其中一个死掉,要么一起死掉。四个人中的三个都被复制过,而且每个个体都在挣扎着活下去,结果却都因为各种原因死掉了。最终只有主角王得志幸存,通过不断自我复制,并且获取到被复制的装备(甚至我怀疑还吃掉其中的某个个体,因为故事一开始发现了其他人的残缺尸体),挣扎了二十年,走出无人区,回到家乡,见到了早已成年的儿子,谎称只过去了二十天,结果却被当成精神病抓走。王得志被抓前复制了自己,然后在精神病院自杀,成功为儿子留下了一个爸爸
有些文艺作品,不适合欣赏,但是适合思考,比如红楼梦。这个电影也是这样,剧情荒诞,人物形象单薄,拍摄手法单调,只是偶尔有几个广角大全景的画面还挺漂亮,但是故事以荒诞的形式,引出了很多问题
故事也反映了人面对生死的取舍,哪怕对方是另一个自己,也会痛下杀手;赵青为了获奖而做研究,陈清泉为了赚钱而冒险,求名和求利有没有高低之分;王得志本来好好的在聊天,精神病医生的出现让他情绪激动,反而很像精神病,解决问题的答案才是引起问题的原因,就像画皮里的佩蓉,原本是可以人畜无害的。这些更频繁被讨论的问题,即使脱离超现实的叙事,也可以得到讨论,因此我并没有在这些问题上浪费这个电影。但是电影最后,王得志说的,我们有多少事是准备好的,这个问题,恐怕对很多人都是个问题,但是对我倒是问题不大
但是这个故事其实讨论的问题,比这些都要本质得多。科幻片玄幻片童话神话荒诞剧就是这点好,可以通过理所当然的不现实,构建起合理的不合理场景,从而让一些日常我们很少关注的问题变得更加尖锐,不会被忽视
这个片就在片子里提出了复制人的问题,引起我们的思考:一个人如果被复制,无论身体还是记忆都完全一样,那么哪个才是本来的人?如果本体和副本自相残杀,法律要怎么介入?更进一步问就是,我们怎么定义“这个人”就是“那个人”
这个问题在很多电影里被反复利用过很多次,我在老文里也都提到过,但是这种哲学系概论 101 水平的问题,我实在是想不出答案,甚至我也不相信会有合格的哲学系的老师会在课堂上给出答案,因为这种如此能够激发人想象力的问题,为什么要有答案呢?留着鸡下金蛋不好吗
2021年11月26日
趁早
夏天飙车摔伤了鼻子,连骨折带外伤,结果鼻孔里出现挛缩,瘢痕增生,再加上鼻中隔骨折,导致鼻腔缩小,呼吸受阻。去医院,医生说瘢痕尚在生长期,强行切除可能导致再生,还要再切,不如等它长死了,一次性修复。于是我终于在前不久成功的接受了手术,现在恢复的自我感觉良好,出院时鼻孔里暂时有个支撑管,医生说,为了防止产生新的瘢痕,用这个管占着位置,让鼻腔内的伤口愈合的时候,只能围绕着这个管成型,不会再生出瘢痕。这只对新伤口还没有瘢痕的时候有效,所以要在手术后放入。现在我已经成功的摘除了那个支撑管
由此就突然想到,我那个年代吧,老师和家长都觉得,未成年人谈恋爱就是早恋,不是什么好事,理由是,两个人的三观都不稳定,凑在一起不会有好结果
要我说,这就是揣着明白装糊涂,谁还不是打年轻的时候过来的?而且这个理由也完全没逻辑,都成年了还怎么恋爱?两个三观定型的人遇到一起,稍微一接触就知道合不合,如果不合,难道还要其中的一个去改变或者两者共同努力来互相适应?三观不定型才应该赶紧凑到一起,然后一起成长,一起发育,或者哪怕是一个定型一个不定型呢,也可以有一方的定型过程中去适应磨合,毕竟恋爱也是要学习的,不通过早恋练手,以后怎么办?就像我的鼻腔和这个支架管,鼻腔的伤口还不定型,但是支架管的形状不会变,伤口自然就会长成了符合支架的样子,能够贴合到一起去。如果鼻腔已经定型成了某个形状,支架管放进去,只能立刻就知道不合适,然后拔出来……换一根?有那么方便吗
就像某仁兄语重心长的教育小朋友们说,大学期间和同学相处的方式会塑造一生社交的风格,他至今快五十岁,大部分友谊都来自大学期间
于是我就喷了。毕业二十几年,新的友谊还没大学四年建立的多,如果这种社交方式是大学期间塑造的,那我只能说,这社交就是被大学耽误了,说明大学里练就的那些社交能力完全不适合社会
所以,问题来了,两个三观定型的人遇到一起,无论要建立什么关系,碰巧能互相适合的概率更大一些呢,还是不适合概率更大?如果答案是后者,那我就承认老师家长封杀早恋没有错
2021年11月22日
马镫和骑兵
关于中国最早什么时候出现马镫,还存在很多争议,时间点也跨度很大,坊间流传比较广的说法最早可以追溯到东汉中后期,依据是青州的一块画像砖,以及 1973 年乌林出土的一件马镫的实物,但是这两个实物证据都存在较大争议,尤其后者,连年份都传走了样,其实应当指的是 1976 年出土的一件青铜马镫,相关的报告在 1987 年第 1 期的江汉考古上发表,并且并没有做年份的认定。但是更多的东汉骑士俑都没有马镫,所以东汉的说法很少得到认可。然后就是长沙出土的一件永宁二年的骑士俑,很明显是有了马镫,但是这个马蹬只有单侧,而且骑士并没有踩着马镫,所以很多人也认为这是用来上下马的马镫,而不是骑乘的时候一直踩着保持平衡用的。目前发现的最早的双边马镫的形象是南京象山出土的陶马身上的马镫,大约是东晋早期,但是由于没有骑士,所以也不知道实际骑马时候的姿态。而可见的最早的双马镫实物是冯素弗墓葬里的双马镫,冯素弗死于 415 年,已经是东晋了
换句话说,如果从赵武灵王胡服骑射开始算起,中国人骑马打仗最初的大几百年里,很可能一直都是没有马镫的。这在现代人看来,似乎很难理解,没有马镫骑马多危险啊,怎么完成格斗作战?这么多年战争不断,骑兵竟然就不觉得很别扭?以中国人的聪明才智,难道就这么忍着,而不是发明个什么东西来解决问题?而且马镫也并不是什么科技含量很高的东西,设计制造的门槛并不高,但是需求却是明显的,只要想到了,就分分钟能做一个普及开。这么容易造的东西,在这么强烈的需求下,却迟迟没有问世,这多奇怪啊
所以只要一提到中国先秦两汉的骑兵,很多业余历史爱好者之间口耳相传着这么一个说法:马镫发明之前,骑兵在马背无法保持平衡,根本没法打仗,尤其不能使用长兵器,像青龙偃月刀丈八蛇矛之类的想都别想。持类似说法的还不乏一些大咖,比如观复博物馆的著名文物收藏鉴定专家马未都馆长,他就认为没有马镫的时候,骑兵只是起运兵作用。这就等于说,古代所谓的骑兵,只是指骑着马跑到战场上的步兵而已
这个说法呢,恐怕也有点不靠谱。我们来看三个问题:
1,没有马镫的时候骑兵能做什么
2,没有马镫怎么选拔骑兵
3,没有马镫的骑兵如何格斗
以下我们讨论的就只针对先秦两汉时期,尤其东汉以前,因为这些阶段是目前争议较小的没有马镫的时代。毕竟,通过考古要证明一件东西存在很容易,只要挖到了就是有,但是要证明不存在就很难了。记载上没有,也许是古人觉得这东西太普通不值得单独写一笔,造像上没有,也可能是出于艺术审美的考虑而没有很具体的逐样刻画。而且,战斗是武将打的,历史是文人写的,他们之间的隔阂也会影响记载的准确性。但是虽然先秦两汉文武已经逐渐形成专业,却也毕竟还没有分的那么清楚彻底,而且让文人描述他们彻底没有见过的东西,估计他们也写不出来,就像让我们现代人写未来的飞行器的样子,也许我们再怎么幻想,也不会脱离现代飞机的痕迹吧。看看六七十年代的科幻电影,那里面的宇宙飞船,哪有一点像我们现在制造的。所以看看先秦两汉的史料对骑兵如何描述,对马背上的战斗如何记载,大概也就能判断出当时人所能见到的骑兵战斗状态了。所以出于讨论的必要,我们还是假定先秦两汉(尤其西汉)并没有马镫,基于此,看看史料里对于当时骑马打仗的人是如何描述的
首先可以很明确的说,先秦两汉的人肯定是经常骑马的,这一点毫无疑问,各种史料里反复提到这一点,骑马并不只是军事行为,也有民用的骑马。比如著名的贾谊的老板长沙怀王就是骑马摔死的,塞翁失马焉知非福的故事里,也提到了塞翁之子骑马摔断腿,可见对于当时的人来说,骑马并不是什么新鲜事,即便是小众的项目,却也并不稀奇。但是当时人都认可的一个道理是,骑马是一件有一定难度和危险性的活动,需要接受专门的训练,所以经常把骑马驾车游泳放在一起说。比如淮南子就说“善游者,不学刺舟而便用之,劲者,不学骑马而便居之”,“畏马之辟也,不敢骑;惧车之覆也,不敢乘;是以虚祸距公利也”,盐铁论也说“农夫以马耕载,而民莫不骑乘”,文子中提到“善游者溺,善骑者堕,各以所好反自为祸”,也就是说当时的人对骑马的危险性也认识很深,但是却也无法拒绝骑马所能带来的好处和快感
既然对骑马的危险性有足够的1认识,那么军队里对骑士就当然会有严格的要求和训练标准,比如六韬里面关于对骑士的要求就提到了“选骑士之法,取年四十已下,长七尺五寸已上,壮健捷疾,超绝伦等,能驰骑彀射,前后、左右周旋进退,越沟堑,登丘陵,冒险阻,绝大泽,驰强敌,乱大众者,名曰武骑之士,不可不厚也”
六韬托名姜子牙,但是恐怕绝不会有人相信这是西周初年的书,更广范被接受的说法是,六韬成书于战国,最迟在西汉就已经基本定型了,换句话说,在考古上发现马镫的时代以前,六韬的内容就基本上固定了。六韬对骑兵的看法,基本上也就可以认为是没有马镫的时代对骑兵的看法
除了对骑士的素质和训练,当时的人为了完成骑马打仗这个高难度的行为,还发明了一系列的装备,除了对骑手有要求,马也要讲求饲养和保养的方法。吴子兵法中还提到了如何驯马,要求“夫马必安其处所,适其水草,节其饥饱。冬则温烧,夏则凉庑。刻剔毛鬣,谨落四下。戢其耳目,无令惊骇。习其驰逐,闲其进止。人马相亲,然后可使。车骑之具,鞍、勒、衔、辔,必令完坚。凡马不伤于末,必伤于始;不伤于饥,必伤于饱。日暮道远,必数上下。宁劳于人,慎无劳马。常令有馀,备敌覆我。能明此者,横行天下”
吴子兵法的情况和六韬很像,也应该是假托吴起而已,但是汉书艺文志里已经出现了吴子兵法四十八篇的说法,真正成书的年代应该也不会晚于东汉。当然了,汉书艺文志里也只是提到了吴子兵法,却只有一个书名,并没有内容,而且目前也没有考古发现汉朝以前的吴子兵法,这就很奇怪,因为韩非子曾说,家家都有吴子兵法,这个说法即便有点夸张,但至少吴子兵法在战国晚期应该是很流行才对,考古中应该有概率能发现。而现在能看到的吴子兵法只有六篇,到底是失传流散只剩六篇呢,还是像有些人怀疑的那样,四十八篇全都失传了,这六篇都是后来的人根据汉书艺文志的名字另外编的,就很难说了,甚至有人说现在的所谓六篇吴子兵法是六朝人编的。但是请注意,前面引用的那一句吴子兵法里,提到骑马的装备,几乎什么都说了,但是唯独不包括马镫。而我们的考古也表明,至少在东晋已经有了马镫,如果是六朝人伪托吴起写的六篇吴子兵法,尤其还是专门介绍骑马的用具,大概率应该会提到马镫这种刚出现不久而且非常有用的装备吧
既然骑兵的训练和维护都需要这么高的成本,那么在那些时代能做什么呢?最起码,肯定不只是运兵那么简单吧。其实先秦两汉的人对骑兵的作用还是有很深刻认识的
比如在六韬中就记载“骑者,军之伺候也,所以踵败军、绝粮道、击便寇也”。就像刚才我们说的,六韬应该在战国就成型了,那么这种对骑兵的定位大概率也就是战国时候骑兵的作用,追亡逐北,偷袭劫粮,扫荡流寇。而且有人说伺候就是斥候,那么骑兵的作用就也还包括侦察,总之很明显不是运兵的作用
吴子兵法对于某些具体的战术和战法的设计,也用到了骑兵的机动性灵活性,比如谷战之法就同时用到了战车骑兵和步兵:“募吾材士与敌相当,轻足利兵以为前行,分车列骑隐于四旁,相去数里,无见其兵,敌必坚陈,进退不敢。于是出旌列旆,行出山外营之,敌人必惧。车骑挑之,勿令得休”。而且吴子兵法里战车骑兵和步兵协同并列的例子不止这一处。例如“先战一日,吴起令三军曰:“诸吏士当从受驰。车骑与徒,若车不得车,骑不得骑,徒不得徒,虽破军皆无易。”故战之日,其令不烦而威震天下”,就也是车骑徒并称,可见至少在吴子兵法里,骑兵并不只是运兵,不是骑马转移的步兵,而是和战车步兵并列的一个独立的兵种
六韬中还对骑兵的作战能力进行了估计,不但承认骑兵的优势在于快速移动,所以可以迅速到达埋伏和作战的地点,或者承担侦查的任务,而且还认为战车和骑兵都是比步兵要强大的兵种,只要指挥得当,能很大程度上影响战争的结果,认为“故车骑不敌战,则一骑不能当步卒一人,三军之众成陈而相当:则易战之法,一车当步卒八十人,八十人当一车;一骑当步卒八人,八人当一骑;一车当十骑,十骑当一车。险战之法,一车当步卒四十人,四十人当一车;一骑当步卒四人,四人当一骑;一车当六骑,六骑当一车。夫车骑者、军之武兵也。十乘败千人,百乘败万人;十骑败百人,百骑走千人,此其大数也”——第一次读书到此,我当时就觉得,安史之乱的时候房绾用战车阵去打安禄山的骑兵,大概就是听信了这种话吧,只是他一来大概是不知道车战要怎么打,因为毕竟中国人已经一千多年没打过车战了,二来也是当时唐军太缺马,所以房绾用的是牛车。那么结果就可想而知了,安史叛军趁乱纵火,结果把房绾的战车队给打成了反着用的火牛阵,输的要多彻底有多彻底
六韬对骑兵的组织方式也进行了描述,提到“置车之吏数,五车一长,十车一吏,五十车一率,百车一将。易战之法,五车为列,相去四十步,左右十步,队间六十步。险战之法,车必循道,十车为聚,二十车为屯,前后相去二十步,左右六步,队间三十六步。五车一长。纵横相去二里,各返故道。置骑之吏数:五骑一长,十骑一吏,百骑一率,二百骑一将。易战之法:五骑为列,前后相去二十步,左右四步,队间五十步;险战者:前后相去十步,左右二步,队间二十五步。三十骑为一屯,六十骑为一辈,十骑一吏,纵横相去百步,周环各复故处”
六韬还骑兵的使用有很多讨论,比如总结了骑兵的十胜九败,也就是如何使用骑兵,和使用骑兵中要避免的问题
所谓十胜,就是“敌人始至,行陈未定,前后不属;陷其前骑,击其左右,敌人必走;敌人行陈整齐坚固,士卒欲斗。吾骑翼而勿去,或驰而往,或驰而来,其疾如风,其暴如雷,白昼而昏,数更旌旗,变易衣服,其军可克;敌人行陈不固,士卒不斗。薄其前后,猎其左右,翼而击之,敌人必惧;敌人暮欲归舍,三军恐骇,翼其两旁,疾击其后,薄其垒口,无使得入,敌人必败;敌人无险阻保固,深入长驱,绝其粮路,敌人必饥;地平而易,四面见敌,车骑陷之,敌人必乱;敌人奔走,士卒散乱,或翼其两旁,或掩其前后,其将可擒;敌人暮返,其兵甚众,其行陈必乱。令我骑十而为队,百而为屯,车五而为聚,十而为群,多设旌旗,杂以强弩;或击其两旁,或绝其前后,敌将可虏。此骑之十胜也”
而九败就是“凡以骑陷敌而不能破陈;敌人佯走,以车骑返击我后,此骑之败地也;追北逾险,长驱不止;敌人伏我两旁,又绝我后,此骑之围地也;往而无以返,入而无以出,是谓陷于天井,顿于地穴,此骑之死地也;所从入者隘,所从出者远。彼弱可以击我强,彼寡可以击我众,此骑之没地也;大涧深谷,翳薉林木,此骑之竭地也;左右有水,前有大阜,后有高山;三军战于两水之间,敌居表里,此骑之艰地也;敌人绝我粮道,往而无以返,此骑之困地也;污下沮泽。进退渐洳,此骑之患地也;左有深沟,右有坑阜,高下如平地,进退诱敌,此骑之陷地也。此九者、骑之死地也。明将之所以远避、暗将之所以陷败也”
到了西汉,人们对骑兵的作用就有了多认识,对骑兵的杀伤力和作用条件也有了更清晰的判断。淮南子也对战车和骑兵的适用场景有过简单的描述,认为“易则用车,险则用骑”。当然了这个看法也不一定对,毕竟淮南子并不是专门讨论军事的书。倒是史记中吴王刘濞传中,有人向吴王描述当时的军力对比,提到“吴多步兵,步兵利险;汉多车骑,车骑利平地”,因此建议吴王刘濞不要在攻城上恋战,宁可绕城而过,尽快到达洛阳,抢占地利,否则一旦汉军的战车队和骑兵开过来打野战,那就输定了——这句话不但反映了汉初分封制的本质,也说明了吴汉之间的军事结构差别,更重要的就是描述了当时人对车骑和步兵的作用的认识,这也和六韬所谓的“溪谷险阻者,所以止车御骑者也”相一致
既然骑兵很早就在战争中发挥着重要的作用,那么问题就来了,如果当时没有马镫,骑士在马上的姿态肯定不稳定,很难保持平衡,他们是怎么完成格斗动作的?文献里经常提到骑射,演义小说里描述的长兵器格斗,都是可能存在的吗
其实这个问题我在考虑车战的时候也困惑过:古代战车通常标配是一个驾车的驭手,一个持弓箭的射手,一个持戈或者矛的大力士,作战方式就是冲击和射箭。但是战车的减震都很差,战场的地面再怎么是开阔的平地,也不可能比现在的水泥地平整,我小时候坐过没有减震的两轮平板车,我们那里俗称架子车,那个车已经有橡胶轮胎了,但是如果拉车的人跑的稍微快一点,地面略有颠簸,我在车上别说站稳,坐着都颠的屁股疼,古代那些乘坐硬轮战车的射手如何瞄准射箭
坊间有一种流行的说法对这两个问题给出的答案都差不多,认为没有马镫的时代,骑兵必须有一只手用来抓着缰绳或者抱着马脖子,因此只能单手挥舞短兵器,所以无论车上的射手还是马背上的射手,主要是靠军阵冲击,射箭也不能保证瞄准,还是靠团体射箭发射“散弹”来造成杀伤,排开阵型以规模取胜,这时候单个射手的准星就不那么重要了,这就像机枪扫射,要的是打出铺天盖地的枪林弹雨,以数量弥补概率,对敌人阵型造成广泛的杀伤
但是这个说法恐怕也不完全准确。古代冷兵器作战,大规模阵型是常见的打法,骑兵也组军阵是可以想象的,但是无论射箭还是格斗,骑兵应该也都是能使用长兵器,并且有单兵作战的能力的
首先还是看看考古,从先秦到两汉的出土文物里,骑兵的形象很多,比如汉代的骑兵俑有手持环首刀等短兵器的,也有的是使用戈矛之类的长兵器,汉代的壁画和画像石上也有射箭和以长兵器作战的画面,而且无论骑兵俑还是画像,骑兵都没有马镫
那么在没有马镫的年代,马背上作战能否使用长兵器呢?我觉得是可能的。先秦两汉的文献里就保留有马上作战的武器的记录,例如释名中“矢”的条目下就提到“马上曰鞬,鞬,建也,弓矢并建立其中也”,“矛”的条目下也专门提到“矛长丈八尺曰矟。马上所持,言其矟矟便杀也。又曰激矛,激,截也,可以激截敌阵之矛也”。矟,其实也就是槊,后来所谓的马槊应该就是这样的东西,是马上用于刺杀的长兵器。释名是东汉的书,所以马上射箭和使用长兵器,至少在东汉就有了。而且无论汉代的尺和现在如何换算,“丈八尺”都应该有至少四五米长,妥妥的长兵器名副其实。这就说明当时在马上确实是用长兵器和弓箭作战,否则不会凭空臆造出这样的名词
而关于在马背上的作战过程描写就更多了,著名的例子比如史记和汉书都记载了项羽死前的最后一战,楚霸王指挥着二十几个人打了一场很漂亮的闪电战,用来证明项羽的军事才能确实无懈可击。这个过程无论史记还是汉书都是以“骑”称呼项羽和这二十几个人,而且这个打法我觉得应该也没可能是下马步战,一定是全程都在马背上完成的。值得关注的一点是,项羽一直到最后遇到乌江亭长,才“乃令骑皆下马步行,持短兵接战”,可见在马上他们应该都是用长兵器
汉书灌夫传有关于灌夫作战的记载,说灌夫曾经“于是夫被甲持戟,募军中壮士所善愿从数十人。及出壁门,莫敢前。独两人及从奴十馀骑驰入吴军,至戏下,所杀伤数十人。不得前,复还走汉壁,亡其奴,独与一骑归。夫身中大创十馀,适有万金良药,故得无死”。很明显也是在马背上完成冲锋战斗的全过程
还有李广和匈奴白马将对战,史记的说法“李广上马与十余骑奔射杀胡白马将”和汉书的“广上马与十余骑奔射杀白马将”,都说明李广是在马上一边跑一边和匈奴的白马将对射。而李广被活捉后逃脱的那次,也是因为抢了一匹马,在逃跑的路上反击,射杀匈奴的追兵,难道也要下马或者停下对射吗?我觉得不可能
还有比如汉书匈奴传对匈奴的描述是“以马上战斗为国”,但是匈奴应该也没有马镫,否则西汉肯定会学的
到了汉朝末期,马上格斗的记载更加丰富,长兵器也广泛的用于单兵作战。比如三国志里的名场面,关羽刺颜良,就是关羽骑马冲阵,快速的跑进颜良的队形里,刺中颜良,斩首而回。这个过程我反正是不信关羽敢下马步战,当然也不信他用的是短兵器,如果关羽下马作战,就算刺死颜良砍下人头,估计也回不来自家的本阵
再比如三国志记载公孙瓒在辽东,以几十骑兵面对鲜卑的几百骑兵,“瓒乃自持矛,两头施刃,驰出刺胡,杀伤数十人”,应该不会是弃马步战,而是骑着马,用两头尖的长矛作战。而乌桓人“乃画作瓒形,驰骑射之,中者咸称万岁”,就是骑马并且马在移动中射箭。曹仁在荆州对抗周瑜,为了解救牛金,曹仁“遂被甲上马,将其麾下壮士数十骑出城……仁径渡沟直前,冲入贼围,金等乃得解”
另外,三国志有一处记载,说当时有“立骑马戏者”,也就是说三国时候,有人掌握了一些高难度的骑马技巧。虽然这很可能只是当成杂技表演而已,未必普及,但也起码说明这种技巧在当时存在的可能性,既然杂耍演员能学会高难度的骑马技巧,骑兵为了作战,也有可能专门练习一些马上保持平衡的技能
以我自己仅有的两次骑马经验——或者说教训更准确——来看,一次是骣骑马,一次是骑鞍镫齐备的马,我的感受就是,因为骣骑马那次完全是一场事故,而且也是第一次骑在马背上,非常紧张,只是抱紧马脖子,完全不敢动,感觉上马跑的很快,但是旁观者说马根本没跑起来,我当时也并没有觉得非常明显的左右晃动。有了这次的教训,多年之后我骑上有鞍镫的马,其实也还是有点紧张的,但是敢做一些动作。以我完全没有接受过任何训练的背景,尚且能骣骑马而不掉下来,古代的战士经过严格的训练,在马背上完成一些复杂的动作,虽然难度大,但也不至于不可能
我相信在现代,骑过马的人应该很少,而没骑过自行车的人恐怕更少,那么马和自行车在行进当中哪个更难保持平衡,我觉得是骑自行车,因为马只要愿意配合,本身是会自己保持行走稳定的,而且遇到道路障碍地面不平也知道自主避让。而自行车运动员乃至很多业余自行车爱好者都可以双手不扶车把完成换衣服吃东西甚至小便等动作。那么如果经过充分的训练,骑没有马镫的马并且单手保持平衡也应该也不是不可能
所以可以说,在没有马镫的时代,骑兵的选拔有特殊的标准,而且都要经过严格的训练,在战争中骑兵也有独特的作用,是重要的兵种。而马镫的出现,也确实改良了骑兵,这是毫无疑问的。马镫让骑马打仗的难度大大降低,在马上的格斗技巧可以更加丰富,有更多的地面作战的技术动作可以被照搬到马背上去使用,这就让骑兵部队的训练难度降低,培养周期缩短,这就便于军队增加骑兵的数量。因此在战争中骑兵的使用就可以更加自由任性,不必再向以前那么斤斤计较谨小慎微的舍不得用骑兵,骑兵投入战争的数量和比例都大幅增加,也就提高了骑兵对战争的影响力,而由于骑兵特有的冲击力和杀伤力,也就使得南北朝之后的战争变的越来越残酷,死伤越来越多
2021年11月19日
谁要搞什么群面
和妻闲聊,说起了她马上要参加的一个面试,其中有个群面的环节,就是一批候选人组队完成任务,考官要通过这个形式观察每个人的表现,来考察每个候选人。上学时候老师也组织过类似这种形式的小组讨论,而我们在这个过程里留给老师的印象,应该都成了我们平时成绩的一部分吧。初入职场的时候我也被这样面试过,甚至刚工作的那几年,公司的新员工计划里也有过这种形式的培训
通常我是对这种形式很反感的,我根本不相信它能帮助考察者从中做出取舍
这种群面的形式有个更直接的例子,就是 nba g-league,也就是 nba 发展联盟,它是附属于 nba 的一个低级别的联赛,在这里打球的运动员五花八门,比如那些比较年轻并且有潜力但是现在还不适合 nba 的球员,受过大伤病刚刚恢复需要找到比赛状态的球员,在 nba 找不到工作又想有机会表现自己的球员,等等。总之,在发展联盟打球的运动员,几乎都是希望通过在这里的表现,博得 nba 球探、老板、教练的关注,继而获得进入 nba 打球的机会
这就像是一个群面的场所,很多球员组成不同的小组,完成一场场比赛的任务,而考官就是 nba 的那些球队,观察每个球员的表现,找到自己想要的人。所以发展联盟有个很鲜明的特点就是,所有的人都很关注自己的数据和表现,这里的比赛很少打复杂的配合,都是简单直接的战术,因为每个人都希望拿到最直接的能统计的好看的数据,得分,篮板,助攻,抢断,封盖,而对于诸如命中率助攻率等需要计算的二阶数据的关注,就明显降了一个档次,至于更高阶的比如场上正负、win share、真实命中率等通过二次或者更多重计算才能拿到的数据,关心的就更少——原因很简单,没有人有兴趣对发展联盟的球员做这么详细的数据分析——所以可以简单的说,发展联盟是典型的应试教育,什么数据受到关注,就去刷什么数据,典型的考什么学什么
那么通过这样的方式选出来的人,真的会适合 nba 吗?恐怕很难说。nba 针对球员的数据现在做的非常精细,因为所有人都知道,一个球员对比赛的贡献,不是看看得分就能全面概括的,但是人们又希望可以量化每个球员对比赛的影响,因此就诞生了各种高阶统计,比赛中也会开始记录球员的更多表现。从科研的角度来说,这当然是个很好的努力和尝试,但是回到发展联盟的问题,如果发展联盟是群面,nba 是实际工作,我们就会尴尬的看到,群面的选拔标准和实际的工作要求产生了脱节。这个脱节也实际客观的存在于职场的面试和工作当中,群面中能关注到的只是候选人的一些显著的特征,而不可能全面的认识一个人,而且通过群面对候选人的评价,不但比独面更少,甚至还不能弥补独面的任何盲区。同时这种片面性的印象,和实际工作中的评价方式也并不一样
妻对群面这个形式并不反感,她觉得群面也有其效果,只要对群面的评价能更接近实际工作中的评价场景,那就可以选拔出更合适的人
当然这个说法也有道理,但是群面那么短的过程里,真的可以做到吗?而且甚至,nba 的数据工作都做到这么详尽了,但也仍然是每过几年,就会又有一些统计标准出现,似乎人们并不是不相信数据能概括球员的全部表现,而只是不相信现在的数据统计能全面的涵盖球员的表现,因此才不断的研究新的统计标准,完善评价体系,试图尽可能的接近全面客观准确的目标。但是这种不断有新方法问世的现象,也足以说明,我们目前对于团队合作中,如何客观准确全面的每个人的贡献,其实是缺乏方法的,我们并不知道应该怎么做,现在一直都还是在尝试和摸索的阶段,因此才不断的提出新的公式新的标准,而不是一个终极答案解决所有问题,让所有的人不再产生怀疑。竞技体育的评价是相对更简单的,因为它的场景是封闭的,只看球场内的表现,不受无限的外部场景的影响,这已经比职场的环境要简单太多了,尚且还没有找到一个让人信赖的量化评价的方法,既然如此,难道仅仅是用对待实际工作场景的态度和方法去评价群面中每个人的表现就可以找到最好的那个人吗
而且同时,我们也不得不承认,团队合作里,每个人的重要性并不相同——注意,我说的是每个“人”的重要性不同,而不是每个“角色”的重要性不同。就比如一家企业的成功,每个环节每个角色都很重要,iphone 的成功是设计生产销售物流客服共同合作的结果,这当然是没错的,但是以 iphone 为例,最重要的我觉得是设计环节,但是换一个产品,换一个行业,也许最重要的就是销售了
就还以篮球队为例,后卫前锋中锋当然都不可或缺,但是在 1998 年的公牛队,乔丹就是比其他队员更重要,而这不是说后卫是球队最重要的角色。同样的,2001 年的湖人队,最重要的是奥尼尔,但不等于说中锋是篮球队里最重要的角色。同时,这也不是说乔丹离开球队的支持仍然可以成为球神,而是说,在球队的胜利里,乔丹的贡献比其他人更大
乔丹打球的时代 nba 还没有像现在这么复杂的高阶数据统计,但是即便以现在的统计方法去计算乔丹的球队,乔丹仍然是最好的那个。通俗的解释 win share 和 win share 48 就是,在乔丹最好的那几年里,乔丹对比赛的结果有 25-32% 的影响力,而第二名的皮蓬的影响力只有不到 20%。也就是说,一场比赛的结果如果是投票的话,乔丹占了超过 1/4 的投票权——篮球是 5 个人的运动,一场比赛一个球队经常换人,通常有 10 人左右可以获得或多或少的出场机会,而 。nba 的规则允许球队的名单上有 12 个人处于可以比赛的状态。换句话说,如果是平等的投票,人均影响甚至不到 10%。虽然乔丹的 30% 不足以一锤定音,但是乔丹就是影响力最大的那个,毫无疑问。但是这不说明后卫是篮球队里最重要的角色,只是因为这个后卫是乔丹,才变得格外重要。所以篮球界有句名言:我奶奶和乔丹一起打球也能拿到冠军
说一段老球迷一看都懂的题外话。前两天可爱的裤子马在克利夫兰打客场,当地不喜欢他的球迷打出标语:没有詹姆斯你算什么,克利夫兰的某家媒体也在社交媒体发文说:没有詹姆斯你得不到冠军——要我说吧,这话谁都可以说,唯独克利夫兰,说这话不觉得照镜子吗?果然裤子马在社交媒体上转发并回复说:是的,咱俩一样
但是话可说回来,凡事哪有全是缺点没有优点的?群面也毕竟有一个好处就是,可以造成同组候选人之间的对立,可能充分激发他们恶的一面,如果出现互相抢镜甚至拆台的现象,那就恭喜发财了,群面起码帮我们排除了错误选项
2021年11月17日
这是秘密,别告诉别人
史记的名场面:王翦带着几乎是秦国的倾国之兵去灭楚,一路上不断的给秦始皇写报告,要求涨工资发奖金,不但给自己要,还替儿子孙子们要,就有人问他,都是老干部老同志了,待遇福利什么的这事着个什么急呢?王翦解释说,我这不是为了让老板对我放心嘛,现在全国的兵马都在我手里,老板肯定很担心我造反,现在看我只是想赚钱,就不担心我造反了
这话吧,反正我是从来就没信过。最简单的道理,王翦倘若真的有这一番小心思,那就说明他是个考虑周全小心翼翼的人,那么这么谨慎细致的人,这种和大老板玩心眼的事,能说给谁听呢?说给谁能放心不会被老板知道?倘若秦始皇听了这番话,知道王翦的贪财是在演戏给他看,那王翦还有命吗
这只可能是司马迁替王翦说出来的而已,王翦肯定说不出口。一件事要想不成病,唯一的稳妥办法就是没人知道,一旦说出口,难道要再加上一句“这是秘密,别告诉别人”
2021年11月16日
都是设计惹的祸
某一天,公司行政在大群里发了一个通知,大致说了些关于节能环保的事,什么下班前关灯离开座位前关电脑之类的事,其中就提到,使用完会议室后要及时关灯。这本来很正常的事,但是行政又同时发了几个办公区的地图,并且标记,每个区域的灯的开关都在什么位置,尤其里面提到,会议室灯的开关,其实并不在会议室里面,而是集中设置在一个区域,并且贴上标签标记每个会议室
这就很奇怪了对吧,按照常理,每个区域的灯开关,就应该是在各个区域以内或者附近,而尤其会议室的灯开关,最合理的位置难道不是就在会议室的门口吗?随手关灯本来是最基本的行为习惯,但是,用产品设计的语言来说,这么基本的功能竟然需要专门的说明书来描述操作过程,这恐怕只能说明,设计出现了问题,办公室的电路布线存在设计失误
软件开发行业有个常识认为,越晚发现的 bug,修复成本也就越高。如果把办公室灯光控制看成一个软件产品,那么它的研发周期也是从设计到实现再到测试发布这样的过程,而办公室灯的开关位置不在办公室门口,导致操作不便,足以看成是个 bug。如果这个 bug 设计阶段,也就是电路图纸上就被发现,那么修复的成本当然是最低的,只要改图纸就好了,如果是在实现阶段,也就是装修期间发现,那就立即要求工人重新布线,其成本也还在可接受的范围内,而等到测试阶段,也就是装修基本完成,施工方验收的时候发现,立刻要求施工单位修改,那就要重新铺设线路,甚至在墙面上重新挖槽,然后粉刷,这就显著增加成本了,而一旦到了交付后使用的阶段,也就是施工方完全离场,再想改动,那就要重新聘请装修人员,这就等于是重新签订合同,额外支付工时费等,甚至影响正常办公,是成本最大的修复行为
不过如果追溯公司办公室的发展脉络,就会发现,其实这几个会议室所在的位置,本来并不是作为会议室设计的,而是普通办公区,因此灯光控制只是放在附近。后来由于会议室不够用,临时打上隔断墙,形成会议室。这就相当于产品的形态修改,衍生出了原始设计中没有的需求。可是在实现新功能的过程中,并未完全考察可能引起的连带变化,因为没有考虑到在打隔断墙的时候增加新的开关,这仍然是设计上的失误,用软件设计行业的话说就是,新的需求设计中没有考虑到可能和原有的功能相互影响,而评审过程中也没有发现这个漏洞
其实如果是新设计一个办公室,以建筑行业成熟的 sop,一定会有电路设计的标准和要求,然而在新增需求的时候,很可能是没有严格的遵循流程,导致忽略了这个开关位置的细节。甚至可能交付的时候顶多在使用的初期,这个问题就很明显的暴露出来了,所以实际上公司那几个会议室的灯开关都集中在会议室外不远的地方,而且贴着标记每个会议室的标签。但是实际使用中,还是会造成不便,刚使用这些会议室的时候,想关灯也找不到开关在哪,而且即便知道了开关的位置,也经常有人开错关错
仅以此一个小小的现象,来演示一下,在产品研发的任何阶段,一旦有需求,都要对所有检查点做严格而仔细的核对,而任何看似不起眼的小问题,在长期的使用中,都会积少成多,越是常用的功能,在反复的使用中,用一次不方便一次,增加的都是无形中的成本和负担
这有点像我们买一件日常用品,很贵的和很难用的都会被轻易的筛选掉,但是却经常在便宜但是稍微有点不好用和很好用但是有点贵之间犹豫。我的建议就是,买那个好用的,哪怕稍微有点贵,因为这样只是肉疼一次,但是以后用一次爽一次,如果买了那个便宜的,虽然买的时候心情也许会相对好一点——而且其实恐怕一想到那一点点不好用的小缺陷,恐怕其实也好不了多少——实际的使用中,哪怕只是一点点的不便,但是只要用的频率和次数足够多,用一次不便一次,最终都是会忍无可忍的
2021年11月2日
职业居然有规划
我也不知道我有多烦理想这件事,小时候被爹妈问长大了想干啥,上学了被老师问有什么理想,找工作被老板问有什么职业规划,我觉得像我这么大岁数的人应该都是这么过来的吧,而且在肉眼可见的现在和将来,这些问题应该还是会继续存在
问题是问这个有啥用
爹妈问的时候我都不知道干啥是干啥事,那只能是从我听说过的词汇里找一个胡说,一般都是随机的,今天是警察,明天可能就是工程师,万一哪天说了个扫马路,爹妈还要矫正一下,那都是学习不好没出息的孩子才干的
等到上学,知道了点干啥是干啥事,可是谁敢说实话呢,我自幼就有不劳而获的理想,如果不劳和获不能兼得,那我宁可不劳,而且我相信我不是一个人。但是谁敢把这个写到作文里?我十几岁的时候,港台明星刚开始来内地捞钱,初中生谁还没个明星梦,但是能说出来吗?音乐家和歌星是有本质区别的——所以我只好告诉老师我要做个科学家。和我一样怀揣科学家理想的同学那么多,后来也没听说老同学里有几个把吹过的牛逼兑现了的。现在看历史书,经常记载大人物小时候就有过人的言行,其实想想,我要是现在拿了科技进步奖被写进教科书,应该也会有一句自幼树立远大理想立志如何如何的话吧,别以为这是出版社的编辑们给我脑补的,我小学的时候真写过这样的作文
工作面试问的就比较落地了,因为已经是成年人,所以没人再虚无缥缈的问长大了如何如何之类的,而是直接问,未来三到五年有什么职业规划。说实话,每次我回答的都不一样,我也都不记得都是怎么回答的了,因为都是瞎编的。三到五年?哥们出道二十年,做的最久的一份工作是差一个月五年,第二久的是三年零四个月,所以问我三到五年的职业规划,比较现实的答案应该是不辞职
对于绝大部分底层码农来说,身在号称瞬息万变的行业里,考虑一年以上的职业规划都是不负责任的意淫,这么大时间跨度可能发生的事都超出我的控制甚至想象,我又不是呼风唤雨的业界大佬,也没想过引领技术发展的新潮流,我想做的其实只是随波逐流不掉队而已,规划?轮不到我规划。而且实际上,如果观察各个行业的人才流动状态,很清楚呈现出,越是有活力的行业,越是行业再蓬勃发展的阶段,流动性也越强。员工不稳定,那是行业发展的好,不是死水一潭。所以如果公司对自己所在的行业有自信,也根本没必要问应聘者三五年的职业规划,因为无论他有没有规划,都应该在三年内攒够辞职的资本,否则就不配通过今天的面试
所以我招人从来不问应聘者的规划,问这个干啥。但是啊,架不住有 hr 和我一起面试,人家要问呢,那我就听听答案吧。其实我甚至希望申请人没规划
是的,没规划,事情就比较简单,最好是真没有,真怕冷场就说点老婆孩子热炕头的家常话,于是这个话题就打住了。一旦有规划,那就要问规划是什么,然后我就必须开始琢磨了,这个答案是真的还是假的?是现在的实际想法吗?会不会是说这个哄我玩呢?这样的规划代表了什么样的三观?和公司能匹配吗?现在的规划以后会不会变?如果市场行情变了如何应对?如果和公司的发展方向不匹配怎么办?如果用这个人要怎么安抚情绪?问题就复杂了,太麻烦,我嫌乱
其实招聘和应聘也没什么本质的区别,都是在获取信息和权衡利弊,所以我无论是应聘还是招聘,我都不在在意对方的理想,我只说我现在要什么,我要找一份什么样的工作,我要招一个什么样的员工,我不能保证未来这个需求不会变化,我可能未来对公司有不一样的预期,也可能对招聘来的同事有其他的期望,如果不能双方达成一致共同完成自我更新,那就一拍两散也不是什么坏事,直接坦白的说出来就好
即便不是职场,人际关系本来也应该如此,谁都不必勉强坚守着早已想放弃的诺言,只因为曾经吹过一句无论走没走过脑子的牛逼许了个也许当时很诚恳但是现在看来非常不靠谱的愿望而违背此时此刻内心最真实的想法
无论企业想要留住人才,还是员工想要留在企业里,甚至人际关系的维系,都是吸引和被吸引,需要和被需要。无论人还是企业都在不断的变化,有主动的变化,也有受到外界影响不得不变化,这就需要双方的节奏和方向保持一致,并且互相响应,或者跟进或者矫正,否则这关系解体就是早晚的事,这些都不可能是预先规划好的
所以哲学上不就说嘛,变化才是常态,运动是绝对的永久的,静止是相对的暂时的
当然了,解决最困难的问题的最顶尖的人才,直眉瞪眼的奔着改变世界拯救全人类拿个诺贝尔奖都有点屈才的那种,那肯定是必须投入一辈子的精力去专注的玩命,和一个问题死磕到底,不能因为看不到希望就换一个课题做。爱因斯坦最后的二十年就是全身心的投入统一场论,拒绝社交应酬,不管别人的研究,虽然问题没有解决,但是更增添了其伟大
但是这就要先掂量一下自己是几斤几两,不是爱因斯坦的命,就别得爱因斯坦的病,对于绝大部分人来说,确实没必要想的那么清楚,遇到风口赶紧变猪,能飞一会是一会,也别相信什么大人物所谓的不达目的誓不罢休的口号,目标该换就得换。人家鸿鹄理解不了咱们燕雀的志向,别看俞敏洪一直说目标明确坚持到底,他自己就口是心非,他要是真这么干,没准现在还在美国刷盘子呢
2021年10月22日
古代大部队行军的废物怎么处理
偶然看到有人问,古代行军动辄几十万,沿途的粪便垃圾怎么处理,会不会污染环境。这是个很好玩的问题,虽然……我也不知道答案
中国很大,古代很长,还真是不好说各个时代各个地区甚至各少数民族和中原王朝的军队是不是都有一样的作风,而且也没怎么见过史料里记载军队如何处理垃圾的,不过有些东西应该也还是可以暴露一点端倪吧——以下全靠猜的
就比如战国时期孙庞斗智的故事,其中有一段著名的添兵减灶,庞涓通过清点齐国军队做饭挖的炉灶数量去判断齐国的兵力人数,但是实际上齐国的兵力虽然增加了,却故意减少了炉灶的数量,这就导致庞涓对齐国兵力产生了误判,以为齐国部队的人数在不断的减少。如果史记的这段记载可靠的话,那么我们基本可以判定,至少在战国时候,就已经出现了军队对排泄物和垃圾的处理措施,而且是很常规的处理
行军做饭,挖灶做饭应该都是有规制的,多大的炉灶可以供应多少人吃饭,从炉灶的数量和体量,大致能估算出军队的人数,这个很好理解。但是庞涓在清点了炉灶数量之后,如果能同时检查一下垃圾和粪便,应该就可以更准确的估计出齐国兵力,甚至识破添兵减灶的计策。因为如果炉灶数量减少,大不了就是全军轮流吃饭,不过是吃饭晚一点,拖的久一点,排队多等一会而已,减灶是可以实现的,但是垃圾和粪便是不可能人为强行缩减数量的,士兵就算轮流拉屎,也还是会产生那么多屎,军营的厕所总不能搞限流限号,每天只能进去多少人,看腰牌上厕所,一三五队可以拉屎,二四六憋到明天再说。而如果齐军刻意掩盖垃圾和排泄物,以庞涓久在战场惯于行军的基本素养,也应该会引起警觉,发现没有排泄物和垃圾的痕迹,说明齐军是在故意隐藏着什么,从而提高警惕
所以可以认为,行军中间所产生的粪便和垃圾应该都是经过妥善处理的,而且很可能和军营不在一起,并且这是当时很常见的通行做法,所以庞涓没有看到粪便和垃圾也并不起疑心,因此没有基于此重新判断齐国的兵力和灶坑的数量关系
其实这个问题还牵涉到了人类行为对自然环境的作用,是个很专业的问题,我只说一点常识,不一定对,只是我在参与一些户外活动的过程中形成的一点认识
有些垃圾扔在野外的环境危害很低,就比如排泄物,随地大小便基本上不是什么严重的环境污染,除非是有消化道等疾病或者寄生虫,另外比如吃不完的食品,擦手的纸、在野外扔了也就扔了(当然以上这些也仍然都是不文明不卫生的行为,不值得提倡),这些东西可以被自然氧化,被野生动物吃掉,被土壤吸收。但是太过分集中也不行,有过那种现象,水体被高肥高养分的垃圾过度集中污染,出现某种水中的动植物疯狂繁殖,覆盖水面,影响阳光照射,大量消耗水中氧气,导致其他生物无法生存,破坏生态,这样的案例
但是有些垃圾不能扔在野外,比如塑料橡胶之类的化工制品,在自然环境里能长时间存在,形成污染。金属本身不会对环境有害,但是漆面可能危害环境,另外尤其有尖锐突出部分的金属制品,如果被人或者动物踩踏,或者被野生动物误吃,也可能造成伤害甚至死亡,所以也最好不要扔在野外
再就是,活体动物不要轻易往自然环境里送,现在有些放生就是瞎搞,也不管是什么鱼,随便找个池子就倒进去,不管什么动物,找个野地大山就撒出去,这么干的结果,要么是给当地的其他动物送了一顿饭,要么可能就是当地没有这种动物的天敌,无法形成生态平衡,形成霸主型的存在,俗称物种入侵
水果皮壳之类的,其实扔在野外也不是太大的危害,会被细菌分解,被野生动物吃掉,会氧化腐烂,最后尘归尘土归土,但是如果里面有种子,那就也有一定概率形成入侵了,不过我觉得应该风险极低吧,基本上也只存在理论上的可能性吧,适合当地的种子,当地的生态应该早就适应了这种植物,能自然消化掉,而当地生态处理不了的植物,应该也不适合在当地存活。至于坚果,因为一般都是吃熟的,所以就算埋在土里浇水施肥,也长不出来
秦始皇的遗诏被篡改了吗
按照史记的记载,秦始皇死于巡行天下的路上,在沙丘发生了著名的沙丘之变,秦始皇死前要传位给扶苏,但是赵高和李斯篡改了遗诏,害死扶苏,扶正了胡亥,继而天下大乱,秦朝二世而亡。这就给很多人留下了遐想的空间,如果扶苏接班,是不是秦朝就能延续的更久一点
其实这个问题原本很无聊,这种假设根本不是个历史问题,更适合作为文学创作的素材。但是后来,随着考古的进展,尤其发现了赵正书,一切都有了更大的讨论余地。因为赵正书中明确记载着,秦始皇就是打算传位给胡亥,并没有什么修改遗诏这回事,这和史记完全矛盾。但是赵正书中太多语焉不详模棱两可,完全不是写历史的风格,因此也有很多人认为赵正书可信度不高。但我倒是觉得,至少它提供了一个不同于史记的说法,毕竟史记关于秦朝皇位传接的部分,写的太奇怪了
首先,秦始皇一直不立太子,这很奇怪,秦国有立太子的传统,而秦始皇从即位秦王开始算,在位三十几年,亲政二十多年,有十四个儿子,但是一直没有太子,就很不正常。赵高说秦始皇一直想立太子,但是被蒙毅阻止了,但这恐怕只是为了害蒙家而编造的谣言。也有人说秦始皇在求长生,觉得自己不需要太子,但是秦始皇连陵墓都在修,怎么会真的相信自己能永生?我觉得很可能就是秦始皇还没想好,还在考察这些儿子们,但是这其中我们知道的只有胡亥和扶苏
扶苏是长子,但是秦始皇对他应该不太满意。史记提到扶苏多次进谏,尤其给术士求情,让秦始皇很不满,所以让他去长城。因此吕思勉在秦汉史里提到了一个观点认为,自古不用太子为大将,除非是要行废立事,如申生故事,既然派了扶苏去长城军,那就说明把他排除到了太子人选之外
这里提到的申生故事,按照各种史料的记载,确实是晋献公有了废立的想法之后才派太子申生去打仗。当然也有人反对申生为将的,里克就认为,国君亲自带兵出征,太子可以一起去,也可以不去,都有道理,但是国君不出兵而让太子独自带兵,不合传统,还会让太子的指挥左右为难。结果晋献公直接挑明了,就是在考虑要不要换个太子。所以申生见到里克就问,是不是我已经被废了,里克也只好安慰申生说,不至于不至于,你爹就是怕打仗,你不能怕,好好干吧。倒是狐突看的明白:这事八成是完蛋了
但是因为申生这一次,就说太子带兵一定意味着废立,能成立吗?难道是因为申生后来被废,就形成了惯例?吕思勉对此没有论证,也没有提供这个说法的出处,因此也有人对此提出质疑。反正我是在吕思勉这里才第一次听说这个说法,听有些读者说在资治通鉴里梁太子申带兵的部分的的注解里见到过大子不将兵的说法,但我也没机会详细问是哪个版本的注解
但是翻看先秦的记载,就能找到很多太子带兵打仗的例子。比如,先说一个不太贴切的例子:周武王初起兵伐纣的时候,随军是带着文王牌位,自称太子发。可见太子不带兵的规矩,至少周武王就没当回事。那么之后我觉得,太子不带兵,就很难在周朝成为一个定制,因为毕竟开国的老祖宗就是以太子身份起兵的——当然了,也有人会说,正是因为周武王以太子身份起兵造了商的反,所以才让周朝的其他太子不敢带兵。哈哈,历史问题好玩就好玩在,一个现象可以正反的解释
那么先秦真的罕见太子带兵打仗的例子吗?或者说带兵打仗的太子都被废了吗?其实也并不是:
北戎攻打齐国的时候,郑国太子忽带兵援救齐国,后来太子并没有被废,也确实即位了,但是候来就如祭仲担心的,很快就被其弟突取代
左传襄公十年诸侯伐郑,齐国派出的就是太子光,也就是后来的齐(后)庄公,在位六年,因为给崔杼戴绿帽子,被崔杼杀了
宣公十八年晋卫伐齐,卫国带兵的是太子臧,后来是卫定公,在位十二年
夫差做太子的时候带兵打过楚国
赵襄子做太子的时候,有一次带兵打仗,回来后智伯就建议赵简子废了他。智伯虽然很可能是因为和赵襄子有矛盾才建议废赵襄子,但是两人的纠纷中智伯是占了绝对上风的,赵襄子被欺负了都没还手,智伯能以什么理由要求废赵襄子呢?难道真是太子不将兵?不过此时还没有三家分晋,赵襄子很难算是太子。类似的还有魏武侯,虽然带兵打过中山,但也是三家分晋之前,大夫和诸侯的规矩很可能也不太一样。而且虽然六国年表里记载太子伐中山,但是魏和赵世家里都没称其为太子
西周策里还提到,有人为了面子,还专门建议太子将军,可见大子不将兵并不是公认通行的道理,左传里还有卫太子因为打仗的时候害怕而被嘲笑的事,可见太子打仗并不罕见
但是太子带兵打仗也确实很可能危害到太子的身份和地位,例如修鱼之战,韩国太子奂参与了五国攻秦,结果战败被俘,后来他就几乎没有在历史上留下其他痕迹,后来即位的韩王安应该不是他换了马甲
又就比如梁惠王的太子申和庞涓一起去打仗,刚出发就遇到个姓徐的,对他说这事危险,怎么都是麻烦,打赢了也不过还是个太子,将来能正常接班而已,和没打一样,但是如果打败了,就很可能太子之位不保,尤其现在想回也回不去了,现在等着想看你笑话的人多着呢。太子的手下也说,出兵再退回去,和打了败仗一样
这个徐先生是不是危言耸听呢,真有那么多看热闹的吗?这个真的有,就有人给太子申的兄弟公子理出主意说,太子这一去一定打败,你不妨去找太后求情,让她把太子叫回来,如果太后能召回太子,将来太子一定会感谢你,你落个好名声,如果太后没有召回太子呢,那他也一定会打败仗,到时候你就是太子了,以后王位一定是你的,反正里外里怎么都不亏——结果太子申果然打了败仗,做了俘虏(战国策甚至说是战败被杀)
再说个离司马迁比较近的吧,刘邦生病的时候也曾想让刘盈替自己打黥布,但是被商山四皓劝阻了。商山四皓当然是为了保证太子的安全和地位,于是找到吕泽说,太子打赢了也不过还是太子,打败了地位不保,而且太子指挥不动那些功勋宿将,肯定打不赢,而且现在皇帝偏爱戚夫人和刘如意,这摆明了就是要换太子,然后又教吕泽一套话,让吕泽转告吕后,说给刘邦听,就说让刘邦带兵亲征,哪怕在军营里躺着,那些老将也会玩命打,肯定能赢。刘邦果然中计,骂着臭小子真是个废物,不用你了,老子自己来,就出兵了。但是张良还是留了一手,让太子掌握兵权,监督关内诸候。可见首先,太子不带兵,至少到了秦末汉初,这并不是一条定制,否则商山四皓大可直接找刘邦,以不合规矩为理由劝阻,以商山四皓在刘邦心里的地位,这话不会没用,正因为没有这个规矩,所以才不得不通过吕泽,以吕氏的私利来说服吕泽,通过吕后劝阻刘邦;再者,太子不带兵的说法即便可以成立,至少在刘邦这里也未必是出于对太子掌握兵权的忌惮,至少不是重要的原因,因为毕竟最后,刘邦还是授权给太子一定的兵权,监督关内诸候
具体到秦国,秦庄公的长子世父,史记没有记载他是太子,但是记载了他带兵为祖父报仇,有一句“遂将击戎,让其弟襄公”,这个“让”的到底是什么,有人说就是让出了太子位,然后才带兵打仗。但是史记并不称其为太子世父,以史记对让德的重视,如果世父出于孝道而决定带兵出征,又让出了太子之位给弟弟,这种孝悌双全的典范,是应该要大写一笔的才对
总之综合起来看,反对太子带兵的理由大概有几方面:太子是接班人,不能轻易冒险;太子在军队里很难处理国君命令和战场指挥的关系;太子掌握兵权,权柄太重;太子带兵,打赢了没有奖赏的余地,打输了弄不好太子都当不下去。但是这里也有个问题就是,如果太子不打仗,他的兄弟们却可以去打仗,那就是……李世民兄弟的事大家都知道的对吧
其实如李世民兄弟这般的故事先秦也不是没有,尤其小宗子如果掌握了兵权,麻烦更大。比如卫庄公让公子州吁带兵,石碏就反对,认为以后会作乱。后来卫庄公死后,州吁果然谋害卫桓公——顺便说一句,州吁还有个大名鼎鼎的好基友,就是共叔段,郑伯克段于鄢的那个段,这可真是物以类聚
以吕思勉对史料的熟悉程度,这些太子带兵的记载我相信他一定都知道,那么他提出太子将兵主废立的说法,也自然有他的道理和考证,也许这就是大学者和我们之间的差距,人家认为一句话不证自明的道理,我们要考证很久却还摸不到头绪。那么我们不妨就暂时先搁置起这些质疑,选择接受吕思勉的说法,也就自然可以得出,既然扶苏去了长城军,那就说明他客观上不是太子的身份,主观上秦始皇也不打算让他当太子。而胡亥,客观上也不是太子,那么主观上秦始皇有没有想培养他接班?我不知道。吕思勉认为既然秦始皇巡游带着胡亥,就表示秦始皇偏爱胡亥,而且让熟悉法令擅长书法的驾车高手赵高做胡亥的老师,可见秦始皇确实在有意识的培养胡亥的某些方面技能
既然如此,史记说的秦始皇临死前安排扶苏主持葬礼就很奇怪了。因为传统上,葬礼应该是太子主持,如果有所谓的秦始皇的原版遗诏,让扶苏主持葬礼,那也就是打算以扶苏为太子,换句话说,让扶苏主持丧礼的意思就是让扶苏做太子了。但是既然如此,为什么不直接说传位给扶苏,却还要绕个弯子,只说让扶苏主持葬礼呢
但是最终上台的还是胡亥,史记说胡亥能够接班是赵高的运作,这也很奇怪
一则,秦始皇是病重的时候传遗诏,赵高却扣下不发,这就要求赵高必须对秦始皇的寿命很有把握,认为秦始皇不会康复起来,否则追究起诏书的去向,赵高就死定了。所以有人认为秦始皇是被赵高害死的,因此赵高才对秦始皇必死有十足的把握。但是这个说法猜测的成分太大
二则,赵高找李斯合谋,那么赵高就必须很有把握,无论李斯是否和他合谋,他都都必须要牢牢的控制住李斯。原因很简单,如果李斯不合作,赵高要确保李斯不会揭发他,而如果李斯答应了赵高,赵高还要确保李斯只能是他的帮手,而不是让李斯骑到自己头上,毕竟李斯是丞相,地位很高,如果李斯反手成了主导者,把赵高弄成了小弟,那赵高就白玩了。但是看史记,赵高又似乎没有这样的手腕
三则,史记里赵高劝说李斯的最核心理由是,扶苏一旦上台,宰相一定是蒙恬,李斯这只老鼠就要被赶出粮仓了,按照秦国的惯例,卸任的宰相从来没有好下场,李斯必死无疑。这个理由吕思勉就不信,认为蒙氏和扶苏的关系没那么铁,而且李斯作为功勋老臣,也不至于一定会被清理出朝廷。尤其李斯也肯定知道赵高和胡亥的师生关系,如果他担心扶苏上台自己会被蒙恬取代,难道他会想不到胡亥上台自己也会被赵高取代吗?这两种结果并没有什么本质区别
基于此,吕思勉认为史记的记载就是不可信,认为这是秦末到汉初人们流传中出现的讹误。赵正书的出现,恰好就是从一个侧面支持了吕思勉的观点,表明当时关于扶苏和胡亥谁该即位确实有别的说法,至少至少,秦二世的官方通告一定要说自己是正常传位接班的。而现在我们看到的史记是经过司马迁父子取舍后形成的内容(暂不考虑史记也可能被篡改的问题),司马迁要达到的效果就是胡亥即位不正,所以天下大乱,楚代秦(汉取代的是楚)有合理性
中国旧史学对事实的兴趣远不如对意义的兴趣浓厚,甚至钱穆说古代史学家都要有小说家的本事,能依据人物形象构想出对话表情场景。我没这么激进,但是细节来自想象的这个说法我也是相信的。而且我觉得,古人写历史前确实都是先立人设,然后根据人设再进行选材。一个人可能做过成千上万的事,但是被史学家知道的事情可能就只有几百件,最后史学家要从这几百件事迹里选出几件顶多几十件写进史书,那就需要取舍,如果没有预先设定好一个框架,这些可能互相并不相关的事件就没法组织,这个框架就是人设。史学家根据掌握的资料,结合要表达的态度,先给每个人定基调,是忠是奸,是褒是贬,然后把事情填进框架里,这个过程里不一定每件事都能在框架里找到位置,那些不符合人设的事填不进去,就会被丢弃不记载,这一取一舍之间,就是史学家的眼光和水平
人都是复杂的,纯粹的好人或者坏人大概只能存在于在文学创作里所谓的脸谱化扁平人物,在现实世界里几乎是看不到的。就比如我在地铁里给孕妇让座,但是出了地铁过马路我就闯了红灯,这都是同一个人在短时间内的连续行为。这种人和事应该大家都不陌生,也许我们每个人都有过这种类似的经历。如果后来我死于挽救溺水儿童,那么我的人设就很可能是个热心善良的人,给我写传的时候就只会写让座,闯红灯的事就“为贤者讳”了;但是如果我后来死于酒驾,那么我的人设就是不遵守交通规则,我的传记里大概率就只有闯红灯,让座的事不值一提。所以我们可以看到,历代皇帝圣贤出生都伴随着各种祥瑞,这固然是对他们的美化,但是同时也要想到,从古至今梦见过龙凤云霞的孕妇恐怕不止亿万,但是她们生出来的孩子后来没有名垂青史,所以她们做的梦也就没人知道了,只有那些伟大人物的母亲梦里的奇观才符合这些人物的人设,因此会被史学家采访到并且记载下来。宋史的苏轼传里记载了苏东坡小时候读汉书说要学习范滂好榜样,如果让我写骆宾王传,我也一定会收录曲项向天歌,难道苏东坡就没有背不出课文挨打的时候?骆宾王小时候没写过臭诗?肯定会有嘛,但是这些都不符合人设,不会被记录下来。当然了,那种大才子小时候不好好学习的故事也不是没有,但是必须有个反转的剧情,比如李白小时候不努力学习的故事,结尾一定要反转到铁棒磨成针,从此发奋图强,这就是古人写历史的人设先行的惯例,甚至一直到今天,写人物传记拍名人纪录片等创作中的选材口味,也依然还受到这种风气的影响
还有一个惯例就是,无论是史记还是后来的历代正史,都会把开国君主写的很优秀伟大,商汤文武都是圣人,非如此不足以说明他们建国的必然性,而写到亡国君主一定都有大过错,要么残暴要么昏庸,甚至比如史记里写到桀纣,连描述用的词汇都一样。两个间隔几百年的人,怎么可能口味不变?即便都是昏君,难道不能昏的有点个性?这就是他们的人设,写史书也是结合这种人设来取舍材料,与其说开国君主英明神武,桀纣暴虐而亡国,不如说史记想告诉其他的君主,做了这些事可以天下太平,做了哪些事就要亡国败家,至于他们是不是真的如此,那就不是特别的重要了
既然人设先行,根据人设来选材,开国君主贤德而末世君主昏聩,那么秦始皇父子三人的人设也就呼之欲出了。史记对秦始皇还是有很正面的评价的,但是对胡亥就没那么客气了,因为史记对胡亥的人设就是即位不正,并且也预设了扶苏的仁厚形象,那么所有的剧情都要围绕这个前提来展开。司马迁很可能是看到了关于秦始皇传位的各种记载,这其中很可能也包括赵正书。一个说法从开始流传到形成文字,中间也需要经过一段时间的酝酿,一般认为赵正书形成于西汉早期,那么可见胡亥正常接班的说法在秦末到汉初应该就有了。甚至至少,胡亥上台后秦朝官方的口径也一定就是秦二世奉秦始皇遗诏合法继位,无论真相如何,秦朝政府给出的正式通告也只能说这是一次父子之间正常的权力交接。而且这些资料大概率是被萧何保住了,所以司马迁理论上应该能看到秦朝官方的这种记载。但是这个说法绝对不能写进史记,因为这个说法并不有利于胡亥扶苏兄弟的人设。而且史记里不断刻画扶苏刚毅武勇信仁奋士的形象,但是除了给术士求情,扶苏的其他进谏内容全都没有留下来。难道扶苏所有的意见都是这种关乎人道主义的?会不会也有符合法家思想的想法?有没有关于加强秦朝统治的内容?这些目前还无可考证,也许随着未来某个重大的考古发现,找到了扶苏进谏的竹简或者副本,才会更加丰富我们对扶苏这个人的理解吧
那么扶苏和胡亥到底谁应该接班?对史记来说,这个问题的答案并不重要。那么对我们来说,这个问题的答案还重要吗?我倒是觉得,对我们来说,事实的真相也不那么重要了,因为反正也闹不清楚,不妨把它交给考古,寄希望于未来发掘出某个秦末高等级贵族或者官僚的大墓,甚至打开秦始皇陵的那一天。但是这就成了个考古的问题,而不是历史的问题。从历史研究的角度,可能我们更需要知道的是,这件事为什么被记载成这样。历史已经过去了,但是观念都是被建构的,写历史永远都是为了建构起当时乃至未来读者的观念
每个学科要面对的都是两方面的问题,一是目的,是追求,是目标,是要解决的核心问题,本学科要做什么,二是工具,是手段,是方法,是用来解决问题的办法,本学科要怎么做。历史也不例外。事实真相对于考古来说是它的目标,但是对于历史研究来说,就只是手段而已。这当然不是说历史不关注事实真相,而只是真相的重要性相对低而已。就如我在老文里说起过的,历史更重要的是如何分析和理解这些资料,对传世的记载和考古的发现做出分析和判断,这才是历史的目的。即便未来由于考古等学科的发展,提供了更多的甚至和现在我们所掌握的相反的史料,那也不可怕,只要我们的分析能力足够,基于新的资料,把我们的分析方法重新用一次,自然就能更新我们的知识
我觉得中国古代的旧史学的目标,就是塑造人们对过去的人和事的认知,而记录只是为了达到这个目标所采用的方法而已,因此才会有前面所谓的人设先行的原则。这可能和现代的历史工作的目标不太一样,今天的历史研究固然也在塑造人们对古代的认知,但是也还在试图接近客观的事实,有所谓的客观历史研究,而中国古代的历史则更加倾向于主观的历史。所以现代人会不断对古人的记载进行重新的理解,来达到接近真实的目的,这就是现代历史的方法之一。但是当我们面对古人对同一件事留下的不同记录的时候,除了谁真谁假之外,更值得探索的问题其实可能是,他们为什么记载的不一样,这些差异反映了不同作者的什么记录目的,对同一个人的人设有什么不同,为什么会有这样不同的人设。这类的问题,我觉得比哪个记载是真的,要更有思考的价值。只知道史记和汉书有多少处记载的差异,那是编个程序就能解决的事,但是为什么会有这些差异,才是读历史时更应该关注的地方
这就像,文学上,我们可以讨论为什么会有举头望明月和举头望山月的差异,小扣柴扉久不开和十扣柴扉九不开哪个更好,这种讨论可以促使我们更加细致的研究文字,锤炼语言,辨析词汇之间细微的差异,这些都很有价值。但是纠结哪个才是李白的原文,陶渊明到底是见南山还是现南山,甚至红楼梦的哪个版本才是曹雪芹的本意,这就很无聊。文章的原文当然重要,但是对于文学研究来说,欣赏艺术获得美感才是目的,而作品是我们欣赏的对象和学习创作方法的途径,考证版本固然有它的价值,但是纠结原文如何,在文学上意义不大,即使能有定论,比如见南山就是比现南山更好,也不能说明陶渊明当初写的就是那个更好的版本,也许若干年后有考古发现,挖出了陶渊明的手稿,那么陶渊明到底怎么写的,自然真相大白,没准陶渊明就是写的略低了一筹,难道就能推翻我们基于审美得出的优劣比较?难道就要再硬拗出一个道理,来说明其实陶渊明写的就是好,是我们之前的分析错了?恐怕没必要吧。既然如此,纠结哪个是原作还有什么意义呢
说个故事吧,高中时候有一次,语文老师讲卷子,有一个关于句子含义的选择题,老师先说了答案,然后开始讲解为什么答案是对的,比其他几个选项好在哪,就在老师的讲解几乎要把我说服了的时候,突然老师说,抱歉,看错了,答案应该是选另一个……这不就好像当我们为两个版本的名家诗排出了优劣顺序,并认为古人写的一定是更好的那个的时候,突然考古挖出来了一个正确答案,古人写的其实就是那个被我们认为不太好的句子,两者是一般的尴尬嘛
真相只有一个,但是对记载的理解却可以很多,这也是人文学科比理工科更好玩的地方
最后顺便说一句,我对文学和历史的理解和态度都几乎主要来自体制外的老师给我开蒙引路,再加上自己的一点强行破墙而入,并没有经过职业研究者对我进行系统化的梳理和规范,纯天然,但未必无污染,属于野生学派,因此即便以上看法为专业人士所不容,也只能是题中应有之义
2021年09月28日
此楷书非彼楷书
有人说东汉魏晋就有楷书,而且尊钟繇为楷书鼻祖,说实话有点颠覆三观。惊诧之余问了个和我一样不写字的朋友,很快得到回答:百度百科如是说
好吧,这就难怪了
不过整理许老太爷遗稿的时候倒是隐约记得有几句相关的内容,却发现也都是只追溯到唐朝。于是以此为线索,在文库里倒也翻出来点零碎的句子
其实我不写字,也不通书法史,以下都是从行家那里捋来的叶子。很多人看不起捋叶子的,但是我觉得也得看捋的是谁的叶子,叶嘉莹就靠着捋了一点顾随的叶子,都吃一辈子了,也没见她觉得怎么不好意思
这是一个书法史乃至艺术史的问题,我们都知道,任何艺术形式的发展史都是由参与者主观构建的,艺术家和艺术品的价值取决于接受者的态度,而不存在客观影响力这回事。这是艺术史和其他诸如政治史军事史最大的区别。比如军事史上的事件,无论是军制的变化还是战争的结果,无论是否被接受,它的作用都在发生影响,不会因为没人关注就在历史上被忽略
但是艺术史则不是这样,一件作品诞生以后,如果没有人关注,就不会对艺术史产生影响,左传汉书在历史研究中很重要,但是之所以在文学史上也很重要,是因为有太多的后世作者模仿左传汉书的笔法写文章,成为了典范。换句话说,艺术家和艺术品在艺术史上的地位,取决于后代的接受程度
为了避免问题扩大化,这里我只集中针对三个问题:
1,楷书怎么来的
2,东汉魏晋有没有楷书
3,钟繇算不算楷书的鼻祖
在开始讨论之前,首先明确一个基本前提:以下我们所谓楷书,如果不特别注明,就是写字的人经常要练的那个楷书,以颜柳欧赵为代表的书体
这里也要特别说明两点,首先,我们说以颜柳欧赵为代表,并不是默认只有颜柳欧赵才是楷书,而是因为颜柳欧赵基本代表了楷书发展到了巅峰,之后的楷书技巧和审美的追求基本没有脱离这个范围,所以强调颜柳欧赵的作品是楷书的典范,以此来界定楷书的范围,而不去考虑这个作品的时代背景
再就是,我们不限定是否作为艺术形式去创作,这也是检讨中国艺术史的通用基本原则。因为如果限定在作为艺术品创作的范围,那么几乎就等于把整个中国艺术史都排除了。中国古代几乎没有纯粹的为了艺术而艺术的艺术品,而是生活的艺术,不是让艺术品进入生活,而是把生活用品做成艺术。比如在书法史上最受重视的作品几乎都是因为生活用途而出现的,比如书信,便条,文稿,碑刻之类,其他比如文学绘画也是如此,前面提到的左传汉书都是作为史书传世,又比如昭明文选古文观止里也都大量的选了应用文,八家文钞里选了王安石的大量政论文。无论书法绘画文学,这些作品当初被创作出来都是满足实际的需要,但是被后世保留欣赏并取法,从而形成了他们在艺术史上的地位,成为了艺术品
之所以先明确这个概念,是因为在查阅资料期间,我很怀疑有些人是看到“楷书”“楷法”之类的词汇,就想当然的直接当成了楷书。大致猜测到错误结论的来源后,我觉得有必要先正名,名不正则言不顺,防止扯皮
基于对楷书的概念这样的界定,我查阅了一些常见的古代书法艺术理论文献,试图找到楷书和钟繇在后代书法理论家和书法史家的理论体系里是如何被接受的
结果就是,钟繇之后的书法理论著作里,很少提及他的楷书,甚至一直到唐朝初期,书法理论家不断提到钟繇,但是很少提到楷书这种书体,更遑论两者的关系
比如梁代庾肩吾《书品论》对钟繇的评语是“天然第一,功夫次之,妙尽许昌之碑,穷极邺下之牍”,这评价的关注重点是钟繇的隶书(这时碑帖之争还没成为问题,碑帖也和我们要说的事关系不大,以后如果有机会再翻出来啰嗦一下)
唐代张彦远《法书要录》提及自己书法理论的学习过程时说“方悟隶式始变子敬,全法元常”,这还是说钟繇的隶书。而且《法书要录》中提到钟繇,要么不涉及具体的书法成就,只说书法史上地位(子敬之比逸少,犹士季之比元常,言去之远矣),要么是单纯的风格评价(德升之妙,钟胡各采其美;张芝经奇,钟繇特绝,逸少鼎能,献之冠世;元常每点多异,羲之万字不同),即使涉及具体书体,几乎都是关于隶书(元常皆作隶书;元常正隶如郊庙既陈,俎豆斯在),并且以张芝的草书和钟繇的隶书并举(钟善真书,张称草圣)
唐代张怀瓘的各种书法理论作品里多次提到钟繇,例如《文字论》提到“钟王真行,一古一今”,也是针对钟繇的隶书。《书断》在总结书法家时把钟繇排在隶书行书神品,八分草书妙品,而总结各种书体的源流的时候,却只提到八分,没有楷书
假设钟繇是楷书鼻祖,这样的评价就有点奇怪,如果楷书是钟繇开创,或者即便不是钟繇开创,但是如果钟繇时代就有,那么南北朝几百年就应该有人学习楷书,发展到唐朝,成为书法一体,应该颇有些历史可写才对
这就可见,在张怀瓘要总结的唐以前的书法史上,楷书并没有正式形成,应该还正在从真隶正分中孕育,因此没什么历史可溯。所以《书断》评价钟繇时,提到他“真书绝世”,学的是曹喜(曹喜擅长篆隶)、蔡邕、刘德升,在评价刘德升、胡昭、韦诞的时候分别提到钟繇擅长行草隶书,尤其最后总结里提到“元常专工于隶书”。总和以上看来,张怀瓘对钟繇的总体评价和他引的各种资料都很一致,不涉及钟繇和楷书的关系
而且《六体书论》和《书断》都没有提到楷书的源流,也或可说明在唐人看来,楷书并没有真草隶篆那样悠久的历史需要追溯。不过《书断》中也确实多次提到楷,其中一部分是“楷模”的意思,另一部分则确实是楷书,因为张怀瓘是唐人,当时楷书已经形成,张怀瓘用唐时的楷书和其他书体做比较,或楷书和其他书体并举,阐明其中关系——但是这时钟繇早已死了几百年咯
当然了,提到钟繇楷书的也不是没有,比如唐徐浩古迹记提到“及张芝章草,钟繇正楷”,唐虞世南书旨述说“钟太傅师资德升,驰鹜曹蔡,仿学而致一体,真楷独得精研”,这是我查资料时看到的唐代仅有的几个例子,把钟繇和楷书放在一起。但是这里的楷书,还是值得辨析,因为唐人提到“楷书”这个词,有时候也不一定就是书体的楷书。例如《书断列传》讲唐太宗偷兰亭序的故事,萧翼对辩才说“弟子先传二王楷书法”,很显然不是指的书体上的楷书,而是“楷模”的意思。如果徐浩和虞世南所谓的“楷”也是“楷模”的意思,那么正楷和真楷就还是作为楷模的隶书。不过这样的理解似乎存在修辞上不工整问题,也许还需要进一步的检讨
现在“楷书”还经常和“真书”“正书”混用,并被认为是一回事,而古代所谓的“楷”或者“楷法”未必就是楷书。比如宋宣和书谱提到“在汉建初,有王次仲者,始以隶字作楷法。所谓楷法者,今之正书也……此书既始于汉,于是西汉之末,隶字不刻,间杂为真书……三国钟繇者,乃有贺克捷表,备尽法度,为正书之祖”——这就很容易让读书不细的人看到一样的字就当成是一回事,理所当然的认为正书真书楷书都是一回事,钟繇就是楷书之祖
在处理古文献记载的时候,这种像检索程序一样处理词语的方法很危险。现在随着搜索引擎的普及,文献检索很便利,这就导致做资料收集和查找的时候,人会偷懒,不去仔细辨析一个词语在具体语境里所表达的概念到底是什么,而只是看到一样的词,就想当然的认为说的是同样的事。“楷”作为一个符号,随着时代和语境的变化,当然表达不同的意思,这才是理所当然。文本的概念和指涉对象需要回到上下文才有可能准确的界定,这是一个基本的不能再基本的研究方法问题
《六体书论》除了八分的部分提到钟繇,在其他地方提到钟繇的时候,或者用其书法史上的地位(钟张为枝干,二王为华叶;岂可许钟张二王,独高于往日也),或者是和隶书有关((隶书)钟繇法于大篆……王羲之比钟繇……学真者不可不兼钟,学草者不可不兼张……不可不兼于钟张也)。这就是前面我专门强调,艺术史是主观构建的历史,作者和作品的价值取决于被接受的方式和程度,在张怀瓘看来,钟繇和隶书的关系才是值得关注的问题
以上的讨论里,我刻意回避了“真书”“正书”和“隶书”的关系问题。我猜测让很多人认为钟繇和楷书有关的原因,也许就是,很多人认为楷书就是真书或者正书,而且也确实有很多书法理论提到钟繇擅长真书或正书,比如前面提到的“元常正隶如郊庙既陈,俎豆斯在”
又比如唐李嗣真书品后提到逸品五人有钟繇,对应的书体是“正”。这个“正”到底该如何理解,其实也算是个不大不小的问题。如果这里指的是“正书”,那就还是真书,但如果是“正体”,那就不只是真书,而是可以包含八分和篆(刘熙载艺概:书凡两种,篆分正为一体,皆详而静者也,行草为一种,皆简而动者也)
张怀瓘《六体书论》认为“隶书者,程邈造也。字皆真正,曰真书”,换句话说,真书就是隶书。《书断》关于僧智永的记载提到“兄智楷,亦工草。丁觇亦善隶书,时人云丁真楷草”,就是以真为隶书。顾炎武在《日知录之余》里也提到了八分,他认为“八分虽别一体,亦谓之隶也”
张怀瓘在《书断》里也解说了一番八分,针对卫恒在《四体书势》里提到的“上谷王次仲始作楷法”的说法所引起的争议略作辨析,认为“八分已减小篆之半,隶又减八分之半”。而且晋代所谓楷法,也只是楷模的意思,比如《辛谧传》“工草隶书,时为楷法”,就很显然说的不是楷书——但是无论结论如何,都明确提到了,八分的创始人是王次仲,钟繇不是创始,尤其《六体书论》更是直接论资排辈,说“八分者,王次仲造也……蔡邕为祖,张昶皇象为子,钟繇索靖为孙”
倒是《艺概》认为,隶书时间跨度大,字体复杂,尤其又牵涉到和八分的关系,因此刘熙载和稀泥的认为“秦权上字为隶……钟王正书亦为隶”,换句话说,正书只是时代较晚的隶书而已,这个意见基本上是属于搁置争议,共同开发
刘熙载还认为,针对四体书势所谓的“上谷王次仲始作楷法”,考辨了传承,认为这里“楷法实即八分……至(毛)宏乃益之,使成大备耳”,这里的楷法还是楷模典范的意思
而正体在刘熙载看来,是不断变化的,“其实汉所谓正体,不必如秦;秦所谓正体,不必如周。后世之所谓正体,由古人观之,未必非俗体也。然俗而久,则为正矣”
但是刘熙载的和稀泥并未到此为止,他还认为,凡是能作为典范楷模的标准书体都可以称为隶书(其实自唐以前,皆称楷字为隶),虽然正书隶书不太一样,但是并不影响正书被当成典范,因为“楷无定名,不独正书当之。汉北海敬王睦善史书,世以为楷,是大篆可谓楷也。卫恒书势云:王次仲始作楷法,是八分为楷也。又云:伯英下笔必为楷,则是草为楷也”(这里引文明显不准确,卫恒《四体书势》的原文是“弘农张伯英者……下笔必为楷则,号匆匆不暇草书”)。刘熙载的这个说法也未必没有先例,比如《宋史》就提及“书学生习篆隶草三体……篆以古文大小二篆为法,隶以二王欧虞颜柳真行为法,草以章草张芝九体为法”,也是把真行统称为隶
所以在刘熙载看来,正体和八分只是在抢一个名字,抢一个作为典范的身份,这个身份在当时被叫做“隶”,正所谓“未有正书以前,八分但名为隶;既有正书以后,隶不得不名八分。名八分者,所以别于今隶也”。在被龚云起教授揶揄为“艺舟单橹”的《广艺舟双辑》里,康有为也采信了刘熙载的说法
不过刘熙载着么努力的在调和这些概念之间的关系,实在是有点尴尬,更可能是出于无奈。但是其实刘熙载大可不必这么费劲,早在明代张绅的《法书通释》里就认为“古无真书之称,后人谓之正书、楷书者,盖即隶书也……但自钟繇之后,二王变体,世人谓之真书,执笔之际,不知即是隶法别为构体。流传既久,失其本原,乃至日趋妩媚,恶俗之札,不可追改。今观欧颜而上,往往皆从隶古,学者但不详察耳。字原谓隶有秦隶汉隶……今当以晋人真书谓之晋隶,则自然易晓矣”——已经可以算是说的足够明白了
张绅和刘熙载的意见放在一起,简单说就是:以颜柳欧赵为代表的楷书,在东汉到南北朝期间,原本并不存在,欧颜学字也是学隶书,而东汉到南北朝时所谓的楷书,并不是一个表示某种书体的专有名词,只是一个普通的偏正复合词,作为楷模的书法,如此而已
这就很像“中国”这个词汇,在古代的文献里,它也并不是一个专有词汇,也只是一个普通的偏正复合词,中央之国而已。但是这两个词后来都成了专有名词,并且还都是很能刺激起某些过眼不过脑的人肉模式匹配引擎的敏感神经的词汇
正如《正书绪论》的说法,“宋自欧阳公之后始以楷书为正书,或曰真书”,把这几个名字给彻底搅乱了,也就自然让后人容易误会
至于钟繇配不配得上楷书的鼻祖,呵呵,楷书都不存在,鼻祖岂不孤单?就像西周楚国并不使用汉字,那么史记所谓的楚国三王,大概也只是个一厢情愿的误会,称王称了个寂寞吧
整体来看,至少到唐人的书法理论里,认为汉魏六朝的书法还是以隶书以及其变体为主,并未形成后世流传的楷书,而提起钟繇,主要是重视他在书法史上的影响力和典范意义。当然了,楷书和隶书确乎是有前后关联的,毕竟以肉眼可见的人类历史范围内看来,没有什么是毫无启承脉络的。隶和八分关系暧昧,而后世书家喜欢钟繇,学钟繇的字,写着写着写出了楷书也不奇怪。钟繇在楷书发展中当然是起了作用的,但是把他捧到鼻祖的位置上,我怕钟繇的屁股会痛,坐不安稳
追尊钟繇为楷书鼻祖,想来一大半是拉大旗扯虎皮吧,就像曹操的祖先是曹参,刘备的祖先是刘启,李渊的祖先是李耳,白话文的祖先是文言文,计算机的祖先是八卦一样,其共同特点就是似是而非,倒也不能说毫不相干,但是这个祖先之后的脉络中断,一直到很久之后才出现接续,而这个接续者和元祖之间的关系早已说不清楚,中间的流传无处可考,强认个有来头的祖先,给自己壮胆而已。阿 Q 就说嘛,谁祖上还没阔气过
当然了,如果硬要说钟繇不能写楷书,我也没那么大的把握,毕竟天纵奇才,可以为所欲为,而且中国人的习惯嘛,所有的创新恨不得都归结到某一两个天才祖宗的头上。但是书法史毕竟也是艺术史的一类,是后人建构起来的脉络,即便钟繇能写得一手好楷书,但是毕竟没有及时引起后世的关注,他自己再精妙有什么用呢
随着书写习惯和工具的变化(这是个大话题,还是再找机会说吧),唐代之后的楷书领域逐渐被颜柳欧笼罩,也便不再需要去追认什么钟繇。随着书写习惯和工具的继续变化,宋朝的楷书也出现了不同的味道。等到赵孟頫横空出世,楷书就算是一蹶不振,挪用厦门易中天的话说就是,走到了保险箱,也走进了死胡同
最后再次强调,这里所谓以颜柳欧赵为代表的楷书,并不是说在唐代之前一定没有楷书,也不是在强行定义欧阳询为鼻祖,更不是说这几个人物和他们的作品就是楷书的全部,而是要借由这个艺术形式的几个典范,来达到准确界定所讨论的概念范围边界的目的。这就类似说,以梅兰芳为代表的京剧,其实京剧早在梅兰芳出生之前已经存在了几十年,早有源流,梅兰芳也远不是京剧的全部。但是有人把京剧的历史追溯到四大徽班进北京,认为京剧距今两百三十多年的历史,那就也是有点类似这个强认钟繇为楷书鼻祖了。两者有关吗?有。是由此发展而来吗?是。但是无论钟繇之于楷书,还是徽班之于京剧,这个时间点都顶多只能相当于怀胎受孕,离分娩还有段日子
耐心等等吧,猫三狗四们
2021年09月17日
这位师妹有故事
刚才有一位很久不联系的师妹突然问了些事,倒是勾起了一些上学时候的回忆
和这位师妹认识的很偶然,刚认识还不熟的时候,彼此不知道对方是哪个系,只是看见脸熟,说过几句话,彼此知道有这么个人而已。有一次我和同学中午去吃饭的路上讨论着正在做的实验和作业,刚从系楼出来,凑巧她从旁边经过,大概是我们说话的声音有点大,她就回头看了一眼,却发现是熟人,于是打个招呼。我同学看有女生和我打招呼,就先走了,留下我在原地尴尬
当时我和她聊了几句之后,她忽然问我,你是中文系的吗,我就纳闷,问她为什么这么想,她说因为见我当时手里拿的是一本文学史的书。我于是便告诉她,我是计算机系的,看看文学史纯粹是觉得好玩,也就顺便的知道了她是金融系。我也反问她,你看到我从计算机系的楼里出来,而且听到我和别人在讨论作业,怎么还会觉得我是中文系,她说,万一你是在准备二级,万一你是来计算机系玩的呢
我曾把这事写进关于研究方法的学期作业,因为整个过程,包括她的推理,我觉得是很典型的一个失败的研究方法导致错误结论的案例。她有很好的观察力,看到了我手里拿着文学史参考书的细节,于是得出结论,我是中文系,证据就是其他专业的人不太会看文学史。但是她也看到了我从计算机系出来,还正在讨论计算机专业的问题,这种更大的证据放在眼前,她却用两个“万一你是”来解释,这其实就是做研究的时候经常可以看到的失误
做研究就是基于证据得出结论,这个结论应当可以包容所有的证据,并且对于否定的证据能够提出解释。就比如这位师妹认为我是中文系的,她的证据就是我正拿着文学史书,这是正面证据支持结论,对于我从计算机系楼出来,并且讨论计算机实验这两个反面的证据,也提出了解释。从研究方法上,有一个合结论的正面证据,并且对两个反面证据给出了解释,那么她的结论是可以成立的
但是如果换个角度,把反面证据当成正面证据,而把正面证据当成反面证据,她就应该通过我从计算机系楼里出来,并且正在讨论计算机实验,得出结论,我应该是计算机系的,而我手里拿着文学史的书,也许是我选了文学史的选修课,或者我是替别人拿书,这样得出的结论有两个正面的证据支持,同时只有一个反面的证据需要解释,而且也很容易的就能得到解释,那么从研究方法上,这样得到的结论成立的可能性就更大
研究方法有个基本原则就是,尽量不要给证据加戏,逻辑越直接,需要解释的反面证据越少,越有可能接近真相。当然了,这不是说绕弯子的结论就一定不是真的,她对于我是中文系的判断也确实有成立的可能,一个正在准备二级的中文系学生到计算机系去串门,这种事确实有发生的可能,但是和一个替别人拿着文学史书的计算机系学生相比,哪个更有可能呢
当年我把这位师妹的这个故事写进研究方法的学期报告后,还把报告给她看过,但是当时我写的比较戏谑,说的不是帮别人拿着文学史书,而是说可能是有个中文系女朋友。她看指着这一行说……你这就是吹大牛了
2021年09月16日
烛影斧声的三处记载
闲看论坛,见一群业余历史票友(这不是重复用词,而是我觉得如果用历史票友的标准去要求那些人,他们应该算是业余的)讨论烛影斧声,争的不亦乐乎。哂笑之余,突然想到,这个问题可能还真有点历史之外的营养
故事本身呢,不必多说,看过贺后骂殿就大概齐知道梗概。我所见这个故事,有三处记载,分别是宋史纪事本末(以下简称本末),续资治通鉴长编(以下简称续长编),以及顺着续长编,追溯到了湘山野录(以下简称野录),宋史正史里没有收录,也可见脱脱的眼界,此事的确荒诞,不入大家法眼一点也不奇怪
我上面列举的烛影斧声的三处记载,顺序是由晚到早,本末是明朝的,续长编是南宋的,野录是北宋的,同时这个顺序也是由详细到简略,细节最丰富的是野录,字数最少的本末——上古史都是越来字越多,这个故事倒是反的,哈哈,玩笑
那么我就从简到繁,理一下这个故事吧
本末的记载是这样的:赵匡胤兄弟的母亲曾有遗命,兄弟几个要轮流当皇帝,然后再传回赵匡胤的儿子。这个想法有点天真,大概老太太没看过刺王僚。但是赵匡胤还真是很喜欢弟弟赵光义,经常说,这个弟弟以后当皇帝肯定错不了。后来赵匡胤生病,就在冬十月壬午日晚上找赵光义来交代后事,把所有随从赶走,兄弟俩在密室聊天。反正我大概算了一下干支,那年冬十月没有壬午日,不知道是不是我算错了。总之,有人看到窗影上赵光义有“逊避”的动作,又听到赵匡胤拿柱斧敲地,喊着“好为之”,之后很快就死了,原文是“俄而”,当时时间是四更时候。然后皇后就来了,向赵光义说了些请“官家”照顾我们孤儿寡母之类的话,官家是宋朝人对皇帝的称呼,赵光义也哭着答应,“共保富贵无忧矣”
续长编稍微多了些细节,大致是说,赵匡胤生病久治不愈,找了个道士作法,道士召来了个神仙,神仙说赵光义是个好人,于是就在壬子日晚上,赵匡胤找赵光义交代后事。我算了干支当年的冬季有这个日子,大概是古籍传抄的时候因为字迹潦草,子午写不清楚。之后的剧情大同小异,也是赶走随从,密室里只有兄弟俩,也是有人看到烛影,似乎是赵光义在逊避,也是听到赵匡胤拿柱斧敲地喊着“好为之”。但是赵匡胤死于癸丑之夜,也是四更时候。因为古人通常以五鼓天明作为新一天的开始,所以我觉得这时候应该已经是兄弟夜谈一天以后的凌晨了,也就是甲寅日的凌晨,赵光义已经离开皇宫回家去了。皇后派太监王继恩去找皇子赵德芳,但是王继恩认为赵匡胤早有安排,让赵光义接班,因此找来了赵光义。王继恩找赵光义的路上还有些插曲,也不过就是对赵光义的一些神话而已。总之赵光义来到现场,皇后一看,先是惊诧,但也称呼“官家”,也是说了些照顾好孤儿寡母之类的话,赵光义也哭着说,“共保富贵无忧矣”
野录的记载就更华丽了,大致是说,赵匡胤兄弟俩年轻时候认识一个道士,有点法力,赵匡胤当皇帝以后又遇到这个道士,就问起自己还有多少寿命,道士说,十月二十日晚上,如果是个晴天,就还有十二年(一纪),否则就要准备安排后事(续长编里还有一种近似的说法,大致是说,十月二十晚上如果下雪,就是寿命不久,如果晴天,可以多活十二年)。但是十月二十这个日子肯定不是壬子。后来这个道士就不见了。赵匡胤就算着日期,到了十月二十晚上,天气本来挺好,赵匡胤也挺高兴,突然就下雪了,赵匡胤赶紧让人找赵光义来,赶走随从,两兄弟在密室喝酒聊天。有人就看到赵光义的影子有避席“不可胜之状”。俩人喝到三更,赵匡胤用柱斧戳雪,对赵光义说“好做好做”,然后就去睡觉,而且打呼噜。赵光义也睡在宫里。到了快五更的时候,听不到赵匡胤打呼噜,再看的时候,赵匡胤已经死了,于是赵光义就在灵柩前即位,天亮就去上朝了
这事吧,反正,还要怎么解释呢,自己看吧,我觉得脱脱没把这事写进宋史,实在是毫无毛病。甚至早有注家指出,续长编的这段记载,不见于实录
至于有人由此去猜测赵光义是不是杀兄夺位,也完全没必要,因为在这三个记载里,都很明显的看出,赵匡胤是认可赵光义接班的。而且一个最简单的道理就是:赵光义到底有没有继承权?如果赵光义没有继承权,那么他为什么要杀皇帝?如果有太子,老皇帝死了太子接班,有他什么事?如果赵光义有继承权,那就安心等着好了,毕竟所有关于烛影斧声的记载里都提到,赵匡胤当时的身体已经很不好了,完全没必要杀皇帝
至于正史的记载,赵光义继位没有任何悬案,太后一句话,波澜不惊顺理成章的就当了,而且也提到赵匡胤说赵光义以后是太平天子。毕竟赵匡胤在位的时候,赵光义是晋王,同时还做开封府尹。开封是当时北宋的首都,而亲王做京城府尹这个事,从五代以来,就是培养接班人常见的安排,而且赵光义当皇帝之后,立刻就封赵廷美为齐王,并且提拔到了开封府尹的位置上,摆明了还是要传位给弟弟的。至于后来赵廷美出事,那就是另一个故事了。而且亲王尹京原本就是五代以来培养接班人的潜规则,赵匡胤想迁都和赵光义的阻挠本质上就是在争夺这个点:一旦迁都,赵光义的开封府尹就不是尹京了,自然也就丢了接班的机会。只是这兄弟俩都没挑明了这个争议点,赵匡胤讲的是洛阳更适合当首都,赵光义讲的是迁都太麻烦,俩人都在顾左右而言他。这就好像,公司要派人出差,大家都知道出差就有机会拿回扣,所以都想去,但是谁都不能说出这个理由,都只好说点别的理由,比如,老张最近孩子要考大学,老王身体不好不能太劳累,小李马上要结婚,小赵的老婆下周预产期,要不还是我去出差吧——谁都明白,谁也不说破,矛盾肯定是有的,但是还没有到桌面上
续长编里还有一段记载,大致是说,赵匡胤临死前召来王普等重臣,留下遗言,除了一些勤政爱民之类的套话以外,明确提到传位给赵光义,赵普提了点反对意见,所以后来赵普被赵光义打压,就是从这结的仇。但是李焘说他不信这个说法,解释了半天,总结下来就是说,这是仇家陷害赵普瞎编的,但是这么瞎编就让赵光义背锅了,所以要澄清
李焘给赵光义和赵普解围的这段话能不能洗白赵光义,其实并不重要,重要的是,从李焘这段话可以看出,他在维护赵光义的形象,要说的是赵光义不会因为这种事记恨赵普。如果李焘的立场是维护赵光义,那么对于续长编里的记载,我们就要从维护赵光义的角度去理解,才是会更接近李焘的本意了
这个事吧,一句话说就是,对于严谨的历史学研究来说,既无研究的价值,也无研究的必要,对于理解宋朝的政治经济文化社会,评价北宋初期的主要人物,都没有任何的帮助,纯粹就是个文学创作的题材,茶余饭后的谈资。但也恰是因此,我作为历史票友,才觉得可以拿出来咀嚼一下,咂摸咂摸滋味
开始收集自行车比赛里弯道摔车的视频
看了个职业车手摔车的集锦,发现右弯摔的出现次数比左弯要多,如果不是制作视频的人刻意收集,那么可以说明右弯比左弯危险。这也符合我自己骑车的体会,右弯过的确实比左弯害怕。其中一个可能原因就是,过弯的时候,内侧手由于半径短,稍微一个小角度的变化都会对路线方向产生较大的影响,所以内侧手的控制就成了主要的影响因素。而大部分人是右撇子,所以左手控车更稳定,因此左弯更好过
这个理由有点难理解,右撇子为什么左手更稳定。其实也不复杂,因为是右撇子,所以骑车当中右手经常要做其他事,擦汗,扶眼镜,喝水,吃东西,如果一件事可以单手完成,右撇子就会用右手完成,所以左手一直在车上,得到的锻炼机会更多
以上是大胆假设的部分,下面要做的就是小心求证:收集各种弯道摔车的比赛画面,进行统计,最好有左撇子的对比
嘿嘿
2021年09月7日
简单的故事
上班路上偶然听春闺梦,其实这个戏看了不知道多少人演的多少遍,演员的票友的节选的从点兵开始全本的都看过,今天突然就想到一个问题:王恢和张氏家应该挺有钱有势的吧,所以王恢结婚三天就去当兵,一年就成了军官,要么是在家受了很好的教育,真有水平,要么就是上面有人,提拔的快,而张氏独居在家,也不知道做什么营生,有没有积蓄,回没回娘家借粮,反正还能养得起一个丫鬟,周围邻居应该也不是很穷,赵克奴他妈,一个八十多岁的空巢老太太,独自在家也能活着,如果不是家有余粮,恐怕就算想像汾河湾武家坡那样房前房后屋左屋右与人浆浆洗洗缝缝连连,也是谁家里都没这个需求。而且当地的治安还挺好,也没有荒山泪里面的苛捐杂税——战乱的年代不应该啊,李信回家,媳妇还说会不会又被征兵带走,这不就是杜甫的石壕吏嘛
这种问题就是没事瞎琢磨,和看戏都没什么关系,老文里曾经提过,中国的传统戏本来就不以剧情取胜,而是以演员技巧,所以剧情的地位就被弱化,甚至简化,给演员让路,让演员可以发挥技巧
过去的人看戏,其实是没太大耐性的,有点像我们看电视,节目一直在演,但是不感兴趣的时候就不看,观众可能在聊天喝茶,等着轮到喜欢看的剧目或者演员,才会又把注意力放在台上。那么演员为了吸引观众,就必须有足够的吸引力。西方戏剧保持吸引力的方式主要是通过剧情,让观众的精神被设计好的情节牵引着。而中国传统戏剧,或者再精确点,戏曲中的传统戏,则恰相反,叙事性是很差的,有的研究者认为完全就是在找意境,有意境的地方就玩命的唱,唱完了赶紧赶路,赶到下一个有意境的地方继续唱。而虽然是为了意境而唱,可是唱词却几乎都是叙事和描写,是通过具体的形象和音乐旋律和节奏来达到抒情的目的,很少有直接抒情,比如,不会出现“我很难过”这样的句子,而是用“心中好似滚油煎”之类的比喻来表达,总之,抒情性又看似不强
其实当然没这么夸张,但是传统戏确实不以剧情取胜,很少有复杂的故事,情绪的宣泄也不直接,中国的传统戏是靠演员的技巧来吸引人的,所以京剧界就有一句俗话:京剧是角的艺术。我们谈话剧,会说老舍的茶馆,谈电影,会说冯小刚的甲方乙方,谈京剧,只会说梅兰芳的霸王别姬。其实茶馆的成功不只是老舍的剧本,也要有足够好的演员把戏在台上立起来,甲方乙方离开葛优也很难说还能不能呈现的这么精彩,霸王别姬更不是只有梅兰芳在演出,但是这种表达方式,也从一个侧面说明,话剧最重的的编剧,电影最重的是导演,而中国传统戏最重的是演员
其实很多脍炙人口的老戏,翻过来想想剧情,都简单的要死,就算把每一幕每一个段落都一个不落的总结起来,也都是几句话就能概括的,人物的形象也很固定,从头到尾不会有什么大的变化。如果记住“一切为了突出演员”这个原则,很多事就很容易理解,比如人物形象固定,“脸谱化”这个词就是从戏曲来的,一个角色的人设从头到尾只有一两个面向,剧情直接,不设悬念,不让观众财迷,没有什么倒插笔之类的叙事技巧。比如叹五更,无论是荒山泪还是清官册,拍成电影,恐怕三两个镜头就交代过去了,要营造起一样的气氛,只能加个插曲——那就还是叹五更的程式,换了个 bgm 改了词的叹五更
中国传统戏不重剧情,故事都很简单,但是这不是说传统戏讲不了复杂的故事,而且传统戏也必须讲复杂的故事,因为过去说书唱戏的素材互相借鉴,评书里的故事可都是以情节复杂抓人的。那么唱戏的怎么办呢?其实也不难,就是拆呗,太大的故事就只讲一部分,讲一部分还嫌复杂,那就拆成小段,叫做折子戏。比如红鬃烈马,要是交给说书先生,能讲一年,到了戏曲里,就算简化,也是十几个折子戏。更有所谓的说不尽的三列国,三国背景的戏在所有剧种里都至少有个百八十出,拆来拆去,像赤壁大战这样线索太多的故事,到了京剧里,是群借华三个折子戏,可以单独唱,也可以一起演
可是拆成折子戏又带来了一个新问题,就是剧情没头没尾。没尾还好办,没头看不懂啊,怎么办呢?太简单了,台上不演的故事,演员可以讲嘛,在一折的开始讲故事,正好就是大段大段的唱和念白,演员炫技的机会不就来了嘛,各种变化丰富的旋律尽管招呼。所以看一出完整的四郎探母,杨家将那点历史几个人反复唱了多少次,天门阵一点没看到,但是不断的提,杨四郎一出场,坐宫的时候就念叨,我们哥们几个死得惨啊,我妈来打天门阵了,接着杨宗保巡逻,也是出来就唱一遍,我们在这打天门阵呢,再后来杨六郎上场也是先唱,我们马上就要破天门阵了,佘太君没说几句话,还要再讲一遍,我这几个孩子都没了啊,最后萧太后还要再提一次,把守天门阵——什么意思?意思就是,坐宫巡营见弟见娘回令,不管单独看哪一折,都能通过剧中人物的独白和对话大概了解故事的整个背景,不会带着“宋朝人怎么在番邦当驸马”“为什么母子俩要打仗”这种问题往下看
还有伍子胥的故事,其实剧情也很复杂,一波三折,惊心动魄,从马昭仪开始一直到刺王僚,当然是很完整的故事,但是首先,昭关有文武,而且从头看到底,反正我没试过,我估摸着,怎么着三五个小时是看不完的,现在能看到的还是拆成折子戏,战樊城长亭会文昭关鱼肠剑刺王僚,那么前面的剧情就要反复的讲,从战樊城开始,见一个人说一遍,甚至出场报完名就要念叨,我要报仇我要报仇,比祥林嫂还祥林嫂,其实也是怕观众不知道前面的剧情,所以安排大段的唱,来构建叙事背景。还有老师给我讲过,“一事无成两鬓斑”一段,只有单演鱼肠剑这一折的时候才唱,如果是全本的伍子胥,就不必唱,因为和前面完全重复,太啰嗦了
京剧在处理复杂剧情的时候所采用的这种拆成折子戏的方式,不但是应对当时演出市场的有效手段,而且也符合以演员为核心的原则,通过大段的叙事性的演唱,不但重构起叙事大背景,还让演员有机会展示个人能力,但是在后来却越来越少采用。最近一百年,可以说京剧经历了从高峰到低谷再挣扎往上爬的过程,单纯的翻演老戏当然不是万能的良药,但是新编戏的先天不足,也恰体现在这种地方。其实这个锅未必要由现代的京剧人来背,恐怕病根从一百年前就种下了
上世纪二三十年代以来,京剧集中出现了一大批伟大的演员,四大名旦、前后四大须生以及以周信芳为代表的海派明星更是其中最杰出的代表。而且这些名家几乎都有自编的大戏,用的人多,技巧繁难,直到今天都代表着京剧这门艺术的天花板。但是这些戏很多都是要演出两个小时以上的大戏,而且很难拆,拆不开,因为故事中间几乎不回顾前面的剧情,所以一旦拆着当成折子戏演,就只能演第一折,后面的都要改,加个帽子穿个鞋之类的
当然也不是绝对的,也都只是相对而已。比如四进士,虽是老戏,却相对比较难拆,而比如锁麟囊,虽然是程砚秋新编,就相对比较好拆,大概除了绿马完全不会引起共鸣以外,其他的都好理解——绿马这个细节放在电影里,就要闪回一下了。所以有人说锁麟囊剧本好,活保人,无论谁演,只要不出错,想不成功都难
至于现在的新编戏,就完全不考虑这种事了,很少有设计这种可以让剧情告一段落的小结尾,更没有剧中总括前情的唱念,一个故事讲到底,剧情也很是紧凑复杂,换句话说也就是,要么全看,要么别看,看半截完全看不懂,就很尴尬。还有人说编一出戏,起码要有能让观众记住并且流传的唱段,这在新编戏里也几乎看不到
其实那么着急讲一个宏大冗长的故事干嘛呢?演一个简单点的故事,或者用小段拼成大戏,从而把舞台留给演员,根据演员的技能设计剧情,让故事和人物为演员的技巧服务,再来几个能让人记住的唱段,一个作品自然就立住了,一百年前的那些名家自编戏都是这个原则,结合自身技巧编戏——当然了,这样编戏也有一个很大的风险就是,人没了戏也没了,因为其他人很可能不具备这样的技能水平,五侯宴肯定要失传,因为没有第二个李慧芳
可是现在编的这些戏,人还在,戏就没了啊
2021年09月1日
内卷无处不在
小学的时候读过一部中篇科教童话,主人公是个中学生,故事大概是说,他来到了一个神奇的国家,这个国家的数学教育超前发达,四则混合运算都是在学龄前学会的,小学就学初等代数,中学讲微积分,基本就是我们现在小学数学放在学龄前,小学数学是我们的中学数学,中学数学是我们的大学数学。读完我就幻想,如果我在这个童话里,我在中学就学完了大学数学,那我不就是神童了。可是又一想,不对,童话里的学生都是12岁就学完了中学数学,所以我应该回到现实里的学校,这样我的数学成绩才有优势,用现在的话说,降维打击
小学生要学初中数学,当然要付出很大的精力,这样的学生在小学生里毫无疑问是天才,但是如果所有小学生都这么学,那就没什么突出的了,但是又不能不学,因为当同龄人都在学三角函数的时候,如果谁还在纠结四则混合运算,那就是落后了。用现在职场上流行的话说,这就形成了内卷,就是所有人为了获得优势而额外的付出,最后却发现并没有什么优势,但是又不能不付出,因为所有人都在多做事,谁不做谁就有劣势
大学时候备考托福,当时的托福分听力、作文、阅读等,另外还有一项需要单独报名交费的口语考试。我到现在都印象很深刻的记得当时俞敏洪校长说的,建议大家不要考口语。理由也很简单,如果口语成绩好,确实可以提高被录取的概率,但是毕竟作用有限,对于打算去美国读研究生的同学来说,这个精力还不如花在专业上,做点科研更直接。而且,一旦中国有10%的学生去考口语,势必会迫使另90%的学生也不得不考,不考就要吃亏,但是如果大家都考,也就谁都没有优势。最后俞敏洪校长很无奈的说,中国学生已经很累了,要应付太多的考试了,能大家一起不考,就别考了——现在才明白,俞敏洪校长这就是在预防内卷
上海交通大学的江晓原教授讲过一个关于农药的例子,大致是说,人类为了减少蛇虫鼠蚁对农作物的危害,发明了农药,但是农业也引起了昆虫和野生动物的变异和进化,筛选掉老弱病残的个体,留下的都是健壮优势的基因,经过繁殖,就产生了所谓的抗药性,于是人类就不得不继续研究新的农药。但是无论农药怎样更新换代,农作物都要因为病虫害损失至少5%。看起来并没有损失很多对吧?可是在不使用农药的时代,除非爆发大规模虫灾,一般年份里,病虫害造成的损失也不过就是10%左右,如果真的是灾难级的害虫大爆发,农药也基本上挽回不了损失,而人类却不得不为了农药生产和更新换代而做科研建厂房消耗能源污染环境——换句话说,农药挽回的那点农作物产量,根本抵不过生产农药的成本。江教授说这个例子原本是要说,有些所谓的进步是条不归路,当我们发现走错了,是没法回头的,因为这时候没有人敢不用农药,谁不用农药,谁的地里就会变成害虫的乐园,临近的害虫都会在这里聚餐。说白了这还是一种内卷,每个人都被裹挟着,做额外的事,却并没有获得额外的收益,所有额外多做的事,只是没有出现额外的损失而已
现在订外卖应该是城市居民很常见的操作吧,在选择配送服务的时候,通常都有一个选项,可以支付一点点零头的小钱,为配送服务买个保险,如果订餐没有在指定时间内送达,会收到一点现金的赔偿。这种保险在每个平台上都有不同的名字,但功能和规则都差不多。平台当然不会白赔这笔钱,最终还是羊毛出在羊身上,比如配送员超时可能扣钱,商家备餐慢会有罚款之类。因此对于买了配送保险的外卖订单,一般商家和配送员都会加急优先处理,确保按时送到。所以很多人订餐都喜欢随手买这个配送保险,反正也不贵,让自己在订单排队中有点优势。但是这个优势也是相对的,如果人人都买了配送保险,也就等于让所有人都回到了同一起跑线,谁都没有优势,该慢还是慢,而且这时候,谁也不敢不买配送保险了,谁不买,谁订的外卖就一定会是最后一个送到的——换句话说,大家一起买保险,谁也没有因此获得优势,只是为了自己不处于劣势,但是外卖平台就积少成多,三毛五分的赚了一大笔,而且毫无成本。还有的外卖商家会赠送配送保险,有时候这也成了很多人选择商家的理由之一,既想要配送保险,又不想花那几毛钱,那么就选一家赠送配送保险的商家去消费。当然了,商家赠送配送保险,其实也就是替消费者把买配送保险的那几毛钱交给了外卖平台,渐渐的,赠送配送保险也成了商家的标配,结果就是,商家替消费者花了买配送保险的钱,却并不能让商家在消费者这里获得优势,但是那些不赠送配送保险的商家,肯定是有劣势了——还是内卷
更有趣的是,很多视频平台都有一种差异化服务,就是会员免广告,花钱买个会员资格,就可以在平台上看视影片频的时候跳过广告。其实我一直都很不理解这样的思路,那些宁可看广告也不花钱充会员的人,看了广告肯定也不会去买广告里的东西吧。但是平台的小算盘打的很好,广告商要的只是曝光率,所以播放影片的时候,要么挣观众的会员费,要么挣广告费。但是这个模式有个问题就是,当会员越来越多,大家都不看广告了,广告商就没了曝光率,于是不再继续投放广告,平台就赚不到广告费。于是会员终于也要开始看广告了。这时候所有影片只有会员可以看,不是会员就什么都看不到,或者只能看看预告片,试看三分钟,平台又发明了会员分级,什么青铜白银黄金钻石vip,总之别以为充值当会员就可以不看广告,只是级别高的会员看的广告少——想想看,本来大家都不是会员的时候,只要看完广告就能看的影片,现在却要至少充个最低级的会员才可以看,虽然多了个会员的名义,但是观众得到的服务并没有变,可是这个会员费还不能不充,不充就什么都看不到。充值并没有得到比以前更多的优势,只是不要处于劣势而已,还是内卷
这年代,要赚钱,制造内卷是必备的技能,职场内卷相信大家体会的都足够深刻了,我自不必多说。当然了,内卷也不是总是有害的,比如最开始说的学习上的内卷,如果所有人都肯加倍的努力,让这个群体的整体水平可以提高,那当然是件好事,每个人身在其中,虽然很累,却也不好意思抱怨
近期多个省市都有各种中小学减负的措施,例如减少考试,减少甚至取消作业,查封课外辅导班,让中小学生的学习压力不要太大,姑且算是消除学生的内卷吧。可是仔细想想,以前学生入学都是靠学区房,名校周边学区房贵的吓人,远远超出周边社区的均价好几倍。后来有了辅导班,我还以为家长有救了,因为毕竟,再好的辅导班,也总比学区房便宜吧,孩子不能进重点中小学,还可以找个好的补习班,也能多学点东西。现在可倒好,减负双管齐下,既强化了学校和老师在教学当中的角色,又严打各种课外辅导班,学生还是要回到学校去,看来这学区房还是不得不买——也对,否则万一房价降了,这个责任谁付得起呢
2021年08月9日
形式从来大于内容
在我这个工科生看来,这次奥运会有一个意外的小收获就是,c 语言被赋予了新的含义。其实可能绝大多数人都知道,陈清晨喊出 WC 的时候,未必就是向对手口头的攻击辱骂,更多的是发泄自己的情绪,因为毕竟,用中文喊出来的 WC,韩国人未必能听得懂。当然了,也有人说这是对韩国人的回应,毕竟韩国人每次发球都要嚎叫一声,似乎是要在气势上压倒陈清晨。这个做法也引起了有些观众的不满,毕竟现在的观众的涵养越来越不好,当年邓亚萍打乒乓球也是这样喜欢大喊大叫,那时候就没观众说这样会影响对手比赛之类的片汤话。这种大喊大叫到底能给对手带来什么影响,其实也未必,语言需要经过学习才能具备的技能,所以只对特定人群有效,不具备无差别攻击的杀伤力
有人说单是一句 WC,用不同的语气说出来,可以表达愤怒、惊讶、感叹等多种情绪,这其实也不奇怪,毕竟现代人的词汇量都很少,用不同的词汇表达不同的情感,对大部分人来说,难度有点高,所以一个词就必须身兼数职,什么情绪都用一样的词去表达。而且很多语言都有这样的现象,就是在口语中,语言表达的含义并不完全取决于词汇本身,更重要的是语气,甚至如果语气和词汇的本意不一致时,我们的理解是更倾向于语气,这种现象俗称说反话。我还看过一个视频,有人和自己的狗说话,用温和的口气叫它傻狗坏狗笨狗,狗表现得很快乐,而用严厉的口气夸赞狗的时候,狗吓的蜷缩,似乎也说明宠物其实也是通过语气来判断主人的态度
如果把这个现象说的更抽象一点,大概可以概括为,形式比内容更能决定表达的效果,受众在接收信息的时候,也往往受形式的影响更大
如果这个规律能成立,那么当我们需要准确的表达,期望更好的表达效果时,就需要能尽量的形式和内容一致,比如写作,每种场合下用到的文章,就需要符合这个场合的形式。在曹丕的典论论文里就提到了“奏议宜雅,书论宜理,铭诔尚实,诗赋欲丽”的原则,这就是所谓的“文体有意义”,每种文体都有合适写的内容
扩展一点就是,比如写字,岳飞的还我河山写的荡气回肠,不但这四个字是一代名将心底的呐喊,其运笔也力度鲜明。更著名的是颜真卿的祭侄稿法帖,号称天下第二行书,语言越来越激烈,而线条也越来快,两者节奏一致,说明颜真卿当时并无暇思考,语言是情感的直接流露,而书写也是随心所欲。如果用娟秀的字体来写,或者赵孟頫那种软趴趴的笔法写出来,就会让人看着看着不断出戏,成了形式内容两道汤
再推广一点就是,比如各种歌曲戏曲曲艺等演唱艺术,不同的旋律常用于表达不同的情绪。戏曲是最典型的,通常被叫做程式化,比如京剧里,表达苦闷忧愁就唱慢板,表达愤怒紧张就唱快板,从来不会用反。歌曲也是一样,情歌总是舒缓的多,失恋的歌就会出现激烈的旋律,因为这时候的情绪就是大起大落的。如果词曲不搭配,这歌就会听起来很奇怪。这里我就不纠结倒字的问题了,让现在的音乐人注意不要倒字,有点强人所难。就直说旋律和歌词吧,比如甜蜜蜜的旋律,填进去华山论剑的词,或者反之,只用前三句,因为很凑巧,前三句的字数完全一样——有兴趣的自己尝尝吧,这介乎柔情和豪杰之间的味道,相当酸爽
旋律和唱词之间,唱词是内容,旋律是形式,旋律承载着唱词,所以两者必须一致才能相辅相成。比如宋词,原本也是可以演唱的,虽然我们现在看不到宋词的曲谱,不知道怎么唱,但是有些词牌保留了来历,可以推断大概的旋律风格,是快歌还是慢歌,是柔情还是激情。如果没有这方面的记载,就还可以通过词牌的形态,比如节奏是否跳跃多变,或者典型的符合词牌的作品的内容,来做大致的判断——但是这也不是绝对的,因为毕竟,一个音符不改,只是节奏变化,加一些打击乐,一个曲子的味道可能就全变了。而且用这种从词的文本来反推曲风的时候,千万要注意选对作品,因为毕竟,有像我的偶像苏东坡这样的怪人,不通音律却要填词,于是干脆不顾旋律,只看格律,结果是虽然自成一派,但是就如李清照所说,毕竟不是词之本色,也因此不能和音乐很好的配合,演唱出来可能效果要打折扣。然而歪打正着的是,随着词牌曲谱的失传,那些和旋律相得益彰彼此成全的词作品,单看文本就减色不少,而东坡词却获得了更顽强的生命力
当旋律和唱词搭配合适后,要想形成完整的艺术供人欣赏,演员的演唱也就成了一次再创造。如果把词曲放在一起看成内容,那么演员的演唱就是形式,是承载内容的,所以演唱也要和词曲有一致的风格,才是完整的作品。我喜欢说京剧的例子,一个演员可能会的戏非常多,但是有的可能只是会但不演,真正达到顶尖水平成为代表作的,也许只有极少数。这其中原因很多,比如其他人这出戏更拿手,自己没别人唱的好,所以不唱,又或者其他某演员擅长的戏较少,恰好某一出戏在他的擅长剧目里举足轻重,所以有些名家干脆让过这出戏不唱,给同行留机会。再或者,可能就是某个戏不适合自己的演出,可能是因为扮相,可能是因为自己的功夫不擅长,再就是可能剧情和演唱不适合自己的嗓音。比如程砚秋就很少唱坐宫,是不会唱吗?我不信,以他的根基和阅历,这么大路的戏他肯定会,只是基于他的嗓音条件,公主的雍容华贵不适合他去表达,而且程派的京白也确实不讨巧,因此唱不赢梅兰芳等名家,干脆不唱。而同样的,杨宝森一辈子好戏那么多,为什么代表作是杨失伍?一部分原因也是这些戏的剧情和大段的唱功更适合他的嗓音
现在还有一种形式叫 MV,就是歌曲配上画面,这就又是一层的形式和内容的关系,如果把演唱的歌曲当成是内容,那么画面就是形式,画面承载着歌曲的演唱。这就又需要两者的配合,比如唱的是节奏明快的曲子,画面就不要太多的长镜头,反之亦然,对于柔美抒情的慢歌,就要多用长镜头,拍摄的内容也最好是玫瑰清泉,而不是雷霆闪电
话说到此,想起这次奥运会期间出了一段 MV 叫准备好,可谓典型的,词曲唱画面四分五裂的典范,各是各的,谁也不挨着谁
词呢,用现在的网络语言来说就是,有点尬,但是起码堆砌的都还是很积极向上的词汇,营造出的是有点硬派的文风
曲子就是两码事了,这么说吧,奥运会毕竟是运动会,还是要唱劲歌更贴谱,得有点气场,可是这个曲子,怎么说呢,大概是时代的特色吧,现在的运动歌曲,比二十年前的情歌还柔媚
至于唱,一开头捏着嗓子唱的那几句,有这个嗓子,学小翠花没准能红。也不能怪创作团队,因为毕竟,现在这个岁数的演艺界,除了女演员就是娘炮,三十岁以下的演艺圈里真找不出来一个能唱运动歌曲的。看来时代的审美真的是媚弱的,就像书法从草书到行书到楷书,线条越来越慢,灵气越来越少,唱戏从程长庚到谭鑫培到余叔岩再到杨宝森,嗓子越来越差,声音越来越软,调门越来越低,力量越来越弱
而画面拍的,怎么说呢,呵呵,换个导演吧,至少要先培养起一种竞技体育项目作为兴趣爱好,然后再来拍这种 MV
运动歌曲可以很抒情,比如 2002 从头再来,也可以很激越,比如风雨彩虹铿锵玫瑰,一定要听田震的版本,其他版本都是至少我没见过更好的。现在的音乐人仿佛都不敢或者不会用打击乐,歌手也不知道该怎么和打击乐配合,和鼓点节奏毫无呼应,咬字的时候嘴里舍不得使劲,不妨多向田震学学
我是看男篮的时候,在中场休息期间被强行安利了准备好,当时眼前就浮现出孙子操练宫女的画面,而且还是斩二美之前,强行装出运动感的词和软绵绵的曲再加上娇滴滴的唱,看到画面的时候彻底破防,实在忍无可忍,随手翻翻运动歌单,找出来一首天骄洗洗耳朵。说实话二十多年前第一次听跟这个歌的时候,还觉得杨洋金彪挺娘炮的,白瞎了阎肃和孙川两位老先生这么好的词曲——但是和现在的这些当红小生比起来,这俩小伙舞台上的表演就算是很爷们了
一百多年前程长庚说谭鑫培的嗓子太软,但也预言二十年后当是老谭的天下,后来历史的发展印证了程大老板的远见卓识。也许程大老板只是从艺术发展规律上去推测,随着时代的发展,媚弱的流行,这种“子声甚甘”一定会成为时代的宠儿。但是也有人说,只有在那种国破家亡的时代,才会出现满城争唱叫天儿的场景,这种靡靡之音只能盛行于衰世末世。宋朝初年的诗坛急于寻找学习的典范,他们尝试了学习李商隐,但是很快就放弃了,文学史上一般也认为,李商隐的那种飘忽迷离的风格本来就是亡国的前兆,宋朝刚刚建国,一定无法接受这种衰世之音。但是后来听过了当代的京剧,见惯了柳永纳兰,竟然觉得就连余杨言奚的嗓音都是坚韧有力,就连辛弃疾龚自珍都算是豪迈得很了
时代的审美自有其规律,身在其中,个人的好恶实在是最不重要的事了
2021年04月29日
Follow Heart or Brain
小时候听相声,大致剧情是和医生一起吃饭,结果饭桌上的东西都被医生用医学术语解释了一遍,最后什么都吃不下,满满都是哏。那时候就觉得,原来在生活里用医学知识会这么添乱。后来上学听老师讲。很多大科学家都成了哲学家,大哲学家都走向了宗教和神学,投身于神秘主义,生活处处碰壁,因为他们思考的问题和一般人不一样,也许是过于深邃,所以不被理解
渐渐见过一些人,经历一些事,才觉得,这不只是专业知识不能用于生活,不只是不能靠哲学指导日常,而是因为,理性和感性不能弄错了分工。比如爱情是最感性的事,所以诸如“为什么爱我”的问题,就是用理性来解决感性问题,基本上,怎么回答都是错的。我之前老文曾说,道德和法律要分清,做事依照道德就不必管是不是违法,遵守法律也别考虑有没有缺德,因为这本来就是不相干的两件事。道德是感性的东西,没有定量的尺度,每个人都会有自己的好恶,而法律就很理性,有固定的标准,是死板的,冷冰冰的
生活也许并不需要那么多的理性,实际上我们几乎都是靠惯性过日子,早上起床,晚上加班,人类的生活主要靠的是经验,只不过有些经验是自己的,有些经验是别人的。熟悉的路自己走,陌生的地方开导航,我没走过的路,别人走过,导航就是别人走这条路的经验;一日三餐,其实都是别人的经验告诉我们这些东西可以吃,从来不需要我们去想。而画地图的人,搭配营养的人,都是在动脑子,这种人只需要极少数
所以如果分不清专业和生活,分不清理性和感性,生活就无法继续。做学问做研究需要保持理性,不能有个人的好恶,但是生活中必须有自己的取向和性格,否则这人就太无聊了。也是因此,工科人的生活会比理科人更痛苦,理工人的生活会比文史人更郁闷,而哲学家的生活恐怕就是当之无愧的地狱模式了,因为他们考虑的都是最本质的问题,而且由于他们强大的思辨力,还会觉得处处都充满了错误,不符合他们的理想,但是他们又无法和整个时代对抗,不能扭转这一切,于是要么脱身以逃不能容于远近,要么剪发杜门佯狂不知所之,这也是颇“愚人多寿智者早夭”的事
2021年03月15日
沉默的大多数
前不久的一个家乡的新闻获得好评无数,大致是说,有二胎的孕妇要赶公交车,大孩子帮妈妈赶上车,然后请司机等一下,还送给司机橙子表示感谢。这事吧,小朋友当然做的没问题,很礼貌,也懂得照顾怀孕的妈妈,司机也很热心的等待行动不便的孕妇,都很好,但是总有点不太完美的地方
我以前的公司有班车,每条线路都有固定的站点,每个站点都有固定的发车时间。我坐的那条线路的师傅会在第一站很准时的发车,遇到堵车可能会推后,如果班车早于发车点到站就会等待,有时候也会刻意晚一点,争取让同事们都能赶上车。但是仍然也经常有同事来晚,有时候也会留下司机师傅的电话,如果差一点时间,会给师傅打电话,请求多等一小会。大部分时候只要差的不太多,师傅都会等。同事们都还是很有礼貌的,这时候上车当然会向师傅道谢,而我们这位班车师傅总是会说:“你要向车上同事道歉,你耽误的是大家的时间。”
公交车其实也是一样的道理,司机多停一会车等孕妇,当然是值得表彰的,但是为此付出时间的还有全车的乘客,甚至后面车站正在等车的人们,在表彰司机的同时,这些人的善意不能被忽略
这大概是人们的通病吧,就是只看到掌权的人,忘记了在背后默默奉献的人,只看到一将功成,想不起万骨枯,一说起霍去病就是特种部队纵横大漠,却不知道霍去病的补给后勤是当时所有部队里最好的,其实这也不奇怪,汉武帝的雄才大略就在表面上,而汉武帝在位的时候汉朝人口损失了一大半却深埋在水下
但是这个小男孩和司机仍然是值得赞美的,新闻如下:
https://www.sohu.com/a/453477958_319303
2021年03月5日
愚公移山
太行山和王屋山是两座大山,占地方圆七百里,高有万仞,上古时候原本在冀州和河阳城之间
山北住了个愚公,八十多快九十岁了。这天晚上 ,愚公把全家人召集到一起,挤了满满的一屋子,大家七嘴八舌的交头接耳议论纷纷,不知道有什么事
“行了,既然人都齐了,那我先说几句。”愚公看看孙男弟女的一大屋子人,猛抽一口烟,然后磕了磕烟袋锅子说,“今天把你们找来,是有个事让你们给出个主意。”
全家人都安静了下来,静静地听着愚公说话
“咱们家一直住在这山脚下这么多年,出门要么翻山越岭,要么绕路,太麻烦了,所以我打算把这个山挖平,修出一条路,穿过豫州,一直修到汉水去,以后街坊邻居也能方便点,咱们家也算是干了一件好事。你们看这事要怎么办。”
愚公说完,又叼起了烟袋抽了起来。但这句话就好像水池里扔了一块石头,立刻激起了骚动。有的人点点头说二大爷说的对,这山确实太影响咱们出门了,也有人小声嘀咕着,二叔这是想什么呢,嫌麻烦搬家嘛,何必要搬山,还有人只是大瞪着眼睛说不出话来,也有人摇头不以为然
愚公听他们乱了一会,又把烟袋在桌上敲了几下,说:“有什么想法就说出来吧,你们这么议论我也听不见。”
毕竟愚公是家族里地位辈分资历最老的老祖宗,所以谁都不敢说什么,一下子屋里安静了下来。这时候只有愚公的老伴愚婆打破了沉默,她说:“老头子,就你这一大把的年纪,一辈子不是就这么过来了吗?你怎么突然就没事找事?你连一座小土包都挖不掉吧,这么大的山,你能挖得掉吗?再说你挖这么大的山,挖掉的土打算怎么处理?这么多土,不管堆在哪,也都会堆成另一座山啊,肯定又要堵了别人家的路。你觉得出门不方便,你就挖山,结果因为你挖山,让别人出门不方便了,这不好吧?实在不行咱们搬家吧。”
墙角坐着的小憨说:“奶奶,这个不用担心,我们把土堆到渤海边上去。”
愚婆还想说什么,愚公却打断了她,说:“我是让你们帮我想想这事怎么办的,不是让你们提反对意见的。我打算明天就开始动手。你们还有什么要说的吗?如果没有,大笨二呆三傻,你们三个最有劲,明天就跟着我一起开始动手。散会。”
第二天愚公和大笨二呆三傻果然就开始了,拿铲子挖山,拿筐抬土,一趟一趟的往渤海边运土
愚公家隔壁住了个寡妇,家里有个七八岁的孩子,看着愚公带人在这干活就很好奇。他认识大笨,于是凑上去问:“笨大爷,你们这是干什么呢?”
大笨正好喘口气,看看小孩,说:“我们这挖山呢,你看,爷爷带着我们一起挖呢。”
“挖山好玩吗?”小孩舔着手里的棒棒糖问
“好玩呀,把山挖平了,以后我们出门就方便了,可以一条路一直走到豫州去。豫州你去过吗?可好玩的地方了,遍地黄金,花花世界,在那想要什么就有什么,想吃什么好吃的都能吃到。”大笨嘿嘿笑着说
正好这时候二呆招呼大笨,大笨转身走了。小孩看着看着,小声嘀咕着说:“还有这么好的事,那我要一起做。”
二呆问大笨:“你刚才跟那孩子说什么呢,他要是也来挖山怎么办?天天干活就够累了,还得看孩子?”
大笨说:“你想想,如果这孩子来干活,他妈能看着吗?肯定会给他送饭啊,那能只给他自己送饭吗?肯定有咱们的对吧。他妈是个寡妇你知道吧,你肯定不知道,你也肯定没看见过他妈,那长的叫一个漂亮……”
晚上小孩回家就跟寡妇说:“妈呀,我看隔壁笨大爷天天在那挖山,我能去吗?”
寡妇看看孩子,心里犯起了嘀咕,于是说:“你可不能去,笨大爷那是做正经事,你不要去捣乱。”
“我不是去捣乱。”小孩不服气的说,“我要去帮忙,笨大爷说了,等挖掉了这座山,以后我们就可以去豫州了,我去做好事呢。”
寡妇摇摇头,说:“他们要挖掉这两座山?只是为了去豫州?那挖个隧道就行了,何必要挖掉整个山呢?”
小孩才不管这一套,他对去豫州这件事深信不疑,因此闹着说:“妈呀,你就让我去吧,要不然我就离家出走。”
寡妇肯定是不想让孩子去的,虽然这孩子整天在家也没个事干,七八岁的年纪正是精力旺盛的时候,天天招猫逗狗的惹祸,找点体力活消耗一下他过于旺盛的精力挺好的,可是让他去呢,听说是往渤海边运土,这么点的孩子,路上来回最少也得一年,冻着饿了怎么办,要不要带一年四季的衣服,会不会遇到了个人贩子什么的就回不来了,眼看就快要上学了……实在是纠结
但是呢,小孩一个劲的要求,寡妇想想,似乎愚公一家人也不是坏人,去干活图个家里清净,于是就答应了
小孩第一天干活就是跟着大笨一起运土。路上一边走一边问大笨:“笨大爷,咱们真要一直走到渤海吗?那么远,要走到什么时候啊。”
大笨嘿嘿一笑,看看二呆三傻都没跟着,于是说:“你想去渤海吗?”
小孩摇摇头,大笨弯下腰小声说:“那我们一会路上就找个地方一扔,然后随便在哪玩两天再回去,不就行了?反正只要你不说我不说,就没人知道。”
小孩拍手笑着说:“笨大爷你带我去玩,我就不说出去。”
河曲有个智叟,是个厚道的热心肠,有一天找到正在挖土的愚公,笑着说:“老哥呀,你这是老糊涂了啊,怎么能干这种事,你这一大把的年纪,挖掉的这点土够干什么的,你真以为能挖平这座山吗?”
愚公喘了口气,看看智叟说:“你太死脑筋了,还不如寡妇小孩呢,我年纪大,但是我还有孩子们呢,还有孙子呢,还有重孙子呢,山又不会长高,早晚也能挖平了。”
智叟叹了口气,点点头说:“行,那你继续。”说完转身走了,一边走一边嘀咕着,“这么着也好,你们家人这么多,是该给你们找点事,要不然都闲着没事,就成了社会的不安定因素,今天全家联合起来找别人打群架,明天就又闹分家,这点没处发泄的精力早晚是个事。”
就这么相安无事一段时间之后,二呆和三傻觉得不太对了,二呆在路上突然问三傻:“老三,你发现没有,我们怎么路上很少遇到大笨?”
三傻想了想,说:“还真是,而且大笨的日子好像也确实过的更加滋润,看起来没有我们俩这么憔悴,怎么回事呢?”
“我也不知道,要不然我们跟踪他一下?”二呆犹豫着说
三傻开始留意大笨的路线行踪,很快就发现了破绽,于是他告诉二呆:“二哥啊,我知道了,大笨和那孩子根本不去渤海,他们在半路上就把土扔了,然后玩几天再回家。”
二呆一听愣住了,忙问:“那老头子知道吗?”
三傻皱着眉说:“他们怎么可能让老头知道嘛,当然是偷偷的。我们要不然也这样吧?”
二呆不放心,忐忑的问:“但是那些扔的土不会堵着别人家的路污染环境吗?”
三傻说:“当然会啊,但是关我们什么事?我们早点回去,还可以说是我们提高了效率,能多跑几趟,早点把山挖完了算了。”
愚公他们在这挖山,山神早就坐不住了,眼看着他们这么搞,心里暗想,我能当这个山神,还不就是因为有这么一座山,如果山都没了,那我这个山神岂不是成了光杆山神?那我的待遇就危险了,没准这个职位都要裁撤,现在我什么事都不用干白拿工资,虽然工资不高吧,但是福利好啊,而且还有民间的供奉,还有这满山的野味,没事和河神还能社交一下,水果换水产,这要是以后山没了,我工作就没了,级别也没了,河神肯定不会再和我往来了,我也不能再驱遣那些蛇虫鼠蚁兔子山鸡……哎呀越想越可怕,不行,这事不能由着他们
但是这个山神也确实是个草包山神,没什么法力,根本治不了愚公,所以只好求助于天帝。毕竟,他能在这当山神,就是仗着天帝是他妹夫
天帝最近觉得很奇怪,总是不断有河神土地来告状,说有人乱扔土石,扔在各地,倒进河里,这让天帝觉得很奇怪,于是派出千里眼顺风耳去调查
千里眼和顺风耳是天庭著名的包打听,消息灵通,很快就回来报告说:“启奏天帝,下界有个愚公,带着三个大人一个小孩在挖太行山和王屋山,挖下来的土石就在周围附近的到处乱扔。”
天帝本不想管,但是恰在这个时候,山神来找妹夫告状了
天帝可真是不怎么把这个大舅哥放在眼里,什么本事都没有,干啥啥不成,吃啥啥没够,所以压根没怎么搭理。但是这次他来的时候很凑巧,这下天帝就明白了愚公想干什么。天帝于是和太白金星商量
太白金星说:“山川排布本有定制,都是按照规矩放在合适的地方,这些无知的凡夫俗子却要由着自己的性子乱来,这事必须管管,否则天庭的面子就没了。”
天帝点点头,说:“话是不错,可是以我们天庭的诸位大神,要是和几个老头小孩一般见识,那也太丢人了吧?穿新鞋何必踩狗屎。”
太白金星想了想,说:“那我看这样吧,您安排夸娥氏兄弟俩,把这山给换个地方,也让他们知道,山川河岳只有天帝您才能摆布,山在哪都要依照您的意志,不是他们能左右的。”
天帝捋着胡子说:“这倒是可以考虑,但是放在哪呢?”说着招呼太白金星走到了九州全图前
太白金星看看九州全图,指着朔东和雍南说:“就这两个地方吧,把他们分开放。天帝呀,不是老臣我打小报告,您那个大舅哥吧,也太不像话了,仗着山高地大物产丰富,整天就是带着山里坟头的那几个小狐狸精去找河神玩,还让狐狸精和鲤鱼精选美,太不像话了。闲着没事,早晚要出事的。这次咱们把这山给分开,设立两个山神,让他的地盘权力物产都减少了,给他点压力,也算是一点警告。您觉得呢?”
天帝眯着眼睛点了点头,就算是同意了
太白金星从天宫回来就赶紧去找自己的侄子说:“你不是求我给你安排个工作吗?这次机会很难得,好不容易多了一个山神的编制,我已经给你争取到了,你赶紧准备上任去吧。不用客气,没事想着香火钱和你大爷我平分就行了。”
后来的事,就简单多了,夸娥氏兄弟俩都是力大无比的天神,要搬两座山,那是太轻松的事。两个头脑简单四肢发达的壮汉甚至都没挑肥拣瘦的看谁搬多谁走的远,就直接把活给干了
山没了,从冀州到汉水的路再也没有阻碍
但是似乎并没有很多人为此而高兴。小孩要回家准备上学了,寡妇又要每天看着这个不省心的孩子了,大笨二呆三傻也不能公费旅游出去玩了,就连小憨也找到愚公抱怨说:“好端端的一个项目,挖出来的土能卖给渤海边上的那个工地,修好了路还能收费,去渤海的沿途以后还可以开发成旅游线路赚钱,现在居然就没了,天帝真是多管闲事。”
愚公也说:“是啊,要是不说为了公共交通,全家人还有邻居的寡妇小孩能这么主动白来干活吗?再找这么一个有油水的项目可不容易啊。”
小憨点点头,心里却也在想,小孩回来了,以后再找寡妇约会,太不方便了
2021年02月10日
要求那么多,怪不得没朋友
年前最后一天上班,必然是最没事业心的一天,和别人随便打屁聊天,一不小心就说起了文明戏,俗称话剧。这位朋友说即便今年受到客观因素的影响,话剧市场也并不比前几年更差,因为这么多年以来话剧市场一直都很不景气,要么赔钱做,要么拿补贴,能挣钱的就是那么有数的几个剧团而已,比不得影视,怎么都是盈利的。这就让我想起了传统戏曲的市场,基本上也是这样。当然也会出现一票难求的场面,不外乎是某个特别有粉丝号召力的演员,多年不演出,突然露一手,内部消化掉一大批票源,能拿出来卖的本来就没几张,饥饿营销,所以才难求,就像当年的孟小冬,名气大,演出少,偶然出来唱一出,再赶上是堂会,那当然是打破头的要挤进去看看
其实这事吧,也不奇怪,这位朋友觉得话剧市场如此,主要原因无外乎:从业者鱼龙混杂,整体水平普遍偏低,作品粗制滥造者居多;主管部门审查严格,创作限制太多,难写好作品,文学的水平直接决定了戏剧的水平;社会娱乐形式太多,人们的精力都被分散了,最终的矛盾都指向了影视
这些理由当然都没错,不但可以解释话剧市场,也可以拿去解释传统戏曲的市场,甚至可以解释所有文化市场,那么似乎,这个解释也就没什么用了。换句话说,如果所有的娱乐形式都说自己从业者水平低,受限制太多,的观众被其他娱乐形式分散了,那就等于说,我们除了影视以外的所有的娱乐形式都是低水平,衙门打压其他所有的文化市场而独独对影视网开一面,观众只知道看影视不接收其他的娱乐形式——这就几乎是在别人身上给自己的失败找原因了,而且影视行业的从业者似乎也并没有比文明戏从业者的素质高到哪去,衙门的检查也未必更轻松,观众也是要靠自己去抢,最终为什么影视却能胜出呢
我倒是觉得,文明戏和戏曲这种舞台剧的整体不景气,一大原因就是观众用今天的观赏习惯,是无法营造出昔日的观赏结果的
郭德纲在演出的时候提过,说相声有时候就是和观众聊天,观众和舞台可以互动,可以接下茬,还开玩笑的说,看芭蕾舞可不要这样,会被保安打死——这就是旧的观赏习惯和现代观赏习惯的区别
过去我们怎么看戏?这要分场合。比如在剧场里,台下乱七八糟,戏曲园子一晚上七八出戏,曲艺场可能要换十几场活,有的人可能只为了等自己偶像的那一场,所以其他场次剧目对他来说就是休闲娱乐的时间,只要周围的其他观众不反对,他大可吃着点心喝着茶水嗑着瓜子根本不听。听的人呢,如果发现演的好,会鼓掌喝彩,一旦演出有纰漏,也会喝倒彩,叫倒好,随时往台上扔首饰或者扔茶壶,都是常有的事,也会和台上的演员互动
而有钱有势的人会请演员到家里演出,所谓的唱堂会,甚至皇帝还让演员进宫演出,这种演出的特点就是,演员演个不停,但是不一定有人听。比如慈禧太后看戏,演员可能天亮就要开始演,一场一场的一直唱到天黑,戏台上唱了一出又一出,慈禧太后却不一定在台下看着,可能有事她就去办事了,但是除非太后有吩咐,否则台上不能停,还要接着唱,中午慈禧太后吃饭睡觉,台上也是接着唱,没准过一会慈禧太后没事了又回来看一会,看着看着又走了。唱堂会也是这样,台下一群人,没准在干什么,有的聊天有的吃东西,有几个人在看戏谁也不知道,但是演员不用管,接着演出就行了
这就是过去看舞台剧的娱乐方式,观众是不受限制的,相当的自由,甚至经常是台下比台上还热闹,这就需要演员有办法有本事,能吸引到观众的注意力。而观众和演员的互动,在文明戏的理论体系里就是非法的。文明戏所谓的三面墙四面墙之类的理论,就是要制造台上和台下的距离,所以看文明戏没有台上台下的互动,还不如看演唱会,更没有观众搭茬的,甚至连交头接耳都不行,也没有中间叫好的节骨眼,都要留到最后鼓掌,就更别提什么一边看一边吃东西了,所以演唱会和德云社的生意都比文明戏好,因为文明戏的剧场就不会有这么自由,甚至有些剧场看文明戏,不许带包进场,穿的不符合要求也禁止入场,进场还要电话静音,中途不要离场,还美其名曰观戏礼仪,尊重演员,而有些观众也跟风的附和这种奇怪的要求,花钱受管制,甚至台湾的相声瓦舍,挂着相声的牌子,却也要让观众遵守文明戏的行规——这种奇怪的风气甚至蔓延到了公共交通领域,比如很多城市的地铁就只允许吃药和喝白水,其他所有的饮食都被列为不文明行为,实在是很扯蛋的文明标准。文明确实意味着违反人的本性,但并不等于没有人性
所以为什么影视能比话剧行情好?看电影虽然也很受限制,但是起码还可以在一定限度内吃东西喝水,所有的电影院门前都卖可乐爆米花,只要不是吃有异味的东西,一般也不会引起其他观众的反感,这甚至比坐地铁还要自由,当然会成为一种放松的方式。而堂会戏台上的演出,简直就是我们现在客厅里开着的电视,有好节目了看一眼,没什么好看的我们就聊天打牌。影视成为主流的娱乐形式,就是因为它让人很轻松,更接近传统的看戏方式,即便电影院里也受到一些限制,但是还保留了人性。而文明戏的这种所谓的尊重演员尊重艺术的观赏礼仪很可能是源自西方戏剧的宗教传统背景,所以演戏是有宗教意义的,要严肃,要关灯,甚至要穿正装,当然也就不允许吃吃喝喝交头接耳
当然了,也有人说,这种放松其实就是缺乏约束,是没有追求的,但是也不得不承认,恰是这种减少约束不需要努力追求的事,才能更容易被接受。休闲娱乐的本质是放松,而不是被约束。有追求的人都在买健康食材做营养餐,没追求的人都在订外卖,北京当年的市政单车有约束,必须停在指定的位置,这些位置都经过设计和规划,不会妨碍交通,所以市政单车败给了可以随便停随便扔哪怕放在马路中间也没关系共享单车——什么叫互联网精神?就是顺应甚至助长人性中的阴暗面,因为懒惰,所以有了外卖,因为炫耀,所以有了朋友圈,因为贪婪,所以有了网购,因为虚荣,所以有人在朋友圈里晒每天走了多少步。所以互联网精神和科技发明是一脉相承的,如果大家都勤劳互助,我们现在还在河边蹲着拿木头棒槌敲衣服给韩信这种懒人送午饭呢
2021年01月14日
这东西有什么用
人到中年不得已,保温杯里泡枸杞,所以我买了个高科技的保温杯,和普通保温杯的唯一区别在于,杯子盖可以测量杯子里的水温。产品没问题,广告上宣称的功能基本都实现了,保温效果还不错,在 28 度的室内,灌满刚开的开水,盖紧放了八九个小时,杯盖显示温度是 70 左右,基本符合预期——假设杯盖测温准确的话
但是现在,我对这个购买行为的评价只有四个字:脑子抽风。因为我突然就想不通,为什么保温杯要在杯盖上测水温
保温杯的设计目的就是要在短时间内保持杯内温度几乎不变,比如我灌进去的是 90 度的开水,盖紧杯盖,就算不测温度我也知道,起码一个小时以内,这杯里的水都是烫嘴的。如果我着急喝水,那么我会打开杯盖,甚至不用保温杯,那么杯盖上的测温功能就完全用不上了,这个温度显示岂不是毫无意义
上学时候老师说的,要发现一直被掩盖的问题,要解决真实存在的问题,温度只是个数据,本身什么都不说明,只有在扯皮的时候有用,比如室内温度不到 18 度可以不交暖气费,官方天气预报超过 40 度可以有高温福利,超过 80 度的水被 WHO 登记在册为一级致癌物之类,但是真正对我们有意义的其实还是冷或者热这种无法相通的感官体验,可以量化温度,但无法量化感受
科学提出一种可能,技术实现这个结果,工程做出可用的实物,产品最终进入生活,现在这个时代,科学技术工程都是过剩的能力,给这些能力找到发挥的领域太难了
俗话说,方法总比问题多——那么多出来的方法的用武之地在哪?就在这个保温杯上
2021年01月4日
fail fast
今天在向年轻工程师解释 fail fast 的时候话题扯远了一点,就一不留神滑倒了小朋友们最感兴趣的恋爱问题,于是说起了我年轻的时候听说过的“多追快换”模型。简单说就是:
在若干男女之间,每个人都按照自己对每个异性的喜欢程度对所有异性做排序,然后没有女友的男人按照自己的排序去追,女人被追的时候,如果当前没有男友,就答应;如果有男友但是在自己的排序里低于追求者,就换掉——都很符合人的本性
这样经过若干轮,总可以达到稳定的平衡,所有人都配了对。从数学上其实可以完成这个证明,并且计算出大致需要多少轮次才能达到这样的平衡。上学时候我还计算过,现在不太记得最后的答案了,而且甚至,我对我当时的计算是不是对的都不确定……毕竟我的概率课成绩挺烂的
其实多追快换的模型基本依据就是人的本性,达到平衡的时候,每个男人都是和自己能追到的在自己排名里最高的女人配对,而女人则都是和在自己排序里最高的那个对自己有兴趣的男人配对,而最终保持单身的人也无可奈何,因为他们也算是尽力了
当然了,这个模型有几个前提,比如参与者不变,每个参与者的排序不变,等等——新冠封校期间的同学们,别说我没教你们,这么好的机会一辈子最多也就赶上一回,你们懂的
这个模型是符合 fail fast 的,就是让可能发生的事尽早发生,然后再做出判断,决定如何处理。讲到这个例子本来也是顺着 fail fast 下来的,但是因为都是小朋友们在听课,所以他们的注意力就迅速的滑到了什么是渣的问题上
也许对于大部分人来说,理性的态度在面对情感问题时,就是这么不堪一击吧
随手写了一段代码,大略可以验证这个模型的有效性。为了偷懒,我把人定义为类,其实用 dict 可能代码会更清楚
class Person():
def __init__(self, name, sex, order=[]):
self.name = name
self.sex = sex
self.order = order
self.mate = None
def connect(p1, p2):
if p2.mate is not None:
p2.mate.mate = None
p1.mate = p2
p2.mate = p1
def match(p1, p2):
if ('F' == p1.sex) and ('M' == p2.sex):
match(p2, p1)
elif('M' == p1.sex) and ('F' == p2.sex):
if (p1.mate is None) and ((p2.mate is None) or (p2.order.index(p1.name) < p2.order.index(p2.mate.name))):
connect(p1, p2)
def output():
for man in men:
print(man.name, man.mate.name if man.mate else None, man.order)
print('=' * 20)
for woman in women:
print(woman.name, woman.mate.name if woman.mate else None, woman.order)
def stop(men, women):
i = 0
match = True
while match and (i < N):
match = (men[i].mate is not None) and (women[i].mate is not None)
i = i + 1
return i == N
import random
N = 10
men = []
women = []
for i in range(N):
women_order = list(range(N))
random.shuffle(women_order)
men.append(Person(i, 'M', women_order))
men_order = list(range(N))
random.shuffle(men_order)
women.append(Person(i, 'F', men_order))
print('start')
output()
x = 0
while not stop(men, women):
x = x + 1
for man in men:
for i in range(N):
if match(man, women[man.order[i]]):
connect(man, women[man.order[i]])
print('finish in', x, 'rounds')
output()
2021年01月3日
怎样才算一个人
这不是 Bob Dylan 的歌词,而是这两天看电影的时候想到的问题
这两天看了几个电影,包括赤狐书生(https://baike.baidu.com/item/%E8%B5%A4%E7%8B%90%E4%B9%A6%E7%94%9F), WW 1984(https://baike.baidu.com/item/%E7%A5%9E%E5%A5%87%E5%A5%B3%E4%BE%A01984),标准的超级英雄套路片,还有真假美猴王之大圣无双(https://baike.baidu.com/item/%E7%9C%9F%E5%81%87%E7%BE%8E%E7%8C%B4%E7%8E%8B%E4%B9%8B%E5%A4%A7%E5%9C%A3%E6%97%A0%E5%8F%8C),烂片无疑,而且百度百科的剧情介绍是错的——提了个修改,看什么时候能通过吧。这几个片都涉及到了相似的问题,所以,罗嗦几句吧
白十三还是一只普通狐狸的时候被王子进的前世救过,到了这一世两个人的关系和前世有没有关系?Barbra 本来是个特别普通的小透明,虽然很热心也很善良,但是却是个标准的小人物,职场上微不足道,生活里内向自卑,但是因为神秘的许愿石,她成为了拥有神奇力量的超人,而且突然就获得了所有人的关注和认可。于是,她的心态变了,为了留住这种过去想都不敢想的快乐,她成了反派。而 Steve 这个角色,说实话我有点没看懂,是因为相貌变了导致 Diana 没有认出他,还是他只是借尸还魂,进入了别人的躯壳,所以结尾出现的那个看雪的男人并不认识 Diana。但是这两个角色都恰好是两个表象:Barbra 的外表没有变化——好吧其实 Barbra 的外表也变了,但那只是她的气质变化,而且更会打扮了——但是内心完全变成了另外的样子,那么她还是 Barbra 吗?而 Steve 的外表变了,内心却仍然是那个爱飞机爱 Diana 的 Steve,那么他还是 Steve 吗?六耳猕猴受孔雀王指使,冒充孙悟空骗取九环锡杖,但是如果他得到了孙悟空的全部记忆,那么他到底是六耳猕猴还是孙悟空?或者一般的,我们认定这个人就是他本人,是根据什么
这好像是个哲学问题,这种问题也只能以特定类型的电影去呈现,比如科幻武侠童话神话,或者有的人喜欢再细分为魔幻玄幻之类,总之都是超现实的片子,因为这种片不必受限于客观世界的规律,可以自行建构起一套逻辑世界,另设规则,在这里可以把一些问题极端化,来引起更多的思考
短期内社会地位发生了变化,导致心态改变,这在现实里固然存在,但是只有在超现实的片子里在可以把它极端到一夜之间发生了变化,让 Barbra 完全没有准备好去应对,因此心态发生了巨大的改变,变的不再谦卑,甚至不再善良,那么她还是 Barbra 吗?她需要为这期间的行为负责吗?我觉得很多人都会觉得她还是 Barbra,要为这些行为负责,因为这种变化是她自己可以控制的,或者说这种心态失控是她自己无法做出调整的结果。那么 Steve 内心不变而外形变了,应该绝大部分人也会认为他还是 Steve 吧,起码 Diana 认为他是 Steve,但是结尾看雪的那个男人,恐怕不会有人觉得这是 Steve 吧
而真假美猴王的电影,它当然是和西游记原著毫无干系的剧情,只是借用西游记的人物框架,减少了许多背景的交代。在这个设定里,六耳猕猴长的和孙悟空一样,又有孙悟空的记忆,甚至还失去了自己的记忆,那么他到底是孙悟空还是六耳猕猴?我们是不是可以说,六耳猕猴就是孙悟空?Barbra 变身后,有 Barbra 的外形而没有 Barbra 的思想,Steve 只有思想而改变了外形,如果这样我们都认可他们还是 Barbra 和 Steve,那么像六耳猕猴这种外形和思想都和孙悟空一样的,应该也就没理由不是孙悟空了吧——但是恐怕不会有人这么认为
至于赤狐书生,好像又复杂一点。转世投胎是佛教进入中国之后被反复使用的编故事的手法,至今还有这类故事。经过投胎,理论上是要在阴间喝了孟婆汤,抹去关于前世的记忆,样子变了,记忆也没了,那么投胎后的王子进和前世的小孩是不是同一个人?投胎后和前世还有没有关系?还要不要报恩或者报仇?甚至白蛇还要不要嫁给许仙?这都成了问题。民间传说倒是简单粗暴的给了个答案:今生的遭遇都是前世的注定,所以三国人物都是楚汉争的人物投胎,才会有这一世的恩怨
哲学系第一学期就会讨论这种问题:怎样才算一个人,以及,怎样才算同一个人。而且,老师应该都不会给答案——如果某位哲学系的老师给了标准答案,那么,他不配在哲学系教书。但是这个问题确实值得反复思考。比如 X-man 里的变异人具有人类的基因,是人类的后代,有人类的思想,但是在剧情里的人类为什么不承认他们也是人?Wolverine 被替换个金属骨骼,那么他还是不是之前的 Wolverine?超人是外星生命,被人类抚养长大,有人类的外形和思想,但是没有人类基因,他们他是不是人?机械战警的身体几乎被毁,只剩下一个头,连接了机械的身体,那么他是不是人?Vice 里的机器人都有了自己的意识和判断,那么他们是不是人?Ederlezi Rising 里的女机器人最终有没有变成人?机械画皮里不断升级学做女人并且可以随时改变容貌的机器人算不算人?这些触及人类标准的哲学问题,大概也只好在科幻片里去讨论了……甚至,机械画皮还牵涉到,女机器人如果能算人,那么她伤人就要由她来负责,否则就是那个天才博士制造者来负责,因为他制造的机器失控,造成他人死亡
哲学上还会讨论一种问题,比如,机械战警的头还是原来的头,但是身体换成了机器,如果这样还可以承认他还是 Alex,那么是不是可以一般化的认为,Alex 的一部分被换掉,还是 Alex,那么如果是一台电脑控制着 Alex 的钢铁身体,那么他(或者它)还是不是 Alex?哲学课上一般是换个说法,比如,一条船每次换掉一块木板,当所有的木板都被换过一次之后,这条船还是不是原来的船?其实更直接的问法就是,人类的细胞每天都在新陈代谢,旧的细胞死亡脱落排泄,新的细胞生成,当我们全身的细胞都换过一遍之后,是不是就等于换了个人?甚至,比如 Death Pool 具有无限修复的超能力,身体被砍掉一部分之后还会再生,那么如果从正中间把 Death Pool 一刀劈开,是不是就会得到两个 Death Pools?就像蚯蚓那样——那可真是灾难,两个话痨,太可怕了
其实我在看真假美猴王的时候,满脑子还是在想着那个从小就困扰着我的那个问题:六耳猕猴到底怎么回事。好吧针对西游记里这个故事的解读很多,我见过的最流行的说法是,六耳猕猴其实是孙悟空对取经事业并不坚定时候的内心的阴暗面,是孙悟空的影子,所以他有孙悟空的记忆,知道孙悟空的所有黑历史——但是这些再怎么也无法解释一个问题:大禹治水的时候应该只用了一根如意金箍棒测量水深吧?六耳猕猴手里那根能和定海神针对攻而势均力敌不落下风的铁棒是哪来的
2020年10月23日
品位
小时候读许浑的咸阳城东楼,觉得溪云初起日沉阁写的很别扭,就有老师说一定是我偷懒,背诗背不下来在找借口。后来长大了才知道,这真不是我不肯背书,而是这一联犯了合掌,是对句大忌,浪费了那么精彩的一句山雨欲来风满楼
又比如多年以前,我在鼓浪屿的一个小博物馆里闲逛,满屋子不甚精彩的展品,忽然对面墙上有一张画感觉还不错,宛如狗食盆里的一块肥牛肉,于是赶紧凑过去看看……落款是唐寅——纵然不是真迹,也起码要有两分神似才敢做赝。再看周围的几张字画,都是无名的作者,自然是比不得这幅不知道真假的唐伯虎
其实小时候的我哪里知道什么联句的规矩,只是因为读的多了,有的对句很顺,有的别扭,自然就知道了好歹,然而彼时若是有人问我哪里好哪里不好,我也是回答不出的——不光是我,便是诗中老手,恐怕也很难说别人的作品哪里好哪里不好。譬如王维赞孟浩然微云淡河汉两句,就有人打趣,要王维说说好在哪里。王维也只合说,好句妙处,只可意会
王维也算会写诗的,尚且说不出个所以然,那么这诗句中的精微差异我就不去白费劲了。而我连写字都是全靠捋了一点许老太爷的叶子,就更别说画画了,能看出个好歹,也全靠了博物馆去的多,看过几张好画,看过几个好物件
审美品味和对艺术的感觉不是学出来的,而是养起来的
写代码也一样
2020年09月28日
包袱的门槛
早上听青曲社的实况录音,苗阜说王声的祖先是王承恩,台下果然毫无反应,可见这个包袱不适合当时的现场,观众并不知道王承恩是谁,所以还要后面翻回来补一句才有效果
类似的场面我也遇到过,我上学玩票的时候使的大致是:您祖上明朝就住在南京城,朱元璋那时候这就是首都,人称京城太叔,京城太叔原本是一辈古人,春秋时候的人,左传里有他的故事,我就挺喜欢这个人,他一死我就不想读左传了。这个包袱也有点皮厚,还需要捧哏的补一句,那你就是只看了第一篇就不看了,但是效果仍然不好
包袱的设计一定要根据观众的接受能力来组织,但是过去剧场演出很难预判当场的观众是什么欣赏水平,所以就需要有垫话,就是我在老文里多次提到的,通过讲各种小笑话来试探观众的笑点,然后选择合适的正文,由垫话进入正活也是需要经验和技巧的
当然了,还是那句话,现在这个时代,垫话基本就是走走形式,没有实质上的意义了,也是因此,出现皮太厚的包袱也就不奇怪了。但是能在发现包袱没响之后立刻找补回来,也算是两手准备,预案清楚,反应敏捷了