今年的 BGM 选的是宝宝最爱的 cocomelon! 每次放这个,宝宝都聚精会神地看,从而能乖乖磨指甲。
久违了,我似乎有些失语,不知道能写些什么,要写些什么。上次更新已经是8个月前,整个2022自然年一共只有两篇产出,是2010年之外最少的,2010是刚开始动笔的上古时期,也是那一年才开始写日记的,所以说是有信史以来产量最低的一年也不为过。翻看上一篇,感觉自己写不出半年多前那样的文字了,确实生疏了。
那个时候,我刚刚带着滚滚开着车横跨了大半个美国,日常蹭公司食堂苟活,然后每3-4周再和滚滚一起飞回村里呆一周多看娃。这样的生活持续了大半年,一直到感恩节之后,计划永远赶不上变化,我们正式重新永久团聚。
👆🏻2022足迹
外部世界也早已天翻地覆。上半年似乎还是岁月静好,下半年业界已经是一波还未平息,一波又来侵袭,茫茫人海狂风暴雨。很幸运,年初就入职了,很幸运,组里氛围挺好、前景看起来也比较稳当。就在这篇动笔之后,敝司也经历了大裁员,很幸运,自己没有受到太多波及。
对我而言,工作真的比最后几年的学校里头开心太多了,目标清晰,而且富含流动性,转组、跳槽都是可行性,不像学校里头没有很好的退出机制。老板问过我,工作中最享受的地方是哪里,我的答案是 git rebase
——「把写好的 commit chain 重整为井井有条、自洽、一目了然的样子」这本身就极具美感!终究还是个程序猿。
我自认已经是个非常不在意外在物质条件的人了,但有时却也会冒出一些懊悔情绪,遗憾自己错失了许多的机会成本,在过去多年的好光景年份中。即使这类情绪最终总会消散,但总归是个 debuff,2022年我开始有了个更加斩钉截铁的回答。假使某个节点上重新做出选择,我和 Bing 依旧可以结婚,但这一个特殊的宝宝应该就永远消失了。换句话说,这个最终降临的全局唯一的乖宝,为其历史链上的所有先前事件都赋予了意义。从这个角度上说,宝宝就是我的世界之锚⚓️。
我们都很爱他,那种老母亲/老父亲想到就满足的笑,是宝宝出生前的我完全无法感受的。有多爱呢,我和 Bing 都愿意不顾财政压力再生一个的那种。可要不是宝宝一周岁之后启动的「去年今日」读日记活动,要不是铁证如山的文字记录,我都快忘了宝宝头几个月我们俩每天睡眠不足的惨状了,所幸后来能排到学校的优质 daycare。而且当宝宝的需求增长到不仅仅是吃喝拉撒时,养娃的压力瞬间上来了,幸好宝宝有个厉害的妈妈,能搜索整理许许多多的信息。说到这个,欢迎关注宝妈小红书🙏:
时代确实变了。留给阅读的时间更加少了,其中技术阅读还占了一大部分,视野收窄了很多,因此2022年初以来读完的书愈发少了,只有8本。。。这样下去,下边这个表格很快就不用再列了,贻笑大方。
2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 |
---|---|---|---|---|---|---|---|
58 | 79 | 64 | 25 | 53 | 72 | 45 | 8 |
不过在这种状况下,真正读下去的就都是好东西了:
《翦商》
《What to Expect the First Year》
《Software Engineering at Google》
《沟通的方法》
有了宝之后,我们没有再去过电影院。根据豆瓣记录,2022年看了27部影视作品。继续下降,符合预期。
2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 |
---|---|---|---|---|---|---|---|
124 | 111 | 115 | 75 | 76 | 63 | 37 | 27 |
最喜欢的是:
剩下的其实都有一些槽点,但还是值得:
《再见爱人2》(还没看到最新)
和往年一样,我们的大部分时间花在了B站上,但以每期必看为标准,大概就只有下边这些UP主了:
耳朵的争夺在2022年间也有起伏,年中的时候听电子书,下半年后来回到播客,开始补翻电的中国历史系列专辑。以每期都会点开来听的严格标准(因此排除了技术类播客),大概就只有下边这些台了:
《谐星聊天会》
《翻转电台》
《不在场》
另外,特别鸣谢毛书记的《Ep83 一位文艺爱好者的自我修养》这一期,通过声音的补充,长者重新变回了活生生的人。
我们只是把《星之卡比:探索发现》打完了,但里头2P的角色只能使用瓦豆鲁迪,乐趣比上一代少了非常多。期待宝宝能一起加入游戏的那一天!
剩下就都是单人游戏了。
《艾尔登法环》
《哈迪斯》
《刺客信条:奥德赛》
□
就到这里吧,已经是🐰年了,23年希望宝宝继续茁壮成长,也希望我俩都能苟住、职业道路都有所发展💪。
]]>一转眼都要到夏天了,工作上比较充实,带宝宝非常充实。工作上因为刚上手,正是回报/付出比最大的时候,正反馈很强烈。而且在照顾宝宝之余,工作反而成了散心的方式,所以兴致很足。但显然,在过去的几个月中宝宝才是大头(pun intended)!
生命是如此神奇。
近些年来,我越来越放下理性人的自我期许,越来越珍视内心流过的情感体验。但当我想要尝试用文字精准地记录下晋级为父亲之后的心情,还是不知道如何下笔。它不是那样激烈的情绪,无论是不知道为啥就哭了哄不住的挫败,还是验证发现下蹲确实能够止哭这个哄娃小窍门的希望,无论是不得不又去 NICU 的心疼,还是「每天看到不觉得,但是对比一个月前的照片突然发现长大了这么多」的成就感,都是涓涓细流。最终只能俗气地总结说,我多了一层软肋,也多了一层盔甲。
现在回想起来,宝宝好像也没那么难带?也可能是我们宝宝太乖太可爱啦?但翻开日记才意识到并不是。人的记忆方式使然,只有顶峰和最近的记忆印象最深刻。所以记忆里留下的都是近期宝宝带来的痛苦与快乐,以及长期以来宝宝带来的快乐。
但我依旧清楚记得需要一整天看着宝宝、自己什么事都干不了时的烦躁。带宝宝像 on call,不知道什么时候就会有 P0 级别的任务需要切换上下文去处理,这样的未知与上下文切换损耗是最磨人的。当前的现状依旧是女性被预期着要承担更多的家庭抚育责任,Bing 的原有生活不可避免地受到了更多宝宝带来的冲击。我试过,知道一整天都看娃会有多么疲惫,我肯定是做不到的,就更不应该预期 Bing 能做到。
因此我们的共识就是早早地就把宝宝送去了 daycare,能尽可能多得解放一些他爸他妈的劳动力,特别是在双方父母都无法来帮助带娃的前提下。虽然这中间发生了一些波折,宝宝因为 RSV 住院了一周,Bing 在小红书上的帖子还引发了一些争论。但我们的决策保持不变,态度很坚定很明确:社会化抚养,委托给专业的人。
特别幸运的是,我们不到4个月的时候就居然排到了学校里的 daycare,学校的资源怎么也能算是州内顶级了吧,四舍五入也是个机关幼儿园咯。去年我打电话问排期要多久的时候,我们还排在80、90多位呢,能一路排到我们,充分说明了这一年都没有什么教授生娃(教职员工的宝宝有更高的入学优先级)!
前前后后也看了一些,书就没标记了。
《开端》这样年初大火的剧我们也看了,我们不苛刻,所以觉得还不错。
《守护解放西3》依旧很喜欢,真实的东西都太有感染力了!
《亲爱的小孩》,豆瓣简介就把前多少集的主线剧情给剧透了😓,一开始还比较真实,后来估计是编剧赶 deadline 了,那看得见的编剧的手到处都有。
《克拉克森的农场》,哈哈笑之余直观感受现代农业。
这一波的播客推荐基本都是重轻老师主导的节目!重轻老师的名字就是质量保证啊,NB!
重轻老师有自己的播客《不在场》,从一首特定的歌聊开去。头两个月半夜看宝宝其它啥都不想听的时候我就愿意听这个,心能静下来,愿意不倍速。
还有重轻老师主讲的这个机核系列节目
《动视暴雪的前世今生Vol.1-轮回的起点》(vol2 风云际会, vol3 分道扬镳, vol4 血雨腥风),以动视的历史串起了整个游戏行业史,恢弘壮阔!
其它很棒的还有:
上半年还玩了2款热门游戏,都是火了之后有兴趣就入了自己玩的,看着的娃时候趁着娃睡也放松一会儿。期待和宝宝一起打游戏、一起踢球的那天!
《宝可梦·阿尔宙斯》
《老头环》
□
接下来一段时间会聚少离多,就希望早日团聚吧。🙏
]]>今年的 BGM 选的是郭柯宇老师唱的《再见爱人》片尾曲(YouTube 上有个5分半的非官方长版)。
很喜欢郭老师的这首歌,有了饱含真情实感的节目打底之后,歌词充满诗意却不会无病呻吟。
你让我带回爱的颜色 我问你颜色的方向
你让我带回爱的声音 我问你声音的期限
在日出前能遇见吗 在日落前会兑现吗
去问时光 去问时光 去问时光
原词的情境显然只是感情,但文字创作完成之后就与作者无关了,我把它投射到更广大的人生命运,竟也有几分契合:阴差阳错→求不得→释怀。
平心而论,时光已经足够眷顾我了,从小到大都是。
一年多前,当我还在总结2020年时,尚处在人生的米字路口,充满了放弃沉没成本的遗憾和对未来不确定性的焦虑。而写字的当下,已经入职的我正对即将开始的组内工作内容充满期待。
更重要的是,我们的可爱宝宝已经来到人世,此刻正在边上的摇篮里歪头熟睡!体会着激素变动带来的心态变化,之前所有纠结的选择、得失,在宝宝到来所赋予的意义影响下都不再重要。肩上的责任又多了一份,我们有信心当好爸妈,一定能让宝宝开心地长大!💪
悟已往之不谏,知来者之可追。
实迷途其未远,觉今是而昨非。
时代变了。
虽然微信读书依旧拍马屁说我是「历史学家」😋,但这只是余温罢了。关注的问题、阅读的兴趣从2020年年末开始已经发生了天翻地覆的变化。思维脱离象牙塔之后,阅读书目大幅下降,大部分作品其实都是上半年读完的,预计22年趋势持续。以往的社科文史非虚构兴趣大幅衰减,就是没有那个心气了,而实用、技能、带着明确问题导向的工具书逆市上扬。听书也少多了,下半年耳朵的时间基本都重新安排给了技术播客和技术视频,后边再细说。
2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 |
---|---|---|---|---|---|---|
58 | 79 | 64 | 25 | 53 | 72 | 45 |
在此情况下,挑出来值得推荐的书正好每个门类各占一个。
历史:《讲给大家的中国历史01》
文学:《失明症漫记》
心理学:《了不起的我》
技术:《凤凰项目:一个IT运维的传奇故事》
生宝:《The Birth Partner》
根据豆瓣记录,2021年看了37部影视作品。考虑到年中有几个月 Bing 孕吐反应强烈,总数继续下降可以理解,但B站365天全勤了,说明不少时间其实是在追UP主的更新。。
2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 |
---|---|---|---|---|---|---|
124 | 111 | 115 | 75 | 76 | 63 | 37 |
21年看过的所有这些影视综艺里头,最好的毫无疑问当属《再见爱人》这款离婚综艺!全都是真情实感,太饱满了,节目组的设置、文案都非常棒。即使没看过其它类似的节目,我也敢断言这就是当前的情感类综艺节目天花板!
这节目我们是一起补完的,见贤思齐,见不贤而内自省。每一对嘉宾都早点去 couple therapy 真诚沟通该多好,到今天这地步,一别两宽,各生欢喜,也行。相比之下,我们真幸福🙏。
PS:《展开讲讲》关于节目的这期播客评论得真好。
回顾最近几年我选的最佳都有着一个共性——真实。去年的《说唱新世代》和《守护解放西》,前年的《乐夏》都是如此。真实,能带来丰沛的情感,在这么个全世界都趋向党同伐异极端化的时代,不妨开一开倒车,抛弃无限信息流,回到线下,体会弥足珍贵的真实情感,去爱具体的人而不是抽象的人,去爱生活本身而不是生活的意义。
今年的几个喜剧类节目我也都看了,《吐槽大会第五季》、《脱口秀大会第四季》、以及《一年一度喜剧大赛》。
虽然都是拉着进度条快进看的手动纯享版。每一档节目里都有好些笑 high 了的时刻,但都没有意愿完整看完。不过《喜剧大赛》里的皓史成双CP确实好嗑!
自诩为单立人粉丝的我,看到单立人出身的演员比如奇墨老师、志胜、和六兽老师在节目中大放异彩,很开心!就前两天,日谈公园刚放了石老板聊单立人五周年的一期节目。当年我好像确实是在日谈公园的节目里先听到的小史(后来的史里芬),然后听到的石老板,这才知道的单立人,才知道无聊斋、一言不合,最终才在一言不合里听到谐星聊天会的第一期节目,这么一路走下来的。虽然由于物理限制,从来没有去过这些单口演员的演出,但感觉他们就像是一群很熟悉的朋友,一直都在。单立人,NB!
如前所述,我们有不少时间其实是花在B站上的,B站不愧为最符合我们年轻人😳调性的平台。除了通辽可汗、督公、导演小策这些已经算是大UP主的之外,相关系列我必投币支持的还有:
安州牧,风云南北朝系列历史,精良大制作!
李沐大神,带你读论文系列!对最近几年的CV/NLP学术前沿有了更清晰的了解。举例如这篇对比学习的综述(合作投稿),讲得太好啦。这时候会觉得母语是中文真是太幸运了,能够分别从中文世界和英文世界汲取经验知识。
最后是2位领域更加小众,但是我非常喜欢的小UP主:
赵赵,作为创造出「赵向前」、「你永远可以相信xxx」、「xx,我的超人」等等著名梗的游戏区up主,我相信他的粉丝数只在20万这个量级一定是因为相关用户群就只有这么大,反正我是已经在虎扑看到过好几次他创造的角色出圈了。还在连载中的「FM22诺丁汉森林宇宙」更是超强黏性,评论区全都在开心地一起玩梗,太开心了😂。
母指导,FM战术复刻+偶尔直播,绝对的FM游戏大神。近几年我已经不怎么敢玩FM了,实在是太花时间,而且以前也都是瞎玩,现在看母指导出战术视频以及偶尔直播,四舍五入就相当于自己玩过了吧。
既然提到了FM,那就顺着游戏的部分先往下说吧。
21年下半年,由于怀宝宝的降体力上限 debuff,我们两人一起玩游戏的时间少了许多,但还是有好多超开心的时刻。
最最最棒的,肯定得是《双人成行》,最终拿了 TGA 年度游戏,实至名归!!每一章都有令人惊喜的新内容新玩法,配合顺滑的手感、精美的画质,太适合双人了。想好了,以后等宝宝长大了肯定要跟他再玩一遍!
出于对双人成行作者的信赖,我们也去玩了他之前的作品《逃出生天》,也是不错的双人剧情游戏,不愧是电影导演出身。
与此同时,任天堂依然是“永远滴神”。我们打通了《超级马力欧:3D世界+狂怒世界》,在3D世界里,只要死的够多就会有无敌小浣熊出来救场,所以非常友好,狂怒世界就是个开开心心的小奥德赛,享受啊!话说22年3月份,看预告像是星之卡比×奥德赛的《星之卡比:探索发现》要上架了,期待期待。
两人一起玩的还有《弹丸论破1・2 Reload》,作为知名的推理类游戏,几乎根本不需要操作,用一点点脑子就很沉浸。
以上这些我都加到这个手残也能玩得开心的豆列里了。
21年新玩的游戏不多。首先是《刺客信条:枭雄》,体验很棒,绳枪用着非常舒服,出场的历史人物也很多,所以难得自己打完而没有云通关。用过绳枪之后再回去玩《刺客信条:大革命》就有点等不了了。
接着玩了《刺客信条:奥德赛》,很喜欢,风景好,结合以前看过的《希腊人的故事》系列很有亲切感。但是地图实在太大,而且流程越来越重复,再加上祖传的愧疚感上线,在一两周之后就选择云通关了。后来,在意识到前一作《刺客信条:起源》是希腊化的后期和罗马共和国时期的时候,遂重新开始玩,但后来也是看看风景最终云通关了。
年底《影子战术:爱子的选择》出了,这类潜入类游戏当然是 shut up and take my money 咯,然后顺便把正作的最后一关打通了,之前居然没有自己全杀打过而只是看攻略走了速通路线。
年初的时候还玩了《实况2021》,就还行,前几作的槽点也都在。但现在系列都已经停更了,以后估计也不会去重新熟悉键位和操作玩 FIFA了(再加上看到赵赵视频里 FIFA22 那令人智熄的AI操作),所以可以算是和直接操控球员的足球游戏说再见了咯?
最后是播客环节。去年总结的时候我说,在有声书的时间争夺之下,播客收听量显著减少,这个趋势在2021年又改了回来,核心原因嘛如前所述——对那些书本身的兴趣都转移了,还听个啥朗读呢。而播客作为听觉的信息摄入主力渠道,生态位优势明显。于是我又回到了之前在用的 Pocket Casts,重新关注了一大波技术播客。但在根据点开率和完播率推荐之前,我想先说说 RSS。
不知道现在有多少人还知道并且继续使用着「RSS订阅」这个最早出现于 web1.0 时代的协议。需要自己添加、维护订阅列表,默认没有反馈没有数据统计,不知道谁订阅了,就是在孤独地向网络发广播,顽强地坚持着在大公司各立山头之前的互联网的样子。这么一个能自主控制信息输入阀门的工具,在基于用户数据的个性化推荐主导的当下更加难能可贵。
17年的时候我还写过一篇如何自己鼓捣 RSS feed 的文章,那时候的即刻app还更像是一个工具而不是强求做社区,几经波折,在大环境下停用、重开之后,现在甚至都没法只看自己关注的圈子,而只能看夹杂着推荐的无限信息流了,相当于从光谱的一端来到了另一端投敌了,怪可惜的。
播客也是那个时代出现的,也提供了 RSS 源作为发布渠道,于是才能有所谓的「泛用型播客客户端」,大家都只是前端,拉取同一个来源的数据。
PS:GitHub 上有个 RSSHub 的项目,提供了各种网站的 RSS 源。
PPS:话说我的这个小博客就一直提供了 RSS 源订阅的功能,在页面底部的小图标第一个就是,因为平常自娱自乐为主,也不在其它平台说,所以一直只有 RSS 这么一个渠道提供更新提醒。
歪楼结束。和去年相比,我愿意推荐背书的播客列表又有了不少变化,毕竟只有那些过去一年内点开率、完播率都达到一定比例之上的台才值得推荐。
非技术向:
谐星聊天会!所有所有这些台,只有谐聊是我每期必追的。现在在每一个播客的安利帖子里几乎都可以看到谐聊的身影,我就不需要多说什么了——快乐情绪提供者。
忽左忽右和鼓腹而游——听听真正的文化人带来的智识享受。噢对,21年(年中?)我填了 JustPod 的问卷结果还中奖了,礼物是他们出品的咖啡,寄到老家了😂。
故事FM——老面孔了,不过我觉得近期的节目质量有不少下降。
迟早更新——说实话,我想象中神仙眷侣的生活就是任宁和枪枪这样子的。
展开讲讲——各种近期的影视综艺点评推荐,很多都能说到点子上。
机核网GADIO,GADIO 跨界跨得非常广,大部分节目我是直接跳过的,但是「苏联美学演义」这系列必须满分推荐!不管是不是精苏都值得听。我最触动的是Vol.03 | 白银时代 中 “传火者”与“舞蹈之神”中的传火者绥青,几乎是一己之力让人民读得起书,称一声圣人不为过吧。
ALL-IN,4个都已在职业道路上功成名就赚到了很多钱的主播,没有闷声发大财而是愿意出来开播客分享观点讨论,本身就是件很不容易的事情。主题宽泛,政治、经济、科技都会涉及,很有货,而且也不会掉书袋,毕竟都不是搞学术的。
三五环——产品经理的角度。
疯投圈——VC的角度。
蒙台啥利——有娃之后开始了解蒙台梭利的理念,但都听完之后觉得,我并没有被打动以至会想把宝宝送去蒙校🤔。
科学史评话——科学史,当前连载的是气象史。
橘猫看球——同济上一届的一位学长做的,从财务金融的角度出发看足球世界。
技术向:(以下这些基本都是对谈类,与不同相关从业者的各种对谈)
□
输出了不少了,就到这里吧,马上就是🐯年了,祝大家虎虎生风。
]]>在上周最后的划水课终于完结之后,拖延了4个月之久的「👶🏻取名」任务总算开始着手完成。两年多前滚滚的取名我们也很满意,所以现在自认为对取名字这件事情有那么一点点点点点心得体会可以分享,记录在这里,抛砖引玉。
👶🏻需要一个中文正式名字,一个中文小名,如果需要的话再加一个英文名字以方便外界的日常沟通。
后边讨论的范畴都是中文名字。毕竟,在定好中文名字之后,如果拼音在英文世界里不好读,根据发音找一个相近的英文名字就行,很简单;如果发音没有困难,不需要单独再取也行。
我认为好的名字方案,得「加强进攻的同时注意防守,以及充分利用场地的宽度😏」。换句话说,就是在给👶🏻将来的社交降低难度的同时,不给👶🏻将来的社交增加难度,以及含蓄地展示一下我们的趣味😏。
所以下边这些称作搜索空间也好,限制条件也罢,说到底只是上述方法论所延伸出的个人偏好。
最后,👶🏻爸妈拥有👶🏻取名的最终裁定权。
首先,如果可能的话,我希望名字有一个独特的支撑故事,最好是附着着真实情感的动机。对于骨子里爱听新故事的智人来说,这样的名字记忆深刻,不容易重复,还可能是将来👶🏻随身自带的一个社交破冰点。所以:
(一篇工整的文章在这里应当开始给例子,但这篇并不打算工整。)
在我看来,依谐音梗取名是个典型的反面案例,那些个好听的谐音梗名字基本都依赖于其姓氏的相对稀缺。否则,我能想到的谐音梗,其他人也能想到,之后发生的情况就是:撞衫不可怕,谁丑谁尴尬😴。
而且,这个名字的支撑故事不应是消极的,毕竟👶🏻名字可能成为自我实现的预言。招娣这种就是标标准准的负面典型。
此外,作为面向外界提供服务的 API,名字就不该佶屈聱牙,能用非生僻字做出新意才是水平,我认为也应尽量避免多音字,API 不该 ambiguous,不然新来个人调用前都得查查文档才能用。
并且,名字音韵上读起来一定要朗朗上口。至于读得舒不舒服,自己连续念几遍就能感觉出来了。有人的经验是读音响亮的字在最后一个字上读起来会更好听,也有人说相邻字的声母不要重复。我原本觉得可能平仄交错会更好?但 áāá
这样的“平平平”也有听着舒服的版本,所以还是直接念一念吧。反正在姓确定之后,最多也就 4x4=16
种可能性,遍历一遍也很快。
最后,我们还倾向于取双字名,这倒并非是出于重名的考虑,而是想要留出(稍稍)更大的称呼亲近程度区间:称呼全名一般带着严肃的意味,可能是犯了什么错之后,而单字名很容易就称呼全名,双字名则可以通过只称呼名来显得亲近。当然,以上只在没有、未知昵称的时候成立。
其它一些条件还有:
就只是纯个人偏好了。
以下为具体的取名思路总览:
为了这个名字,我把小学、初中、高中的语文课本里的古诗词文都又翻了一遍(这些在 https://www.gushiwen.cn/ 这个古诗文网站里都有收录),读得心潮澎湃,以前背过的段落现在还有大致的记忆,读了上句能接下句,这感觉真好,以后宝宝可不能少了这些情绪养分!
现在再来读那些经典诗作,对诗性的语言有了更深的理解,在简短的篇幅中东一榔头西一棒槌,精准地塑造一张情绪的大网,同时又符合音韵要求,在镣铐中跳舞,太厉害了👍。PS:郭柯宇老师在《再见爱人》里描述饭店与耳环的话语也是一样一样的。
不过理论一套一套的,我们也没有用到那么多,至于最终取了啥,等👶🏻长大之后自己说吧(毕竟也有还会再改的可能)。
□
]]>找工季落下帷幕,结果比较满意🐶。
统计了一下,前前后后一共内推+海投了39家,投得算多?不算多?毕竟想着 return offer 截止时间过了之后也就没什么好面的了。其中,10/39 直接拒了我,18/39 至今没有反馈算默拒了,最终真正进展到OA之后的只有4家,最终2家发了offer、1家拒了、1家主动撤回了申请。——大约 1/4 申请有回应、1/10 真正进入流程。不考虑里头有部分OA因为来得太晚而直接主动撤回的情况的话,这些数字或许可以为大环境提供一点点点参考。
听说今年就业形势好,在职跳槽尤甚。这期播客里说的原因主要是疫情以来原本不怎么使用在线服务的人口开始使用、创造更多需求、倒逼更多更好程序猿。从地里的观点来看,应该也有疫情以来压抑的 headcount 恢复,以及去年不少学生推迟入学以至于今年校招求职人数减少的缘故,但后者真正能占多大比重不得而知。
尘埃落定之后我自己的感受是:经过这么多年的机会成本肆意挥霍,简历已经不是很够看了啊。说实话,现在时不时会有一股强烈的要追上同学们的焦虑感萦绕心头,这情绪不算是 imposter syndrome,但肯定会留下隐患,让我自己再消解消解,等到年结的时候再统一写吧。
与此同时,👶🏻也在茁壮成长。但从B超给出的大小占比来看,宝宝的头位于统计数据的第 58% 而腿只位于第 17%,所以可能会是个大头短腿宝😂。
在双方父母都没法来帮忙带娃的情况下,我们预约了 daycare(日托),计划在宝宝一长到6周就在白天送到 daycare 去。看了那么久督公的节目,对「社会化抚养」终于要有切身体会了!似乎这里的 daycare 普遍支持6周至12岁,州内也有比较完善的 Path to Quality 评级制度,区分 licensed home 和 licensed center,最高都是4级,我们去实际探访的几家都把它们 PTQ Level 的牌子光荣地立在门口。
村里的 daycare 实在是太火爆了。。学校里的一家告知说我们在 waitlist 上排名第91位,而当前排第一位的已经等了569天了😱。学校里另一家 daycare waitlist 我们排在第86位,说之前最久的一次等到 pre-K(大概3-4岁)才真正排到😱。但隔壁村的就还好,我们最终成功约上了20分钟车程的一家,能够一到6周就送过去,并且在家附近5分钟车程的一家也排上了队,那里就只有14个宝宝在我们之前,嗯,“未来可期”。
上一篇里提到,我的信息摄入口味已经发生了极大变化。以往分开书、影视综艺、播客、游戏各自一小节,现在就只能合在一起写还有点空了😂。
上次月结以来一共读完了0本书😓,倒是又删掉了不少以前加到书单里、但感觉已经完全失去翻开意愿的。现在重新开始看啦,只是主要目的是看完依旧有兴趣的最后几本社科文史收官,以及收集的那些生宝养宝书。
游戏也是一样,除了双人和 Bing 一起玩的那些我会有兴趣长时间、多次打开之外,剩下的总会有一种时不我待的负罪感。说起双人游戏,《真三国无双8》居然支持双人,但是确实有些无趣。。《美国式家长》算是3年前玩过的《中国式家长》的精神续作,大差不离。
关于剧,我们也看了近期大热的《鱿鱼游戏》,进而去看了同类竞品《弥留之国的艾莉斯》,我觉得俩都有不少槽点,不怕拉踩地说,我觉得前者节奏更好槽点更少。除此之外我唯一看了的就只有《脱口秀大会4》了,作为在奇墨老师和志胜大火起来之前就关注到他们的人,我十分开心!!单立人NB!
说到单立人,已经停更近半年的《谐星聊天会》终于在上周恢复更新了😭!!这之前郝雨老师和吕东上三五环的一期节目很值得推荐。三五环再之前还有一期描述直播带货的幕后过程的,我也比较喜欢。
□
]]>↑ 更多是关于自身的体验。与此同时必须要说的是,我也开始更深刻地体会到女性在生育这件事情上付出了多大的代价,自从确定有宝宝之后的很长一段时间,Bing 吐得茶饭不思没有体力,真是太辛苦太心疼!只能尽力多分担一些家庭责任了。🙏🙏🙏
说实话,自从心态转变以来,对于之前存着的各种非技术书籍的兴趣是肉眼可见得降低,从上次月结以来,真正翻完且觉得还行的只有《时间的色彩》,还是因为它把不少老照片都上了色,跳着把照片都看完了,没有细看文字。
但对于技术相关书籍的兴趣,着实是大幅飙升。第一次看《凤凰项目:一个IT运维的传奇故事》这种小说体裁的运维+管理学的主题书,体验真奇妙,以爽文的形式展示了 DevOps 和更大维度上管理岗位的一些工作,长见识了。后来看到一篇异曲同工的博文《Building a data team at a mid-stage startup: a short story》,说到了从小到大构建、扩展一个数据团队的时间线和有趣细节,这种叙事类的技术文章看得就是舒服!我就喜欢看这样包含上下文的丰富信息,对于建立整体图景非常有帮助。
关于这些,我居然才知道 O’Reilly 的网站上有许许多多的专业书籍资源,学校或者公司邮箱常常都有免费访问的权限,真是宝藏!
还有个很棒的 repo https://github.com/ibraheemdev/modern-unix,一并放在这里好了,推荐各种经典 unix cli 的替代品。经过一段时间的使用,bat
, rg
, fd
, br
已经在我最常用的命令集中了!
同样的,我对于影视综艺的兴趣也在俯冲。而与此同时,我在 YouTube 上收藏了200~300个技术视频,在吃饭的时候慢慢看,一本满足。
话说 YouTube 的手机 app 做的是真不咋的,双击 Airpods 继续播放后总是会出现声音中断只有画面一会儿的 bug,要到这一长句话结束之后才会恢复声音与画面的同步,简直难以想象。相比起来,b站和腾讯视频的 app 都挺顺利的,我发现它们俩都实现了「按住屏幕右边」就以3倍速快进播放的功能,确实很实用。
这段时期内播客听了一堆,但和书、影的趋势相同,主要是补了技术类播客,对于之前很多关注过的播客打开得少多了。其中依旧有不少好东西,比如
中文技术播客补的主要是:
英文技术播客也重新关注上了,比如已经充分信任的「Software Engineering Daily」,其它的还是得先验一验等有发言权了再说。
在兴趣转向的大潮下,游戏依旧维持着它心灵港湾的地位。
《弹丸论破1·2》是我们俩一起打通的判案游戏,久负盛名了,游戏本身不难(在简单操作难度和正常推理难度下😅),2代到最后高潮迭起,话题深度也比1代更好,怪不得风评这么棒。
《刺客信条·奥德赛》,游戏里的希腊世界美不胜收,RPG 类型的3种技能路线也都很好玩,所以我沉迷了一周左右的时间,然后因为觉得太花时间了而选择了云通关。不过游戏到后期模式重复确实是个大问题。
□
]]>开始找实习的时候已经是2月,算是非常非常晚了,毕竟不少岗位是从去年暑假就开始招人的。所以最终能被捞去一个约二线厂子里的上升期团队,我的内心充满感激!🙏
实习的总体体验就是:太开心了!因此在上周结束的时候恋恋不舍。
久违得,我重新能长期进入心流状态,做的事情需要学习但是曲线并不算陡峭、努努力就能够到,又有足够的成就感,看技术视频累了就切娱乐,腻了就回来继续写,没有负罪感,充满主动性,我感觉非常自由😭。现在我知道了,要是陷入必须一直肝肝肝想要追上的境地,还是早点跳或者早点转吧,不然迟早 “burn out”,哪有 “work life balance”。
在实习开始之前,我的期待是:
这些基本都达到了。
由于疫情的原因,整个实习的过程都是全程远程办公,但组内组外的人我还是见了不少。切换到职业模式后,我仿佛套上了一层盔甲,完全没有前几年可能会存在的人际交往上的内向,我可以很自然地找组里组外的人 1:1 聊他们在做什么,也可以很自然地问问题或者分享我的经验知识。我喜欢这样的状态。
组里的氛围也超级棒,大家都很友好,也都热心帮忙。此时此刻我脑海里最栩栩如生的一幅画面,是某一个周四下午的 airflow office hour,第二天将开始一个三天小长假,没有其它组的人来问问题,只有我们组里的几个同学在谈天说地,那场景就好像高中月考完的晚自习,小伙伴们无心学习,聚在一起畅聊,既期待假期的来临,又不舍与大伙的暂时分别,然后患得患失地回家。😌
我在实习中完成的,往大了说,是一套自动化代码生成和测试 pipeline,往小了说,是一个把高度格式化的 shell script 转化成高度格式化的 python script 的小工具,以及一个在开发环境下自动开始测试并收集测试结果的小脚本。其更多还是属于语法的层面,不太需要了解代码语义,我自己觉得难度不算很大,但大家的反馈还是挺不错的。😋
在实习的中途我甚至给 Airflow 提交了一个 PR,有了真正的应用场景,自然而然就会出现不尽如人意的点需要改进。PR 本身就几行,只是「比改 typo 稍微多那么一些些」级别的改动,但最终被 merge 了也算是给开源社区做了贡献,就很开心。似乎许多人的职业方向都决定于最初的一/几份工作,对我而言,很多东西都需要重新积累,但我很有兴趣把 Data Infra 作为初始专精的方向,其中一大原因就是这里头的不少环节都主要用的是开源项目,够酷!
第三个我在实习开始前就很期待的目标是体验、观摩各种流程,既包括代码开发流程也包括团队管理流程,甚至是商业产品流程,主要就是想知道在业界,一件事情是怎么做成的。经过10周的见闻以及翻了些有权限看到的代码库和内部文档,虽然出于时间和知识所限,只能是走马观花,但依旧长了不少见识。比如像「专门开一个 office hour 让使用我们产品的其它团队能在某个确定的时间段来统一问问题」,就是个我之前没概念、想了想觉得很不错的流程。还有一些与面试相关的内部文档在最后一天打开了还没来得及看完,权限就被取消了。😂
现在我也尝试在滚家里头开始推行类似的敏捷开发流程(青春版),把不定时的任务们都用 Jira ticket 梳理,定期 review、定期 standup。于是,任务列表在 Jira、日常提醒在 Reminders、知识总结在 Notion、短期思考在 Workflowy,几个工具各司其职,清爽!
□
]]>为了准备实习与工作,最近我开始用起了 Udemy,通过一些短期的容易上手的在线课程补短板。在网课刚兴起的年代,我跟过一段时间的 Coursera,感觉那里更像是一个学期的大课,而 Udemy 更像是几天、一两个星期的快速上手训练营,正合我意。现在总结来说,这些视频课程的好处是:短、粒度细,知道时长就那么多,可预期,启动的惰性小。当最难的最初上手部分翻越过去之后,剩下的就简单多了能自己探索了。
另一个准备是重新开始追踪时间,Toggl Track 这个 app 真不错。几年前我曾经有个习惯,每周一张纸,记录具体工作时间,以半小时为最小单位,看看预计多久才能到达一万小时,后来荒废了。现在重新启用却换了一个思路——不追求总工作时长,而是追踪时间比例以减轻精神压力,比如xx准备40%,yy准备40%…… 根据面多了加水,水多了加面的左右互搏套路来恢复专心致志的精神状态,一切都是为了动起来。嗯,有点效果。
为了让滚滚多一些社交活动,我们带他去了村里头的 dog playgroup “上课”,有各种各样的狗狗在管理员的看护下自由活动。比之前去的没人看、总是被大狗追的 dog park 好太多了!我们之前还好奇村里的小狗们都去哪儿了,原来是来这儿活动了呐。
最后一个需要提一嘴的准备是开始看起了生宝、养宝的书。
看/听完了一些。
《司马迁的记忆之野》是亲王推荐过的,亲王推过的书我都读得很开心,这本不长,直接引用亲王的描述吧:
语气不疾不徐,不做惊人之语,亦不落艰涩窠臼。读之如啜温粥,口感柔顺,落胃熨帖。平淡中各种典故信手拈来,于细微处别出机柕,阅读体验上佳。
然后是刘擎老师的《2000年以来的西方》,这一季的奇葩说已经不看了,因而没看到刘擎老师在节目上的表现,但看了其在公众号上对2020年的述评,看到不少好奇过却不得解释的问题在学界的讨论,有种外行人的特别满足感。书是从2003年往2019年看的,越新近内容越多,但也许是节选的原因,与2020的长文述评相比观感还是平淡了些。
《企鹅欧洲史·竞逐权力:1815-1914》,是整个系列的第7本,忘了当初哪儿看到第8本《企鹅欧洲史·地狱之行:1914-1949》的推荐,于是从最初开始看,但第一本《企鹅欧洲史·古典欧洲的诞生:从特洛伊到奥古斯丁》看完之后就停下来了,对于历史线索更改都不完全了解的我对于民族建构、文化细节这样的内容还没有那么大兴趣,饭要一口一口吃,路要一步一步走。因此,在上次清理冗余书单时把中间的几本都删掉了,只剩第7、第8本还有兴趣,因为从目录上看,这俩是有着大致按照时间顺序梳理出的不同维度清晰线索的。第7本看完了,确实是在各种意义上都狂飙突进的一百年。第8本正在看,观感不错,作者是伊恩·克肖,之前读过他的《命运攸关的抉择:1940-1941年间改变世界的十个决策》印象很好。这一套都是中信出的,都有音频👍。
话说在看历史人物的时候,我喜欢把他们平移到我的同辈人时空视角,这样对他们的人生经历会有更深刻的体会。比如说教员,93后,比我小一岁多,这一年已经参加一大去了。人呐,不仅要看个人的奋斗,还要看历史的进程。
4月我们一起追了《创4》,之前我俩都没看过这样的选秀节目,Bing 看得很开心,我觉得这样接接地气挺好的😄。
《骇人来电 Calls》是这段时期内看完的最喜欢的剧,纯声音展现,很难不联想到我们之前一起玩过的优质游戏《疑案追声》!
我们也重新开始看起了电影,《刺杀小说家》这部春节档我很喜欢,看到直播那儿我就把小说家等同于网文作者了,结尾的加特林更是直接戳中了痒点,一本满足。
这段时间内也听了不少新播客。比如:
《天才捕手FM》,不同的职业故事。印象深的有笑哈哈的第二期《有人报警闹鬼,我们就得上门驱魔 | 天才职业02》,以及NB的邓老师《我执行过一次特殊的“国家任务”:给3000具尸体做手术 | 天才职业029》和NB的苏队长《跳伞队长:战友在空中丢了伞包,我要在落地之前接住他 | 天才职业053》!!👍👍👍
《牛油果烤面包》,也是展示不同职业的风貌(更偏科技向),外行友好。比如《#70. 和Vue.js的创造者尤雨溪聊开源软件》,大佬来介绍了不少开源社区的情况,受益匪浅。
最后是同济学长做的足球播客《橘猫看球 - 足球的商业世界》,从财务金融的角度看足球商业运营。比如这期《Vol.16 卫冕冠军“暂停运营”,我们的职业联赛怎么了? 》介绍国内足球现状思考的👍👍👍。
4月最大的惊喜是游戏《双人成行》!每一章都有惊喜的新内容,配合如此顺滑的手感,太好玩,太适合双人啦!!是我们的年度最佳预定。紧接着我们又玩了同一个出品人之前一款双人游戏《逃出生天》,制作人不愧是电影导演出身。
□
]]>《了不起的我:自我发展的心理学》,这其实是陈海贤老师的得到课程《自我发展心理学》合辑。19年的时候就给 Bing 当睡前读物读过一部分,现在终于完整翻完。真好呀!
断言:在我目前看过的同类书籍中,这本介绍的理论框架是最有说服力、确实能解释我观察到的诸多现象、而且十分可操作的。还需要在实践中继续验证,后边的梗概笔记也是我根据自身经验筛选而成,我一向没兴趣看别人的思维导图,但不好意思这篇后边实质上就是个人化倾向严重的思维导图。去看原书吧,绝对不亏!
硬要说些不够好的地方的话,有些例子举得太像应试作文了,用故事寓言强行说理。而且行文有过多的得到风格,我看过得到品控手册(记得app里就有,网上也能搜到),里头专门规定语言风格需要是假想面对单独一个人在说话,是促膝恳谈的状态。结果是加入了不少第二人称的口语在句子中,一旦意识到了就很难不注意到它,比如「你可能会想」的插入语,不,我不想。但在优质内容的基础上,这些总归是瑕不掩瑜,瑕不掩瑜啊。
下边按照改变、思维、关系、转折、人生的不同线索筛选整理。
改变的本质是创造新经验,用新经验代替旧经验。
理智只提供方向,而情感提供动力。感性的部分像大象,力气大、受情感激发、受经验支配,骑象人很难逆着大象来,哪怕理性上所期待的好处比经验上感受过的好处大得多。行为难以改变,就在于旧经验太过牢固,因为这是心理舒适区,是熟悉的应对方式。熟悉带来控制感,而我们越是感觉受到了威胁、越是焦虑,就越是需要控制感,于是越会抓着已有的应对方式不放。
改变的第一步:找到旧经验背后隐藏的内心假设,然后挑战这个假设。接下来小步问自己,如果好的结果已经发生,回顾这个过程,迈出的第一步是什么?往前看,看到困难;往回看,看到方法和路径。不去想未来太过巨大的任务,而专注眼前能做的一小步,并做好,大象就会迈开步伐。之后,维护一个让事情发生的场,养成习惯。不要自责,厌恶自己没有用,保持爱和期待才会触动大象改变。
单纯解决问题是没有持续张力,创造才能制造持续的张力从而改变。因为若动力来自于解决某个问题,则努力稍有成效,问题带来的焦虑就缓解了,张力就减弱了,直到问题重新带来焦虑,张力才会重新集聚起来。所以鸡血→颓废→鸡血→颓废的怪圈才这么普遍,要想打破这样的循环,夸大问题严重性是没有用的。
作为重度拖延症患者,另一个常见的症状就是下决心改变、或者做了计划之后,感觉好了一些,张力就释放了,行动的动力反而减少了。因为大脑分不清什么是计划什么是行动,以为我们已经做过了,行动的张力就消减了。可用 WOOP (Wish / Outcome / Obstacle / Plan) 对抗拖延:
防御性思维(僵固思维、应该思维、绝对化思维)——日常生活中遇到的很多烦恼,比如害怕失败、不敢面对挑战、害怕别人的评价,背后都有以下几种思维的影子。
僵固思维,防御的是内心完整自我的形象。
应该思维,防御的是内心已有的规则。
绝对化思维(扩大化、悲观主义),防御的是可能的伤害。
人际关系
自我是关系的产物。不需要给自己贴个性的标签,因为决定行为的是关系,而不是个性。同样的个性,在不同关系中会有不同的行为。关系又是多元的,单个关系只是一种角色,不要扮演一个角色的时间太长入戏太深以至于把这个角色当做唯一的自我。调整角色的三个自我提问:
在关系中,自己和他人的感觉是如何被混淆、责任是如何被混淆的呢?
关系的纠缠
怎么划分边界
转折期
人生会经历很多次的脱壳,会带来痛苦和迷茫,这不是自我的问题,恰恰是自我发展需要经历的道路。比如工作的转折、关系的转折、创伤后的转折。
转折期分为三个阶段:
转折怎么选择,先确认是经济选择还是心理选择?
人生课题
总结来看,人生的各个阶段,不断在超越「自我」,所谓 make a difference, shape the world 都是。这里没有提到宗教,特别着重的是在世俗社会中超越自我的可能方式。
从年结以来基本都在准备找实习,现在夏天的计划大致确定下来了,春天也快要过去了。
心态变了,真的是一瞬间的事情。
自从确定了不再在象牙塔里赖着、而是将投入真实世界之后,好多以前加到书单里的书就不想看了,唐朝藩镇?奥斯曼兴亡?文学名著?嗯既然没有那么有兴趣了就删了删了吧。微信读书就是这点好,删掉就删掉,这波我可能不赚,但肯定不亏。牢记跳读、不读完的权利是天然正当的,阅读理应随心所欲而非成为枷锁。
于是清理了一大波冗余的书单,最终只留下了32本还要读的各种虚构非虚构作品。与此同时,技术书籍的吸引力大幅上升,几波 humble bundle 买下来,Calibre 里管理着的各种职业相关书籍已经到了100数量级。其间还发现了美团技术博客以及许多其它公司的技术博客,真好呀,这些早该关注了的。
春天里最大的惊喜是《失明症漫记》,是去年疫情期间道长节目里推荐过的书,说是拨动社会的弦,看幻想状态下的百态,我非常喜欢!最大的特点是全书完全没有人名,都以职业、身份指代。长段对话时可能只以分号隔开,但是在朗读中完全不会搞混(此处点赞喜马拉雅上的主播@蓝夜如水),所以听的体验比读更好。对此,作者自己解释过「读者应当大声朗读他的作品,这样才能抓住节奏,因为他的书面语言都是口语化的,“就像一个人给另一个人讲故事那样”」。
也继续看了杨照老师的中国史系列,在耀眼夺目的第一本之后,接下来的几本系列续作就没有那么优秀了。此外特别的书目还有国师大佬的《美国反对美国》与《政治的人生》,特别是后者,看完感想①大佬亦凡人;②大佬果然不是凡人。
小说也继续看起来了,《绍宋》追到了最新一卷,玩历史梗的能力太强了,总体来看,我愿称之为我看过的历史类网文Top1。也追了下乌贼的《长夜余火》,设定一如既往得奇妙,但是就是感觉平淡了些。相比之下,《从红月开始》作为同类废土题材,阅读体验上好了不少,是个意外之喜。
至于影视,好像没有想到啥特别值得推荐的。《吐槽大会第五季》中有好几期都有笑high了的时刻,但是不拉进度条不倍速我是肯定不乐意的。B站上的UP主们倒是有不少有意思的视频系列,比如《FIFA21之门将赵向前系列》和《奇葩小国系列》,会玩梗的UP主太宝贵了呀,要珍惜!嗯利好B站😂。
2月初的时候 Clubhouse 突然就火了起来,我也在试用了一周,当时体验还行,播客圈的主播们有不少都在上头踊跃表达,但到了第二周就发现,有意思的房间明显少了,一周都没有啥有兴趣的,后来再也没有长时间听过。。可能是我加入得晚了,大家的瘾都过去了。。即时的内容毕竟还是竞争不过其它精心打造的的播客或者有声书呀。
至于正经播客,发现了《三五环》这个挺不错的!产品经理的视角,很多真诚的分享,有点以前听张潇雨老师的《得意忘形》的感觉,但是内容是更加贴近自身了不少。
鉴于任天堂的良好印象,我们第一时间就入了新发布的《马里奥3D世界》,果然不负期待!游戏难度曲线平缓,3D世界里死太多次就会出现无敌浣熊,而狂怒世界就像是一个开开心心的小奥德赛,任天堂果然NB!此外我们还刚开始玩口碑很棒的《双人成行》,暂时感受还不错,玩完了再反馈。
春天我还把《刺客信条·枭雄》打通关了,有了绳枪之后再也回不去慢慢爬上楼的年代了,朝着RPG风格的变化我也很喜欢,至少,比大革命好玩。
□
]]>全书第一章上来,就介绍了近代以来的历史学观念变迁,一步一步的变化非常清晰:明朝理学心学之争催生了回归原始经典去探求孔孟本意,清朝的文化高压逼迫文人士大夫们只能钻研训诂考据,清末西方列强的涌入引发文化的剧烈冲击,继而诞生了严肃反思的疑古派。
疑古有了越来越强的动机,其中最强的动机是——救国。要让中国从虚伪中解脱出来,用科学的方式面对真实,面对自己。
在清朝后期的历史环境下,我非常理解、支持这样的想法——在无处归因的绝望下,想要打扫干净屋子再请客。所幸,之后陆续出土的各个考古证据将从文献之外为历史探究打下坚实的根基。
这也是杨照老师这本书乃至这个系列的核心出发点——从考古的角度出发,重新认识中国历史。
书中当然也有我觉得不够好的地方,比如提到“夏商周断代工程”,说「将武王伐纣的年代断在公元前1046年,这个结论并没有说服所有古史研究者」。这里我记得断代的主要论据是说武王誓师的那天,天空中有巨大的彗星略过,按照轨迹和亮度判定是哈雷彗星,倒推回去才确定年份和具体时间的。这个论据我觉得非常有说服力,书里没给出来。
以下总结自书中的“暴论”,各有强度不一的考古证据支持,有些是基于考古依据做出的合理推测,不一定全盘接受,但可以姑且接收,直到被更新的研究推翻。
新石器时代是最早可以追溯的年代,因为从这时候开始,才有「文化」的内容出现,才有陶器等人造物留存下来。中国新石器时代文化不是从一个中心逐渐散布到外围其他地方,而是在一个时期中,许多不同地方满天星斗般各自发展进入了新石器时代,然后产生了彼此之间缓慢却复杂的互动交流。
这些满天星斗般散落分布的新石器时代文化,就是后来夏文明与商文明的主要构成元素。大汶口与良渚这两种文化是商朝重要的前身;仰韶文化——尤其是河南仰韶文化——可能是夏朝与夏人文化的前身。
夏商周三代,不是传统想象中的三个接替的朝代,而更接近于三个不同地域的三个部族,三种不同文化。在很长一段时间内,夏、商、周其实是并存的,在东边是商,中间是夏,在西边则是周。至少甲骨资料就清楚地显示,周人和商人至少有两百年的时间是重叠的。
夏人最有可能的重大突破是将夯土技术用于兴建城墙,改造了中国新石器时代聚落的形式,让它变成以城为中心,向外放射,重新编组人口分布为城间、城邦关系。
商人基本上是一个鬼神民族,他们擅长运用人所不能理解的现象进行恐吓,将许多不同的氏族收编。掌握鬼神现象,要追求超越力量对人间的介入,所以才有了那样的青铜器,也才有了文字。文字与占卜关系密切,文字本身就是神力的媒介。
周人则是城邦改革过程中,最早或最有效地将地理空间和氏族血缘原则联系在一起,巧妙运用氏族组织力量罗致人才。
商朝在东方,因缘际会培养出驯服及畜养大型动物的特殊本事,能够驱策远大过于人力的兽力。如此一来,周围的其他部落打不赢有兽力协助的商人,不得不臣服其下。
在驯服、运用兽力的过程中,商人必然和动物发展出特殊的关系——动物既是助手,也是威胁。人必须拉近和动物的距离,才能充分利用动物力,然而,和动物越接近,动物能给人造成的伤害和威胁也就越大。当动物“翻脸不认人”时,人就在动物旁边,跑都跑不掉。换句话说,这样一个民族,随时和一个比自己更大的力量相处,借由控制这股随时可能转过来毁灭自己的力量,而得以发展壮大。这种心态,就成了商文化的底蕴,也是他们看待世界的根本模式。
那是一个恐怖的年代。甲骨文中明确记录着商人经常以屠杀羌人来进行祭祀,但商人并非把羌人当做是奴隶,商人根本不把羌人当人!
对待人方、鬼方和共方这些经常与商人打仗的部族,战争行动被称为“伐”,商人行动之前要进行的是关于战争和战事的卜礼。然而对待羌以及其他几个今天无法传写为现代中文的民族,甲骨文的用字却是“猎”,行动前的卜礼内容,也是卜猎。
换句话说,在商人的世界观中,人方、鬼方和共方属于人的范围,羌却属于动物的范畴。因而那种杀了大批羌的祭礼,在祖甲改革之前,祭典中经常列着“牛三百、羌五十”。牛和羌是并列的。到了商后期,情况稍稍有些变化,出现了“羌二人”的记载。
此外「羌」与「姜」系同源。羌人后来与周人联盟,姜子牙的故事我们就都知道了。
在商朝中应该存在一个二元执政系统,这一位商王出自A氏族,下一位就出自B氏族,再下一位又是A氏族。因为考古证据显示,奇数位的商王用的是占卜方式与偶数位的商王用的都不一样,二者内部却一样。
在所有当前能有把握解读的古文字系统中,只有一个文明,只有一个社会,其文字系统没有走表音的路线,那就是我们。
书中对此给出的解释框架是,因为文字是在商人的手里成形的,所以中国文字没有走上表音的道路。从一开始,文字就是一种神秘兮兮、主要为记录神秘经验而创造出的符号。文字是刻意被保持其神秘性的,因为这涉及商人统治的基础。别人占卜都用骨,商人就刻意不用骨或少用骨,选择了其他民族无法用、不会用的龟甲来占卜。青铜器、龟甲、文字都一样,都指向商人具备秘密管道,拥有秘密权力,可以与另外一个世界超越的、巨大的力量直接沟通。在这种状况下,商人中的能卜筮的上等阶级(最大的就是商王,大巫,拥有最终解释权)当然不会希望他写的卜辞以及记录卜辞的这一套文字轻易被理解。那是与巫术有关的一套秘密系统。
而商人开端的这套文字系统,在周人手中和神权分离了,走上一条不同的人本、人文道路,包括要让文字与一般语言结合。但这一套文字系统毕竟已经成形,甲骨文包含了四千多个字符,那是一套复杂、完整的表意系统,没有道理也没有办法缩减这个系统,去构筑纯粹表音的功能了。
商人求问鬼神,要差异化竞争的周人肯定会朝着不同的赛道发展。周人鬼神,转而强调可以在现世中观察、掌握的东西。他们的天越来越远离人格神,要了解天,不必也不能诉诸超越人间的经验,反而是回到人群里,看人民的反应。商朝晚期的文化其实也有朝着这个方向改革,祖甲改革的基本方向,也是降低鬼神对于人世的直接干预,要将人和鬼神的关系予以制度化。然而毕竟商文化建立在浓厚的鬼神信仰上,只有周人才能建立一套离开鬼神、彻底以人为本的新观念。
武王伐纣之后,还有第二次更加重要的战争——周公东征、或者说周召东征。甚至可以说,这场东征才真正建立了周朝后来三百多年的和平以及前后八百年的基业。
武王灭商之后把一些商朝的重要人士迁到了周人的根据地,然后就把朝歌交给了纣王的大儿子武庚管理,又安排了管叔、蔡叔和霍叔在旁边监视。武王去世后,周公掌权,东方的管叔蔡叔及商朝旧势力叛乱,史称「管蔡之乱」。于是周公东征,军事规模和困难程度甚至超过了武王伐纣。胜利后,周公就被迫要思考如何对东边的商朝故地进行统治的问题,再撤回去只留象征性统治的话可能会造成下一次的管蔡之乱。因而有了封建制。
分封,一个个武装殖民小分队获得土地的分封。商人被打散,融入到周人的小团体中,一起远离故土。这样的分封不是福利,是任务。原先各属于不同的姓族,各有不同的来源的人,现在必须齐心协力,才有办法在新的地方落地安居,开创新天地。有着共同的目标与危险,再加上联姻以及血缘为纽带的宗法制,周的组织力才能在当时独步天下。
因此,管理学大师周公可以说是中国的第一位政治家,至少是第一位有信史可查、有文物佐证的政治家。此外,2200年后成吉思汗的九十五千户制应该也是异曲同工的。
从另一个角度上说,分封制也提高了史官的地位。策命礼是封建制的核心,诸侯的策命礼中,天子与诸侯都要在场,除此之外,史官也要在场,负责记录。商朝也有史官,但主要只是记录一下占卜结果与应验情况,周朝不信鬼神了,史官开始记录分封的契约,记录在鼎上、在竹简上,内容的最后以「子子孙孙永宝用」结尾。
所以,说周是中国文化的真正奠基者毫不为过。幸好流传下来的不是商的文化啊。
]]>↑ 今年的 BGM 选的是野孩子的《竹枝词》,多个声部配合在一起,连绵不绝的歌词一波还未平息、一波又来兴起,层峦叠嶂的人声复合体一阵阵推来,给我纷乱的内心以巨大的慰藉。
魔幻的2020过去了,并不想念它。无关疫情,我只是已经 “burn out” 了。
做出了一些成果,但当我终于意识到已经没有精力与时间去达成剩下遥遥无期的目标时,我并没有感觉很难过,反而有种大大的解脱。嗯,不读了。不读啦。
自诩也摄入过许多心理学的知识,但当时不时陷入到情绪上的低谷时,还是常常处于不自知的状态。应该没到 depression 的地步,anxiety 多少会有一些。噢那疫情还是造成了很大影响的——向外的交流无论从带宽还是流量上都比之前更少了。陷入自我的循环执念后,不自觉地就会更加忽视家庭,同时,
垂死病中惊坐起,现在的我并不讳言这些。并不后悔,但总归会觉得有些遗憾,间或夹杂着对人生米字路口的期待与不安。至于未来,我想以我之所学帮助人类更好的剥削机器、从而减少人类之间的剥削。🙏
希望2021和气致祥,万象更新。
阅读向来是我的舒适区与避风港,2020的状态下更是变本加厉。一共读完了72本书,冲击历史高位。依旧是社科类为主,虚构类为辅。除了继续主力的 app 微信读书之外,还用了好一段时间 Libby ——这个 Bing 发现的新 app,能够借阅村里图书馆有限的电子书+有声书资源,它与微信读书、喜马拉雅一起构成了听书第一梯队,微信读书 + Kindle + Kybook(手机上的 epub/djvu 阅读器)成为阅读的第一梯队。
2015 | 2016 | 2017 | 2018 | 2019 | 2020 |
---|---|---|---|---|---|
58 | 79 | 64 | 25 | 53 | 72 |
春天建了一个「编年世界补完计划」的书单,根据时间线解锁历史片段(已完成部分在这个豆列里,对应的乱序篇在这里)。但到了年末,我忽然觉得有些空虚,对整理好的书单失去了许多兴趣,编年书单就算都看完了又能怎样呢,热情转移了一些。继而重新燃起了技术书籍的兴趣。Humble Books 上时不时有程序猿书籍大包,以前只是主要在上头买游戏,感觉亏了好多。
在这样周期性的反思下,今年的选取标准比去年更严格了,全年回顾下来我最喜欢的作品只有下边这些。
《旅行人信札》首当其冲。陈嘉映老师这种「质直准确干净」的文字实在是太符合我的口味了,专门写了笔记。40年前游历大半个中国的游记,把我每次旅游归来的心境描述得淋漓尽致,也恰好是我读完这本书的恍惚感觉:
躺在铺位上,觉得轻松,从这两天的奔忙中喘定一口气。但不知为什么,当站在甲板上等待发动,当江风吹进舷窗,却有一种忧郁感;像什么呢?像我们站在青春的边缘,感觉到时间的离心力正在把人们抛出去,抛出动荡、冲击、炫目的人生中心,抛向安稳的常规生活。就是那种即将寂静下来的惜别之情吧。
另一本在文字上击中我的是诗集《月光落在左手上》。由此去翻了其它的一些现代诗,却都没能成功共振。只有余秀华老师,只有这一本,只在第一次读的午后窗台上,胸口的情绪被催动涌出,可见诗在合适的情境下出现也是一种缘分。
说到文字,今年(才)第一次读了马尔克斯的《百年孤独》和《霍乱时期的爱情》,很喜欢,原因却比较另类——马尔克斯喜欢写全名😂。因为这个,喜马拉雅上的有声书就不像其余多用他/她/它的名著那样听着容易走丢,所以终于开始看了才发现,这两本早就加到单子里的名著比预想中好读多了。
虞云国老师的《细说宋朝》是2020年看完的历史类图书里最喜欢的。抽丝剥茧,有机融合了纪传体和重要事件脉络,还介绍了政治军事制度与民间文化科技,面面俱到,五脏俱全。大宋、大怂的民间文化是真的发达,顶层的统治阶级也是真的软怂。
若是将还在读(1月)的作品一并考虑进去,杨照老师的《讲给大家的中国历史01》绝对要挤进 Top-2,这也算是提前备战2021年结了。且先别被流俗的书名干扰,杨照老师从考古学的进展出发,结合史料讲述更新的中国历史观念。看完第一部分明清以来的历史观念变化我就 Orz,看完第二部分结合史料讲述新石器时代与夏商周时代我就 Oπz,当成了睡前故事念给 Bing 听。
除此之外,觉得不错的历史类书籍还有:
年中读了斯诺登的自传《Permanent Record》,很喜欢。从身为技术宅的青少年到跳级上本地大学避免中学处分,从参军入职 CIA 到意外发现美国政府监控项目痕迹到公之于众继而逃亡的决心,细节非常多。看到以创建定制化 news feed 的名目巧妙收集证据,看到周密的计划以及行动之前如遗愿清单一样地告别女友,实在是有血有肉👍。中文版有删减,因而斯诺登自己在推上放出了中文版。看了下其实真没啥好删的。微信读书上的版本里,删减部分在书中基本都用省略号……高亮了出来,微信读书上的网友们也在评论中热心补全了😂。
另一本喜欢的非虚构类是《最好的告别》,讨论衰老、养老、临终医疗,共鸣强烈。以后滚滚老了、爸妈老了、我们自己老了的时候,我也不希望牺牲生命质量来换取生命长度。🙏
根据豆瓣记录,2020年看了17部电影、33部剧集、13部综艺,都是和 Bing 一起看的。在疫情与心态的双重影响下,电影数量显著降低,剧集数量有增加,总量显著下降,而花在B站的时间可一点没少(B站股票加油💪)。
2015 | 2016 | 2017 | 2018 | 2019 | 2020 |
---|---|---|---|---|---|
124 | 111 | 115 | 75 | 76 | 63 |
又翻了一遍才确认,整个2020年,我竟然没能挑出一部觉得真是好呀的电影,这从另一方面佐证,过去一年的观影数量确实是少多了。
最喜欢的剧当之无愧要数《隐秘的角落》!电影般的质感,全员在线的演技,没有一个拖后腿的槽点,舒服!这之外,
B站5月上线了四大名著的老剧,我们就着弹幕看了三国水浒和一部分的西游红楼。B站的弹幕真是把这些老剧的观影体验带到了一个船新的高度!
综艺方面最大的惊喜在秋天爆发——《说唱新世代》。只要忍过第一期的上半集,后边完完全全都是宝藏。这种能真正生根发芽本土化,带来更大格局视野的嘻哈才是发展方向嘛。
另一个我们都很喜欢的节目是《守护解放西2》,难以想象我们居然在19年漏过了《守护解放西》。这种贴近生活的满满烟火气太令人满足了,B站做节目有一手哦。
Bing 还很喜欢《浪姐》,而节目不免有些高开低走。这才不到半年,浪姐2就又上线了,不禁令人想起声入人心😓。
《乐夏2》曾经我是很期待的,但上线之后我们都有点失望,觉得没有那么真诚的感染力了,看看《德夏》就够了。
2020年,情绪的出口改小了几扇窗,也扩了半道门。在音乐方面更大的变化其实源自年底的一件新乐器:
作为生日礼物,Bing 送了我一个电音蝌蚪(Otamatone),从小五音不全但就爱跟着歌哼哼的我爱不释手!乐器本身偏娱乐,手指能按压的区域也是个连续区间难以精确校准,但真的很容易上手!借此机会,终于摆脱了只会看简谱的蒙昧,从欢乐颂到国际歌(的前两句),就算调不准还是很有成就感!这么说来,几年前我的音乐素养真是低啊,朗朗上口的大众和弦就能满足。
在有声书的时间争夺之下,2020年我的播客收听量有着显著的减少,但从井户端会议《回望2020❸【80后传媒史】播客江湖2020》这期来看,整个播客行业的发展似乎正处在如火如荼的阶段。谈论中总结的很棒,如果只有谈话模式的播客,那么其天然就会内卷——新下凡的大佬一定会挤占底下的人的空间。这一点我也有体会,对于提供的信息、情感都不如优质有声书的播客节目,我何不去听沉淀好的书呢。
行业如火如荼的另一个征兆是出现了小宇宙这样的 app,虽然其在播放、补番等方便程度上还有很大的进步空间,但终于有了个不错的评论社区。于是这篇里提到的播客链接就都换成了小宇宙链接。小宇宙是即刻团队做的,即刻曾经也是我很喜欢的 app 呀,可惜在或主动或被动剥离工具属性、想要做个社区之后就渐行渐远了。
去年我还列举了一大批的播客列表,今年应该会精简不少:
最强烈情感提供者——《谐星聊天会》。自从谐聊19年上线伊始,我就是节目的忠实粉丝了,没心情听其它东西的时候我会把谐聊的往期再翻出来听,有些梗都记住了还是会哈哈哈哈哈,谁不喜欢天花板奇墨老师以及插话家郝雨老师呢。安利单口不能设置太高的预期,就不放单期了。
最强烈信息提供者——《忽左忽右》。能找这么多广谱的社科专业嘉宾来聊各种东西,真令人向往啊,以至于对 JustPod 旗下出品的播客都有很高的信赖和期待。
比如他们旗下的另一档《鼓腹而游》也很棒,《006|中女崛起与让人哭笑不得的「第三性」》中就谈到对于中国乡土作家笔下对中年女性的描写的一些观点,都是我之前不了解觉得非常新鲜非常优质的讨论👍。
再比如他们旗下的另一档《东亚观察局》,补上了东亚政治文化的盲区。《东亚观察局》是在 Bing 新发现的《井户端会议》之后发现的,井户端的80后传媒史系列特别棒,比如《春晚篇》,再如《蔡康永篇》。
在具体各个领域的强烈信息提供者还有:
以及人文类的故事 FM和迟早更新。最后,还有啥都能聊的日谈公园、大内密谈、机核网 GADIO。
疫情宅在家里之后,Bing 和我玩游戏的机会就更多了,都是些本地双人合作类的游戏,Switch 在这方面的游戏资源真是太丰富了,任天堂NB!我们对《前进!奇诺比奥队长》、《耀西的手工世界》、《星之卡比 新星同盟》都很满意,包括非第一方的合作解谜类 《Good Job》以及刷刷刷的《泰坦之旅》。还有《纸片马力欧》Bing 很喜欢,可惜没有双人模式。
Steam 上的游戏我们喜欢的还有《猫咪斗恶龙2》、《使命猎人 Quest Hunter》、《破门而入:行动小队》、《死亡方块》。他们最大的共同点是——不难!以上这些我都加到这个手残豆列里了。
上半年宅在家里这段时间,我们还和小伙伴一起联机玩《Human: Fall Flat》,也是一大欢乐源泉,可惜已成绝唱。😓
2020年我自己也玩了不少游戏,最喜欢的是年中上线的《赏金奇兵3》,一代的老粉热泪盈眶,这类战术潜入游戏它出一个我支持一个。后来在 PS4 上玩了一段时间的实况足球,觉得过久了就删档。真希望将来实况这类足球游戏能语音辅助控制,喊一句「传左边啊」中场就不会再往前踢,不要XJBT。
黑五的时候趁着打折,入了些刺客信条系列的特价包或二手盘,1代、2代三部曲、北美三部曲、大革命、枭雄都玩了一些,除了2代,最后都云通关了。希望将来能有毫无负罪感玩游戏的时候,也许在退休后?
□
就到这里吧,祝所有人好。
]]>年终将至,下一篇就又是年结了。
秋天以来倒是又翻了几本书,看完喜欢的只有《最好的告别》。👍写得真好,共鸣强烈,以后滚滚老了、爸妈老了、我们自己老了的时候,我也不希望牺牲生命质量来换取生命长度。
除此之外就只有还剩1/4没看完的《百年孤独》,早就加到单子里的名著,终于开始看了才发现,比预想中好读多了!喜马拉雅上的有声书配合着读,难得没有在半途走丢。不少人诟病的名字问题,也是直到第三代、第四代人出场的时候才终于没法凭空记住。
另外,喜欢的作者乌贼又发新书了,但我还没有很强的意愿开始看,留待哪天兴之所欣再说吧。
在我们都超级喜欢的《说唱新世代》完结之后,饭间下饭的好看综艺就断档了。新剧没看几部,《半泽直树2》果然是名副其实的大爽剧!名侦探半泽剧情一波接一波根本停不下来,因而一下子就又荒了。
于是重新光顾了B站上放映的老剧们。B站在5月份上线了四大名著,我们把《三国演义》看完了,接着还在看的是《水浒传》和《炊事班的故事3》。现在看来,水浒演的真好。B站脑洞网友们的弹幕,把老剧们提升到了一个全新的高度!
另外,热刺纪录片《孤注一掷:热刺》我也非常喜欢,开拍的时候谁知道会有鸟叔、伤病潮、新冠、内讧等等波澜起伏呢。热刺这波大赚。看鸟叔带团队,看现代足球俱乐部的日常管理各种细节,收获良多。
因为在听书,播客听得少了一些,但 Bing 还是新发现了《井户端会议》这个老台,居然这么有年头了。讲到80后的电视史/传媒史这个特辑的部分非常棒👍。
同样一起发现的还有《东亚观察局》,也很棒,补上了东亚政治的盲区,一口气把所有节目都听完了!主播们很专业。小星老师要是回答问题的时候先抛答案出来就更好了,基本都会先绕两句..
此外还有《美轮美奂》介绍选举人团制度的这期讲得不错,介绍了不少弊端,理性看待。
略微惭愧的说,秋天以来游戏玩了不少。
首先是我们一起玩了的《超级炸弹人R》,这小破游戏实在是一波三折。最初入手第一天,它就使得switch手柄漂移的问题暴露无遗,于是官方免费换了个新手柄。接着,我自己试了下,觉得不好玩,于是 Bing 在 ebay 上已经出掉了。可就在要寄出的那个晚上,我们俩一起玩了一会儿,觉得意外地还不错,于是只好又买了一个😓。可在体验过所有剧情模式(实在是太短了)和战斗模式之后,游戏就没有新内容了。我们刷了一会儿,好不容易攒够钱解锁了个传送带的新地图,结果AI智商跟不上,总是自己把自己炸死,玩了十几盘新地图,一次都没判定为有效局😤。总结来说,这游戏剧情模式短、AI弱,地图少,一个简单的赛后杀/死总结都没有,真是怀念泡泡堂和QQ堂的日子啊!
此间大火的《原神》我也试玩了下。最初在知乎上看到一边倒的黑,心里并没有留下什么印象。结果看到PS上免费玩,就体验了一番,第一幕蒙德地图打完,无氪,体验还不错,可到了新地图璃月的空档期,看到还有那么多要刷的东西,觉得累,就在点亮所有地图上的俯瞰点之后弃了。我并不觉得原神有那么不堪,相反,它还激发了我重新去开始玩塞尔达的兴趣😂,刚入 switch 的时候我们也试过塞尔达,可当时没有玩下去,就把卡带出掉了,想不到现在也要考虑二进宫..
搜了下,塞尔达现在居然还是保持在40多刀的价格。由此可见,switch 的游戏真是保值,玩完再出甚至还能赚,一两年后再卖也都还是高价,简直是游戏界的苹果。截至目前,入手之后感觉亏了的游戏可能就只有《马里奥3D全明星》了,买之前以为里头的《马里奥·银河》能和当时玩《马里奥·奥德赛》一样给我们超棒的双人游戏体验的,结果2P就只能挥挥手捡星星,简直无聊。
于是,在这次黑五期间我也入了俩上线 switch 的刺客信条系列。历史向的刺客信条系列我久闻大名了,好早以前在某次育碧限免的时候玩过一下黑旗,当时操作不熟练,第一次在城镇里和小兵白刃战都没打赢.. 就愤而卸载了。这次从1代开始感受,从GameStop淘来了1刀的xbox360盘,熟悉了防反操作之后完全没有难度嘛,不愧是狂战士信条。不过我可能是正版游戏的受害者?第一次到大马士革、Acre、耶路撒冷的时候把所有路人任务都做完了,于是第二次再去,要求我做3-6个路人任务才能继续剧情,都没了啊怎么做!游戏就这么卡住了..😓 2代就好多了,PS港服上入的特价 Ezio 合辑,跑酷手感比一代好很多,很多地方都有历史知识的小 notes 介绍,这就是我想象中的历史向游戏啊,吹爆!
🙏🙏🙏
□
]]>希望 deadline driven 的状态早日过去,光是保持住想写代码的劲头就已经竭尽全力了,能量槽可一定要坚持住啊。🙏
于是躲入安全区重新看了一些网络小说。
5月份《诡秘》完结之后就没再看了,毕竟在门槛被《诡秘》提升之后要找到一本臭气相投的、又尚未太长而导致连续看几天继而引发罪恶感的书真是太不容易了。
但是《绍宋》真的是太想要推荐了,亲王在昨天的微博中也刚刚夸到它。一句话总结:对于我这样的历史爱好者来说,真是太爽啦!!
大宋有多么怂,犹未雪的靖康耻有多么离谱,正巧我最近在看虞云国老师的《细说宋朝》感受颇深,听者又有谁能忍住不骂娘呢?!《绍宋》穿越至南宋第一位皇帝宋高宗赵构,面对聚是一坨屎、散是满天星的失败主义大怂群臣,面对节节紧逼的大金「蛮族」,一步一个脚印,力挽狂澜,前几卷每卷以一场大战结尾拉到高潮,节奏太棒了!没有什么系统,没有什么降智光环,这才是真正的「爽文」!
话说回来,虞云国老师的《细说宋朝》这本书也写的是真好,我还剩最后几节就在喜马拉雅上听完了。全书抽丝剥茧,把纪传体和重要事件脉络非常好地结合了起来,是纪事本末体?既说人物、又说事件、还介绍了政治军事制度与民间文化科技,面面俱到,五脏俱全。大宋的民间文化是真的发达,顶层的统治阶级也是真的软怂。
除此之外,这俩月里就没有其它看完觉得推荐的出版书籍了。倒是还根据顾扯淡老师的安利看了《柯学验尸官》,前期非常惊艳,用法医知识平推柯南世界里的奇怪案件,但看到快200章时感觉有点重复,趁着理智期弃了。
还根据安迪斯晨风的推荐看了《玩家超正义》,以前我是完全欣赏不来无限流的小说的,这本书改变了我的看法。原来当副本以死去之人留下的「噩梦」形式存在、并与主线剧情互相关联呼应的时候,效果可以这么好!我觉得作者直接以这些设计精巧的副本拿去写剧本改编影视、游戏的话,会取得比现在更大得多的影响力!我看到本书的时候,它已经连载很长了,以至于后期玩家群像的视角我是一点都不感兴趣,跳着只看了副本部分,然后心安理得地弃了。
从去年乐夏以来,我的安全区小山洞里也一直留有音乐的一席之地。
但《乐夏2》上线以后,我们都有点失望,觉得没有那么真诚感染了,在Bing最喜欢的超级斩和我最喜欢的福禄寿都被淘汰之后,我们就决定弃了。看《德夏》就够了。😂
去年乐夏之后,我从《摩登天空9》这张新专辑里头听到福禄寿的《我用什么把你留住》,现在还在红心歌单里。节目里最喜欢的表演是野孩子的《竹枝词》,啊啊啊啊啊,他们那一波还未平息、一波又来兴起的人声复合体,层峦叠嶂,挠到了我灵魂深处的痒痒!!
还有一个收获是节奏大师大波浪乐队,当心情压抑时,大波浪的节奏总是能安抚到我。话说回来,我发现另一个同样能抚慰心灵的节奏来自——《追忆似水年华》(周克希译本,华东师大出版社 2012)。虽然至今为止没读几页,但读几句就会被优美的文字带走,如同音乐的旋律一样,这就是意识流吗,这就是冥想吧。
这么说来,几年前的我,音乐素养真是低啊,朗朗上口的大众和弦就能让我点赞。😂
与乐夏2相比,B站上线的严敏老师的新产品《说唱新世代》就是完完全全的惊喜了。忍过第一期的上半期,不会后悔的!喜欢主要是出于其格局与视野,「我最NB,你最SB」这样的说唱调调见多了,节目里满满都是唱每个人自己不同视角的作品!恕我直言,天下苦秦久矣,这种才会是真正生根发芽本土化、真正蓬勃发展的嘻哈。
笑声是保护壳。
自去年《谐星聊天会》上线伊始,我就是忠实的节目粉丝了,最开心的几期我反反复复听了好几遍了,过一两个月再听的时候还是会被逗笑,比如奇墨老师大放异彩疯狂输出的这期《vol 24. 老公,妈妈爱你!》,即使知道安利单口不能设置太高的预期,我还是要说,哈哈哈哈哈哈哈哈蛤!我打算再都听一遍,把其中最喜欢的几期列举出来,年底总归是会上线的,吧。
于是我成为了奇墨老师的粉丝,因而,奇墨老师在《脱口秀大会3》上被多次捧杀我表示不开心,在此特地隐去链接以示抗议。我看完了脱口秀大会3里的大部分段子,李雪琴真棒!赵晓卉真棒!颜怡颜悦真棒!
话说回来,这样线上的方式真的可持续吗?在网上说过一次的段子,所有的观众就都默认已经听过了,不能再用了,就得想新段子了,哪个创作者经得起这样的榨取呢。
单立人加油!💪
老游戏,是港湾。套路已知,bot翻不出花样;种子随机,乐趣唾手即可得。
几个月前我们一起玩了《泰坦之旅》,switch 版的,刷刷刷不需要脑子。试了不少,还是高攻击的征服者职业最好用。后来发现 PS4 版也能双人,而且游戏不会时不时崩。。
后来亲自重新沉迷了一段时间实况足球。以前是FM玩得更多,但都已经没有太多时间玩了。曾经从 Walmart 的降价区淘到了PES17,后来又从 gamestop 淘到了 PES18,前后玩了好一会儿。大师联赛踢半个多赛季,觉得过久了就删档。这一版的身体冲撞判定很松,是习惯的风格,不像 PES20 随便一撞就犯规。话说,实况这类足球游戏,要是能语音控制就好了,比如「漏球过去」这样的指令,用语音说就比按按键精确多了,就是不知道语音识别的速度能不能跟得上。
能量槽可一定要坚持住啊。🙏
□
]]>上周,我们在看B站前不久上线的《三国》时,因为吕布而联想到了楚云飞,继而想看看《亮剑》。可惜《亮剑》已经在B站下线了。这样的盛宴怎能没有B站的传统艺能——弹幕加持呢?!于是有了下边一番折腾。
.bat
通过优酷自带的ffmpeg
就能把视频转成mp4格式。这样一套下来,总算是能看啦!
]]>这俩月最大的惊喜是 Bing 发现的这个app—— Libby,从本地图书馆借阅 kindle 版、音频版电子书,资源多样性取决于本地的图书馆的藏书丰富度。说实话这些资源本来也都在微信读书和 Kindle 上备好了的,但是加入书单太久已经沉底了,多亏了 Libby 的扰动又给捞了出来,凭借着新鲜感翻开/播放、后边就轻松了。
就这么处理了不少冗员,首先是《深度工作》与《Digital Minimalism》,前者还写了笔记的。疫情以来压得太久了有点疲倦,借着这两本可算是微微恢复了一些工作状态,稍稍地更「真正自由」了一些。
也读了塔勒布几部曲中的《反脆弱》与《非对称风险》,也都写了笔记。先看的是后一本,前一本最后都快看不下去了,觉得是屎味冰淇淋,观点呢确实振聋发聩,但是说理冗长、例子偏激、立场先行,常常在反智的边缘反复横跳。
还有斯诺登的自传《Permanent Record》很喜欢,中文版有删减(看了下,真没啥好删的),因而斯诺登自己在推上放出了中文版。我看了微信读书上的版本,删减部分在书中基本都用省略号……高亮了出来,微信读书上的网友们也在评论中热心补全了😂。
这本自传有血有肉。互联网下的隐私与监管、民意与官方何去何从,这是我们这一代所面临的的时代问题。从身为技术宅的青少年、到跳级上本地大学避免中学处分;从911到参军到入职CIA;从意外发现美国政府监控项目痕迹、到以创建定制化news feed的名目巧妙收集证据;从公之于众继而逃亡的决心、到周密的计划(第22章开始介绍计划细节时候的自豪之情溢于言表)、到行动之前如遗愿清单一样地告别女友,书中描绘的斯诺登是个满怀自由开放互联网理想、有能力并且有意愿与他所认为不正义的美国政府监控项目作斗争的热血青年。
相比之下,同期另外补完的《乔布斯传》我就颇有微词。乔帮主本身像先知,带着超强的感染力和极致的美学追求来改造世界。但这书却头重脚轻,早期人物形象很具体,中间离开苹果的10年开始超快节奏,重回苹果之后开启爽文模式,好产品一个接一个,但如何转变、前后期相似的方法论如何缔造出不同结果却并不清晰,看上去似乎仅仅是「大势不同」+「中间10年的失败经验成长了」的缘故,看完有些失望。
数了数,这俩月里看完的剧里喜欢的真不多,最喜欢的当然是《隐秘的角落》,怎么看怎么舒服,全部都在线没有一个拖后腿的槽点,舒服啊!综艺方面也在追,万众期待的浪姐放映了,但确实有些高开低走;乐夏2也上线了,但也还没有感觉到第一季连夜补4期的那种亢奋,等都放完再看看它俩套路几多深。
游戏方面,《破门而入:行动小队》是我们玩得比较开心的一款,双人的话不难,我在前边扛着盾、后头火力疯狂输出,就是容易俄式救援。自己最喜欢的当然还是刚上线不久的《赏金奇兵3》,一代的老粉热泪盈眶,这类战术潜入游戏它出一个我支持一个!
□
]]>《反脆弱》。
界定了「反脆弱」及一系列配套三观,遇到波动风险不至消亡反而成长,确实振聋发聩。但是说理冗长例子偏激立场先行,常常在反智的边缘反复横跳。
反脆弱的概念似乎出自进化论,整体的反脆弱依赖于个体的脆弱,正是个体的演化优选导致了整体的进化,从而抵抗风险甚至逆风生长,而不仅仅是robust。因而,对个体层面的过度干预、对系统的过度干预、对波动的平整都会减损整体的反脆弱性。
由此出发,时间是另一维度上的波动,所以经过时间考验的东西常常是反脆弱的。塔勒布对这点推崇备至,甚至只吃存在千年以上的饮料,践行负向知识(什么是错的)≫正向知识(什么是对的)的偏保守认识论,毕竟挑错容易,所以错的难对而对的易错。
书中举例常常过于极端,比如吹英制单位因为「这是古人直觉的产物,使用他们只需要付出最低的认知努力」;比如喷普通学术论文在5年后仍然重要且有趣的概率不超过万分之一从而说科学的脆弱性,可这不正是个体论文脆弱导致学术共同体反脆弱的绝佳例子么。🙄
]]>《深度工作》。
我体验过沉浸式学习的心流、收获过灵感与成果,所以本书第一部分论述「为何深度工作的状态是有益的」于我而言没有多少新东西。能够集中注意力专注学习本来就是一种需要习得的能力,诚如作者所言,在肤浅状态下度过足够久,可能就很难回到长期专注的状态中了。疫情以来便是如此,隔离在家太久了,以至于这样的沉浸式体验我需要重新拾起。
万事开头难 + 破心中贼难。那么怎么办呢?作者的观点是:「培养深度工作的习惯,关键在于越过良好的意图,在工作生活中加入一些特别设计的惯例和固定程序,使得进入并保持高度专注状态消耗的意志力最小化。」简而言之,让习惯和本能压制惰性与心猿意马。特此推荐 Fabulous 这个 app,是时候重新用起来了。
具体到工作时间的模式,还是书中所谓的「节奏哲学」最适合我,即养成固定的习惯,从而不需要投入很大精力便可以进入深度状态。毕竟「做计划、然后分治、每天做一点」——这不就是支撑我到今天的核心算法嘛。书中说一天大脑能够达到的深度工作的时间大概是4h,写代码废寝忘食起来可比这久多了。而剩下的「双峰哲学」——work hard, play hard——容易迷失并带来强烈的负罪感;「记者哲学」——抓住每个空闲时间进入深度工作模式——需要对所做的事情充满极强的热情或能带来强烈的满足,太不现实了。
书中提到的另一个点我也忽视了很久:上下文切换的代价,一旦大脑习惯了随时分心,那么及时在想要专注的时候也很难摆脱这种积习。因而如果有一丝丝的无聊就打发时间,那么人将很难实现最大程度的专注。这一点我做的不好,常常稍有空闲便切换到其它可看、可听的资源上。不仅娇惯了大脑,还减少了潜意识处理当下问题的时间,降低了灵感出现的概率。换句话说,人需要享受孤独,享受无聊,享受发呆。
对此,书中也给出了具体的应对,从深度状态切换到肤浅状态时段时不要马上开始,而是至少等上5分钟再开始上网。5分钟的时间并不长,不会过度阻碍你的进度,但是从行为主义角度来看,这却是意义重大的,因为这样做把你想要上网的感情与实际上网的回馈这两者割裂开来。
]]>《非对称风险》。
塔勒布是绝对的现实主义者,支持的是实践出真知、强烈的朴素实践理性,因而摒弃假大空的模型、或高举大旗干涉主义的普世价值观。简单来说,就是活下去、在自然选择中活下去,避免系统性毁灭!既然活着才是最重要的,那么就要避免爆仓的风险,就算单次爆仓概率(集合概率)再小,假若时间上积攒起来几乎一定发生(时间概率),那就是100%的爆仓概率。
从这个逻辑出发,对自身活下去构成一大威胁的就是站着说话不腰疼的他者,即如果别人说的话做的事没有承担风险(not skin in the game,即为本书主题),就可能损我利他,因此没必要认真对待。对方承担了足够的风险,我俩才是人类命运共同体。于己也是如此,有风险也不用怕,之前《反脆弱》里的观点是,只要自身系统是可再生可替代的,那么系统部件的脆弱性反而会增强整体系统的稳定性。
中间一大部分章节都在介绍各个方面的非对称性、没有共担风险的现实例子。比如官僚系统的一大隐患就在于此,一个人的行为和他本应此承担的后果被轻易地分开了。又比如谈到耶稣的人性——如果耶稣不是人只是神,那么他于十字架上就只是一场表演,而非承担苦难(风险),因此基督教必须认可耶稣的人性。
以上这些逻辑是自洽的,是本书的优点。但是这书它过于散乱了,越到中间越民科,靠旁征博引举例子来说服人,勉强算是凤头猪肚豹尾的编排。很多地方都能感觉到过于强烈的作者情绪,比如喷人挂人的时候。另外,塔勒布推崇并且不断提起的林迪效应(所谓不会自然消亡的东西,已经存在得越久,剩余预期存活时间就越久)有道理,但也留有争议,几乎陷入存在即合理的怪圈,封建礼教存在几千年了所以就该一直存在下去吗?脱离了本质原因的探究总归是无根之萍,而对本质原因的探究又落入了塔勒布所反对的对理论模型的(过于?)追求。
总结而言,塔勒布的观点很容易总结成一些亮点金句吸人眼球,但深入到具体全书中又时不时令人皱眉。补:豆瓣上排第一的长评总结得很棒。
]]>3月份的时候深深为疫情以来的嘈杂舆论场所苦,比如声东击西的《112 我们无处安放的记着身份》这期播客里就提到了从业者的经验,展现了真实的充满偏见的部分记者。出于对双标的厌恶和对可靠信源的追求,我们搜到了这个网站,基于历史报道对不同的媒体报社进行了中立性评估。从排名来看,相对而言最可信的信源就是美联社和路透社了,它们都更注重于「新闻的准确性本身」,而非注重「提出观点的时评」,后者所传达出的自觉或不自觉的固有偏见就太多了。
越来越偏激的信息环境从何而起呢?或许可以追责自1987年 fairness doctrine 的废除。此项原则于1949年设立,规定广播电视必须展现立场相反双方的看法。从1987年不再要求同时陈述两方观点起,配合着人与人连接难度的不断降低,大众的群体极化、信息茧房就似乎不可避免了。此时,一个社会是否还能在人本性依旧偏爱简单解释而不喜复杂系统的情况下大体保持理性呢?有些悲观。
又是鸭梨山大的一个季度,阅读一直是重压之下最稳定的快乐源泉。春天读完的书不算多,但是充满了希望——我开启了一个新的「编年世界补完计划」,其实就是在书单里把有明确着眼范围时限的那些单独挑了出来,依据时间线排了个序。过往已经读完的那些加到了这个豆列里,以后看完一本我觉得不错的就喜加一。对应的,「乱序世界补完计划」的已完成豆列在这里。
靠着新计划的激励(以及专业口播朗读的辅助),春天以来已经看完了《希腊人的故事》和《春秋战国真有趣》,都是面向大众的历史读物。前者出自写了《罗马人的故事》的盐野七生老师,她那絮絮叨叨的风格作为大众入门书真是再适合不过了。后者是与古希腊大致同期的春秋战国顺藤摸瓜故事链,名为春秋有故事更加准确一些,因为战国篇或是因为笔力不逮,陡然加速,春秋时期的连小国里的卿大夫斗争都要说上好一段,到了战国时期跳一章可能就是几十年之后的事情了。古希腊和春秋时期都是我此前懵懵懂懂的历史迷雾,这次下来扫盲不少很是开心,而且还能将其中的高光片段作为睡前故事讲!比如夏姬的传奇一生——人见人爱,因美貌杀三夫一君一子,亡一国两卿,NB啊!
在此期间,我也发现了「全历史」这个宝藏app,它提供了时空地图这个选项,可以查看某一年的具体历史地图!其它的历史人物关系网络等等的就不需要多推荐了。
除此之外,我还发现了 Kybook 3 这个手机上的阅读器app,写得真好!起初是因为要看 DjVu 格式的一本数学书补基础,从而萌发了手机上看 DjVu 这个需求。这个app的完美支持了 DjVu,以及其它 epub, mobi, pdf 等等格式,也不会有广告、瞎JB推荐等等烦人的东西,以后就在这上头看那些几乎永远不可能有官方电子版的书了!
4月时挑了《地狱厨房》当配饭剧,一起看了第十六季(2016)和第六季(2009),果然一点做菜技术都没看到,光看人撕逼了。😓 饭间还有《纸钞屋》四季,节奏与槽点齐飞。我把这俩当职场剧来看了,一个展现的是职场压力可以多大,一个展现的是职场恋情多么不可取。
相比之下,《Upload》所呈现出来的海量海量海量设定细节令人眼前一亮,以至于男女主的渣化和剧情的槽点都是完全可以包容的。至于《西部世界第三季》,嗯.. 真是没啥好说的。
家庭游戏自然依旧是每周的日常,3月下旬《动森》发售时我们从walmart买到了!原以为是个可以两个人你耕田来我织布、团团圆圆过大年的休闲游戏,没想到并没法在本地方便地合作,地上捡的东西都归入地主的腰包,切换起来挺麻烦的,这样的话就只能取决于我自己的游戏热情持续多久了。于是在沉迷了一两周还房贷之后,游戏以原价二手出掉了,相当于白玩了两周多。
春天玩过的游戏里我们其实更喜欢《猫咪斗恶龙2》,风评肯定不会有动森高,但很符合我们的难度曲线,操作简单目标清晰,猫猫狗狗拯救世界,主要是不难!
宅在家里这段时间,我们还和YC/WJ一起联机了好几次,《Human: Fall Flat》 是一大欢乐源泉,网上的这个桌游平台也不错,就是不能在 IE/Edge 下打开,游戏卡牌可能会有残影..
正值历史事件大年,诸位保重身体。💪
]]>《旅行人信札》。
每次旅游归来,我都不免会陷入几天的迷惘状态,好像韶光易逝、又得泯然众人。这种心境被陈嘉映老师在1981年春天两个月逆时针环游中国的旅途末尾精准地描述出来:
躺在铺位上,觉得轻松,从这两天的奔忙中喘定一口气。但不知为什么,当站在甲板上等待发动,当江风吹进舷窗,却有一种忧郁感;像什么呢?像我们站在青春的边缘,感觉到时间的离心力正在把人们抛出去,抛出动荡、冲击、炫目的人生中心,抛向安稳的常规生活。就是那种即将寂静下来的惜别之情吧。
这也是我读完这本书的感觉。
最初是翻转电台的某一期节目里推荐了这本书,推荐说可以从那个时代的记录看出,当时的中国各地差异是多么巨大,对比现在全世界的趋同,以及什么是真正的游历。可惜各大平台上一直没有电子版,直到去年 Bing 回国一趟终于捎来了一本暌违已久的纸质书。
几近40年前的风貌差异确实巨大,当时混乱的年代刚刚结束,陈嘉映老师出去旅游甚是洒脱,常常在徒步了一天入夜到达目的地之后才开始考虑如何过夜的问题,可以找一户人家安顿、午睡上一个半小时再走,也可以找来一块木板在山间尚未落成的一间小屋里在雷雨声中睡上一晚。
景色虽美,全书给我冲击最深的还是文字。漫长的旅途经过有魔力的文字萃取,使我仿佛也跟着环游了一圈中国。这就是我想要写出来的那种清晰准确又如朋友般亲切的东西。陈嘉映老师自叙道:
我总相信,写字和为人一样,不可制定出一种标准的风格。有人重错综玄深,有人喜巧思奇构,有人取款款交心的方式。至于我自己,则力求远避烂漫芜杂,做到质直准确干净。
嗯,质直准确干净!但是陈老师你显然过谦了。。在第17封信记述的雁荡山之旅中,
沿大锦溪直到大龙湫,路面平缓。待入谷纵深,山路一回,便见雁山盛景龙湫了。一面石壁高百九十米,围成一段圆弧,稍稍前倾,拦住去路。弧中心稍向后折,龙湫便从天而落。水势不小,被风一吹,忽如白沙缓展,忽如银蛇攒动,忽落潭心,其声清脆,忽落磐面,其声簌簌。倚巨石躺倒仰观,絮状白云在蓝天飘过,整壁欲倾,其势汹汹;绕道瀑后,则见一幕水帘,外透云天。如此景色,亦为他山之所罕见也。瀑东南向,若上午来,日光直射,想来又有另一番景象。今天没时间了,否则还要设法绕到石壁顶上去,看看是何模样。
😵
总结来说,这本书是私人游记,是陈嘉映老师在旅行期间寄往家里的信件合辑,从所见所闻自然引申到所感所想,真情实感流出来了,真实鲜活的形象就立起来了。满腹诗书又贴近土地,真是很难不令人神往啊!
]]>2月反弹性地看了一些书,下边一些是很推荐的:
首先是《晚清最后十八年2》。两年前看过这个系列的第一本,印象很好,后来以为 kindle 下架了剩下的几本,这次发现其实并不是下架了,只是 amazon.cn 的搜索结果没有把后续的几本放在前几个搜索结果里,需要额外点开一个链接才能看到😓。在这一本中,时光回溯到两个甲子之前,从庚子国变讲到辛丑条约,无能的清廷、狭隘的党争、贪婪的列强、欺辱的人民。引用书中的一段话:
从某种意义上来说,庸碌误国的裕禄和有心无力的谭嗣同、怀才不遇的聂士成以及悲从心来的罗荣光,他们是一类人,和丁汝昌、邓世昌他们也是一类人,在一个急剧下坠的年代里,他们不幸生在其中,然后极为不幸地用自己的小悲剧,去构建了历史的大悲剧。
《放牧人生》,这一本是名副其实的牧歌。中间看到作者突然去上牛津了而意识到它与去年那本我很喜欢的《你当像鸟飞往你的山》的相似——都是在山上生活、青年时候开始读书继而上名校,但这本书平和了许多,没有什么幼年的不幸,沉甸甸的都是对故土、对牧羊人生活的热爱。所以重点在于各种牧羊生活的细节,以及祖传牧羊人的传承,因此结构散一点也无妨。人生体验++
《醉步男》,好像是 GADIO 的博客曾经推荐过这本书,日本科幻作家小林泰三的成名作,确实好看!遇事不决,量子力学。
相比之下,这个月并没有看到什么值得说的影、视、剧。播客倒是有不少。
Deep Background with Noah Feldman。主播是哈佛法学院的教授,听了十几期之后我很喜欢,人不会带着预设立场、会以被批判的一方的角度向嘉宾抛出问题,而且最后会自己来一个总结,很舒服!
剩余价值的一期:【049】News at Crisis:危机新闻与新闻危机。“051 瘟疫、语言和具体的人:与历史学家罗新的聊天”这期也很棒,好像还因此被封了。
迟早更新的一期:复杂问题:我的你的它,为何捐出去的东西没有被妥善处理的话我们会极度气愤?确实是一个我没有考虑的问题呢。
疫情接下来有可能会全球爆发,诸君保重身体💪
]]>从疫情新闻进入视野以来,每天都要看好几次新型肺炎疫情的数据统计。从最开始的几十个确诊病例到此时此刻(截止至02/02/2020 19:05)的17205例确诊、21558例疑似、2296例重症、361例死亡、475例治愈,沉甸甸的数字背后充满着本可减轻甚至避免的苦难。微博的时间线上每天都有一些令人心塞的消息,希望渎职的相关责任人在疫情过去之后能被追责严惩!🙏🙏🙏
1月份的时候赶个deadline,从一些土味视频剪辑合辑中获得过力量,比如下边这个《己 亥 大 赏 :Not My Time To Die》,说是土味,实为谦辞,放在疫情期间也很能振奋人心。反正我看到的一点都不土,满满都是真诚!不是矫情、并非审丑,和听新裤子的歌一样,我享受这样充满真实蓬勃生命力的内容,我果然还是个骨子里的左派啊。同样充满了人民大众旺盛生命力的还有这一首《毛不易·东北民谣 混剪》,可惜视频在微博上没法直接嵌入,只能烦请点开了。
书:无。没啥值得特别推荐的…
影:
《主持人大赛》。保送某些选手的黑幕令人生气,除此之外各路神仙选手的表现真是拜服,若论神仙中的神仙,当然还是董卿老师了!!
《吐槽大会第四季》,第四期PDD来当嘉宾的那期超级棒,呼兰和PDD的表现堪称几季以来的高光时刻!其它集就一般般了。
《巫师财经》。近期发现的优质UP主,介绍金融知识娓娓道来、丝丝入扣,资本永不眠!
播客:最近倒是有听到一些新的不错的台,比如
诸君保重身体💪
]]>根据豆瓣记录,2019年我看了42部电影、10部剧集、24部综艺,同比基本持平。
2015 | 2016 | 2017 | 2018 | 2019 |
---|---|---|---|---|
124 | 111 | 115 | 75 | 76 |
从综艺节目聊起:
首先要吹爆一下B站的2019-2020跨年晚会,bilibili晚会 二零一九最美的夜,B站真的是太懂我们的痒点在哪儿了,吊打所有卫视!!
今年最喜欢的节目毫无疑问就是《乐队的夏天》。我实在是太太太太太喜欢这个节目了,我们是从第三还是第四期时开始追的,直接就差不多看了个通宵追到了最新。起初它在豆瓣的口碑不算很好,后来看到那些圈地自萌唱衰节目的摇滚迷们被大众风向陆续打脸,我开心得不得了。
如果说《诡秘》大幅提高了我的网文阅读阈值,《乐夏》则大幅提高了我们的音乐类综艺阈值。喜欢《乐夏》,是被它内生的的强烈真诚所感染,真诚自带力量,力量通达人心,所以真的会听哭。节目之后我主动去补了中国摇滚,在整个下半年赶东西的期间,摇滚确实给了我很多力量。开头选取的年度 BGM 也正是缘起于此。
《第二届超新星运动会》,去年就提到了第一届的超新星运动会,今年继续很喜欢,文体不分家。
今年很喜欢的电影依旧不算多:
年度两大话题王《流浪地球》和《哪吒之魔童降世》我们都看了。好话无需我再多说,最开始想看《疯狂的外星人》村里却突然下映,于是因祸得福,大年初一我们专门开去芝加哥犄角旮旯的一家小破电影院看了《流浪地球》,是很特别的回忆。
《小丑》,我只是单纯觉得表演的好而觉得好,Bing 更能理解小丑这个角色因而更加喜欢得多。
《四个春天》,正因为是以真正的生活为底本、是平日里的录像、是真实情节,所以非常共情。导演一家子都是文化人,他爸爸妈妈就是传说中温暖纯良的样子了吧。
《Us》,《逃出绝命镇》导演的作品。不卖傻、不靠突然蹦出来的低级惊吓吓人,逻辑通顺,反转自然,要拔高主题也能轻松看出隐喻。
除此之外可能就只有《美国工厂》这个纪录片了。工人阶级和资本家之间再怎么争斗,最终恐怕都难敌机器,难道 Universal Basic Income 真的是大势所趋。
配饭的电视剧方面:
《爱,死亡和机器人》是留下印象最深的。每集都不长,很多集现在再看到标题都还能回想起来,应该算是各个动画公司的炫技之作。最喜欢的?可能还是那集 Zima Blue 吧。
《Sex Education》,每个人都有自己的困扰,每个人也都在生活的 “therapy” 下成长,每个人不都是这样么。
《我们与恶的距离》,当时大火的台剧,内容题材确实很棒,情节推进毫不啰嗦,里头每个人都该去看心理医生。
《庆余年》,网文当初没看几十章就因为体量太大没看了,现在改编成剧了就正好。改得好的爽文是真的好看!
从去年开始,年结上有了游戏推荐,今年继续。我专门做了个豆列,把那些我们玩过的、俩手残也能玩得很开心的游戏们都加了进来,原来已经玩过这么多了呀。今年新增的有:
《疑案追声》(Steam),趁着夏促的机会入的。剧情不长,游戏形式新颖有趣,非常值得一试!
各类支持本地双人 local co-op 模式的刷刷刷游戏,体验都不错。比如《大菠萝3》(Switch,必须得是 Switch 版);比如《维克多弗兰》(PS4)。
《Human: Fall Flat》(Steam),双人迷之画风解谜游戏😂。
《Unravel Two》(PS4),双人超精致解谜游戏!
《路易吉洋馆3》(Switch),以后看到任天堂出的支持双人的箱庭探索类游戏直接无脑入就对了!
《Ring Fit Adventure》(Switch),补上,Bing 最喜欢的健身游戏!
听得多了,podcasts 界后浪推前浪,一年之后我的观感已经大有不同。能体系化输出的播客节目愈发受青睐,只是闲谈瞎逼逼的节目基本已经从我的订阅列表中消失了。今年份的 podcast 喜爱榜单如下:
首先当然是我们自己的半夜醒来!虽然第三期上线遥遥无期,早录好了,一直没剪。。
今年的最大惊喜是10月才上线的谐星聊天会,第一期关于经济型酒店的现场爆炸效果可就把我给乐坏了!!单口喜剧的现场这么炸的吗,以后回国了一定得去听单立人的现场。单立人旗下的播客还有一言不合和无聊斋,这俩就都是访谈为主了。时不时放送英文单口喜剧实录的还有个 Stand-Up w/ Chris Distefano,只不过至今听了一些,很多其实并不怎么好笑。。
新闻类
科技类
社科人文类:
历史类
□
就到这里吧,祝所有人年年胜意,岁岁欢愉。
]]>↑ 今年的 BGM 选的是新裤子的《生命因你而火热》,以火热为题,曲里透着的却尽是 party 终曲的哀伤、以及一丝丝苦尽甘来的微光。当时节目里直接就把我唱哭了,哪知与下半年的心境竟如此贴切。有些丧了,有点咸鱼了。
几十年后回顾时,2019年铭记的大事件或许只有五月的婚礼和八月的滚滚。
年前就领了证的我们在05/17跑到三藩的某个古建筑里在十几位小伙伴的见证下举办了我们的婚礼。Bing 操劳甚多!在伴郎伴娘们以及所有小伙伴的热心帮助下,当天的些许手忙脚乱最终都成了特别的回忆!兴起,附上拙作一首:
《刺猬》
拔剑四顾的小刺猬,
单在这儿安心袒露肚皮,
化作无法远行旅人的双眼,
带来整个宇宙的风情,
也曾被你尖刺扎疼,
但想起的终是托付肚皮的真心。
滚滚也早就对我们袒露肚皮。从他08/12降临的这天至今,滚滚给家里带来了无尽的欢乐!每当生活所迫快要失控的时候(PS:诡秘梗),滚滚就是我们的锚。
一如跳票了整个秋季学期的月结和跳票了10个多月的公众号 & Podcast 半夜醒来(看这里),2019这一年我有许多失期,「失期,法皆斩」,希望已经到来的2020能像滚滚一样发出坚定的吼声,重整旗鼓,
凡事有交代,件件有着落,事事有回音!🙏
希望 Bing 和爸妈们都身体健康,希望滚滚快乐成长!
接下来是例行的书、影、游戏、播客推荐时间。
19年下来一共读了53本书,回归了有记录以来的历史平均水平。绝大多数都是微信读书的app上看的,app持续好评。除了微信读书平台上没有的书目外,Kindle已经完全被束之高阁了。
2015 | 2016 | 2017 | 2018 | 2019 |
---|---|---|---|---|
58 | 79 | 64 | 25 | 53 |
和去年比有显著回升的一大原因是下半年开始的听书。原本在3月搬家之后更多在家吃饭了,餐间阅读时间也转变为餐间观剧时间。但下半年在播客都补完之后我开始了听书。发现只要开始能听进去,一些原本攒着一直没翻开的书或许就能接下去读完了!!我要收回曾经的「只有部分非虚构类作品才适合听」的过于保守的论断,朗读者自身的功力至关重要,与文章本身的叙事结构也有很大关系。
微信读书上其实有不少真人录制的全文朗读音频,多谢平台把控的好,上线的音频质量都很高。这里要专门夸一下各大出版社:中信出版君、译文有声、中版君、熊猫君、湛庐阅读、蓝狮子FM,全文音频出得那是又多又好!
相比之下,喜马拉雅上的音频朗读资源多得多,但大平台难免良莠不齐,稍稍对比就听得出来,科班出身练过的主播真的不一样!话说回来,喜马拉雅真该好好向不同的 podcast app 学习一番用户体验!自定义倍速播放、播放队列管理、自动下载等等等等都没有。但是平台总是可以傲慢地不去做这些,毕竟他们的核心生产力是平台上的广大中部内容输出者,人在平台在。
今年最喜欢的偏虚构类文学作品有:
《你当像鸟飞往你的山》,当是今年最喜欢的一本了,内容好,文笔也好。或许明日太阳西下倦鸟已归时,你将已经踏上旧时的归途。英文版书名是 Educated;中文版书名是作者塔拉亲自选定,出自圣经·诗篇 Flee as a bird to your mountain,各有韵味。成长于极端保守的家庭,塔拉在控制欲极强的父亲有暴力倾向的大哥影响下长大,从小没上过学,17岁偶然去了杨百翰大学,才开始一步步接触外边的世界。候鸟北归,塔拉从杨百翰到剑桥到哈佛,离现代社会越近就离家越远,与家庭的羁绊却未减半分,时不时又会受到父亲这座大山的吸引、放弃自我。这本书的层次可比简单地夸赞一番教育益处多多了,它是塔拉的自传,描绘着少年塔拉、青年塔拉的成长,记录着塔拉与父亲为代表的家庭的纠缠、决裂与新生。
《毛毛:时间窃贼和一个小女孩的不可思议的故事》,来自于亲王冷门书单的推荐,给个5星甚至6星丝毫不为过,这是给当代成年人看的童话故事。忙、没有时间、焦虑、没有兴趣,这些情绪我是深有体会了,能被毛毛稍微警醒一些,很满足。这本没有电子版上架,但是微信读书上有主播全文朗读得非常棒,嗯比喜马拉雅上的高出至少两个档。
最后,《诡秘之主》当然值得拥有姓名!去年的年结里就吹爆它了,今年让知乎来继续吹吧!还有半年左右这本就要完结了,这几年每年都推了作者乌贼的书,目测他的新书明年也能上榜。
在今年偏爱的非虚构类作品里,历史区依旧是大头:
《穿越百年中东》,把中东大舞台的历史抽丝剥茧娓娓道来,整理得井井有条不紊,对作者印象很不错。听书就是从这本开始的,中信的音频资源效果很棒。当时还在看另外一本《黑旗 : ISIS的崛起》,那本感觉又臭又长,对比之下更觉得这本不错。
《丝绸之路:一部全新的世界史》,以中亚近东千百年的历史为线索,实质是在介绍世界史,补上了不少缺口,很喜欢,都不忍心倍速播放,就像一个精致的大型纪录片在耳边慢慢环绕。
《命运攸关的抉择:1940-1941年间改变世界的十个决策》,这本是年初看完的,这类探究决策原因以及其它可能性的讨论我很感兴趣。我们的第二期 podcast 做的就是这个主题。
《显微镜下的大明》,亲王新作,从大明时期有丰富史料支撑的民间故事着手,一窥大明真实生活的一角。一开始的几个案子都是读书人、地方府县之间你来我往的争端,古人都不傻嘛,我看得很欢乐。但后来看到朱元璋精心设计的黄册制度如何渐渐流于形式、官僚系统如何抓住各种机会加税抽税、胥吏如何在各种事情上抽成吸血,画面就渐渐变得沉重起来。所以再良好的制度一成不变下去早晚也要变成枷锁,所以有生命力的系统必须自发演进,绝难顶层设计。亲王借助坚实的史料基础,恰好避免了过往中长篇中谋篇布局的不足,摆脱了以往的戏说视角,效果反而升华了。
《浩荡两千年:中国企业公元前7世纪-1869年》和《跌荡一百年:中国企业1870—1977》,久闻大名的吴晓波系列。我们走了不少弯路交了不少学费,正是对这片土地爱得深沉,才对这些苦难与伤痛愈加扼腕。另外我长大了才注意到,张謇作为状元,甲午之后下海经商实业救国,以前在历史书上看了没啥感觉,现在多少能体会到这个选择背后的勇气与坚决,很感动,很敬佩。
《论中国》,基辛格的大作,看完对这些历史人物的能力都心生敬佩,NB,真NB,都NB!翻了翻 goodreads 上的评论,不少人不喜欢是因为太亲中了。。基辛格的另外一部《世界秩序》我也翻了,不是很喜欢,觉得那儿只是把西欧、中东、亚洲、美国所倡导的世界秩序罗列了一遍,没有看到啥新东西。
今年剩下的非虚构类作品喜欢列表居然都是生理相关的:
《众病之王:癌症传》是今年的一个惊喜,作者已加入必追名单。厚重、庄严,书里不仅详尽展示了不同时期的医学思潮,更借助癌症这个线索描绘了政治、文化的时代切面。比如登月成功后一批科学家想要借势要个大 funding 治愈癌症(当时癌症细胞原理都没搞清楚就想着彻底治愈);比如60年代女权主义的发展倒逼了医学界对乳腺癌治疗手段在80年后的仔细检验;比如70年代肺癌对香烟产业的深厚影响。这些也是全书最有意味的地方,癌症本身已经分量十足,借助癌症为线索共同展现医学与社会更是回味无穷。作者后续还有一本《基因传:众生之源》,前半部分优生学等部分的介绍很新奇,后半部分的内容却渐渐变得稍许平淡。
《坏血》,这本介绍硅谷吹破牛逼公司 Theranos 的书阅读体验极佳,手不释卷!前半部分铺垫了各种「这TM也可以?」的怒气值,然后随着身为记者的作者下场开怼水银泻地。Theranos 这公司也是神奇,15年如一日地吹牛逼,坑大到永远也填不上,但还总能拿到投资,可见大佬站台(甚至还有基辛格)是真的有用。
《血疫》,埃博拉病毒!第一部分描述扎伊尔埃博拉病毒的发现过程非常抓人非常好看!!后边就一般了。
《活下去的理由》,是无比真诚的心路历程,作者不容易啊。
□
后边还有游戏和播客的年度推荐榜单。和去年的年结一样,博客引擎生成的网页被直接截断了。。应该是遇到了长度限制的bug😓。请移步下期。
]]>今天凌晨把这学期上的唯一一门课程的项目报告交掉后,学期可以算是正式结束了。收起患得患失的心态,滚滚终于能修剪他那长得没边的毛,还能出趟远门后去一小时之外的公园见见其他狗狗了。
如若您尚未得知,滚滚是我们养的狗狗,今年8月12日那天进的门。名字取的是「Yuan滚滚」的典故,作为一只马尔济斯+贵宾(Maltipoo),滚滚属于不咋掉毛的犬种,在可劲生长的蓬松毛发衬托下,他就是圆滚滚本滚。可惜外国人念不准——啊你们甘甘(Gungun)好可爱呀。。
滚滚他妈回国 check 去了,剪毛的事只能由我一手操办,最后果然不负所托,“剪秃了”。。简直是判若两狗。
当初8月滚滚刚来家里我们第一次给他剪毛时,一人揪住滚一人剪毛剪指甲,那时候滚滚还没有像现在这么信任我们,在屋后头草坪架起的熨衣板上死命挣扎;而现在就乖乖地躺在地毯任君摆布。
我也是初试剪刀,方式简单粗暴,揪起一撮毛,把看着过长的部分都剪去,全身大致一个长度,在发型上这可能属于圆头。因为没有统一标尺,不同区域的毛发容易引发恶性竞争,这儿剪短之后隔壁可能就又显得长,诶隔壁咋又得剪了,循环往复。
剪了毛的滚滚驱车前往 Eagle Creek Park。公园在 Indy 的西北角,一个小时车程。公园挺大,风景也不错,可惜买过的 state park 年票不能用,售票员说他们是 city park,不受州里的财政资助呢,但一辆车也只是5刀。
随手从下图中心的区域开始走,走了一个环回到起点也就一个小时上下。风景不错,有山有水还有栖息的群鸟,下图远处的长堤就是路线的一部分。
最后是滚滚妈怀念一下剪毛前的滚,天冷了,大家注意添衣服。
]]>顺时针顺序依次是
就算是撕纸拆家的时候,滚滚也依旧是家里的小天使!
终于走到这一步,8月我把 podcast 里存着的内容基本都听完了,于是就顺势开始听书籍的全文朗读。一些大部头没有太多意愿开始读的书现在也就顺理成章地开始听了,比如:
《穿越百年中东》,把中东大舞台的历史抽丝剥茧娓娓道来,整理得井井有条不紊,对作者印象很不错。
《众病之王:癌症传》,厚重、庄严,书里不仅详尽展示了不同时期的医学思潮,更借助癌症这个线索描绘了政治、文化的时代切面。比如登月成功后一批科学家想要借势要个大funding治愈癌症(当时癌症细胞原理都没搞清楚就想着彻底治愈);比如60年代女权主义的发展倒逼了医学界对乳腺癌治疗手段在80年后的仔细检验;比如70年代肺癌对香烟产业的深厚影响。这些也是全书最有意味的地方,癌症本身已经分量十足,借助癌症为线索共同展现医学与社会更是回味无穷。
《基因传:众生之源》,同一个作者,前半部分优生学等部分的介绍很新奇,后半部分的内容却渐渐变得稍许平淡。作者已加入必追名单!
《论中国》,基辛格的大作,看完对这些历史人物只能表示,NB,真NB,都NB!
这些都是在微信读书上听的,里头只有有限的一点书提供了全文朗读,那些分一两集给你讲书的就根本没必要听了。中信出版社在这点上做得很棒。我还(再一次)尝试了听听文学书籍,又一次的,我发现还是非虚构社科类题材适合声音输入。微信读书这一波听完之后喜马拉雅还有不少朗读资源呢,都安排上了!
除此之外的影视方面,只有一部《美国工厂》的纪录片有意愿推荐了。工人阶级和资本家之间再怎么争斗,最终恐怕都难敌机器,越来越觉得 Universal Basic Income 是大势所趋了🤔。
□
]]>https://arxiv.org/abs/1907.10662
豆瓣页面。我们实在是太太太太太喜欢这个节目了!!从第三还是第四期开始追的,直接就差不多看了个通宵追到了最新。我开始看的时候它在豆瓣口碑不算很好,现在看到那些圈地自萌唱衰节目的摇滚迷们被大众风向陆续打脸,我开心得不得了😜!不过好像最新的0803一期里的青霉素风波好像又惹了众怒。。
我喜欢乐夏这个节目,可能源自于它自带的真诚与力量。节目里最喜欢的是新裤子和刺猬,刺猬前期几首歌每曲都是经典,新裤子则是越听越有感觉,最后若是第一绝对实至名归,他们每一首我都愿意再听愿意循环。因为这个节目,我也去主动听了听中国摇滚,在6月份赶东西的期间,摇滚确实给了我很多力量🙏。
坏处就是,乐夏大幅提高了我们的音乐类综艺节目阈值,之前还时不时看一下的《唱作人》根本不想再看了,《新说唱》和《好声音》也都完全没兴趣看了😂!
总结,乐夏是我看过的最好的音乐类综艺节目!可以与前几季奇葩说并列我认为最好的综艺节目?诶,马东老师NB!
精神层面,这两个月基本没有看完新书,看的影视剧(除了乐夏)也多数烂尾或者槽点满满,游戏方面倒是可圈可点!我专门做了个豆瓣豆列,把那些我们玩过的、俩手残也能玩得很开心的游戏们都加了进来,原来已经玩过这么多了呀😂。
趁着 steam 夏促的机会,入了《疑案追声》。剧情不长,游戏形式新颖有趣,非常值得一试!
最近一起玩了不少刷子游戏,体验都很棒。《维克多弗兰》,一个各种难度各种目标各种定制的刷刷刷游戏;《大菠萝3之Switch版》,一个能够本地双人模式以各种难度一起刷刷刷的游戏,还有什么好抱怨的吗!
除此之外,听的播客倒是有一些很值得推荐的。
我越来越喜欢体系化输出的播客节目了!
Philosophize This! 就是一例。说起来哲学史的内容我已经在得到的西方哲学课、得到的名家大课、翻转电台的思想史系列节目、和这里的 Philosophize This! 中来来回回听过4遍了,三进宫之后再来听这个,很舒适!说得很棒!
Revolutions 这个著名的介绍各国革命的博客栏目终于开始介绍起了俄国大革命。正好,Wondery 旗下的这个 One Plus One 系列节目最近正在说列宁和托洛茨基。
类似的节目还有野史下酒,按着时间线介绍咱中国历史,马上就要到隋朝了!
最近看的影视剧总是觉得烂尾或者槽点多,在听完 GADIO 的这期节目《疯狂吐槽半小时后,我们明白了自己为什么会对《权游》感到愤怒》之后我想了想,可能的确是好莱坞叙事模式过于主流所带来的问题🤔。
最近还有发现一些新的有意思的博客,比如某讲艺术的播客的介绍街头涂鸦的这期;比如某播客嘉宾轮流介绍自己读书经历、氛围很棒的这期。以及最近我还发现了一些之前关注的播客UP主越来越在节目中暴露出自己的强烈偏见了,不舒服。
哦对了,最后,关于6月初,看到了这么一篇文章,我觉得写得很在理!
]]>婚礼已经过去2周了。整个筹备的时间其实很赶,一直都是 Bing 在统筹计划整个东西,中途的压力也历历在目,婚礼当天还触发了不少手忙脚乱的计划外事件,不过在伴郎伴娘以及小伙伴们的热心帮助下,最终的的婚礼记忆非常特别,非常开心!最大的感谢当然要给出现在我生命中、让所有这一切成为可能的 Bing!
因为research进度以及婚礼筹备等等,5月看完并且觉得推荐的书就只有一本《坏血》。这本介绍硅谷吹破牛逼公司 Theranos 的书阅读体验极佳,手不释卷!前半部分铺垫了各种「这TM也可以?」的怒气值,然后随着身为记者的作者下场开怼水银泻地。Theranos 这公司也是神奇,15年如一日地吹牛逼,坑大到永远也填不上,但还总能拿到投资,可见大佬站台(甚至还有基辛格)是真的有用🙄!
书中不止一次提到CEO伊丽莎白的低沉嗓音,可以配合 podcast 《The Dropout》食用,也是讲述同系列事情的,不过具体内容我还是觉得看书了解得更多。
5月也因而没有怎么去看电影,但追了两部烂尾的剧——《权游第八季》和《破冰行动》,却都是越到后边越烂,是赶工出来没时间再打磨的剧本吧?
Podcast 还在听,首先喜欢的是 Andrew Yang 和 Joe Rogan 的这期对谈。Andrew Yang 是宣布参选2020美国总统的华裔候选人,我是从这个知乎回答了解到他的。他主张用 Universal Basic Income 应对AI、自动化对大众工作威胁的观点很有新意,听了podcast,娓娓道来,也很理性,很舒服。
上个月的月结提到了几位单口喜剧人做的播客《无聊斋》,这个月还听了同一群单口喜剧人做的另外一档播客节目《一言不合》也很不错,比如这期旧节目《vol.66 我们替你夸逐梦演艺圈》,可以算是把脱口秀演员的功底都亮出来秀秀了😂。
其余就主要是在听 Wondery 厂牌旗下的一系列节目了,和上个月差不多:
比如说在 Business Wars 中介绍的 USFL & NFL 的往事。我不看橄榄球也听过 NFL 的名号,但谁知道其实在80年代的时候还曾经有过一个 USFL 呢!USFL 的创始人是一个有钱的橄榄球迷,他想要在春天也看橄榄球比赛就自己拉了其他富豪建立一个橄榄球联盟。但是这个果实最终被川普(!)窃取了,川普买下了一家 USFL 的俱乐部,但最终目的只是为了加入 NFL、成为一家 NFL 俱乐部的老板,挤进上流社会。最终 USFL 和 NFL 打了一场官司,USFL 状告 NFL 垄断,法院最终判 USFL 胜诉,但是只判了1刀的赔偿金😂。USFL 最终夭折,但它提出的许多创新在之后融入到了 NFL 中,最终呈现为现在 NFL 的样子。
还比如说在 Sports Wars 中介绍的 Favre vs. Rodgers 这俩橄榄球员的纠葛。还是橄榄球,这俩都曾是 Green Bay Packers 的明星四分卫,在他们的职业生涯中,还都曾带领 Green Bay Packers 拿到过超级碗。Rodgers 入队的时候,Favre 已经年纪大了,但是在新老王交接之际,老王不愿意退位,最终退役、复出,再退役、再复出,…… 😂。
再说一个艺术家的历史,是 One Plus One 中介绍的 Frida and Diego 系列。多亏 Bing 的熏陶,我听过弗里达的名字,但从不知道她和她丈夫迭戈的精彩故事。迭戈天性风流,比弗里达大好多岁,两人都是很有天分的艺术家。故事的高潮部分发生在弗里达觉醒不再盲目容忍迭戈之后,剧情里甚至卷入了托洛茨基(!)。。还有最后一期,弗里达生命的末期阶段听着也是充满触动。
3月中旬我们搬了个家,现在午餐晚餐主要都在家里吃了,于是就没有太多机会在学校图书馆吃饭,因而在忙的时候看书的时间显著下降。。3、4月看书不多。
《科学革命》与《科学哲学》。这是最后想看的几本牛津通识读本了,《科学革命》里介绍了在科学狂飙突进的早期,先贤们是怎么建模世界的,本轮啊、含有通道的天球啊等等;《科学哲学》里谈到了科学如何回应休谟的经验主义质疑,嗯是我非常感兴趣的部分了。
《审判》。借着补番翻转电台介绍卡夫卡那几期的机会,我又看了看卡夫卡的书。以前看过《变形记》,当时懵懵懂懂的,觉得像一个久病床前无孝子的故事,现在看《审判》觉得确实好荒诞啊,就像在梦里。
《爱,死亡和机器人》。近期大火的美剧,每集都不长,很多集都给我留下了深刻印象,现在再看到标题都还能回想起来。应该算是各个动画公司的炫技之作。最喜欢的?可能还是那集 Zima Blue 吧。
《Us》。是《逃出绝命镇》导演的作品,我没看过《逃出绝命镇》,看这惊悚片的时候感到了惊喜!不卖傻、不靠突然蹦出来的低级惊吓吓人,逻辑通顺,反转自然,要拔高主题也能轻松看出隐喻。已经把这导演加入必看名单了。
《真探3》和《真探1》。先看的第三季,然后才补的大名鼎鼎的第一季。制作精良,但是第三季最后有种「就这样啦?」的怅然若失,第一季要专门给马修·麦康纳点个赞。
《我们与恶的距离》。另一部近期大火的,台剧,内容题材确实很棒,情节推进毫不啰嗦。我觉得里头每个人都该去看心理医生。
《复联四》。我们在周四首映那天专门开到芝加哥去看的晚间场,上映一周前刷IMAX票就只能刷到前几排的票了。我们一开始买的是第三排的位置,进场后继续刷票发现倒数几排出现了两个退票的空位!!我们火急火燎去换了票,开开心心地坐在后排看了整场😜。原本还担心3h太久会需要上厕所,最终全程无尿点。至于它的预告片《惊奇队长》,呃。。就平平无奇了。
搬家之后少了看书的时间,听东西的时间倒是一点没少。在看理想app上补番了《圆桌派1、2、3季》,很棒!我就喜欢这种有内容侃侃而谈的节目!最近开始用起了看理想这个app,和得到比起来文艺多了,再听完这么多播客之后应该会去听那里的东西。杨照老师的《史记百讲》在这里也有,以前我在豆瓣时间听过,那里不能音频加速,感觉亏了😂。
说起得到,最近我对它听的不多,甚至有点反感,主要是注意到它经常使用诸如「听到这里,你可能会觉得……」的句式。怎么说呢,听着就像被当作傻子一样,很不舒服,有点脑残综艺提示语生怕你看不懂的感觉😓。
我还在企鹅FM上补了一些《十三邀》,没补完就不补了,比较喜欢陈嘉映老师的这一期,总体看来还是圆桌派更好听。
具体的内容而言:
多抓鱼的创始人猫助最近既上了忽左忽右(《38 当二手书遇上经济学模型》、《39 滞销作家也得有60%的售出》)、也上了日谈公园,吸粉无数。对这么一个注重流通率的二手书平台我很向往,可惜还没有机会体验到。
叶永青抄袭比利时艺术家的事件之前闹得沸沸扬扬,以此为契机讨论当代艺术的不错节目也有好几个。比如翻转电台的《翻电 Special 叶永青:不只是抄袭 VOL.03》就是超级棒的一期,谈到了当代艺术在抄袭之外的反思,以拍出高价为目标,承载了却辜负了大众期待的艺术家如果不抄袭可能可以怎么做,公众与艺术家能否通过当下这样更加平民化的渠道直接接触交流,从而减少中间商里资本的介入。同样话题的还有大内密谈《vol.661 抄袭,挪用,艺术圈的悲哀和出路》。还有更早一点的看理想电台的采访《40.hyl | 王瑞芸:当代艺术把生活怼到我们面前》。
几位单口喜剧演员做的播客《无聊斋》也很不错,比如《vol.48 我在秘鲁抓鳄鱼》这期的秘鲁见闻,比如《vol.62 我们和邱晨聊了聊她的癌症》这期邱晨(对,就是那个邱晨!)来上节目。
MIT 的 AI podcast 有一期请来了 Ian Goodfellow! 是难得没有快进完整听完的一期!
我还发现了 Wondery 厂牌旗下的一众播客,都很有意思:
剩下的栏目等听了觉得不错再推荐。
]]>这是我们的新Podcast——《半夜醒来》的第二期,同时更新在这里😄。
2月16日,经常“到河北省来”的瑞士演员布鲁诺·冈茨去世,他曾在B站元首鬼畜视频中扮演希特勒,给我们带来过无数欢乐🙏。那第二期我们就来聊一些老少皆宜的历史话题。希特勒为什么要在西线战事还没有完结的情况下作死双线作战?斯大林又为什么就是刚愎自用作死不相信纳粹德国的入侵风险?日本又为什么要作死偷袭珍珠港挑衅美国?敬请收听本期走进科学。
剩余细节请见原文。
本期内容主要基于《命运攸关的抉择:1940-1941年间改变世界的十个决策》这本书。截止至今天,这本书豆瓣评分 9.0(356人)、Goodreads 评分 4.03/5(943人)。作者伊恩·克肖(Ian Kershaw)已经被封爵,是研究纳粹德国及希特勒的历史学大师,他写的关于希特勒的传记几乎可以说是最好的希特勒传记了。
全书展示的是1940-1941那两年间,几个主要参战国(中国、法国之外)的重大决策是如何做出的、是基于怎样的预期与假设、是否有其它的可能性。这几个主要参战国的领导人们做出的一系列命运攸关的抉择就已经基本上决定了二战后来的走向,在战略层面已经大势已定,之后就只是战术层面的区别了。
书中还有很多其它部分都很值得一看,比如欢乐担当意大利为什么要作死进攻希腊?😂
这期的历史小讲堂就到这里,下期我们打算谈一谈近视相关的话题,敬请期待!
]]>首先插播一条广告——我们的公众号和 Podcast 上线啦!全平台搜索「半夜醒来」就能找到我们哦!(详情)
之前笔记本的屏幕不幸坏了,最终在 Bing 的主刀下,屏幕被完全拆卸下来,笔记本变成了一个自带键盘的 Mac Mini 😂:
一个外接屏幕在大部分时候都够用了,在 iPad 上也可以通过 Duet 这个app来作为第二个屏幕!但最开始使用的几天还遇到了若干次黑屏自动关机的问题,参考这个网页的解决方案卸载掉 ethernet via thunderbolt 的驱动之后就可以解决。
还有,蓝牙、wifi的接收天线是连着显示屏的,需要剪掉摄像头的线之后再把天线重新固定在键盘底座上。摄像头不是问题,强如刘欢老师也把自己的摄像头给糊起来了😂:
豆瓣出了书影音的月度小结,对嘛,年度总结能做,月度小结早就可以上线了嘛~
元宵节微信读书搞活动,送了好几本虚构类的书,不知为何,我突然就有点想要读这些小说的冲动,之前我都是喜欢非虚构类书籍胜过其它。或许是读虚构类的东西完全不需要抱着学到什么的心态也就没有压力?
因此我读了读麦克尤恩,他的处女作《最初的爱情,最后的仪式》让我很矛盾,原以为遇到了一个难得能被吸引读下去的的虚构类作者,结果其中几篇副作用太大,感觉明显不适。。。。听说他后期写中长篇之后有所改变?期待后续的阅读体验。
我也读了读大名鼎鼎的博尔赫斯的小说集《小径分岔的花园》。和众口铄金的好评不同,我读这本倒是没有受到多么大的冲击,有点在读科幻的感觉,不少人说他是「一本正经的胡说八道」😂。
《华氏451》是在看使女的同期看的,短时间内看了太多反乌托邦的题材,有点腻了,60多年前幻想的焚书坑儒世界。此外还读了谷崎润一郎的《卍》,我总觉得像是1928年的《人渣的本愿》🙄,看番或许还更有意思,至少有好听的片尾曲。
非虚构类里值得说道的也不少。《活下去的理由》是去年下半年就开始一起读的一本书,翻完了,非常真诚!
《命运攸关的抉择:1940-1941年间改变世界的十个决策》这本我很喜欢,这种探究决策原因以及其它可能性的讨论我很感兴趣。我们的第二期 podcast 做的就是这个主题!
《显微镜下的大明》这本是亲王的新书,从大明时期有丰富史料支撑的民间故事着手,一窥大明真实生活的一角。一开始的几个案子都是读书人、地方府县之间你来我往的争端,古人都不傻嘛,我看得很欢乐。但后来看到朱元璋精心设计的黄册制度如何渐渐流于形式、官僚系统如何抓住各种机会加税抽税、胥吏如何在各种事情上抽成吸血,画面就渐渐变得沉重起来。所以再良好的制度一成不变下去早晚也要变成枷锁,所以有生命力的系统必须自发演进,绝难顶层设计。亲王借助坚实的史料基础,摆脱了以往的戏说视角,效果反而升华了。
最后,我终于意识到《牛津通识读本系列》≈《读完就忘系列》。。😅
春节档的4部大片我们最终都看了!最开始是想在村里看《疯狂的外星人》的,大年三十去问才知道这部片在村里下映了,后来我们猜或许是耍猴的情节被动保组织抗议了?因祸得福,大年初一我们专门开去芝加哥犄角旮旯的一家小破电影院看了《流浪地球》,看完我们就决定一致同意要吹爆它!相比起来看完《外星人》之后我俩都是一脸懵逼??蛤,这TM也能叫改编自乡村教师吗?!
剩下两部里,《飞驰人生》至少还算是标准的贺岁喜剧片;《新喜剧之王》里的部分情节我觉得就有点侮辱我的智商了(关于这点 Bing 有不同看法)。
最近的配饭剧里,《Sex Education》是我很喜欢的,每个人都有自己的困扰,每个人也都在生活的 “therapy” 下成长。《使女的故事》就时不时有点出戏,因为总会对设定有些许怀疑,灯塔国就这么沦陷啦??
此外还有《四个春天》很喜欢,因为是以真正的生活为蓝本,是平日里的录像,是真实情节,所以非常共情。导演一家子都是文化人,他爸爸妈妈就是传说中温暖纯良的样子了吧。
文化土豆第082期《上位圈之哥「天空之城,国家破产之日」》讨论到了韩国的高考,挺有意思的。
新关注了黑水公园的系列电台——黑水档案,一些犯罪故事非常引人入胜,比如介绍中国刑侦一号案——白宝山案的几集。
想听听 IBM 的 Project Debater 怎么辩论吗?Intelligence 2 debates 里有一期就是它上场的。
我很喜欢的陈铭老师上访谈节目啦!《(听见×80后)陈铭:“世界上最会说话的年轻人”》(链接)。
Prof. Michael Hicks 有一个很棒的关于啥是PL的介绍:🤔
develops general abstractions, or building blocks, for solving problems, or classes of problems,
considers software behavior in a rigorous and general way, e.g., to prove that (classes of) programs enjoy properties we want, and/or eschew properties we don’t.
我发现 Git 可以修改 commit 时间😅
git commit --date="3 day ago"
这个是修改 author date
不过还有一个 committer date 需要修改,具体方法见这里。
我们一直想要一个能够同时连接两个耳机的硬件,在走路的时候也能一起听东西。终于找到了!!
这个设备 就可以作为一个蓝牙 transmitter (关键字)把音频输入同时输出到两个蓝牙耳机上。
按理说这应该不是一个小众需求的吧,怎么这么难找。。
我们想把它作为一个有意识记录分享随想、经验、感受的出口,比如第一期就由 Bing 带领谈到了大姨妈和教皇的关系,包括短效避孕药、Planned Parenthood 的一些介绍等等等等。已经有小伙伴反馈非常有用啦!!超开心!
欢迎订阅,也欢迎给我们好评哟。😊
动机:开一个公众号的想法其实古来有之,最近终于在 Bing 的推动下着手实施了😂。这个博客也一直在不断更新,月更的素材肯定是不缺的,周更甚至一周两三更的话或许就得追热点了。而开一个 podcast 的想法是近半年多来才渐渐成熟的,没吃过猪肉还没见过猪跑嘛。
录音剪辑:第一期的录音最终是在房间里直接用 mac 上的 garageband 录制的,音效还行,至少比手机收音效果好多了,以后说不定可以入个更专业的麦克风。剪辑用的也是 garageband,暂时来说够用了,以后再按需求慢慢迭代。
Podcast托管:我调研了一下,在我关注的几十个台里,主要有下边这么几类来源:
其实我一开始也是倾向于随大流直接使用 Fireside 的一站式托管、建站服务的,但是因为其19刀的月费而被 Bing 拒绝了。。最终我们找了个折中方案 Podbean——一个只有9刀月费的类似服务商,提供 podcast 数据托管、发布等功能。没有考虑完全托管在国内的平台,主要还是不想操心审查的缘故。托管好之后给苹果发封邮件注册到 iTunes 上的 podcast 海洋里,等审核通过就可以了。
但是,Podbean 默认提供的网站模板很丑,我们就自己买了个域名、用 Jekyll 建了一个网站(说一句,start bootstrap 的这个 jekyll 主题非常棒,页面效果都在,源码也足够清晰简单,我都考虑把当前这个基于 hexo 的站再迁回 jekyll 了)。最后我们还买了一个月的微博会员抢到了对应的微博名字!微博会员这个制度真是不遗余力地赚你的钱。。
最后,要是谁感兴趣的话,苹果官方的 podcast 运营商合作列表在这里。
欢迎订阅😊
]]>今年我的实际阅读时间和往年相比大幅下降,直到年底的最后一两个月才重新恢复了过往的阅读习惯。时间减少的最主要原因是上半年在清理得到上的过往课程,以及下半年进入两人份生活之后的生活模式转变。根据豆瓣统计,2018年读完的书只有25本,同比17年是64本、16年是79本、15年是58本,可见是 significantly 更少。。😓
《邻人之妻》。最初我是被其描述美国人民各种性解放历史的写实描写所吸引过来的。作者细写一个个人物故事,又能把这些人物放在大背景中串联起来组成时代画卷,甚至最终还把自己放了进去,👍👍👍。
《一个陌生女人的来信》。茨威格的大名就不用我多介绍了吧,这其实是我第一次看茨威格的这几篇短篇小说,看完不禁再次感叹,故事大师!故事大师!!
《极简宇宙史》。这本其实是到了2019年才读完的,但谁让2018没看几本不好推荐呢,就挪用到这里吧😅。之前已经几乎不读这类物理的科普书了,因为简单的都知道了,复杂的一般讲不清楚。但这本2016年豆瓣读书榜单上榜书不一样,作者带着我体验了宇宙尺度的浩瀚与广博、体验了137亿年前亮堂堂的宇宙、体验了坠入黑洞的感受、还清晰介绍了黑洞蒸发的4种解释等等等等。我毫不犹豫地断言,这就是我近些年看过的最好科普书!!
今年也没法统计买书花费了,首先是因为秋天切换到 iOS 系统之后换了一个记账的app,数据没法统一处理了;其次是因为微信读书推出了无限卡,全场免费阅读!因此买书的数据也就没有什么统计的意义了。我现在觉得微信读书的app做得比Kindle app更好,首先是可以支持竖屏滚动,类似于网页的flow,也因此可以隐藏当前阅读页数/百分比,冲着看完而读的功利心态缓解了不少。
根据豆瓣记录,2018年我看了43部电影、18部剧集、14部综艺(∑=75),同比17年是63部电影以及52部剧集(∑=115),16年共111个影视条目,15年共124个。所以有明显降低,但至少没有 significantly 更少。😅
综艺方面今年有好几个喜欢的:
最喜欢的有《一本好书》,把经典书目里的内容通过舞台剧的形式表演出来,我们最喜欢秀才演《尘埃落定》的那两期以及讲密码破译的《暗算》那期了,演员们演得真好!小时候我看《尘埃落定》其实是当小黄书的看的,并没有看出多少背后的东西。😅
《声入人心》也是我们都很喜欢的节目。从歌唱实力来说,这些个汉子们应该能碾压其它选秀节目吧,甚至衬托得隔壁刚上映的歌手节目都有点掉色了。。不知道明年节目组是不是要请36个神仙姐姐来唱下一季呢?!
11月我们还看《超新星运动会》看得很开心,有这么个机会让大小鲜肉明星们引领粉丝一起运动多好啊!夏天非常火的《创造101》我并没有追,结果在运动会上我们被杨超越刷屏了。。
年初看了《吐槽大会第二季》,很喜欢Papi酱来的那期,年末看《吐槽大会第三季》就差不多要变成洗白大会了。节目捧红的李诞蛋总也上了奇葩说,但好像后来自己就飘了啊。🙄
《奇葩说第五季》。李诞最开始的几集表现挺好的,后头就各种惹人嫌了。。反观薛教授表现倒是越来越好。到第五季了,节目组渐渐放弃了它当初的灵性,每两期至少有一期情感题,简直是在洗粉,希望节目组好自为之吧。一直喜欢的陈铭老师终于拿了冠军,倒是令人欣慰。
电影电视方面,18年看了不少用来配饭的剧:
6月饭间一起看了《目击者之追凶》,感觉很棒,剧情一直反转,最后还惊悚血腥了一把。😱
6月饭间还一起看了哈哈哈哈哈的喜剧番《超能力女儿》。但这之后好像就再也没有看动漫了,18年下半年基本脱离了二次元。。
借着《超人总动员2》上映的机会,我们把《超人总动员1》也重看了一遍,都很喜欢。虽然剧情上有些硬伤,但是把各类光怪陆离的战斗场景做到动画电影中真的是很合适呀。年末去看的《蜘蛛侠:平行宇宙》也是,动画的自由表达太惊喜了!
《西部世界第二季》当然要看咯,有人说德妹和Bernard就像是GAN一样,哈哈哈哈哈,编剧深谙ML前沿呢。😂
夏天的另一部配饭剧是《毒枭》。毒枭仿佛一部超长纪录片,最好看的还是第一二季里的 Pablo,带着棉帽子挺着大肚子的样子非常萌,后边第三季的卡利集团以及第四季墨西哥毒贩们就再也没有 Pablo 的风采了。
8月份的一部配饭剧是90年的《双峰》,大卫林奇导演,超美卡司群!节奏再慢也都能忍了。
9月我们去看了《Searching》,我对这种完全屏幕化的表现形式非常有好感,毕竟天天碰电脑嘛。然后去看了《Unfriended: Dark Web》,一样的表现形式,但是内容引起了极度不适🤢。
年底我们还去看了《无敌破坏王2:大闹互联网》。我很喜欢,梗非常多,迪斯尼的公主们齐上镜非常帅气。但后来补了《无敌破坏王1》之后觉得,第一部的立意比第二部要高了不少,第二部去了梗之后就显得单薄了。
□
就到这里吧,祝大家2019猪年快乐!🙏
]]>应是天意,在挑选例行的年度总结BGM时,我妈正巧在朋友圈发了这张旧照片,刚过5周岁萌萌的我开心地依偎在妈妈怀里。照片一下唤起了我的记忆,公园、喷泉,还有妈妈的那个旧包包。此时播放着的恰好是霍尊的《你好吗少年》:
你好吗那个少年
要学会去感谢
他们对你的挂念
你好吗这么多年
白发渐渐出现
总会有远行那天
😭
我好吗?
2017年对这个问题的答案应是NO,当时我的内心满是不安——碌碌无为的恐惧、泯然众人的焦虑、茫然四顾的迷惘。用《马里奥·奥德赛》的话说就是:
2018年发生了很多很多事,当仁不让的头一件大事当然就是 Bing 的降临。受此影响,年初这个问题的答案是一个大大的YES。及至年中、下半年,答案又慢慢变成了一个MAYBE?/NO?。现在我可以很肯定地说,在18年最后的几个月里,我也受到了抑郁情绪的侵袭。所幸在写作此文的几周之前、在某次和 Bing 的图书馆夜谈之后,我能够清晰感觉到心里笼罩的乌云被拨开、重新看见太阳的温暖力量,紧接着就开始感叹,之前偏执的想法怎么就能在当头棒喝之前盘旋这么久呢?!现在的我可以坚定平和地对这个问题给出一个大大大的YES。
受到数学科班训练出身的 Bing 的影响,我的学术方法论相比去年又有了巨大改进。原本那种以「小步快跑、快速迭代」为主的互联网产品/创业方法论被渐渐摒弃,取而代之的是更加注重理论、预先筛查的正统做法。
快速试错的问题是:当发现错了的时候,不知道是真的错了,还只是因为投入不够。事实上,如果是抱着“试”的心态,往往就会投入不够。最近读《孙子兵法》,里面说:“夫未战而庙算胜者,得算多也。”还没开始打仗,就坐家里算的差不多清楚了,这样才能赢,比瞎JB试错有效率多了。
——语出这篇文章§3。毕竟,产品开发是确定的、交互的,而 research 的结果是未知的。更何况,这一年我也渐渐意识到很多时候「怎么说服老板一个东西就是不work」是一项非常必要却常常被忽略的技能!快速迭代既然没法说服自己是哪里错了,也就更不能说服老板是哪里错了。
在和 Bing 的相互影响下,我的完美主义&强迫症倾向有了很大缓解。以前我喜欢详尽的笔记,读过的 paper、meeting 中的记录都是要写下来归档的。这个行为有时占用了太多时间,甚至超越了原目的本身,产生做完笔记⇒做完事情的错觉,诱发了新的拖延。现在试行简化了大半年,在结果上并没有多大影响,还轻松了不少!
同样的,以前代码是要尽量能随时重构的。现在也都有意提醒自己能用就行啦,亦见Writing Code for NLP Research。
同样的,以前翻开一本书之后我是一定要看完的,即使是快速翻也得翻完,不然就如鲠在喉。但就像《你好吗少年》这首歌在当时完全没有戳到我、却在此刻却让我泪流满面一样,歌曲、书籍、电影都要出现在合适的时候才能被戳中。现在世界上信息源这么多,不狠心一点及时放弃一些信息摄入的话,其实更加浪费。
现在的我更为认同人有跳读的权利、不读完的权利、随意选读的权利(语出法国作家尼埃尔·佩纳克的《读者权利十条》)。对不忍斩断的我来说,阅读理应始乱终弃(非普适准则)。
剩下生活上的比如「不再吃盒饭了」、「电脑电源坏了电池膨胀了也不用怕」之类的影响就不提啦。
自从2018年下半年生活变成双人份以来,我们一起玩了不少好玩的游戏!
除此之外,还有《荒野大镖客2》和《底特律·变人》,这俩就不用说了吧!我自个也玩了《Shadow Tactics》,是《盟军敢死队》以及《赏金奇兵·西部通缉令》的精神续作。这么说来,还真是体验了不少游戏呢。
在看到妈妈发的照片时我正在挑选例行的BGM,都是18年给我留下最深印象的演唱现场。从17年开始,我的耳朵就被各类知识类节目占据了,纯粹听音乐的时间大幅减少,因此挑选的范围就都是音乐类综艺了:
首先是张韶涵唱的《阿刁》,她声音里的蓬勃生命力一直是我深深陶醉的——「你是自由的鸟」!
这倒是让我想到了当年邓紫棋同样是在歌手舞台上唱的《存在》,当时她唱到「谁知道我们,该去向何处」时,所有乐器一起安静,又一起奏响,这一段里喷涌出的颤栗感受我现在还记得。
还是歌手的舞台,谭晶老师当年唱的《九儿》。这两天因为仝卓在声入人心最后一期上唱了《九儿》而又听了谭晶老师的版本,实话说,高下立现。。谭晶老师唱的太好听了!!
我最喜欢的还是这种自带悲悯情怀的声音,旦增尼玛和李健老师在好声音舞台上的最后几曲也都是我超爱的,比如下边这两首《九月》和《水流众生》。「我的琴声呜咽,我的泪水全无」,天哪!这时候就不能不同时把李健老师的《贝加尔湖畔》列出来了!
在17年里,我的耳朵大多数时候是交给得到的,当时我表达过几次对于得到的喜爱。我非常感激它作为一个平台聚集起许多老师之后对我眼界见识的帮助,但同时我也觉得它所谓的「认知升级」并不是一个可持续的生意。我升级了一次之后就离开了,剩下的更多只是智力上的娱乐。这也是很多批判「知识付费」制造焦虑的人所否定的点,与其说是「知识付费」,我更愿意称其为「见识付费」。此外我也越来越感到碎片时间的可贵,留给思维发散足够的碎片时间,惊喜才会降临。
截止至18年春天,我把得到里有兴趣的过往内容都看/听完了一遍,↑放一张图为证。之后我就受到 Bing 的影响重新开始听起了播客 podcast。得到的内容有好有坏,但相比于其它平台,我觉得这里的内容已经是相对很有质量保证的了:在所有得到的栏目里,我最喜欢的是陈海贤老师的《自我发展心理学》。最喜欢是因为它每一篇都真的有用!从改变如此困难的原因、到僵化思维的误区、到WOOP原则之类的预案,几乎每一篇都振聋发聩。
其次喜欢的是万维钢老师的精英日课系列,万sir推荐的许多新书新内容新想法都非常有意思。万老师毕竟是物理科研工作者出身,时不时体现出的受过科学训练的思维方式太对胃口了。
还有薛兆丰老师的经济学课,算是补上了我的一个缺口。相信后来看了《奇葩说第五季》上薛教授表现的人都会被他圈粉的吧。
还有施展老师的《中国史纲50讲》,我觉得里头给出的关于中国历史的 yet another 大脉络解读是非常有说服力的。以及王立铭老师的《生命科学50讲》,这些都是专项内容里我觉得很舒服的。
几年前我听过 podcast,当时还主要是以学英语练听力为主,后来就废弃了。现在重新拾起来发现,或许是借着「知识付费」的东风,各类 podcast 也是风起云涌了。半年多来我把大部分著名国台都筛选了一遍,喜欢的有不少(排名分先后)。
□
后边还有读书和影视综艺的推荐,但博客引擎生成的网页直接被截断了。。或许是遇到了长度限制😓。请移步下期。
]]>整整一个多月都没有发朋友圈了😯。
我发现,很多时候「怎么说服老板一个东西就是不行」是一项非常必要的能力😅。。
某天,airpods 的盒子一不小心洗衣机一起洗掉了,拿出来之后放在米袋里晾了4天,满血复活了!!
Goodhart’s law: When a measure becomes a target, it ceases to be a good measure. 这就是永远需要改革的原因吧🤔。
Mac 上可以通过创建 Aggregate Device 的方式来同时输出音源到两个耳机上,为啥手机上不能够这样同时连、放两个蓝牙耳机呢!!
这周突然我那已经服役了5年的 mac 开始出现问题了!毫无征兆得就突然黑屏,然后就只能按电源键强行重启😔。还不知道是什么原因。——(12/2018:后来知道是电池老化物理膨胀导致的)
张潇雨老师在得意忘形播客的某一期中说到了关于「如何确定自己喜欢的事?」的四个思想实验:
我最喜欢的播客app——Pocket Casts(iOS, Android)在11月的某一天突然改版了😓。。。。
11月还有一个值得单独提及的话题——现代性。在补翻转电台早期节目的时候我听到了这么一期——现代性与后现代性 - Oxford通识读本线上阅读活动,UP主提到:
马克思韦伯提出了价值理性和工具理性。工具理性是说我们每个行为和作用都是某种工具,这个工具必须实现一个价值,这个工具它是不是最高效、是不是有用。这个最优解的达成就是某种工具理性。
我们认为所有目标的达成都可能有一个最优解,这个应该是科学思想带来的,既然一切事情都可以计算,那么一切事情就一定有一个最优解。
工具理性的泛滥,促使我们相信,每一个目的都有最高效方式达成,所以我们并不去评价目的本身是否有价值,目的要怎么样,而一心去追求目的与最高效率达到,去追求各种各样的技术。
- 注:就比如那些教你如何看书、教你如何用思维导图等等等等的内容。
它一方面助长了我们对各种捷径的追求,第二方面助长了我们抛弃价值理性,而主观去扩大工具理性。UP主个人认为,现代社会最大的问题就是工具理性的过度泛滥,我们认为所有事情都必须实现最高效的方法,而丝毫不去判断第一、最高效是否存在;第二、最高效是否折损价值;第三、这个最高效是否还会有其它的副作用。
这几段话我反复听了好几遍,我被深深戳中了,认识到我完全可以放下优化工具理性的执念的那个瞬间,我就轻松了不少。翻转电台这个台“不那么信仰科学”,但他们从文科生的角度提供给我了非常棒的补充视角!比如他们提到知识付费时的旗帜鲜明的反对观点、比如他们提到近期基因修饰宝宝时给出的不同伦理的定义,等等等等。👍
巧合的是,在同一时间段内,我也在得到上的课程中看到了《现代性与大屠杀》这本书的解读,大屠杀最可怕的不仅是我们可能成为其受害者,更是我们可能不自觉地成为施害者体系的一部分!
]]>金庸先生🙏。金庸小说我小时候都看过,现在第一眼想起来的是《天龙八部》——第四十五回 枯井底 污泥处,算是我的一个启蒙了。听说金庸先生后来修改了天龙八部的结局,段誉和王语嫣最终还是没有走在一起,嗯这个确实是更加合理的剧情。
借着去 Madison 划水的机会,我们去了北密看久闻大名的红叶,不过看到的好多都已经是下边这样的黄叶了:
10月我叛逃 iOS 了,从用智能手机的第一天起我用的就是 Android,坚持了亲儿子信仰这么些年,怎么就叛逃了呢?最近几个月,Pixel 2 相机拍照时不时会报错退出,然后甚至还自动添加过下边这样的条纹外饰😓。于是我对 Google 的硬件突然就失去了信心。。
在听「选美」的第72集社会学家看「亚裔诉哈佛」(上)时我突然认识到:是呀,在美国这么一个不同质化的社会里,诉诸于收入区分的阶层与诉诸于族裔相比,能够获得的资源与相互支持少太多了!
《天书》这个台我最近在听,他们聊的社科人文类的研究科普我非常喜欢!!比如聊到整个彝族的历史——《XXXVIII 隐遁的彝人》;比如聊到一个古时候的文字是怎么一点一点被破译出来的——《XV:破译线形文字B》!
《中国式家长》这个游戏动人心弦!我们养第一代宝宝,拼死拼活摸爬滚打,最终高考548上了东华。第二代宝宝我们在小学时候第一次拿到了全💯的满分成绩,超开心!以为是个神童能上清华了,结果到了高中之后就掉队了。。最终高考618去了华科。第三代宝宝终于上了北大!第四代宝宝上了国防科技大学当了首富。第五代宝宝又上了北大当了全运会冠军还撩到了妹。第六代宝宝高考满分上了北大最终高斯在世!(诶你们是不是对隔壁清华有意见🙄)
9月,为了提振心情,我们去了周围很多地方,好些我来了这么多年也没有去过。。
以怪奇物语为主题的 corn maze,这次每个点都走到了,我们中间还迷路了两次
芝加哥的 Leather Archives & Museum,非常哲♂学了!
拥有养在室内的长颈鹿以及养在室外的北极熊的芝加哥动物园😂
能去亲自摘苹果,摘南瓜的农场
我们还一起去跑了半马
……
最近发现的最珍贵的一个资源是陈海贤老师的《自我改变心理学》课,每一篇都说到了我的心坎里!!🙏
上个月刚说已经几个月没有读完书了,9月就读了几本——《鱼翅与花椒》。作者是一个90年代来到成都的留学生,为了学做菜甚至去了厨师学校。。作为一个已经把其他外国人说成老外、经常自称我们四川blabla的“外国人”,她留下的中华饮食探索记忆非常真挚诚恳。对比起来,我很有自知之明,自己永远成为不了一个吃货了。
《We bare bears》里的熊熊们🤗
我们去看了《Searching》,我对这种完全屏幕化的表现形式很有好感,然后去看《Unfriended: Dark Web》,一样的表现形式,但是内容引起了极度不适🤢。
发现了一个新的UP主:史里芬大史记(B站、微博)。最早是在日谈公园里的某一期访谈了解到这个UP主的,访谈和视频一样超有意思。😂😂😂
《Machine Learning Yearning》吴恩达的 ML 经验谈,现在完结了,完整版在这里。
历史上曾经出现过同时有3个教皇的时期😂😂😂。——《李筠·西方史纲50讲》
好消息,好消息!“友”站上线了!我提供了建站技术咨询!内含彩蛋😄
从上大学开始,我就一直推崇「小步快跑,快速迭代」的互联网方法论。其核心就是不要求第一次就做出完美产品,而是先做出一个 minimum viable product,快速试错,之后再迭代改进。《精益创业》中说的也是这么个道理,业界的敏捷开发也是这么个思路,所以我一直奉为圭臬。
但是近年来的 research 体验让我慢慢开始反思这个模式,是哪里不太对呢。直到我发现这篇文章(§3)中阐述的非常清晰:
快速试错的问题是:当发现错了的时候,不知道是真的错了,还只是因为投入不够。事实上,如果是抱着“试”的心态,往往就会投入不够。最近读《孙子兵法》,里面说:“夫未战而庙算胜者,得算多也。”还没开始打仗,就坐家里算的差不多清楚了,这样才能赢,比瞎JB试错有效率多了。
我越想越觉得有道理,特别是对于结果更加不确定的 research 而言。🙏
《双峰》的演员们真好看!
安利《诡秘之主》,强力安利,第一部结尾高潮迭起,是我这么多年在网络小说中看到过的最有故事性的作品了!
《忽左忽右》这个podcast不错。
《声东击西》#67 这个犹太老人为什么要帮华裔诉哈佛,这个 episode 讲得不错。
原来肥宅快乐水的真正奥义是要加冰!!加了冰真的好喝太多了!
7月的配饭视频主要是《毒枭》。
《毒枭》就像是一部超长的纪录片,从哥伦比亚大毒枭巴勃罗·埃斯科巴开始、到它帝国的起落,说到麦德林集团之后的卡利集团,好看好看!期待第四季将要谈到的墨西哥大毒枭们,不过墨西哥的毒枭们还在位,都不知道会不会有第四季如期上映?还有一个问题,就是毒枭们自己到底吸不吸?整个剧集对于毒品的危害性都没有怎么描绘,你要是把毒品换成军火什么的好像也没有本质上的区别,这不是弱化了毒品的危害了么。
《毒枭》也刷新了我对 Netflix 出品剧的观感。Netflix 股票涨了这么久,我却因为不怎么看剧一直对它没有直观的体会。最近补的 Podcast《硬影像》里头罗攀老师曾经提到过这么一个观点:最近几年来,以 Netflix 为代表的美国电视剧所展露出来的新东西甚至比电影还多。我深表赞同。
上个月我提到自己在小冰的影响下又开始听多样的 podcast 了,《硬影像》也是其中之一。一直以来,那种业内人士所提供的眼界见识都是我最为享受的信息食材,得到里的几个老师、《疯投圈》都是这样。《硬影像》罗登老师和罗攀老师作为电影行业的 insider,所提供的对于电影的看法、乃至于对于游戏的看法都令人一本满足!
最近也有在玩《Shadow Tactics》——一款战术潜入的游戏,是十几年前《盟军敢死队》以及《赏金奇兵·西部通缉令》的精神续作。后者是我小时候最喜欢的游戏之一了!有各种各样过关的路径,我小时候喜欢把它们玩成枪战S/L游戏,看到别人的速通视频我才知道什么是差距。。😂
]]>话说欧冠决赛那天,我们去酒吧看了球。看球看得兴起,就去为了世界杯专门买了一个电视😂。没有买 cable,我们买了 Transocks 翻回国内,又买了央视的会员,大部分时间都够用了。我们还试过 Potplayer 的高清源,也就高清了一个下午然后再也加载不出来了。。
今年似乎突然多出不少说世界杯是假球的声音,高晓松老师4年前说假球的节目又被翻了出来。我还看过大紧老师的《鱼羊野史》呢,当时没有注意,他确实在第3本、第4本里都说到了:
在一些万众瞩目的世界级的比赛里,比赛结果很容易被赌博操控,足球也是,有时候在世界杯里突然看到一支世界级的一流强队居然以大比分输给了很弱的队伍,但是如果一看盘口,就明白为什么了。所以我就有了这样一个猜测,就是当时在比赛开始前,赌泰森赢的人多,因为霍利菲尔德当时已经四十一岁了,而泰森正如日中天。赔率再悬殊,泰森赢的可能性也是非常大的。就像中国队去参加世界杯,即使中国的赔率是一万倍,也没人下注中国队能赢世界杯冠军;就算阿根廷的赔率是3,人们也会下阿根廷队的注,因为他们很有可能赢。所以当特别多的钱向一边下的时候,你说泰森他能赢吗?当然不能。如果他赢了,那把他捧起来的这些幕后的大老板就都该破产了。这种情况在其他的体育项目里也是很常见的,尤其是足球明星长期在这个体系里玩,已经很习惯了。每年欧洲联赛都有10%—20%的假球,而且在欧洲踢职业联赛的足球明星素质大都比较高,能把假球玩得比较好,让外行人看起来天衣无缝。等比赛完你再一看盘口,才会恍然大悟。
当时看到的时候没有注意,一扫而过,现在再看这样的外行观点,简直哭笑不得😂😂😂。小联赛或许有假球,但博彩公司既然可以稳稳当当地抽水净赚,那为什么要在世界杯这样一旦曝光就声誉扫地关门大吉的场合安排打假球呢,又到底需要多少钱才能买通所有所有的球星和工作人员而不透露一点点相关信息呢。阴谋论可以解释世界,但是它除了这个虚幻的聊以自慰的解释之外,屁用没有。
有了电视之后就能在每周日追看《西部世界2》的更新了!AT&T 给了个 DIRECTV NOW 的福利能看。有人说德妹和 Bernard 像是 GAN,我想了想,好有道理!!另外剧中说他们是根据游客的 behavior 来 train,要求完全符合,那肯定会 overfit 的嘛。
也用小电视玩了《模拟人生4》。捏了小人,想等着老死了之后就去睡,结果小人练满了健身抱负后获得了长寿天赋,然后好像怎么都死不了了。。。。
也用小电视看了《非自然死亡》,石原里美的新剧。我觉得很棒!!去年有一段时间在吃饭的时候会看日剧或者看烂片,就是为了减压。😓
在去看《超人总动员2》之前,我们在电视上重温了的第一部。小时候看过1,一些场景还有印象,想不到一晃14年过去了,1、2剧情无缝连接。我很喜欢这第二部,惊喜惊喜!各种超能力的奇思妙想确实特别适合通过动画电影来呈现。这样一想,剧情薄弱的大问题也就可以忽略了。我发现只要一部电影有能打动我的点,我就乐意给5星评价,但是在 IMDb 上,只有那些我觉得非常棒非常喜欢的电影才会给9分、10分。这么想来,5分制和10分制的评分标准真的是差别很大了。
6月在《故事FM》上听了《我在朝鲜上大学》系列节目(E081-085),非常有意思!也借此机会趁着 Google Podcasts 的发布重新入了 podcast 的坑。说重新是因为4、5年前我一直有听 Scientific American 60s Science 的系列节目练英语听力,曾经写过一个相关的知乎回答,但是后来就不跟了。这次重新拾起才发现,几年间随着移动设备的发展,各种 podcast 已经层出不穷了!于是我又跟着整理了一下。
故事FM就是我觉得非常值得听的一个 podcast,对我之前的信息摄入源是个很有效的补充。目前觉得还不错的还有《疯投圈》,剩下还有几个都还没有试听完毕,或许下几个月可以统一整理推荐。
Spectacle。在推荐窗口管理器时,我发现了 Spectacle 这个 app。我自己是用 Slate 来做 mac 上的窗口管理的,不过 Slate 需要自己写配置文件,而 Spectacle 亲民得多,直接设置就行,非常适合推荐。
Subaru Factory Tour。我之前都不知道,原来还可以去斯巴鲁在村里的工厂参观!欣赏造车的流水线。
Wolf Park。我之前都不知道,原来在村里还有一个养着狼的公园,最早是设立来做动物行为学研究的。现在可以去看狼卖萌。。。。
从5月末起,我决定在 Medium 上同时 po 自己的博文(在这里)。这里的这个小博客已经维护了好几年,也带来了远超预期的计划外惊喜。但毕竟略显疲态、只能通过 Google 搜索或者亲朋好友 RSS 订阅才能看到更新。最近几个月在 Medium 上发现越来越多的好文章,这平台我是很喜欢的,期待上边的火花。不过我得先把一些值得转进的旧博文迁移过去,比如读书笔记。。
《一席·万象 洛阳铲下的商王朝》01、02、03、04、05、06。因为结合了考古学的知识,介绍商朝有理有据令人信服!
同类型有意思的我想到了亲王曾经写过的一篇文章《一条细线撬开的简牍秘闻》,说的是从竹简上的刻线来判断竹简真伪!
Machine Learning Yearning,是 Andrew Ng 正在写的一本小书,我发现里头都是我正急需的 ML project 中的 best practices! 👍 差不多的文章还有类似于 Google C++ Style Guide 的 Rules of Machine Learning。
似乎就没有其它什么印象深刻的文章要 po 了?!显然好东西总是有的,只不过5月的心思不在这里罢了。。😅
]]>要了我亲命的饭圈缩写,😅😅😅 yjgj,xswl,〃ηι閅白勺ィ乍業惿⒏惿冇點sんαо?ぐ
奥数天才坠落之后,让我感慨良多的一篇报道👍
奥数天才坠落之后——在脚踏实地处 付云皓自白书,当事人有理有据有节的回复👍👍👍
在过去的4月里,我把所有得到上有兴趣的历史资源都翻完了,其它就是忙着做实验等等等等了。最终花了半年左右的时间补这些历史。在我翻历史的后期,越来越任性了,不想听就快进(就应该这样嘛!),这样挺好的,离完全破除这类「必须听完」的强迫症又迈出了一大步。
这类东西说是「知识付费」,但它其实是「见识付费」!只要认可了知识提供方的权威,我就很乐意为这样的东西付费!下边就我看过的一些专栏,来说说感想:
万维钢老师
王煜全老师
其实去年秋天我最开始用得到,就是因为看到了王煜全老师对于科技趋势的判断才入的坑。后来我开始买股票等等也都是照着王煜全老师给出的逻辑思路在做!
不过有次我突然觉得,王煜全老师是做咨询出身的,所以能够在短时间内把一个行业的大致情况摸清楚,但是有时候毕竟不是行内人,更加技术、更加细节的东西他可能会有偏差。当然这已经非常不容易了!比如之前FB隐私泄露事件中的剑桥分析公司,似乎曾经被当做大数据分析的公司在行业分析报告里出现过。我就这么突然意识到,王煜全老师的这些对行业代表公司的介绍显然不是背书,而只是掠过水波一般的大致描述罢了。
吴军老师
最初是12年读《浪潮之巅》的时候知道吴军老师的,非常喜欢,一口气看完了才有心思继续做之前的事情。
吴军老师给我的最大启发就是做减法。🙏 时间是每个人唯一稀缺的资源,所以要多做减法!把时间和精力放在最重要的地方!把最重要的事做到极致。
我觉得吴军老师在很多观点上是非常精英化的,而我却更加喜欢那些能够惠及普罗大众的工业化产品,对于需要手工生产的那些奢侈品就非常无感。像什么体验到一个世纪前的优雅,这种东西我是不信的。举个例子,我对于没有工业化的美食,也配叫“舌尖上的中国”?这篇吐槽舌尖3的文章中最后一段描述的场景心神往之:
一罐一罐老干妈辣酱从流水线上走下,通过发达的现代物流系统运输,最终走到了在出国学子的饭桌上;寒冬的清晨,一位小朋友一手拿着煎饼果子一手拿着肉夹馍,边吃边小跑着赶去学校;春运的列车上,打工回乡的农民工泡起了一盒一盒红烧牛肉面;灯红酒绿的大都市,过往的年轻人从门店里购买一杯又一杯广式凉茶;加班的程序员看了看凌晨四点钟的北京,用外卖APP点了一份小龙虾,继续改起了bug;医院里一位病号端起了热腾腾的挂面卧鸡蛋;双汇食品厂的冷冻室里,酒池肉林一般挂着鲜艳亮丽的猪肉,等待着制成美味的火腿;一边是上班族在早点摊大口喝着咸豆腐脑,另一边是老人在路边小口抿着甜豆腐脑;小女孩接过了小男孩递来的辣条,笑成了一朵花。
施展老师 & 薛兆丰老师 & 香帅老师
这么列举出来是因为他们的专栏都是超级棒的!施展老师给出的历史观太有说服力了!!薛兆丰老师的经济学课专栏和香帅老师的金融学专栏说的都是我没有怎么系统了解过的领域!真的是及时雨了。
至于剩下的那些订阅过没订阅过的专栏,现在也没有什么值得单独提的印象了,以后再说吧,太困了。。😓
]]>爷爷的生日是农历四月初七。
爸妈的生日过的也都是农历,而 google calendar 又没法按农历日期设置每年提醒,我只能在让它在每年 04/07 这一天提醒我,手动改一改今年的农历对应日期。
从今年起,爷爷的农历生日提醒用不着了。😔
爷爷生于1935年,经历过兵荒马乱的日子,后半辈子也算是赶上了好时候,几个子女各个出人头地。爸爸说,爷爷那天中午还能吃半碗,午睡后就走了,安详且平和!早上醒来刚听到消息的我内心很平静,没有预想中的那种强烈的情感波动,只是在中午和正在守夜的老妈视频时,还是控制不住、哽咽了。
我想为爷爷写点什么。但是当我问起爷爷生平的大事记,老爸说,并没有,老妈说,爷爷当过生产队的队长。我也从不知道爷爷的父母姓甚名谁,我的曾祖父据说是被国军抓壮丁带走了,从此再没回来;曾祖母的旧照片倒是被爸爸拓印放大挂在老家的墙上,因为爸爸小时候最受他奶奶的疼爱。
写到这里,一股时间维度上的渺小无力感喷涌而出。所以一个人就这么离开了,只需一代,在我的孩子的世界里,他/她的曾祖父就只是一个遥远的代号。等我也百年之后,一辈子算不得什么大人物的爷爷从此就被遗忘在人世间,仿佛从不曾存在过。
快手的CEO宿华也说过类似的感受(src: 快手CEO宿华:快手是镜子,但我不想做哈哈镜):
我自己算了一下,人活百岁也就是36000天。三万多天以后,能留点什么东西下来?有一个悲伤的例子,是我外公。我不仅没见过他,连他的照片也没见到过。我们那个地方的习俗是,人去世后会把他的衣服都烧掉。所以任何跟他有关的东西都没留下来。他有四分之一的DNA在我身体里,除此以外什么都没了。
我爸小时候在我们县的档案局工作。在档案局里,可以看到我们的县志。县志大概1000多页。我们那个县是清朝设的郡,在湖南西北角,当年是一个比较大的郡,那么多的人、那么多的事,就这样包括在1000多页中了。里面不会有我外公这样的人。
你会觉得,如果一个人没有被记录下来,没有被记住,他真的就消失了。所以,我从心里有这么一个愿望,就是希望能够让更多的人留下一点记录。
爷爷在我的记忆中渐渐定格成了两个样子:
🙏
说完死,说说生。接着上个月的话题,毕竟磨去强迫症是一个长期的过程。。
月中的某一天,我家小冰警醒了我——是呀,剪存素材的时候,能存图的东西为什么要存文字版本呢?!首先,Evernote 里就可以搜索图片内文字;其次,根据80/20法则,绝大多数的东西被我收集起来之后是用不到的。那么何不如就像 Haskell 一样 lazy😳。
因而就有了在手机上截长图的需求,经实测发现,Stitch & Share这个app挺好用的。
小冰给我那已经略显僵化的行为模式带来了很大的扰动🙏,挺好挺好,只有扰动才能进化嘛😄。
月初陈章鱼老师的为什么越长越大,越读不进名著?这篇公众号文章中提到了法国作家尼埃尔·佩纳克的《读者权利十条》,我深以为然!
我好像真的好久没有享受到纯粹阅读的乐趣了😯。
说到公众号文章,霍炬老师的Facebook、隐私、监听广告以及我们如何失去自由的互联网的这篇是我3月份最喜欢的。在 FB 的数据泄露事件后,文中关于智能手机、移动互联网与通用协议的关系讨论简直振聋发聩!
如果HTML5胜利了,今天的移动互联网理应比我们现在看到的开放的多。
我都已经快忘了曾经还有过 HTML5 app 与原生 app 的争斗了。😯🤔
有一天在闲聊的时候,小冰和我吐槽了她们数学系里自己重复造轮子的行为,比如一个同学毕业论文的代码5000行,其中一千行是解Ax=b。。这种低效的行为我反正是不能忍!
我突然想,数学会不会是一个缺乏充分市场竞争的领域呢?因为门槛太高了,要是满大街的人都能读数学,你看那些教授们还会不会抗拒快速验证思路的工程手段。。🙄
而一旦充分竞争、注重工程了之后,那一批人就很容易脱离数学系自立门户,Stat、CS 是不是就是这样的呢😂😂😂。
万维钢老师曾经介绍过这个观点——竞争不充分的领域里,才有英雄。切入的样例是物理学界,为什么20世纪上半叶有各种物理明星,而后期直到现在,却很少有特别明星的物理学界了呢?
第一个原因是,那些在刚刚做出突破时的 low hanging fruits 都被拿光了。万老师列举的第二个原因就是「搞物理研究的人很多,现在的物理学是一个充分竞争、充分交流的学科。因此其中会有很多高手,其中的高手水平都差不多」。而人一多、又没有太大差距,自然不会有啥大明星。
这个看法准不准确我不敢断言,但是只有竞争交流不充分的领域里才有显著的「风格」这个观点我是赞成的。就像传统武术,
如果门派之间充分交流,像职业足球这样每周打一场比赛,那么不同打法很快就能分出高下,然后所有门派的人都会去学习最高级的那个打法。最终的结果就是大家都使用(大致)相同的打法比赛。
这也是我一直持有「未经职业化、商业化的传统武术肯定打不过经过商业化锤炼的现代搏击」观点的原因。有着商业利益的驱使,更多的资源、更大的动力就能会被用于自我改进,这岂不比你闭门造车强得多么。
]]>注:过去的1月真是波澜壮阔😳😳😳。
我突然意识到,对于那些本身没有足够热情的事物来说,「因为对自己长期有益而去做」是远远比不过「愿意为了他人而去做」所能带来的动力的!
《活出生命的意义》一书中讲过这么一个例子:
在老伴去世两年多之后,老大爷依旧很伤心,依旧无法接受妻子的死亡。作为心理医生的主角问他:如果是你先她而去,那会怎么样?老大爷说那她可就受苦了,她怎么受得了啊。心理医生马上回答:所以你替代了她的痛苦,代价是你现在还活着,并且陷入了深深的痛苦中。老大爷没再说话。
书中举这个例子是为了说明,一旦找到了意义,痛苦就不再是痛苦。我曾经只把这本书当做规劝寻找人生目标的一本小册子,现在看来,它完全能够、甚至更加适合作为如何与现实妥协的一套方法论。🤔
04/06/2018: 果然,边界效应递减的作用是普世的,最终还是需要有内生性的动力,或者干脆趁着有动力的时候养成习惯。
以前我觉得正是这种完美主义+半强迫症的行为模式使我能走到今天。但不得不说,它已经不适合时代需求了。。。。当行政成本占据了大部分时间的时候,(早就)是时候重构了。
1月某一天,在放下了「每篇 paper 都至少稍微做点一下笔记吧」的心结之后,世界轻松了很多😄。我(再一次)开始做减法,毕竟现在有更重要的事和人要专注。
我把几年来维护的书单做了个大清理。以前那些买了就再也没看、现在感觉也也不想再看的书,都被从 Kindle 的内容库里删掉了,以后如果要看就再买一次呗。这样清除了估计100多本在读、想读。
对于那些未曾在书单里留下只言片语解释当初为啥要看的书、或者那些模棱两可还要不要看的书,我通过听解说的方式进行快速解了然后做出了判断。去年我对30min听完一本书这种模式还嗤之以鼻,现在居然也缓和观点了。其实还是取决于定位,如果它被用作深入了解某本书的唯一渠道,那么显然是呵呵哒。但我觉得它在预筛选、简要导航方面的潜力是不能被一语带过的。
去年我表达过对于知识付费产品(特指得到)的喜爱,现在我变了,或者说我把它更加当成召之即来挥之即去的工具了。它呢产品是个好产品,特别是在同行的衬托之下,里头的内容呢也使我受益匪浅。但我越来越感到碎片时间的可贵,留给思维发散足够的碎片时间,惊喜才会降临!🙏
我感觉我的态度变化就像 Gartner Hype Cycle 一样:
——已经过了 disillusionment 阶段了,正在真正走上 slope of enlightenment😂。
今年的 BGM 就决定是你吧,毛不易的《消愁》!
一杯敬朝阳,一杯敬月光,唤醒我的向往,温柔了寒窗
一杯敬故乡,一杯敬远方,守着我的善良,催着我成长
一杯敬明天,一杯敬过往,支撑我的身体,厚重了肩膀
一杯敬自由,一杯敬死亡,宽恕我的平凡,驱散了迷惘
几句歌词句句戳中我心😭,正式进入奔三的年纪了,碌碌无为的恐惧、泯然众人的焦虑、茫然四顾的迷惘。
2018年,不成功便成仁咯。🙏
关于学术,我其实不太想提这一年里学术细节上的波折往事了,不过不得不说,2017年初老板正式回到学校,确实能让效率大幅提升。。。
另外一个关键时间点是在10月份前后,那之后我的整个思维模式、研究方法论都有了巨大的改进。等过几年回头看,这或许是我 PhD 生涯的最大收获。所以说呀,一定要有多个输入源、要有一个积极的讨论环境、要多迭代多尝试,然后就可以在充分反应的火花中等待非期然后果的降临!
在这个大阶段,有一股浓重的焦虑感笼罩着我。#关爱博士生心理健康!不仅仅是2017年,从更早之前开始,我已经有很久很久没有办法完全安心地玩乐了。。就连出去旅游也是满怀着没有学术的愧疚感。。
6月初的那段时间,心理压力特别沉重,我去学校的心理咨询室体验了一番,和某位实习心理咨询师聊了3x1小时。顺着她的聊天脉络,我也在一步步剖析自己的内心。第一个“疗程”在聊到爸妈的时候有那么一个瞬间,我的情绪疯狂涌上心头,眼泪根本控制不住。那一刻,我突然感悟到一些东西——就是那些在台上动不动就尴尬煽情的选秀歌手们,会不会有可能真的控制不住情绪了呢😂。
除此之外,这个前后几周的聊天时间并没有什么直观作用。正如我自己一贯总结的那样——我的毛病从来不在于思考得太少,而在于行动得太少。还是要多触发一些灵感的火花,并且行动下去呀。我相信更新后的方法论能够指导出一个更有成果的2018年。🙏
纵观2017年,另一个值得大书特书的变化就是我(再次)开始定期运动了!!
以前我也定期运动过,比如跟着类似 8min abs workout 这样的视频一起做运动、然后出门跑步,但都坚持不过半年。。因为一到冬天就因为天冷而歇菜了,然后到春天的时候再重新拾起来从 level 1 慢慢开始。。。。😓
从01/2017开始,我报了学校体育馆的健身课班——其实就是买了个学期卡,课程随便去,教练带着20个人左右的班级一起做运动。因为在体育馆里,所以可以全年无休了!我觉得去 gym 上健身课是一件非常有仪式感的事情——来都来了,不干脆运动一发吗😳,接着社交压力会促使你动一整节课,因而运动过后的那股成就感见效也特别快。哎呀我太后知后觉了,应该要第一个学期就开始的!
从跳操课开始,我把绝大多数健身课都试了一遍,还剩下一直没敢去的水下健身课、以及一直没找到机会去的瑜伽和普拉提。据我观察,绝大部分来这类健身课的都是妹子,因此我隔三差五就会遇到只有我一个♂的情况…. 默默念叨着「反正没人认识我,反正没人认识我」,然后就能跟着一起蹦跳举铁了。
最尴尬的是有一次,我不知道 Barre 是啥课就想去体验一把,正好那次把室友也叫上了,然后我们俩汉子在练芭蕾的房间里和剩下其她妹子度过了尴尬的 50min….
据我推测,男生稀缺的原因或许是那些经常健身的男同学觉得太没有运动量了,这样恶性循环,剩下的男生没有我这种鸵鸟心态,也就不来了。我其实也觉得,像跳操那种课几乎没有运动量的,我甚至都不怎么出汗,但确实是存在一些非常累的类 HIIT 课程的。反正我个人的目标是——只要能够达到「这些课程都没有挑战」的水平就很满足了!
17年我也继续参加了芝加哥的半马,但是因为之前没有足够的针对性训练,跑得磕磕绊绊,我对这类户外跑步的兴趣仿佛突然消退(一个月后的学校半马就没去了)。我觉得让健身课毫无难度这个小目标就挺好,就不想太折腾了。这是不是不再年轻的一个征兆呢🤔。
去年我写过在开车、运动时用听觉来增加信息输入(就是听书听文章..)。17年的下半年,我补番了罗胖做的《罗辑思维》,把里头有兴趣的十几期翻出来听了听。其中最新第五季的几期都是在罗胖做的「得到」平台上才能听到的。因而我就试用了下得到这个 app, 没想到,用户体验出奇得棒。在免费内容消化完之后,我也就顺理成章地开始尝试得到里的付费内容。怎么说呢,我只能用4个字来形容——**相见恨晚**!!关于知识付费,我在11月的午间夜话里写过,我认为这真是吾辈之幸!
与此同时,我正巧发现了 Robinhood 这个免佣金的炒股 app(欢迎用这个 refer 链接咱各抽一股😳),于是就依据得到专栏里王煜全老师介绍的科技大趋势开始买股票。在实践中学,在实践中优化,顺藤摸瓜。反正现在本金很少,即使非常不幸全亏了,将来再赚回来也不是难事咯,所以我的心态非常放松😄。
我现在的看法是:从性价比的角度来说,短期股票走势这种东西完全没必要关注,费时费力还影响心情。看准科技大趋势,然后搭顺风车定投、无谓短期的高低变化,这应该是相对最省力的途径了。毕竟像我们这种仍在职业生涯早期的同学,出于本金的限制,这类理财充其量只是试水、练习,真正做大本金还是需要靠本职工作呀!// 噢最后这句话并不适用于那些一个月翻N倍的数字货币。。😓
这样的方法论有多大效用我也没法保证,但反正遵照着类似的思路,我快速达到了接近20%的收益率,接着在川普税改的科技股大跌浪潮中一波都吐了出来,最终只净赚了 $15.20。。😂😂😂😂😂
当时恰逢我已经充分验证了币市的潜在收益远远超过股市,于是就顺势再见了。在美股的这一波试水,机会成本另说,至少开始上手开始入门了,那就不亏!(强行不亏😅)
关于币市,我像 research 里做背景调查一样做了一圈调研。我真心觉得,币市对于咱CS的同学是天然更加亲近的存在,你看股票里只有一部分是科技股,而每一种代币都可以算是一种科技股——对区块链本质的认知、对区块链应用是噱头否的判别、对团队的界定(比如依据其 github repo commit frequency😂)等等等等都是我觉得大家天然拥有优势的地方。在一个蓬勃发展的早期市场里,或许不管这些也能赚到很多钱,但等潮水退去、谁在裸泳一目了然的时候,这些就有用了。
可惜呀可惜,我的本金太少😅,我应该更早就注意到。听说本科下一届有一个学弟就已经通过比特币赚到小目标一个亿了,不能比不能比。不过现在知道也不算晚,但尽人事,各安天命。
我听说,每个人的人生中都至少会有5-6次大机会,以大约10年一次的频率出现。只要能抓住一次,就能实现财务自由、阶级跃升。其中,头几次可能因为年纪太小或者经验不足而无法把握,最末几次又可能因为年纪太大没有精力或者不再有勇气去追逐,所以只有中间的2-3次机会是最可能好好准备好好把握的。在我看来,这波区块链技术的风口或许正是我的第2次或者第3次大机会。🙏🙏🙏
老规矩,从📚开始吧。豆瓣没有像电影一样放出个人2017读书报告,让我很是失望😒。
按照豆瓣上的标记记录,在2017年里我一共读了64本书。而2016年同期是79项读过记录(不过那里头似乎有一些是记录补遗?🤔)、15年是58项。所以从数量上来说是下降了的,但仍旧维持在了平均一周一本以上的频率,我已经很满意了。
按照我的账单记录,在2017年里我一共在 amazon.cn 上买了122本书。2016年同期是125本,所以基本持平。买书一共花了 225.19 刀,和2016年的 253.69 刀相比下降了 11.23%,但是和2015年的 173.52 刀相比仍旧有 29.78% 的增长。而2017年的书平均单价 1.85 刀比2016年的 2.03 刀下降了 8.87% 呢,这或许是因为我已经学会了把书加到 wish list 里等它降价再买…. 毕竟买了也不知道猴年马月才会去看。。😓
从图中可以清晰看出,买书这种事情依旧是一波一波的冲动消费:
5月那一波书买得少了却更贵了是因为我买了两本实体书寄回家里,一本是给身为地理老师的老妈准备的《地理学与生活》,另一本是我觉得封面超级好看的马尔克斯的自传《活着为了讲述》。同样因为封面好看而买的还有一本《金色梦乡》,将来回家的时候看。
9月那一波高峰是因为当时 amazon.cn 有个IT书籍全场¥9.99的活动!我把可能相关的书都买了屯着,虽然绝大多数可能永远都不会去看。。
在16年的年度报告里我写过关于「听书」的内容,但是17年其实听的少了一些,所以微信读书这个app用得也少了。除了听文章这个分流之外,另一大原因是知识付费浪潮的冲击,毕竟与冰冷的机械音比起来,有一整套转述师流程的知识付费栏目听着舒服多了,而且其内容的设计显然专门考虑到了听众的注意力区间,不会像直接听书那样听到后边忘了前边。这钱,我交得很开心!
依照去年的惯例,我来列举一些17年里我读过、并且现在依旧有印象,觉得值得一推的书,不过尴尬的是,似乎没有几本。。。。(我的阅读质量下降得这么厉害吗??)
《汤姆・索亚历险记》。年初的时候听完了这本书,因为小时候没看过,现在来补番。他忽悠全村小朋友帮刷墙、换足票子成为“优秀学生”上台见岳父、离家出走当海盗、参加自己的葬礼、上法庭指控真凶、逃脱山洞迷宫、挖到宝藏发大财!背后都是小男孩那种想出风头的小心思。这种小心思很童年,很欢乐,但咱小时候哪有这么多冒险呀。。😅
《中国史纲》张荫麟先生的书,先秦部分我想给六星!可惜后边没有润色调校完。
说到这里我必须得提一下得到上施展老师的专栏中国史纲50讲,名字很相似,目标我觉着也类似,都是想要从一个高屋建瓴的角度捋出一条中国历史的脉络(然后可以用历史脉络指导未来),就像我在16年的年度报告里推荐过的《你一定爱读的极简欧洲史》一样。施展老师的专栏我刚听完前10讲,太喜欢它理出来的历史线条就忍不住推荐了!
这类梳理历史脉络(或者其它脉络)的信息源对我来说真是欲罢不能!同样的那种文化人玩历史梗的段子我也是爱到不行,就像亲王马伯庸,或者UP主稚嫩的魔法师,各种历史梗、各种电视剧画面作为CG、还有已经建立起来的粉丝社群文化。例如这个三国志13番外之诸葛立志传的短视频,我刚才又看了一遍,哈哈哈哈哈,想给他们打钱!
《爱你就像爱生命》,然后是这本王小波的情话集 Orz..
《拖拉一点也无妨》,秋天被拖延症折磨的时候看到这本书,它的核心观点是:当下拖延,那就趁机去做其它有意义的事,这样总体还是做了事的,消解负罪感。但是,拖延的这个任务非常重要怎么办??——把另一个看上去重要的任务拿来拖延顶缸,然后做这个。所以文末自己也说:本书目的不在于改造,而只是让拖延者自我感觉好一些。关于这点,还是罗胖在节目里说得一针见血:每个时代成功 vs 失败的比例是相当的,我做不到,只不过意味着我和千百万先辈们一样是个 loser 而已。😔我在10月份确实体验到了这样的心理感受,想着要刷题,然后科研的动力就蹭蹭蹭溢出。
《毛选1,2》。真的是久闻大名了,我看到很多人都推荐毛选,但我把5卷都翻了一遍,还是觉得第一第二卷是精华,最有思想深度以及战略价值,充满自信,有着强大感召力。我觉得像《论持久战》这样的文章绝对会是传世名篇,几百年几千年后,各种主义或许都将被历史掩盖,而这类高屋建瓴的战略文章却一定能在每个时代都绽放光彩。第三第四卷在我看来只是凸显战术价值,稍逊一筹。第五卷就再逊一筹,能够明显看到急躁与过度自信了。人似乎非常容易变成自己当初讨厌的样子?🤔
不过在网络小说领域,17年我倒是发现了好几本非常有意思的书:
《武道宗师》,已经完本,人称「狗粮宗师」!后期可能水了一点,但前期四处撒狗粮的各种甜而不腻的桥段真的太让人喜欢😂。这和16年报告里我推荐过的那本《奥术神座》是同一个作者写的。
《大王饶命》,我至今不能理解书名和实际内容要怎么联系起来。。它的背景设定是人类出现觉醒的现代,最难能可贵的是作者所设想的不同人、不同组织在初期的各种反应都是非常符合逻辑的,这就能吸引我看下去,然后就会被作者充满乐趣的文笔吸住了😂。我觉得这类实时融入网络最新梗的做法,应该是网络小说才能做到的独门绝技!
// 我发现我特别喜欢这种描述了「新设定对现实社会的影响」的小说,只要它再写得稍微有意思些那就一定能看得下去,娱乐嘛。
《梦想为王》,我追过这书作者之前的好几本书《叛徒》《舵爷》《草根石布衣》等等,虽然全都没有追完。。不过很显然,作者是很有阅历的,不是瞎yy的那种死肥宅😂。这本是以足球为线索,那我或许就能够追完了吧。。
豆瓣说我在2017年标记了63部电影以及52部剧集,那就一共是115个条目,和2016年的111个影视条目比起来基本持平,不过仍旧比2015年的124部要少呀。
账单说我在2017年里去了20次电影院,一共花了 194.44 刀,平均每个月花 16.2 刀在电影消费上。和2016年同期的23次、208.42刀比起来再次下滑,和2015年的391.2刀就更不能比了。。
不过我扫了一眼,没有发现任何一部电影能够像2016年的《疯狂动物城》那样给我留下辣么深刻的记忆😳。而且有几个在17年看的留下深刻印象的剧/节目其实是2016年或者更早制作的,我只是来补番。。
《大事发声 2016,2017》。我是看到耳帝的推荐才来这补番的,真的是良心节目!!但是传播度似乎却不高。歌手在录音房级的条件中唱歌,然后做成live节目。16年版的里我喜欢陈楚生逃跑计划赵照赵雷旅行团那几期,17年版的我喜欢周华健朴树那几期,真的太好听了!
《我在故宫修文物》,这也是2016年的节目,但是我是17年才补的。。所有人都没有距离,仿佛就是身边的一个亲切大叔自娱自乐地做着遗泽千年的事情!🙏故宫单霁翔院长还有一个讲座视频也超级有意思,推荐一览,我就是看了这个的视频知道了各种故宫的文创产品然后把不同博物馆的淘宝文创店都翻了一遍😂。
《河西走廊》也是2015年的纪录片了只是我17年才看到。它的配乐超级好听,比如雅尼的这一首《河西走廊之梦》,那种「长河落日圆,大漠孤烟直」的画面感瞬间就出来了!(我写了点 JS 在播放这首的时候能自动暂停 BGM)
《奇葩说》第四季,去年我把前三季补了之后,就非常期待第四季,但最终的观感不可避免地会受到半决赛、决赛1v1赛制的槽点,以及后来老僵尸撕逼的拖累。我最喜欢的还是儒雅的陈铭老师,陈铭老师直到最后都被冠以「鸡汤」的名号,非常非常非常非常不公平!
《中国有嘻哈》,即使赛制、撕逼的槽点再多,这节目至少让我仔细地听过了一点嘻哈,我觉得可以。在那么些个 rap 歌手中,我当然最喜欢 GAI 咯,我理想中真正本土化完毕的中国嘻哈,应该要和黑人嘻哈非常不一样,和别的歌手整天 homie、钱、女人、车子啥的比起来,GAI 写的词的上限简直是高到不知道哪里去了。
年中压力很大的时候,我还喜欢开2倍速看烂剧解压(或者有Gakki的日剧也行)。比如补了4部小时代、看了几集当时被黑成狗的深夜食堂和夏至未至等等等等。我都不忍心给它们一星的评分了,毕竟它们带来了辣么多欢乐🙂。
我好像没有其它想说的了?
我借此机会统计了一下2017年全年的账单,和2016年相比,我的月均消费增长了 4.25%,同时月度消费的标准差也上涨了 10.71%。😓
不过如果扣除12月在飞机上丢的 iPad 的那笔消费的话(似乎 amex 提供的 purchase protection 可以报销这个损失?!),月均消费就只增长了 1.53% 了,同时月度消费的标准差反而下降了 19.64%!😅 所以从这个角度来说,2017年我的日常开销总体维持不变,并且平稳了许多。我猜是集中出去玩的次数变少了、同时日常需要买买买的大宗商品也基本都买过了的缘故吧。
原本后边还有我整理的盒饭、游戏、油费等等的账单统计数据,但我想了想,那些可能只有我自己有兴趣,那就忽略吧。
看图写话就写到这里,祝所有人好!🙏
]]>《余光中精选集》——这本里头有诗有散文,我只读了诗。
由于教科书收录的缘故,长于大陆的孩子们第一次读到余光中先生的诗应该都是《乡愁》。令人费解的是,这首诗居然没有收录在这本“精选集”里…… 是觉得大家都太熟了不用写了嘛😓。
这次我读了读余光中先生的其它诗作,发现充满了故乡情怀的诗真的不少!比如《当我死时》:
当我死时,葬我,在长江与黄河
之间,枕我的头颅,白发盖着黑土
在中国,最美最母亲的国度
我便坦然睡去,睡整张大陆
听两侧,安魂曲起自长江,黄河
两管永生的音乐,滔滔,朝东
这是最纵容最宽阔的床
让一颗心满足地睡去,满足地想
……
比如《在江湖》:
……
一片大陆,算不算你的国?
一个岛,算不算你的家?
一眨眼,算不算少年?
一辈子,算不算永远?
另外一段我能脱口而出的诗句来自于余光中先生的《寻李白》:
酒入豪肠,七分酿成了月光
余下的三分啸成剑气
绣口一吐就半个盛唐
说来惭愧,在今天之前我一直以为这是出自某篇高考满分作文的佳句😂,因为我印象中似乎是从某本优秀作文选里读到的。。
余光中先生似乎很喜欢李白,除了《寻李白》之外,还有《戏李白》《念李白》,五花马千金裘的意向也出现在诗中。是呀,有谁会不喜欢李白呢!
不过讲真,最近这段时间以来,我更加能够体会杜甫了,是一种重剑无锋、脚踏实地、忧国忧民的厚重感。
安得广厦千万间,大庇天下寒士俱欢颜,风雨不动安如山。
余光中先生的《割盲肠记》这首诗我也很喜欢,整个距离一下子就拉进了😂。就像看亲王的微博一样,我真是太喜欢这样文化人一本正经地玩梗了!!因为很有意思,我就全文摘录在这里:
一连两夜
害我痛到破晓的
原来竟是
这一截脓包
摸黑来犯
顶多是一件暗器
地下的行径
不像英雄
壮士断腕
烈士断肠
森罗的手术台上
断我内患
是医官,还是众金刚?
是护士,还是诸菩萨?
为我降魔
在莲花灯下?
药醒
妖擒
只留刀痕三寸
记我的新生
那医官说
很理想的伤口呢
从此话要少说
也不宜咳嗽
我想,既然要说话
就得像话
怎能降级
做含混的呻吟?
而所谓咳嗽
捧着肚子低着头
也只是半吞半吐的
双关语法
让理想的伤口
都贴上膏药
我的这张
要用来唱歌
最后还有两首诗我非常喜欢,是关于母亲的,母亲也出现在余光中先生的乡愁中。这两首诗蕴含着的强烈情感让我眼眶瞬间就湿润了😭。
《母难日——今生今世》:
我最忘情的哭声有两次
一次,在我生命的开始
一次,在你生命的告终
第一次,我不会记得,是听你说的
第二次,你不会晓得,我说也没用
但两次哭声的中间啊
有无穷无尽的笑声
一遍一遍又一遍
回荡了整整三十年
你都晓得,我都记得
《母难日——矛盾世界》
快乐的世界啊
当初我们见面
你迎我以微笑
而我答你以大哭
惊天,动地
悲哀的世界啊
最后我们分手
我送你以大哭
而你答我以无言
关天,闭地
矛盾的世界啊
不论初见或永别
我总是对你以大哭
哭世界始于你一笑
而幸福终于你闭目
老先生千古。🙏🙏🙏
]]>按北京时间,整整25年前的现在,我来到了人间。但是我这么多年过去,已经行将奔三的一个人了,还一事无成。。。。掰着指头算了算,事业、金钱、人生伴侣,全都在和我捉迷藏,所以现在有一股泯然众人的焦虑,但我同时仍旧有一股迷之自信😅。
上周我去看了 Coco,被《寻梦环游记》的片名误导,一开始我还以为它是个少年追逐音乐梦想的故事,还说没有类似经历、没有共鸣。但画风一转,发现它讲的其实是家庭,是爱,是遗忘,那可就一下戳中我心底最柔软的地方了😭。
他们说,我会死去3次,
所以 Coco 才如此直击人心!在死亡的未知之外,这背后无边无际的孤独感使我灵魂都在颤抖。但电影过后,我很快就恢复了过来,相比于《寻梦环游记》,我终究还是更喜欢《疯狂动物城》,生活总要继续,生活总会继续,after all, tomorrow is another day. 也没有时间让我伤春悲秋了。
回到现实,然后就会发现现实怎么比电影还戏剧。红黄蓝幼儿园虐童事件(官方通告声称没有性侵)的新闻让我看得很气愤、很绝望。我希望事件的真相如同官方通告声称的那样,不存在性侵🙏。
大二的时候我就看过了《谣言》这本书,也一直认同不信谣、不传谣,按照现在网上报道的尿性,事件刚出来的时候别急着站队,等两天说不定就有反转。但是,这次官方的各种删帖行为完全无法令人信服。
有同学在朋友圈表示:面对「谣言四起」的情况,或许删帖是个可行解。我对此完全反对!他说的谣言所带来的「损失」,其实是短期的,是阵痛、是可以恢复的。而公信力的丧失是一个长期的、几乎不可逆的恶性循环。删帖这个问题的死穴在于,没人需要为公信力丧失的长期恶果担责,相反,短期的阵痛(稳定)却是需要追责的,那这就很难改变了😔。
即使假定它真的是谣言,不做删贴这样的自损举动能不能「解决」谣言问题呢?当然可以的。举个最相近的例子,在近10年前,在奥运之后的那几年里,「公知」掌握了网络上绝大部分的话语权,但随着或真或假的公知发的谣言段子、随着国家自身的持续发展,现在就连公知这个词都已经变成贬义了。删贴真的只是贪图一时的下下策。体制内没有人看出删帖的危害吗?体制内没有人知道这种突发事件下的最佳公关策略吗?我不信。反正这次的事件真的很让我很寒心😔,真正影响了我的未来人生规划。
我希望有一个去中心化的黑历史记录链条,名字我都想好了就叫「The North Remembers」。它从每天抓取微博热门话题开始,去中心化地添加线下的公证后信息进行跟进,自动生成文摘的 NLP 技术也可以用来帮助追踪,希望每个热门话题至少做到有始有终。不知道现在有这样的东西没,希望有,希望早点有,如果我毕业的时候(算不算立 flag….)还没人做这个,那就我来🙏。
说到立 flag,万维钢老师专栏的《043 | 正能量的副作用》一期说到了这个——YY 成功后的状态到底有没有用?那些每天把梦想喊出来的人到底有没有用?
有一个实验,是把学生分为3组:
最终的结果是考试成绩 ② > ③ > ①。因为正能量组的学生为考试成绩做准备花的时间是最少的。。他们在考前获得了更多自信,然后就不怎么准备考试了。。
所以这类 flag、这类正能量梦想之所以有负作用,就在于它想象的是做事的「结果」,人们容易自我暗示,仿佛已经得到了这个结果,以至于不想去做事了。而取得了好效果的实验,都是让人想象做事「的过程」。
这点我真是太有体会了。。YY 之后、列好计划之后就不想干活了,然后就拖延了。。。。
半年多前,我帮表姐的二宝宝想名字,然后顺带就想了想自己将来能给孩子取什么名字,还因此看起了《资治通鉴》(这里).. 现在我更新取名的方法论了。现在我觉得,取名字这种事情吧,关键在于要有个合理的故事,它其实不讲究用字用典要有多么高贵典雅、有什么寓意象征。我的新标准是:
毕竟,一个故事带来的画面感远比什么好寓意、好象征给人的印象要来得深刻。这是有序信息对无序信息在留下印象的能力上的碾压。归根结底,名字在自我介绍的时候最有用,这时候用一个与自身(或者父母)相关的有趣故事让别人记住,岂不是一桩美谈😄。《西部世界》里的 AI 不也就是用故事支撑的么,一个道理。
月中的某天,豆瓣的侧边栏推荐吸引了我,那是杨照老师的古今·史记百讲完结的广告,是已经上线半年多的「豆瓣时间」栏目的内容。我试听了一下就入了。100讲共¥128,每一讲 20min 左右,相当于是用每小时 ¥3.84 的价格购买了33小时多的背景音享受,对我来说真的是超值了!
有一天,在我听这个的时候室友问我:听这个有用吗?其实,我喜欢,这就足够了。能用 ¥3.84 的价格购买一小时的音频享受,我很满足的。同样的道理,我非常喜欢「知识付费」这个概念。不久前有一篇《罗振宇的骗局!大部分知识付费其实都是大忽悠》的朋友圈热文(虽然我的朋友圈里没见人转发过..),我反正哈哈一笑就过了。
在我看来,能够用付出金钱的方式获得筛选过后的高质量信息摄入渠道,简直是吾辈之幸好吗!以前,很多时候我想要得到信息都不知道去哪里找(我把它归咎于三四线小城市青年的眼界劣势),现在花钱就能获得一个领进门的机会,之后自己有了方向海阔凭鱼跃、天高任鸟飞。花钱能解决的问题那还╮(╯_╰)╭。
得到、分答、知乎live、豆瓣时间,等等几个知识付费的平台我都尝试过了,我最喜欢的还是得到专栏这样的高质量信息平台。分答和知乎live里就太多良莠不齐的东西了,完全没有兴趣。
但不得不说,那篇文章中列举的很多攻击论点确实是存在的,我记得得到在国庆期间有过一个活动——在国庆期间听完最多书的人可以获得什么什么奖励,有人在评论区里用三倍速(是的,三倍速)估算了一下所能听完的最大数目。这种活动在我看来就完全是糟粕了,以这样的速度只是「听」完一本书,有毛用??
所以工具嘛,还是要看人怎么用。杨照老师的史记节目我现在听完了大概30讲,杨照老师的声音慢条斯理的,讲的内容也是我不需要记笔记,可以听听就过的,所以确实是当做享受在听。连带着,我在得到上的音频播放速度也从 1.5 倍削减到了 1.25 倍。现在,听这类音频成为了一种享受,而非几个月前那样当作任务,好事!
另外,从 app 交互就可以看得出来,豆瓣时间做的太粗糙了!都半年多过去了,连一个批量下载、批量删除都没有。我还得把101个音频手动点一遍各自的下载按钮。这点我在相关的豆瓣小组上吐槽了,官方团队说已经收到反馈、加到产品日程中了。其实我觉得吧,这些交互上的细节朝着得到看齐就足够了。
在开始使用豆瓣时间这个产品之后,我注意到官方还有一份《声优召集令》。有点不要脸地说,我很喜欢自己的声音,特别是感冒的时候😳!我在业余 TODO 列表里就写过一条——当一次声优或者电台嘉宾。
然后我就自己录了 5min 的音频给官方团队寄了过去。最开始我打算念之前写的一篇博文的,但是尝试了一下,对着稿子念的话持续 5min 一定会出错…. 毕竟不是科班出身。然后我就干脆即兴说了 5min,吐槽了豆瓣读书的短评字数限制(之前降到140字了,完全不够!不过前两天我发现已经恢复到350字了),吐槽了豆瓣app的偷电bug,就这么扯了 5:30。之后又尝试了几次,但都没有第一次即兴说的好…. 于是就拿这即兴的 5:30 发邮件寄给了官方团队。
不过第二天早上我收到回复,说我录制的 m4a 格式是乱码打不开,需要 mp3 或者 wav 格式。😓然后还要填写是否能去豆瓣总部录音、自己是否有录音设备等等信息,我的热情也就渐渐消退了,TODO list 就留一个「当一次电台嘉宾」好了咯😅。
明年见。
]]>虽世殊事异,所以兴怀,其致一也。
——《兰亭集序》
这是第一期,11月正在展开,那就把10月的先补上。
「午间夜话」这个名字是我随手写的,并没有太多深意,试试看吧,写到哪儿是哪儿。不过要是努力牵强附会,或许可以强行理解为:此地的午间正值家乡的半夜,体现了作者思念家乡的思想感情。🙂
对这种「非期然后果」现象的认知,是我近期的最大改进。先有厚积,处于充分交流碰撞的环境中,然后才能有不期而遇的薄发。因此一定要行动呀!动起来,才可能遇到这样无心插柳的结果。这也符合现代社会的特质——个体的风险被降低了,虽然总体的风险在集聚。所以多试错、多迭代、敏捷开发,这才是适应当代社会的方法论。
嗯,道理我都懂。。
然后我开始炒股了,部分是因为意识到自己缺乏行动错过了多少机会,部分是因为穷.. 还有部分是因为 Robinhood 这个抹平了我最后一道门槛的超棒的 app.(欢迎使用我的邀请链接😳)
然后第一天就亏了50刀😂😂😂。不过很快就调整策略赚回来啦。我现在的理念是:看清业界大趋势,放点钱搭个顺风车,又不需要关注短线,岂不是美滋滋!这个理念的实际效果挺棒,呃..除了 AMD。。我认为 AMD 应该是能在这股 AI 大潮中分一杯羹的,但是我还是太年轻,忍不了它出财报之后的暴跌,割肉走了,亏得很心疼。从此这种太震荡的我就完全不想涉足了。(11/02/2018: 回头来看,AMD和那时候比已经翻了一倍多😓)
万维钢老师的某一期文章《宇宙的大目标——热寂,首要目标与次要目标》给我留下了非常深刻的印象:
宇宙的首要目标是把熵最大化。宇宙的次要目标是在局部制造一些有序的结构。这与主要目标并不冲突,因为这些自组织的有序结构能够最大限度地吸收和消耗能量,这样,在加入了能量分布的考量后,总体的熵仍旧是增加的。
类比到人类身上:人类作为生物的首要目标是繁衍。在漫漫长河中,人类进化出了情感,作为思维的快捷方式。人类的次要目标是满足这些感情上的需求,从而达到主要目标。然而当前,人类行为的首要目标已经从生理上的变成了心理上的了——人类的行为已经不再是为了人类的生存而优化!
再推演到 AI 身上:AI 被创造出来的首要目标肯定是为了更好地服务人类。AI 一定会有一些次要目标来帮助达成首要目标。那么,会不会有一天 AI 的次要目标也取代了首要目标呢?
看到这里,有那么一瞬间我的灵魂仿佛停顿了。
这种王朝正统性合法性、利益集团核心向心力的问题仔细想想其实非常有意思。
刘邦花了7年时间白手起家从一个亭长当上皇帝。现在可能没有什么概念了,但那可是开天辟地第一遭由一位不是王侯贵胄的“小流氓”、还是在短短7年时间内夺取天下。在当时的人看来能不是天命所归么。刘邦自己也说「吾以布衣提三尺取天下,此非天命乎!」,张良韩信、平民百姓也都是这么认为的:「天授,非人力也」。
另一位刘皇叔,刘备创立的蜀汉基业也有一个向心力、合法性的问题。刘备必须抓紧匡扶、恢复汉室的旗号才有政治正当性,因此后来汉献帝禅让给了曹魏成为山阳公之后,刘备只能散布谣言说汉献帝已死,谁会知道最终曹丕还死在汉献帝前头呢😂。而刘备托孤白帝城之后,内部其实是有着各个政治集团势力的——河北、徐州、荆州、益州、甚至西凉马超等等等等不同集团。这些政治集团要怎么整合呢?——以北伐的大义名分。这应该是阻力最小的一条路了。也正是因为蜀汉只能通过北伐来维持这个正当性,所以北伐不能失败,所以诸葛一生必须唯谨慎。或许,丞相不敢奇袭子午谷也有这方面的考量吧。而在丞相去世之后,大家没心思北伐了,蜀汉也就没有多少存在感了。你看最终邓艾灭蜀的时候,蜀地的世家大族们对刘皇叔的这个外来政权有什么眷恋么?没有的。
说到这些,有一本书《天命与剑:帝制时代的合法性焦虑》听着就很有意思。这本我还没看,但我猜肯定会很好看,因为书中有一章《秦灭六国这样重要的事,要做三遍》是我在网上曾经看过的,当时就有醍醐灌顶一样的感觉,料想其它几章也应如是。
Official slides. I’ll use some examples from official slides to elaborate their idea.
Please do not hesitate to correct me if I am wrong anywhere. Thanks in advance. 🙂
To begin with, it may be necessary to clarify on the term distributed representation a bit. Distributed Systems is a big focus in our group but it has nothing to do with the term distributed representation here.
First of all, the word king
can be represented as 0 0 1 0 ... 0
regarding a dictionary $D$ if king
is the 2nd (zero-based) word in $D$. Only the 2nd bit is 1, and all the rest are 0. The size of this vector is the size of $D$. This is called one-hot encoding.
Then distributed representation is like the dual concept of one-hot encoding, it can have multiple non-zero values, say 0.12 0.0 0.87 -0.77 ... 0.99
.
This is also called embedding, it is essentially a vector in the high dimension space representing the original word. After training, semantically related words are supposed to have close vectors in high dimension space. Moreover, some relation between words may also be learned, as shown below:
Now let’s take a closer look at this paper. I think this paper is very interesting, in that it successfully integrates ML techniques and PL techniques, and can “induce logical rules”!
There is the so-called backward chaining algorithm as in Prolog that can search and construct a proof for some goal. For example:
In the example Knowledge Base (KB), (1) and (2) are facts, (3) is a rule – to prove that X is grandfather of Y, it suffices to satisfy two subgoals:
To search and construct a proof for the goal “ABE is grandfather of BART”, it first searches in KB if any header of rule/fact matches with the goal (OR rule). In this example, rule (3) matches, so X is linked with ABE, Y is linked with BART.
Then it has to prove both of the 2 subgoals (AND rule), which is what 3.1 and 3.2 are doing. It recursively proves each subgoal by searching for matched rules in the KB.
It is that simple. But this traditional backward chaining algorithm is based on symbolic matching. In other words:
grandpaOf(A, B)
and grandfatherOf(A, B)
are not equal, unless specified explicitly elsewhere.parentOf(A, B)
and fatherOf(A, B)
are not similar, unless specified explicitly elsewhere.isFruit(apple)
and isFruit(orange)
are not related at all, unless “apple ~ orange” is specified explicitly elsewhere.These are where ML technique can help!
There is the so-called Neural Link Prediction problem whose main approach is based on embedding.
According to paper description, those are unable to directly encode prior knowledge such as grandfatherOf(X, Y) :- fatherOf(X, Z) & parentOf(Z, Y)
.
This missing multi-hop reasoning ability will be added after incorporating the backward chaining search algorithm!
This paper merges existing “Neural Link Prediction” idea (mainly via learning embeddings of sub-symbolic terms) with traditional “backward chaining” algorithm in Prolog.
More specifically, the “proof search” process is a divide-and-conquer style backward chaining search algorithm, with the most fundamental “symbolic unification” op being replaced by “embedding similarity comparison”.
The integration in this paper satisfies one sufficient condition for successful ML/PL integration I mentioned before – ML introduces new information that is hard for PL to discover by itself.
For more details, there is this proof state $S = S_ψ, S_ρ$:
When doing inference, it follows the same basic search algorithm as that in traditional backward chaining algorithm. The proof state will be passed along, and sometimes multiple proof states (for multiple subgoals) will be generated, and aggregated later on.
The major difference is in unification module which matches the sub-symbolic terms in goal and knowledge base. Instead of symbolic unification (e.g. f(A, B) ~ f(Alice, Bob) ⇒ A/Alice, B/Bob
), it compares the embedding of 2 non-variable symbols using RBF kernel.
The unification module is shown as below.
(1)-(4) are self-explanatory, just list comparison.
$S_ψ’$ is adding more variable matches into substitution set. This is the same as traditional backward chaining algorithm.
$S_ρ’$ is the difference. This proof success score is updated to the min of all sub-symbolic pairwise comparison results, with the cap of previous score. Note that it only compares non-variable symbols.
Consider the following example:
It tries to unify [grandpaOf, ABE, BART]
with [s, Q, i]
, the given proof state is an empty substitution set ∅ and a proof score 0.7.
Only Q
is variable here, and Q
is matched to ABE
.
Then $S_ρ’$ is the min of 0.7 (upstream success score), and two sub-symbolic pairwise comparison results for grandpaOf~s
and BART~i
.
There are also corresponding OR module and AND module that are simply re-implementations of traditional backward chaining algorithm with different notations to handle proof state $(S_ψ, S_ρ)$.
With all these, the actual proof search is to find the largest proof tree that maximizes the proof success score $S_ρ$ with a non-FAIL result:
Consider the same example now using their Neural Theorem Prover approach. It is trying to prove some goal of (s, i, j)
, none of which are variables. $V_s$ is the vector representation (embedding) of s
.
(s, i, j)
is a parameterized template, but not concrete values, yet. Now that the unification is done by embedding similarity scores, it can find multiple non-fixed terms (each with a confidence score) with a similar shape. This can be used in their another application of “inducing logical rules”.The divide-and-conquer search strategy is no different than before. But as you can see in the rightmost path from (3.1) –(rule 2)-> (3.2), it is able to unify goal fatherOf
with fact parentOf
, which was impossible using PL method alone.
The training is done using just existing facts and rules in the Knowledge Base. But there is one problem – all of those are positive data. Obviously, learning from fully imbalanced data won’t be effective.
They use negative sampling to handle this issue. Negative sampling was also used in the famous Word Embedding work in 2013. It manually corrupts some data and expect the model to predict 0 for them. With both positive and negative data, it just use the canonical Negative Log-Likelihood loss function.
So along the recursive divide-and-conquer search process, the gradients during embedding comparison will be collected and optimized accordingly.
But, just by the technique described so far it still cannot outperform previous tools in all their datasets. By Neural Theorem Prover alone, the training is slow and less effective.
One important optimization is to do joint training with Neural Link Predictor (ξ3.8). The neural link predictor ComplEx they use can learn local sub-symbolic representations much better, which uses RBF as well (that’s why I suspect they are using RBF because of this).
So the loss is just by adding NTP loss and ComplEx loss. In other words, ComplEx serve as a regularizer here.
Wait, one more thing!
They claim to be able to “induce” logical rules! As shown below:
It can induce the rule such as “To prove that X is located in Y, it can prove that X is located in some Z and Z is located in Y”.
Isn’t this awesome?! Well, it’s not pure magic. Some “parametrized rule” needs to be provided as a template, such as r(X, Y) :- s(X, Z), t(Z, Y)
.
The idea is that:
During training, the embedding of this parameterized rule is optimized jointly with everything else.
After training, inspect this parametrized rule by searching for known predicate representations that are collectively closest to the template in high dimension space.
The logical rule of specified format is thereby induced. I just found this idea to be very interesting!
□
]]>之前的几卷:
我把总结、感想什么的放在最后了。
大紧老师不久前刚做了几期讨论三国的节目:晓说 第129期 三国梦之队(一) 魏天时蜀地利吴人和 可惜大紧老师只做了6期就没了。
曹操在公元220年正月二十三日就去世了。当时曹丕在邺城,曹彰在灵柩旁。群臣为了少生变故,一天就把各种礼仪准备完毕,第二天就拜曹丕为魏王.. 同年十月十三日,曹丕代汉了,汉献帝成为山阳公。曹操自己不登基,这样刚即位不久的儿子就能借登基升官揽一波人心。
接着,陈群献策九品中正制。任人唯贤的曹操肯定是不会同意这样的制度的,但是曹丕同意了,或许是和士族做的政治交易吧。不过这类制度一开始肯定是利大于弊的,一直执行下去积攒了弊端却不改革这才成了恶政。好比在那个兵荒马乱的年代,光活下来就很不容易的穷苦人家哪有机会读书呢?所以显然人才出自士族的概率肯定更大。再加上人群迁徙,也没有足够的时间去施行「察举」了。不过久而久之,九品中正制固化阶级的弊端就凸显出来了,关键还是看谁是这九品的评判者。
不过感觉曹丕一直有各种小毛病,做出各种奇怪的选择,需要属下进谏。特别是辛毗,进谏了好多次..
公元221年,蜀地传言汉献帝已经遇害(是刘备放出的流言吧?),于是汉中王刘备就登基称帝了。但是刘备称帝没几个月就进攻东吴为关羽报仇,最终被火烧连营七百里、托孤白帝城….
在蜀军进攻东吴的时候,我突然注意到刘晔一直在做出正确的预判:
奈何曹丕一直都不听..(曹丕为啥不听??他肯定不是个傻子,那他自己的考量是啥呢??)。在曹叡时期,刘晔又被认为是迎合上意而失去宠信忧郁而终,真是…… 刘晔一开始显然不是这样的人呀,还不是你们曹家逼的!!好心疼刘晔,他可能或多或少还是吃了姓氏的亏吧。
因此孙权接受了曹家吴王的封号,直到229年孙权才自己称帝。这个我还有印象,历史书上写过。
公元223年,刘备白帝城托孤。刘备在给刘禅的遗诏里除了说了著名的「勿以恶小而为之,勿以善小而不为」之外,还说了「惟贤惟德,可以服人」!😯原来三国杀里的语音就是出自这里呀!
曹丕不听进言,几次攻吴。孔明就趁这个空窗期七擒孟获平定了南蛮。公元226年,没当几年皇帝、还不到40岁的曹丕就去世了,在他治下至少汉献帝得以善终(公元234年去世),真不容易呀!所以曹丕为啥硬是要攻打吴国呢,我看到一个观点是说曹丕想趁机收拢、消耗掉曹操遗留下来的尾大不掉的军队势力。🤔make sense.
年仅20岁的曹叡即位,曹叡最终也是30岁就去世了。连续两任皇帝都是英年早逝,这才要托孤,再加上后边的皇帝都不行,这才被司马氏篡权。曹叡有一个毛病就是热衷土木.. 曹丕和曹叡都有这样明显的不足,但都有良臣劝谏,给我感觉像是汉景帝。
与此同时,公元227年,诸葛亮在汉中写下了出师表,准备北伐!直到公元234年诸葛亮去世😔。话说在公元234年诸葛亮去世之后,好像就没有什么大规模的战斗了,一直到灭蜀之战。
公元229年,孙权称帝。同年九月迁都建业。不过太子孙登以及尚书九卿仍旧留在旧都武昌,让大将军陆逊辅佐太子,监督全国军政大事。
公元233年,发生了一件233的事情。
相爱相杀。。这段让我想到了张耳陈馀的故事,也是这么欢乐😂。
公元239年,曹叡去世。托孤给曹爽以及司马懿。但曹爽嘛…. 所以这之后曹家就要不行了。
公元247年,骄奢无度的曹爽独揽朝政大权,司马懿开始称病,不上朝参与政事。这一下就过了好久.. 一年多之后的248年冬天,某位官员上任前到司马懿家去辞行,司马懿假扮中风,
于是来访官员就报告曹爽说司马懿形神已离、不足虑也。
所以司马懿真的是能忍,过了这么这么久.. 在假扮中风让曹爽放松警惕之后,到了249年正月,趁着皇帝、曹爽兄弟等人去扫墓的时候派兵控制了洛阳。结果曹爽兄弟从初夜一直坐到五更,曹爽一把将刀扔在地上道:「即使投降,我仍然不失为富贵人家」。所以曹爽你就这么怂啦??!Orz 然后曹爽兄弟让魏帝下诏免除自己的官职、送魏帝回宫之后就回自己家了。没过多久曹爽兄弟、他的谋士、朋党们就被找了个理由逮捕入狱诛灭三族。所以曹爽你..
公元251年,司马懿死了。所以真的是能熬呀。
曹爽被诛杀之后的一个蝴蝶效应是,夏侯霸投奔了蜀国,姜维很器重他。
公元241年,吴国的太子孙登去世,孙权白发人送黑发人。接着新任太子与鲁王之间分成了两派,这是最伤的。最终,孙权废了太子、赐死了鲁王、立了小儿子孙亮为太子(公元249年)。之前鲁王一系的人多次诬告,孙权甚至遣使责问陆逊,导致陆逊愤懑而死???孙权真是老糊涂了。不过根据这个回答里的观点,这种强行树立对立面以使老皇帝继续掌握权柄的手段在贵族政治时代似乎是不可避免的一种选择。
公元251年,孙权得了中风,252年去世。最终托孤给了诸葛恪。
公元254年,司马师废了当时的魏帝另外立了个新皇帝。司马懿的弟弟司马孚倒是很悲伤。然后很快,在公元255年,毋丘俭、文钦在寿春起兵讨伐司马师。文鸯是文钦的儿子,书里记载
鸯以匹马入数千骑中,辄杀伤百余人,乃出,如此者六七,追骑莫敢逼。
就是说文鸯在转进的时候单枪匹马闯入数千骑兵之中,一次就杀伤百余人,然后突出重围而走,这样来回六七次,让追赶的骑兵再也不敢向前紧逼。惊了!!
不过也正是这场叛乱使得司马师亲征,使他病情恶化不久就去世了,才有了后来司马昭的代魏,不然不知道司马师司马昭之间会不会还会有争斗呢。
公元257年,诸葛诞也起兵了,司马昭率军来平乱。文钦和诸葛诞合兵一处,但是诸葛诞后来(公元258年)杀了文钦,最终文鸯向司马昭投降,诸葛诞也被消灭。这一战中钟会出谋划策很多,司马昭对他日益亲近重视,时人把他比作张良…… 所以果真是
司马昭之心路人皆知
了。。这句话是公元260年魏帝在召见亲信的时候说的。当时魏帝脑子一热,带领宫中宿卫和奴仆们呼喊着就出了宫。最终还是贾充带着手下前来和魏帝硬刚,喊着「司马公养你们这些人正是为了今日,今日之事没什么可问的」,然后手下冲上去把魏帝杀死在车下.. 司马昭闻讯大惊,自己跪倒在地上。司马孚把魏帝的头枕在自己的腿上大哭。所以司马孚居然是这么忠心于魏的呀。
这个弑君应该是贾充自己的所作所为,并非司马昭所安排,但司马昭哪里脱得了干系呢。陈泰表示,只有杀了贾充才能稍稍谢罪于天下,司马昭考虑很久说:「你再想想其它办法」,哈哈哈哈哈。最终贾充也没事,反而魏帝被降格为高贵乡公,最终以藩王的丧礼安葬了。接着,司马昭又立了个皇帝。司马昭表示,我得按照套路来。
从此,司马氏有了弑君的原罪。从《三国六大家族列传》这本书里我看到了一个之前没有注意到的观点:
由于公开弑君的巨大污点,晋朝的意识形态只能在孝上做文章,根本就没有脸面去要求臣民效忠。儒家以忠孝为核心的道德体系彻底崩溃。
似乎很有道理的样子,因为弑君,没法再提倡忠了,那就只能多提倡孝,这对于西晋出现的那些越来越极端的「孝」的故事肯定是有推动的。来到一个「极左翼看不惯普通左翼,导致最终大家一起越来越极端化」的恶性循环。现在的世界上也有这样的鲜明例子呀!另外,没有忠,没法提倡儒学的核心价值观也是玄学甚嚣尘上的原因之一吧。幸好儒学在凉州之地保存下来了,幸好后来北魏孝文帝汉化改革之后,从凉州又把这些传承下来的儒学给迁回来了。🙏
卷87里有记载一段话,是别人写给王导的,说的是西晋灭亡的原因:
中华所以倾弊者,正以取才失所,先白望而后实事,浮竞驱驰,互相贡荐,言重者先显,言轻者后叙,遂相波扇,乃至陵迟。加有庄、老之俗,倾惑朝廷,养望者为弘雅,政事者为俗人,王职不恤,法物坠丧。夫欲制远,先由近始。今宜改张……
翻译过来是:
中华之所以被颠覆破坏,正是因为选择人才失当,徒有虚名的优先而作实事的却靠后,竞相追逐浮华,互相荐举,言过其实者先显达,说得少一点儿的后录用,于是互相推波助澜,导致国家衰落。加上崇尚庄子、老子学说的风气,扰乱蛊惑朝廷,无所事事地修养名望的人被看作大雅士,勤勉于政事的人被认为是平庸俗气的人,不顾惜朝廷职务,朝廷的制度被丢弃。因而想要考虑远大的事业,得先从近处开始,现在就应该改弦更张,……
我觉得很有道理。儒学或许有这样那样的弊端,但相比于崇尚清谈、嘲讽案牍之劳形的玄学,在北方中原地区民族融合后传承下来的更做实事的儒学反而更像承接了中华正统吧?究其根源,还是要把锅甩给得国不正的司马氏。👎
公元262年,第一次出现了嵇康等竹林七贤的描述!但是在资治通鉴里他们应该没什么戏份的吧.. 他们的思想倒是很有戏份。
公元263年,邓艾和钟会两路兵马开始伐蜀,然后已经是68岁老将的邓艾一波偷袭到成都城下,再劝降,就搞定了。。刘禅投降时,姜维在前线,听到消息之后就投降了钟会。钟会心怀叛离之志,拦截了邓艾的奏章和书信,模仿自己自己改写了其中的话,又毁掉司马昭的回信,自己重新写一封让邓艾生疑…
于是,公元264年,司马昭下令用囚车押邓艾回京。司马昭也看出了钟会的叛变可能,他成竹在胸,已经派了贾充带兵一万入蜀。钟会知道消息之后大惊,只好提前叛变。但是手下叛乱把钟会和姜维都杀了… 所以司马昭应该早就防着钟会没有把他当自己人吧。
还是264年,孙皓继任吴国皇帝。但登基不久就一改之前的明君气象,开始残暴骄横沉湎酒色..
公元265年,司马昭去世,太子司马炎即位成为晋王。学40多年前曹丕的模样,同一年就让魏帝禅让皇位了。成为晋武帝。值得一提的是,司马孚最后拉着魏帝的受流泪叹息说「臣死之日,固大魏之纯臣也。」我到死都是魏臣。司马孚死的时候确实仍旧忠于曹魏的🙏。
哦对了,陈情表就是差不多这时候(公元265年)李密写给晋武帝司马炎的,我到现在还会背几句:「臣密言:臣以险衅,夙遭闵凶」。
晋武帝司马炎一直想要灭吴一统天下。羊祜统领荆州各项军事,东吴这边,就是陆逊的儿子陆抗了。俩人都是名将!俩人也惺惺相惜。
而这个时候,东吴的孙皓还在自己作死,没有趁机进攻晋国一波。大紧老师在晓说节目里里说吴国像是封建领主,无心争天下,只关心自己的一亩三分地,是有道理的。
孙皓残暴的程度听着都像是商纣王了,什么在宴会上或剥人面或凿人眼、什么二千石大臣家里的女儿每年都要申报姓名年龄,只有皇帝考察拣选不要的才可以出嫁.. 残暴骄纵到我都有点不敢相信,甚至怀疑是晋人抹黑。
原来「周处除三害」的典故就发生在这个年代!
还有一件事情,当初曹芳被废之后,范粲为他送行,后来就称病不出门,装疯不说话。整整36年!他都没有说话,一直到84岁的时候去世。佩服!
羊祜上疏建议伐吴,但是朝中有不少人反对,比如贾充。但是羊祜认为,现在吴王残暴,要是等吴国立了一个新的贤明的君主,那统一大业就的再往后拖延了。后来羊祜在去世前举荐杜预代替他继续伐吴大业。
我感觉晋国和吴国僵持得有点太久了。不过司马炎可能也确实需要这么久来稳固自己的地位。毕竟之前司马家篡魏的过程中,对蜀作战的前线军队(钟会)、对吴作战的前线军队(淮南三叛)可都叛变了呀。
到了公元279年,灭吴之战开始了。吴国人铁索横江,被晋国用火烧开,畅通无阻。所以单纯用长江作天险来防守是没有前途的,所以守江必守淮。剩下的就是平推了。在灭吴的过程中,有人建议杜预 take it slow, 杜预表示
今兵威已振,譬如破竹,数节之后,皆迎刃而解,无复著手处也。
这就是成语「势如破竹」的出处!
贾充、荀勖等人在进军之前一直强烈反对伐吴。我看到一个说法:他们都是人精,不会看不出来在灭蜀之后吴国已经轻轻松松可以搞定了。只是在灭吴之后呢,司马炎肯定要加强皇权削弱其它世家了。那么还不如稳一稳,留着吴国也闹不出啥幺蛾子。再加上主张灭吴的羊祜、杜预、张华在灭吴之后肯定要被重用,贾充这些人就分不到多少羹了。不过关键还是在司马炎,他是自己吃父亲老本上台的,没有足够的功勋,看到有灭吴这么一个看着轻松功绩显赫的事情还能不去做么。
另外听说在灭吴之后的封赏里,出了最大力气的羊祜、杜预、张华、王濬等人都没有得到什么大赏,还被世家集团们一阵怼。杜预还得想朝中贵人贿赂,只是为了避免他们加害于杜预.. 里头的政治斗争真黑暗啊!
公元281年,晋武帝司马炎下诏挑选孙皓的宫女五千人进宫…. 5k 呀!宫中妃嫔的数量几近 1w 人。由此可见在这方面原本他和孙皓又有多大区别呢。司马炎在灭吴之后就「颇事游宴,怠于政事」了。应该是达到了一个大目标,开始懈怠了。
王恺、石崇斗富就发生在这个时期,👎👎👎。我也因此对司马氏的皇族更加鄙视了。
公元290年,晋武帝司马炎去世,你说继位的皇帝总不可能是个傻子吧,诶还真是!继位的晋惠帝说出了惊世骇俗的「何不食肉糜」。
当初朝廷上下都知道晋武帝司马炎立的太子司马衷糊涂愚蠢,不能负起王位继承人的重任。
真的,要不是司马炎的后事没有安排好,将来弄出辣么多幺蛾子,司马炎的评价肯定能涨一档。他死了以后先是杨氏外戚(晋武帝司马炎的老婆)作威作福,然后是贾氏外戚(晋武帝司马炎的儿媳、晋惠帝的老婆)把杨氏干掉了执掌大权。再后来贾氏作死,进入了八王之乱剧本,一个个有实力的王爷们你方唱罢我登场,最终搞到五胡乱华、神州陆沉、衣冠南渡。😔
有人说,司马炎留下的政治体制在大家都是聪明人的时候会有效果——大家相互牵制达到平衡。但是他没想到的是,那些外戚、那些亲王都是一群被权力欲冲昏头脑的傻子啊!!!一个个都有着与能力完全不匹配的欲望..
不过我也看到有观点说黑「司马炎分封诸王」其实是不公平的,因为两晋南北朝期间,大家几乎都是这么做的。世家、将领的力量太强大了,只有王族宗室的力量可以信赖。这个观点也有道理,因为司马家自己就是从一个世家、权臣爬上来的,他肯定会不由自主地着重防止另一个司马家这么爬上皇位,以至于甚至矫枉过正。因而,在曹魏时期不受重视的皇族宗室力量就被赋予了巨大的权力。但是万万妹想到,你们家的这些外戚、亲王都是些傻子啊!
魏晋时期出现了对分封/郡县/郡国制度的反思。当时一个反思就是:还是得要有分封,或者说,还是得要有亲王宗室的力量!理由是:古代帝王必定任用同姓皇族、以表明亲近亲族,也必定任用异姓大臣、以表明尊重贤能。如果只有前者,皇权就会逐渐衰弱(应该是没有贤能之人吧);如果只有后者,皇权就会被夺取。因此当王莽乱政的时候封国诸侯甚至有制造天赐祥瑞为王莽歌颂恩德的。
怎么说呢,我觉得这确实是有道理的。从那个知乎回答以及漫评两晋南北朝的历史这篇文章(写得很棒,就是有点啰嗦..)里所传达的观点来看,皇权与下边的外戚、宗室、权臣、军阀、士族豪强等等等等势力的此消彼长的关系是不可避免的。
皇权想要的是下边的势力相互平衡、相互制约。汉武帝施行的推恩令是这个目的的代表作,在罗辑思维259期 | 长子继承制里就提到了这个,说的是中国英国之间财产继承权的区别——英国是嫡长子财产通吃,而中国是嫡长子继承名誉,但是财产是均分(e.g. 推恩令)。这个后果真的就焉知非福了:
所以风水轮流转 ╮(╯_╰)╭ 罗辑思维这里是不是为了结论强行找论据咱另说。从跑题回来.. 所以,中古时期的皇权处于一个不稳定的阶段,皇帝必须让自己的亲族成为帝国的主要权力者,但是这只是饮鸩止渴,不然的话光凭一个皇帝的名号驾驭不了偌大个帝国。然后因为这些宗室、外戚权力巨大,老皇帝想让自己家基业达到万世,就必须早早考虑太子接班的问题,不然只有一个太子的名号登基之后肯定无力控制帝国政府的。但是,另一个核心矛盾就是:老皇帝们会想让太子接班,但是又不敢让太子太接班,不然未来的皇帝直接怼死老皇帝怎么办。这个就是皇帝终身制的不足了——「岂有四十年之太子乎」。而在尝到了权力的滋味之后,哪个皇帝愿意拱手让出帝位呢。
这或许是中古时期的一个死循环。这个锅能甩给司马氏吗?或许不行,在那个皇权不稳、同时又有一波波民族融合浪潮的几百年间,司马氏也没法给出更好的解决方案了。所有人都跟着了魔似的往铁王座上冲,冲上去了又坐不稳,很快身死族灭。
直到后来科举制度出现之后才有了一丝跳出这个循环的曙光,科举使得官员再难构建一个以家族为中心的利益集团,使得四世三公的士族豪门成为历史,于是挑战皇权开始变得不再那么容易,于是改朝换代才少了下来。在这之前,皇帝真的谁都相信不了,无论哪一方势力做大之后都能威胁皇权(哦或许除了宦官,宦官本身就代表着皇权)。这或许才能解释为啥宋明清时期平庸的皇帝也能让皇权稳定,而两晋南北朝时期那么多从血与火中拼杀出来的枭雄却总是留下外戚专权、皇族骨肉相残、权臣擅权的政治格局。
从罗辑思维第210期 | 权力的基础我看到科举的另一种药理解释:
原本在南北朝时期,世家大族的实力来源于他所控制的土地、人口、及其之上的武装力量,这些世家们都是大地主。而在隋唐出现科举制之后,世家大族获得权力的途径就轻松了很多,他们读书,有钱有能量享有更大的教育资源,那在科举这个框架下,他们进入国家权力政治体系的成本比原本靠自己掌控土地、人口的方式降低了很多。
那么人总是会选择那些好走的路,而忽略这背后付出的代价,这像是个不可避免的囚徒困境。当世家和寒门都在同样科举这个框架内时,更大的教育资源所带来的鸿沟其实比之前小了非常多。寒门自然就更容易逆袭咯。而且没有这些硬性的实力,被搞死就容易许多了。罗辑思维210期里提到了这一点:地方上的权力既然不再是士族的必须,他们就慢慢都聚集到长安去了。公元905年,朱温攻进长安,「在黄河边一口气杀掉了30个士族的高官,世族这才真正的没落」。后边这句是罗辑思维的原话,我觉得这句有点夸大,但是世家们逐渐放弃地方上的权力,确实是他们没落的根本原因。嗯,make perfect sense.
所以,当我们站在后世的角度上,不应该简单粗暴地说要是司马氏没有大肆分封诸王就没有后来的八王之乱就没有五胡乱华等等等等。这样简单的上帝视角是没有意义的,没有宗室力量的制约,其它各个政治势力早就跳出来了。这,或许就是历史的进程吧。
贾后贾南风搞死了太子,这下事情大发了,她以为她的权力来自于哪儿呢,要不是那个傻子晋惠帝,你算个锤子呀。现在你把人儿子搞死了,自己不是马上也要跪了么。
于是很快贾后就被赵王搞死了,赵王成为了朝中权力最大的人。淮南王有声望,和赵王硬刚了一波,但是被前来传伪诏的人给刺杀了..
赵王的亲信孙秀杀死了石崇,因为他曾经向石崇讨要爱姬绿珠石崇不给!绿珠!啊人物对上了。
公元301年,赵王司马伦逼迫晋惠帝禅让自己称帝了以后大封群臣,每当朝会时,戴插貂尾、蝉羽等高官饰物的人充斥席位,时人为之谚曰:「貂不足,狗尾续。」狗尾续貂的出处就是这里了!
司马伦是篡位上台的,就像打破了潘多拉魔盒,中央的权威锐减,接下来各个藩王就一个个起来搞事情了。接下来有出场的齐王的名字叫做「司马冏」,囧rz..「囧」和「冏」好像是通假字。
八王之乱我就不想关注了,就看这个回答梳理过程吧,写得超棒!这段时期用「权力的游戏」来指代真是再恰当不过了。看得心好累😔。
顺便提一下,回答的这个作者「吕轻侯」在他的公众号「阅过边界」里连载了好多两晋南北朝时期的文章!我在暑假的时候基本把他公众号两年多来的历史文章基本都听了一遍,对原本非常陌生的魏、晋、五胡十六国时期有了个大概的了解,不然的话可能这一篇里头就不会有东晋·五胡十六国的这100年了😂。我觉得他写的超棒,欢迎大家去关注,我就可以不需要班门弄斧了。我下边也会链接一些他公众号上的文章。
公元304年,匈奴人刘渊(五胡十六国的“国父”:刘渊)自立,他说:「大丈夫当为汉高、魏武,呼韩邪何足效哉!」。刘渊说是匈奴人,其实在文化上早就汉化了。
公元310年,刘渊去世。儿子刘聪即位。因为刘聪不是嫡长子,对兄长刘恭有猜忌,趁刘恭睡觉的时候挖穿房间墙壁把刘恭杀了…. 下一卷就有说到,刘聪也是时不时作死。刘渊创下的基业也因此很快就要完蛋了。
永嘉之乱:公元311年,刘渊的儿子刘聪攻破洛阳,俘虏了晋怀帝,杀死了当时的太子。
公元313年年初,刘聪杀了十多位西晋的大臣,晋怀帝也遇害了。书里评价说晋怀帝其实天资清高,如果生在天下太平未必不能成为一位好皇帝,可惜生不逢时,不是他的责任,却要承担后果。这就是皇帝这个位置所附带的宿命吧。
祖逖(tì)出场了。闻鸡起舞的祖逖!闻鸡起舞太有画面感太有感染力了!祖逖(五霸岗上,闻鸡起舞:祖逖)和刘琨(西晋帝国的守夜人——刘琨)是少时好友,后来刘琨在北方保境安民苦苦支撑,祖逖从南方北伐收复故土。他们都是那个浑浊时代的光🙏🙏🙏。
太沉重了,来看看陶侃吧,这位将来的东晋重臣(出身低微的陶侃,为什么能成为东晋帝国的实权人物?):
陶侃在广州没有什么事情可做,就每天早晨把一百块砖搬到屋外,黄昏时又搬回到屋斋里。
有人问他其中的缘故,陶侃回答说:“我正致力于收复中原,现在的生活过于优闲安逸,我担心那时不能够承担工作,所以自己活动活动罢了。” 😂😂😂
在公元311年被刘聪掳走的晋怀帝被刘聪杀害之后,晋愍帝在长安即位。公元前316年12月,长安投降了刘渊创立的前赵帝国。
于是从317年3月开始,就有长安逃亡南下的官员来到建康,宣称受到晋愍帝诏书,让琅琊王司马睿统摄万机。司马睿自己还矫情啊,坚持不肯即位,只是先称晋王。
公元318年3月,晋愍帝遇害的死讯传到了建康。重臣又开始劝进此时为晋王的司马睿,司马睿又不同意,大臣纪瞻说:
今两都燔荡,宗庙无主,刘聪窃号于西北,而陛下方高让于东南,此所谓揖让而救火也。
就是说刘聪在北方盗用名号,您还在这里推谢帝位,就像急于救火却恭礼谦让!但是司马睿听了还是不同意。直到又过了3天,司马睿才即皇帝位,然后打算对所有曾经投贴建议自己接受皇位的人以格外优宠,凡官吏都增加爵位一等,平民提升为官吏,大约有20万人。。看到这些我非常👎司马睿!
但司马睿本来也不是什么特别有能力的皇帝,他能创立东晋要多亏了王导(东晋教父:王导),王与马同天下指的就是王导与司马睿,也正是王导开启了东晋一朝的门阀政治——《东晋门阀政治》。
公元318年,刘琨在这一年被害身亡😔。
刘渊的儿子刘聪也在公元318年病重,托孤给了刘曜·丞相和石勒·大将军。他们后来分别成立了前赵和后赵。
依靠着评判的功绩,刘曜封石勒为赵王,礼遇如同曹操之于汉室。紧接着刘曜马上就被小人蛊惑,杀了石勒派来进献的官员。石勒大怒:
彼之基业,皆孤所为,今既得志,还欲相图。赵王、赵帝,孤自为之,何待于彼邪!
刘曜定都长安,刘曜立后妃羊献容为皇后,这位羊皇后就是那位晋惠帝司马衷的第二任皇后。。。。刘曜曾经问羊皇后:我和司马家的小子比起来怎么样?羊献容说:自从做了您的妻子,才知道天下自有大丈夫。是呀,晋惠帝这个 baseline 实在是低呀,低到有点心疼。。刘曜非常宠爱羊皇后😂。
这位羊皇后一生可称传奇!因为晋惠帝司马衷的缘故,一生五废六立、两朝为后!!😱这在史上也是独一无二的了吧 Orz..
刘曜不久改国号为赵,这不是很尴尬吗,你是赵,石勒那边也是赵。。所以刘曜这里叫前赵、或者叫汉赵,石勒那里叫后赵。不过刘曜的汉赵这里似乎不如石勒那里治理的好。比如说石勒因为百姓刚刚恢复旧业,财物储备不够丰饶,因而禁止酿酒。话说石勒那边发展农桑提倡汉化,但是他们羯族人在当时还是被称作胡人,带有歧视意味,所以石勒很忌讳「胡」这个字。也因此,当时的「胡瓜」改名为「黄瓜」..
公元319年,后赵灭了汉赵。
与此同时:
祖逖此时正在北伐呢,打到了石勒的后赵地盘边上,被挡下来了。石勒和祖逖搞好关系,把一个叛逃来的罪臣斩首送回祖逖,说「将军之恶,犹吾恶也」。祖逖深为感动,从此也不接受从石勒那里叛逃归附过来的人了。再加上之前两国边境之间就有默许的商业贸易,终于开始逐渐得以休养生息。公元321年,祖逖病逝。
慕容氏鲜卑也开始在东北那里崛起,打败了高句丽、段氏鲜卑和宇文氏鲜卑的三国兵马。这就是慕容复朝思暮想复国的那个慕容氏。
祖逖死后,原本有些忌惮祖逖的王敦更加肆无忌惮。王敦是王导他们王家的人。公元322年正月14日,王敦举兵「清君侧」.. 然后2个多月就一路打到了建康,聚集军队,也不去朝见司马睿。司马睿派使者和王敦说:你如果还没有将朝廷置于脑后,那么就此罢兵,天下还可以安然相处,不然的话,朕就回到琅琊当我的琅琊王给贤人(您)让路。😓
王敦也没敢就这样篡位,杀了几个司马睿心腹,独揽大权,愈发暴虐傲慢。司马睿忧愤成疾,这一年的11月(农历)去世了,即位的是晋明帝司马绍。剧透一下,司马绍是这终晋一朝历史上比较少有的厉害些的皇帝😓。司马绍的皇后是庾氏家族的女儿,皇后的兄长庾亮就是将来的庾家带头人。
但王敦确实是在考虑篡位了,步步紧逼。王敦有个侄子王允之,当时王允之因为醉酒就告辞先睡了,然后王敦和手下钱凤在一起商讨叛乱之事(上头了?),被王允之原原本本地听到了!王允之随即在睡卧的地方大吐(辛苦你了..),弄得衣物、脸面上都沾上了污垢。钱凤走后,王敦才想起来王允之还在这,前来看到王允之睡卧在呕吐的污物中这才放心.. 后来王允之借着一个正常由头回归朝廷报告了这个事。
不过王敦生了重病。。王导听说这件事就带领王氏子弟为王敦发丧😂😂😂,大家以为王敦确实死了,士气大涨。明帝司马绍派兵讨伐王敦。王敦很愤怒,但是自己的病情还在加重呢,只好派手下迎战。王敦的大哥王含主动请战,说「此乃家事,吾当自行」,但是王含他能力不行啊!战败之后王敦勃然大怒,但是很快自己也病死了。
王敦就这样覆灭了,感觉虎头蛇尾啊!紧接着公元325年,司马绍也病死了啊!!才26岁,因而平定王敦之乱是他在位的主要事迹了。
新皇帝还年轻,因而庾亮作为外戚家族掌控朝政。庾亮听说是个美男子,但是现在的他政治手段还很 naive, 既怀疑流民军头领苏骏、祖逖的弟弟祖约的忠诚,也惧怕陶侃的深得人心。不过祖约确实自视甚高,觉得托孤的遗嘱没有他不公平,其实能力真不行.. 后来祖约投降了石勒,最终被灭族😓。
庾亮就直接不顾反对,激化了苏骏的叛乱,结果自己军事能力不行,谏言也不听,打又打不过.. 结果建康直接就被苏骏打下来了.. ╮(╯_╰)╭ 这个图在这个时期真的是万用。。
那这个烂摊子要怎么解决呢。。即使庾亮做了这么多错事,温峤还是很看好他.. 温峤是当年被身在北方苦苦支撑的刘琨派来到建康劝进的,后来就被强留在了东晋。桓温名字里的温字就来自于温峤,是当年温峤在来到建康之后有一次拜访桓温家,还不到一周岁的桓温被温峤夸赞,桓温的父亲就给他取了这个温字。
温峤和庾亮又拉来了陶侃、后来还有郗鉴,但苏骏军队战斗力强悍呀,毕竟是在北边和胡人真刀真枪干过的。最终还是苏骏趁着醉意浪了一波,真の马失前蹄被陶侃部下投矛射死…. 苏骏叛乱这才被平复.. 这场叛乱打到温峤都考虑迁都豫章了..
但是在平定苏骏叛乱之后,王导认为应该表现宽厚,基本没有什么处罚。显然他们不是在为国家考虑咯。平定战乱后不久,公元329年,温峤就去世了。
与此同时,北边的刘曜(前赵/汉赵)和石勒(后赵)也在打架,嗜酒的刘曜喝得醉昏昏的,被石勒一波带走俘虏了。之后刘曜的儿子不成器呀,很快就被石勒统一了北方。
苏骏和刘曜的故事告诉我们,大仗之前指挥官不要喝酒😓。
哦对,我一直没有提到身处西北地区的前凉后凉,因为他们的存在感确实不大.. 直到前赵灭亡、后赵统一中原的那段时间他们才开始上场一下。。我也不是很关心那里,但是毕竟是他们保存了儒学正统👏。
公元330年,石勒称帝,封自己的儿子为太子。石虎很愤怒,觉得自己军功最大,成就大赵功业的是我,大单于的称号应当授予我,现在却给了个奴婢所生的黄口小儿。这位黄口小儿石弘喜好写文章,亲近儒雅之士。按理来说,以武功夺天下、以文治守天下是卓有成效的套路。但是有暴虐的石虎在这里,确实有大臣向石勒进言:将来您百年之后,仁孝温恭的皇太子可能控制不住局面,应该逐步减少石虎的权势。
我还挺佩服石勒的(驯服的野兽:石勒),他从一个奴隶的地位一步步当上了皇帝,而且在326年石勒也开启了九品中正制,开始设立秀才、孝廉考试经策的制度。
有个关于石勒的经典故事:说石勒在大宴群臣的时候问朕可与古代哪个皇帝相比呀。大臣回答神武谋略超过汉高祖。石勒笑着说朕如果遇到汉高祖刘邦,应当向他北面称臣,与韩信彭越比肩;但如果遇到汉光武帝刘秀,那就要跟他逐鹿中原掰掰手腕了。大丈夫行事应当光明磊落,不该仿效曹操、司马懿那样欺凌他人的孤儿寡妇。(虽然石勒死后他的孤儿寡妇马上就被石虎欺负了..)因为@到了刘邦与刘秀,这段话被很多人知道。从石勒推行的政策来看,他的眼界确实比石虎这样的莽夫、比南边的门阀士族不知道高到哪里去了。这个「三皇排位」的故事就像 Fate Zero 中的三王论道画面一样..😂
石勒虽然没上过学,但是喜欢让儒生读书给自己听,发表的观点也都令人心悦诚服。有次听到汉书里郦食其劝刘邦册立战国时六国诸侯的后裔的时候大惊:这种做法为何最终能夺得天下?直到听到下一段里张良劝谏,才说幸亏有这么回事。
所以,这样一个有着高明政治智慧、摸爬滚打了那么多年的人,会看不到在自己死后石虎的威胁吗?我觉得那就只有一种可能——不得已而为之,要嘛石虎的力量是不得不依靠的,要嘛它已经尾大不掉了。
公元333年7月,石勒去世。石虎在石勒病重前已经掌控了局势,原本的太子石弘大为恐惧,说自己软弱,要让位给石虎。石虎说太子即位是礼仪。石弘流着泪坚决辞让,石虎发怒说:
若不堪重任,天下自有大义,何足豫论!
就是你先当着,果断时间自然会因为你不堪重任把你废掉的,这程序我们还是要走完的。╮(╯_╰)╭ 😂心疼石弘。很快,稍微击败了叛军的石虎就拥有了仿照曹操之于汉献帝旧例的待遇..
公元334年,石弘又拿着印玺找到石虎,要把君位禅让给石虎。石虎又说「帝王大业,天下自当有议,何为自论此邪!」很快,石虎说石弘愚昧昏暗,谈什么禅让,要把他废黜。废黜不久也都被石虎杀了。
石虎这种人哪里会治国?很快就搞的乌烟瘴气。石虎的太子石邃也暴虐无道,我感觉它是个性变态,它杀了美貌姬妾,吃人肉、装裱传看首级,我写下这几个字都觉得心理不适。怎么会有这种变态?!!石邃最后被石虎所杀。
王导和庾亮不合,不过这俩人我都不喜欢。。王导性情宽容仁厚,换个角度说就是对作奸犯科不守法令的手下并不在意。庾亮就不用说了,就是他自作主张才激起了苏骏的叛乱,带来了兵灾,自己没那个能力却有那个权力。
庾亮一直想要废黜王导(所以庾亮和王导、和苏骏、和陶侃都不合..)。王导心中不平,每当遇到西风扬起尘埃(因为庾亮当时驻守在西边吧),就举起扇子遮蔽自己,缓缓地说:“庾亮的尘土玷污人!”。😂😂😂
公元340年年初,庾亮去世。他的儿子庾翼接任庾亮的职位。
这时,前燕国(慕容氏)派刘翔来到东晋朝廷进献俘虏和战利品、报告功绩,当然主要目的是为燕王求一个大将军的官位,并且约定一个共同举兵讨伐中原的意向。
果不其然,迂腐的东晋大臣们表示:自汉、魏以来,不封异姓为王。刘翔尖锐的指出:
自刘、石构乱,长江以北,翦为戎薮,未闻中华公卿之胄有一人能攘臂挥戈,摧破凶逆者也。
独慕容镇军父子竭力,心存本朝,以寡击众,屡殄强敌,使石虎畏惧,悉徙边陲之民散居三魏,蹙国千里,以蓟城为北境。……
说得超级棒!我对崇尚空谈,只关注自身门阀利益的东晋官场非常鄙视。东晋时代的许多许多名士大多逃避事务求得自己安逸,这种崇尚清谈不爱实务的潮流是我非常不喜欢的。空谈误国呀!当时也不是没人看出这点,东晋第一位皇帝司马睿手下的录事参军就曾经进言说:
洛中承平之时,朝士以小心恭恪为凡俗,以偃蹇倨肆为优雅,流风相染,以至败国。今僚属皆承西台余弊,养望自高,是前车已覆而后车又将寻之也。请自今,临使称疾者,皆免官。
翻译过来是说:
洛阳太平安定的时候,朝臣们认为小心谨慎属守职责的是平庸,认为傲慢放纵是优雅,这种风气流行感染,以致国家败亡。现在您的幕僚属下也都效法继承了洛阳时的弊病,修养名望自以为高,这是前面的车子已经翻了而后面的车子又将重蹈覆辙。请求从今以后,接受职任却又称病不行使职责的,全部免去他们的官职。
但是当时司马睿不听咯。
除此之外朝臣还有不同看法:什么夷狄互相攻击,对中原之国有利,只有礼器与名号不能轻易相许,要是慕容氏翦除石虎,又出现一个石虎,那时候朝廷又能仰仗谁呢。就这种逻辑也能当东晋的大臣吗?!!
刘翔在建康呆了一年多,众人议论始终没有结果。后来刘翔通过其他人游说晋成帝,东晋这才给了慕容氏一个大将军、幽州牧、大单于、燕王等等的封号。
刘翔痛恨江南士大夫骄奢、酣饮、放纵、互相推崇的风气。又一次在显贵的宴会上对众人说:
四海板荡,奄逾三纪,宗社为墟,黎民涂炭,斯乃庙堂焦虑之时,忠臣毕命之秋也。
而诸君宴安江沱,肆情纵欲,以奢靡为荣,以傲诞为贤;謇谔之言不闻,征伐之功不立,将何以尊主济民乎!
大约就是说天下动乱已超过36年,万民生灵涂炭,各位君子却在这里吃喝玩耍不亦乐乎,推崇桀骜怪诞的东西,对忠正耿直的言论充耳不闻,你们还要点脸吗?!说得好!!👏👏👏
桓温终于在卷97上线了!!庾家的庾翼去世之后,庾家就没有人才了,荆楚交给了桓温!桓温这个同学需要大书特书,在那个崇尚美人的年代,桓温这样的大男子汉异类真是一股清流!他曾经针对东晋士大夫说:「我若不为此,卿辈亦那得坐谈?」用现代的话语说就叫「哪有什么岁月静好,不过是有人(我)替你负重前行」。
公元346年,桓温终于要伐蜀了!因为是奇兵突进,桓温合兵一处,在成都决战的时候,原本桓温的前锋部队是出师不利的,士兵们十分害怕想要撤退,然后负责击鼓的人却误击了前进的鼓声。然后桓温就这样赢了,灭了成汉国。哈哈哈哈哈。😂
与此同时:
而且我突然想到,如果有同时并存的多个国家都出现了「荧惑守心」的灾象,所有君主都要自己反省吗?还是可以推给敌对国家的君王?
石虎圈地用于打猎、征辟民间美女、广修宫殿亭台、掌握十个州的地盘还是疯狂聚敛财富,史书上记载他甚至把前代的陵墓都挖开夺宝.. 石虎的新太子石宣借着荧惑守房的名头说「房宿是天王,现在火星停在这祸殃不小,应当让显贵大臣中姓王的人承当罚则」。他是想要给自己不喜欢的大臣王朗泼脏水。石虎心中怜惜王朗,就换了个官找了个由头把他腰斩了.. 啊????
为什么?!我不理解啊!为什么石虎浪了这么久,后赵帝国还是到349年才灭亡??
公元348年,石虎的一个儿子石宣杀了石虎的另一个儿子石韬。石宣去葬礼上的时候还呵呵了!!原文是这样的:
宣往临韬丧,不哭,直言“呵呵”,使举衾观尸,大笑而去。
我搜了下才发现,这似乎就是「呵呵」的出处啊!!😱 由于语义的变化,我已经多少年没有开心地用过这个词了。。😂
石虎怀疑是石宣干的,把他骗到宫中扣押起来,折磨石宣致死。资治通鉴里罕见地用了79个字(那可是文言呀!)描述这个过程.. 可见石虎对石韬的喜爱。石宣全家都被石虎杀了,石宣有个小儿子石虎一直很喜欢,石虎最后抱着他意欲赦免,大臣们却不同意,「就抱中取而杀之」。小孩子拽着石虎的衣服大叫大闹,把腰带都扯断了。受到这么强烈的刺激,石虎也因此得了场大病。
后来,石虎自己也反省:
吾欲以纯灰三斛自涤其肠,何为专生恶子,年逾二十辄欲杀父!今世方十岁,比其二十,吾已老矣。
石虎已经开始怀疑人生了!!为啥自己生的孩子长过20岁就要弑父?!真正为什么难道你心里没点B数吗?诶可能石虎还真没点B数.. 反正石虎就立了个现在才10岁的小儿子为太子,想着等他长到弑父的年纪时候自己可能已经不在了。哈哈哈哈哈,你真是 too young too simple 呀。╮(╯_╰)╭
不过没过多久(公元349年)石虎就死了。之后石虎的儿子们争位,一个接一个当皇帝,反正最终石家被冉闵一锅端了。
在后赵垮台的过程中,西边苻氏的前秦跃跃欲试,东北边慕容氏的前燕也摩拳擦掌准备来捞上一票,桓温在南方也开始动员准备北伐。但是东晋朝廷派去北伐的人不是他,应该是怕他在灭成汉之后又立战功不好控制吧。不过东晋的北伐军被残缺体的后赵给赶回来了,黄河以北大乱,20多万晋朝遗民南渡黄河要来归附东晋,结果正好晋军败退无法接应,整整20多万无人接应的人呐!「死亡略尽」!!😔唉,越看就越讨厌东晋,就越讨厌司马氏。这样的东晋早就该进历史的垃圾堆!
然后冉闵(当时还叫石闵,因为他是石虎的养孙)上场了(冉闵:英雄还是军阀?),但他做的事情其实都算是后赵内部的权力争夺吧,所谓的杀胡令:
① 宣令内外六夷,敢称兵仗者斩!
② 今日已后,与官同心者留,不同者各任所之。
③ 赵人斩一胡首送凤阳门者,文官进位三等,武官悉拜牙门。
前前后后3道命令,第三道命令时还有很多误伤,长得鼻子高一点、胡须多一点的人很多也被杀了。不过我看到说历史上是否真的有这么一份杀胡令还有待考证,不过既然资治通鉴里这么写了,我就当作有好了。作为后人,我怎么评价好像都不是很合适,那就骂一骂无能的晋朝好了。
但是冉闵的政治智慧也确实是不行,有人劝进,他先假意推辞一下:我是晋人呀,现在晋国的皇室犹存,我们分割州郡迎接天子回到故都洛阳吧。然后一个手下说晋氏衰败,远遁江南,怎么能驾驭各路英雄统一四海江山呢?冉闵说:你说这话,可谓是识时务知天命了!🙄🙄🙄 就这样虽然朝廷无能但是毕竟地大物博可以作为外援的东晋就因为皇权正统性的要求没法和你合作了😓。后来冉闵给东晋发消息:
逆胡乱中原,今已诛之;能共讨者,可遣军来也。
东晋就不理他了.. 冉闵勇武过人,资治通鉴里甚至连他的战马、兵器都记录下来了,但后来还是被东北边的前燕(慕容氏)给灭了。
桓温是想要趁着后赵垮台的机会北伐的,但是他没能立即北伐,朝廷一开始派的不是他,是殷浩。桓温·殷浩的强烈对比简直是那段时间东晋朝廷人物的代表了。
相当年,殷浩长于清谈,声望非常高,时人比作管仲、诸葛亮,说殷浩若出仕则晋兴、殷浩若不出仕则晋室危矣。然后殷浩隐居十年,终于出仕了,天下人泪流满面,天下有救了!
当时北方后赵大乱,简直是北伐的最佳时机。桓温一开始就上疏表示要出兵,朝廷一直没理他,桓温一气之下直接出兵“北伐”(公元351年12月),但是走的路线是顺江而下驻扎在武昌😂,朝廷大惧。不过桓温估计也是吓一吓朝廷,不可能真打的,所以后来也就借坡下驴回师了。过了几个月,东晋朝廷派出了殷浩作为北伐统帅,然后无功而返。。
之前羌族首领姚弋仲的儿子姚襄按照父亲的遗嘱投奔东晋,姚襄博学、善谈论,江东人士皆重之。姚襄驻军在淮河两岸广泛开垦屯田。殷浩在寿春,讨厌姚襄的日益强盛,就把他在东晋的人质弟弟们囚禁起来,并多次派遣刺客刺杀他。但是姚襄超级有人格魅力,刺客们全部把事情告诉了姚襄,后来殷浩偷偷派人率兵袭击姚襄,被姚襄消灭收编。有人和殷浩说:与姚襄之间产生隔阂、猜忌的根源,在您这里而不在姚襄那里,殷浩还完全不这么认为。
10月,殷浩以为自己派去刺杀前秦国主苻健的刺客得手了,趁机又一次北伐,然后让姚襄作先锋。。结果被姚襄反戈一击。😓殷浩派部将攻打姚襄的手下,大败而归。姚襄一边招募流民一边上报东晋朝廷表明这只是和殷浩的私人恩怨。这些都是353年发生的事情。后来,姚襄投降了前燕。
公元354年,桓温借着朝野上下对殷浩的怨愤,上疏请求免去殷浩的官职,贬为庶人。殷浩被废黜之后,史书记载虽然忧愁怨愤之情不形于色,但常常用手在空中书写「咄咄怪事」四个字。天呐!!我受不了了,怎么会有这么死装逼的人!!!!
很久以后,桓温曾经想重新启用殷浩当一些文官,就写信告诉了他。结果殷浩在回信时担心信中有不妥之处,拆开信封检查了十多次,最后忙中出错,送到桓温手里的只是一个空信封。桓温大怒,从此不再启用殷浩,殷浩最终死在流放之地。
怎么说呢,我对「清谈」本身并没有意见,我喜欢的奇葩说等等节目也算清谈吧,那些脑洞、观点的碰撞多么有意思!我看不惯的是清谈的人身居高位,同时还瞧不上真正做实事的人!这个样子的所谓魏晋风骨我是瞧不太上的,就好比殷浩这个沽名钓誉的老匹夫。🙄
公元354年年初,桓温率兵北伐,攻打前秦。一路打到了长安边上,但就没有再前进了。《东晋门阀政治》里分析,桓温第一次北伐的目的是为了增益声威,不愿意继续消耗实力,因此不渡河。后来辅佐苻坚的王猛这时候上线了,他来到桓温的兵营里和桓温长谈,王猛看出桓温的重心在江左而非关中。桓温评价他:长江以南没有能和你相比的人。后来桓温也没有取得更大的战果,不过前秦的一票人都亡于抵御桓温的战争,比如说当时的太子苻苌。
所以在后赵这一波垮台的过程中,苻氏的前秦起来了,慕容氏的前燕也起来了。不过前秦的第二任皇帝苻生又是凶狠暴虐:
天象说不出三年国家就会出现帝王、皇后死亡,大王被杀的事情。然后苻生就把皇后以及几个辅政大臣杀了,用以应验这个预言。???你是趁机的吧!
苻生宴请群臣,喝到尽兴时苻生说:为什么还有人坐着!就拉弓射死了兼任掌酒官的尚书令。。
公元356年6月,苻生下诏说:我即位以来,有什么不好的地方?以至于诽谤之言横行天下;我杀人还没过千,就说我残酷暴虐;现在行人还摩肩接踵,不能说稀少,正应施以严刑峻法,谁又能把我怎么样呢。🙄
潼关到长安一带,有老虎出没,已经吃掉了700多个人。苻生表示:野兽饿了就要吃人,吃饱了自己就会停止,有什么值得设立专门官职除害的呢。况且上天难道能不爱护民众吗,正是因为犯罪的人太多,所以上天才会帮助朕消灭他们。🙄
苻生晚上吃了太多枣,早晨起来不舒服召来太医。太医说是因为陛下枣吃多了。苻生大怒:你不是圣人,怎么知道我吃枣了!然后就把太医杀了。🙄🙄🙄
苻生问周围的人,外边怎么评价我呀?左右有人说:圣明宰世,赏罚明当,天下唯歌太平。苻生大怒:你竟敢献媚拍马屁!砍了。过了几天苻生又问同样的问题,左右有人说:陛下刑罚微过。苻生大怒:你竟敢诽谤我!砍了。🙄🙄🙄🙄🙄
苻生在某天夜里对婢女说:苻坚、苻法兄弟不可信赖,明天就应当把他们除掉。婢女马上把这个消息告诉了苻坚。苻坚带数百勇士进宫,所有守卫都丢掉武器归顺了他。苻生这个时候还在酒醉大睡,醒来时惊慌地问你们是什么人,左右人告诉他是贼人。苻生说:为什么不叩拜,不拜者杀头!苻坚的士兵全都笑了。苻生被废黜,不久就被杀了,谥号厉王。
喜大普奔!苻坚大帝终于登上历史舞台了!不过这一章里提到苻生的时候全部是这么暴虐的记载,我反而有一丝丝疑惑,它有夸张的成分吗,因为苻坚上台的合法性问题可能对此产生影响。首先当时苻坚还有一个哥哥苻法,最后苻法被太后赐死了——太后看到东海公苻法宅门前车水马龙,怕这最终会对苻坚不利。。苻坚和苻法在东堂诀别,二人失声痛哭。苻法最后的谥号是「献哀公」,这个献字颇有意味,好比汉献帝。其次当时前任皇帝苻健还有儿子在世,比如苻健最喜欢的小儿子苻柳,苻柳后来还发动了叛乱。这或许能解释为何将来苻坚要把本族人安排到首都之外的地方去?
苻坚之前蛰伏的时候就有人劝他早作打算,照苻生这么乱来下去,权力迟早落入外姓之手。一位叫作王猛的人被引荐给苻坚,说王猛的谋略世间少见。苻坚王猛一见如故,苻坚自认为如同刘备遇到了诸葛亮。
王室亲属对王猛都十分厌恶,觉得他是来分蛋糕的,但王猛其实是能把蛋糕做大的人呀!王猛在官场上斩除邪恶,纪正冤案,无所顾忌,几十天时间,处理了二十多名王公贵族,朝廷上下震动,境内路不拾遗。苻坚感叹地说:「吾始今知天下之有法也!」那年王猛36岁,一年之内5次升迁,一路为前秦帝国保驾护航。到361年,史书的评价是:
当是之时,内外之官,率皆称职;田畴修辟,仓库充实,盗贼屏息。
到公元372年前秦已经消灭了前燕、王猛担任宰相之后,史书的评价是:
国富兵强,战无不克,秦国大治。
大治这两个字可真不容易啊!👏 根据这里的说法,那个时代是动乱的时代,是根基不稳的时代,胡族君主的终极梦想是加强权威的秦汉帝国、汉人士族的梦想是魏晋门阀,而打击士族就意味着无法充分控制地方,所以说前秦其实根基不稳,一旦(淝水之战)战败整个国家就乱了。这个矛盾之外,还有胡汉矛盾、南北矛盾,政治矛盾和民族矛盾都没有解决,政权是长久不了的。这个死循环后来是怎么解开的呢?——后来北周的关陇集团,一个超脱于民族之上的利益集团(来自陈寅恪先生)。
公元369年,桓温第三次北伐,攻打前燕。前两次北伐中,第一次桓温打前秦打到了长安边上,第二次桓温收复了故都洛阳,但这一次桓温大败于慕容垂。。桓温就是一个雄性气息雄厚的大男人形象,连强烈自尊心的那一面都活灵活现,他在第三次北伐受挫之后回来把责任推给了一个部下,还对这件事非常敏感.. 😂
我对喜欢搓粉、喜欢嗑药(五石散)的东晋士大夫完全没有好感,在我看来就是不如桓温这样的英雄气概,因此即使东晋是汉人政权,也很难就这么喜欢它。如果我穿越回去,我更想要到北方去金戈铁马,拯救苍生。
慕容氏这几十年中真的是人才辈出!诶话说这也算是另一种门阀吧?
不过慕容垂大胜归来之后却受到朝中太傅慕容评的敌视猜忌,再加上太后也一向厌恶慕容垂,两人想杀了他,最终慕容垂被逼离开了前燕,来到了前秦。苻坚大为高兴,王猛却认为应该尽早除掉慕容垂父子。苻坚不答应,最终是王猛用了一招金刀计做掉了慕容垂一向喜欢的大儿子慕容令。虽然慕容垂没死,但是他后来建立的后燕也因此找不到一个合适的继承人,国祚也不长久。金刀计的过程是这样的:
王猛请慕容令当发兵攻打前燕的向导,在出发前,王猛到慕容垂那里喝酒,要了一件礼物「使我睹物思人」(这好像就是「睹物思人」的出处吧?)。慕容垂就把佩刀赠送给了他。
到了洛阳之后,王猛贿赂慕容垂的亲信,让他装作慕容垂的使者呆着金刀给慕容令传信,说慕容垂要返回燕国,已经上路了,你有机会也可以迅速出发。
慕容令没法核实,只能叛逃。王猛上表陈述慕容令叛逃的罪行,慕容垂因为害怕也出逃了,但最终被擒获。只是苻坚胸怀大度,对待慕容垂同过去一样。而慕容令回到燕国之后因为曾经出逃又返回、并且父亲正遭受厚待,所以被怀疑是奸细,被迁徙流放到偏远地区。慕容令没过多久在前燕起兵失败被杀。
然后就这一波,前秦就把前燕给灭掉了。。
在北方,这几年基本都是前秦帝国东征西讨,前秦的威势已经大到四方来贺的地步了,高句丽、新罗、西南夷、大宛、东夷西域六十二国都来进贡。在淝水之战前苻坚甚至还派了吕光征讨西域!
公元375年,王猛病逝,死前建议先灭鲜卑和西羌,不要把东晋作为图谋的对象。王猛他确实做到了苻坚的诸葛亮!
而在南方,桓温要谢幕了。桓温曾经说过:
男子不能流芳百世,亦当遗臭万年
这样的话。桓温原本是打算接着第三次北伐胜利的威势登基取代东晋的,但是尴尬的是北伐失利了.. 那为了增加威势,桓温废黜了皇帝.. 后来这个新皇帝去世前,桓温曾经希望他把皇位禅让给自己,再不济也让桓温摄政,但是在谢安、王坦之的干扰下,这个愿望没能实现.. 过了一年(公元373年)桓温病逝,病重时多次暗示催促朝廷给他加九锡,谢安王坦之故意拖延,到最后也没有给。
所以《东晋门阀政治》说桓温这个时代是东晋的门阀实力的巅峰,皇权说废就废,桓温并没有自立也不是因为皇权的阻挠,而是其它世家大族自己的阻挠。后来的谢家、王家有意识地让出了一部分权力给皇权,避免逼得太紧。及至再之后的刘裕,门阀全都再见了。
于是接下来就是谢安谢家的时代了。谢玄组建了北府兵,这也是后来淝水之战东晋这边的屏障。桓温的后代可没有桓温那么大的能力,桓家不可避免就衰落下去,再加上北边前秦的压力越来越大,东晋知道迟早前秦会南下,桓家、谢家等等也就各让一点,稍稍齐心协力应对早晚会来的“淝水之战”。
此外在公元377年,有一个我很喜欢的故事:
我突然觉得很感动😭,我突然好喜欢「郗」这个字啊!
淝水之战!!
苻坚有个毛病,别人叛乱平定了他也不杀,就流放,有罪不诛,那成本这么低当然不稳固啦。
苻坚该不该南征东晋?当他的大臣们几乎全部认为不应该的时候,当到最后只有慕容垂、姚苌这些降臣以及一些富家子弟认为应该亲征,显然是不该的呀!那些人显然是狼!但苻坚还是亲自南征了,而且苻坚自己军事能力很出众吗?不是的,之前也不是他亲自带兵的呀。所以真的就是膨胀了!
淝水之战的具体过程就没必要多说了:苻坚接受东晋方面的请求,下令军队后退,是为了半渡而击。然而在后退的时候后方有奸细大喊:秦军败啦,于是就这么溃败了,风声鹤唳草木皆兵。。又给东晋续了30多年的命。
战前这么多年的准备肯定是归功于谢安谢氏家族,但这一仗本身我真觉得就是因为苻坚自己浪了。。正所谓尽人事听天命。不过谢安这边是名士真风流,到最后也还要维持一下形象😂:
谢安得驿书,知秦兵已败,时方与客围棋,摄书置床上,了无喜色,围棋如故。客问之,徐答曰:“小儿辈遂已破贼。”既罢,还内,过户限,不觉屐齿之折。
苻坚真的是得民心的,奈何最终被后秦的姚苌所抓,也是在385年被姚苌吊死。唉,可惜了,苻坚大帝。司马光评论说:
坚之所以亡,由骤胜而骄故也。魏文侯问李克,吴之所以亡,对曰:“数战数胜。”文侯曰:“数战数胜,国之福也,何故亡?”对曰:“数战则民疲,数胜则主骄,以骄主御疲民,示朋不亡者也。”秦王坚似之矣。
——就是骄傲膨胀了。
// 淝水之战结束,我的兴趣好像突然就降到了低点。剩下我关心的东西并不多了。
苻坚这边在战败后天下大乱,各地部族都趁机作乱,这说明本来就不是南征的时候嘛:
公元386年,拓跋珪建立北魏,其实拓跋氏鲜卑早就在那儿了,现在改了个国号而已。北魏开始崛起,这个过程就不关心了,中间的一个里程碑是北魏大败后燕的参合陂之战,北魏坑杀了投降的燕军。后来姑苏慕容的参合指就是典出这里吧!
公元398年,北魏迁都平城。年底,拓跋珪登皇帝位,下令朝野皆束发加帽,这标志着北魏的汉化开始了呀。
谢家在淝水之战后让出了许多权力,避免功高盖主,皇室司马道子渐渐掌握权力,但他能力不行,被稍微煽动一下就和谢安有了隔阂。正好此时苻坚派人来东晋求救…. 谢安就请求亲自率兵去救援苻坚😓,不过也只是用这个理由远离政治风口罢了,没过多久的公元385年,谢安去世。
此时南边的东晋就开始浪了,谢家淡出权力中心之后,皇权相权开始增长。这时的皇帝晋孝武帝一开始还很勤奋,后来就懈怠了,自己开始沉溺美酒、女色、信佛,政事交给司马道子,但是司马道子骄横强蛮放纵自己。然后皇帝就和司马道子有了嫌隙..
孝武帝嗜酒,有一次故意调戏后宫的张贵人说:你按照年龄来说也该废黜了,我更喜欢年轻的。张贵人内心气愤,到了晚上孝武帝大醉的时候就打发走宦官,用被子把孝武帝闷死了…. 对外宣称「因魇暴崩」,然后这件事完全没有人追究。。😅
而司马道子呢也嗜酒成癖,他的儿子司马元显知道老爹已经在朝廷没有声望了,就在公元399年的某一天当他大醉的时候,请求朝廷接触了老爹的职务。。然后朝廷让司马元显继承了他爹的扬州刺史职位,不过司马元显这人也不行😓。
东晋发生了孙恩的叛乱,孙恩跟个海盗似的,进攻会稽,会稽内史王凝之是王羲之的儿子,他既不出兵也不设防,只是每天去天师道的道堂上磕头念咒。。。。手下请求出兵讨伐孙恩,王凝之说我已经请来了得道大仙,在各个关卡都有鬼兵把守,盗贼不足为患。???后来孙恩攻下了会稽,王凝之被王凝之抓住杀了。。
刘裕终于要上线了!!正是在征讨孙恩的过程中,北府兵头刘牢之征召刘裕任参军。在征讨过程中,刘裕曾经有一个人驱赶砍杀几千敌兵的光辉事迹😂😂😂,当然这里的敌兵是孙恩拉扯起来的那些农民军,没什么战斗力就是了。
刘裕就这么一直在追着孙恩打,真的是一路打跑到海上。
公元402年,桓玄已经占据了东晋2/3的土地,有反意,朝廷就先下手征讨桓玄。桓玄原本以为朝廷处于多事之秋肯定没心思征讨自己,妹想到啊!然后就只能开干了。结果朝廷的军队没有一点战斗力,唯一能打的北府军头头刘牢之担心司马元显之后卸磨杀驴,也投向了桓玄。于是桓玄把统帅司马元显都俘虏了。
然后桓玄回头就夺去了刘牢之的兵权。。刘牢之这个时候还要起兵反叛已经没人跟他了,之前对桓玄一刀一枪都没动就投降了,实在是没有说服力呀。刘牢之最终上吊自杀,刘牢之示范了一个没有政治头脑的寒门大兵能有多悲催,给刘裕做了一次很好的反面榜样。
公元403年年底,桓玄篡位。公元404年,刘裕拉起一个班底起兵讨伐桓玄,一开始兵力只有一千多人,但是直接就把桓玄直接赶到了桓家经营几十年的长江上游,到底是桓玄太弱还是刘裕太强?!是前者吧?桓玄之乱平定后,刘裕位居中央。这一波政治风波之后上来的就不再是门阀了,是刘裕这样的下层士族、寒门兵头,门阀政治终于走到了终点。
那么是时候总结一波所谓的「门阀政治」,以下观点基本来自于田余庆老先生的《东晋门阀政治》。
门阀政治从王导的王氏家族开始,历经
这么几个家族掌舵,基本终东晋一朝都是门阀政治。在这个过程中,流民军起到了不可忽视的作用,比如说东晋初期郗鉴(就是王羲之的岳父)用流民军平定王敦之乱并且努力平衡王导、庾亮、陶侃等等强藩的力量,后期谢玄、刘裕的北府兵就更不用说了。
在这么几个门阀大家中,庾氏被桓温诛戮,桓氏在桓玄失败后死绝,太原王氏的两支也在政治斗争中覆灭。所以只有琅琊王氏和陈郡谢氏没有遭到毁灭性的打击,所以刘禹锡才会说「旧时王谢堂前燕」。所以呀,live long and prosper!
那么门阀政治为什么会出现呢?按照田余庆老先生的说法,需要有2个条件:
在淝水之战后,谢家渐渐淡出权力舞台中央,孝武帝试图重振皇权,而且那时候士族(太原王家)所控制的兵力仰仗于并非门阀士族的刘牢之,太原王家的头面人物甚至自己都不会带兵,所以2项条件都不太存在了,门阀政治自然也就要消亡了。门阀政治的顶峰应该是在桓温打算改朝换代的时候,司马皇室已经屈服了,是另外的门阀谢家、太原王家阻挠导致桓温没能成功。最后桓玄的强行改朝换代像是门阀政治的回光返照,在两支太原王家都覆灭之后,就可以算是东晋百年门阀政治的终场了。
所以一个关键点门阀里的人才断层了,当时士族名士的风向是看中清谈忽略实事轻视武力,而要维持政治统治其实他们忽视的东西是最重要的,所以就总需要门阀中那些不废事功的人来支撑,就好比桓温。一旦门阀士族中产生不了这样的人物了,自然门阀政治的危机就来了。所以,空谈误国呀!还有一种可能,是门阀只在之间结为姻亲的话,那几十年过去的近亲结婚可能就没法忽略了😂。
永遇乐·京口北固亭怀古
千古江山,英雄无觅孙仲谋处。舞榭歌台,风流总被雨打风吹去。斜阳草树,寻常巷陌,人道寄奴曾住。想当年,金戈铁马,气吞万里如虎。
元嘉草草,封狼居胥,赢得仓皇北顾。四十三年,望中犹记,烽火扬州路。可堪回首,佛狸祠下,一片神鸦社鼓。凭谁问,廉颇老矣,尚能饭否?
我把辛弃疾的这首《永遇乐·京口北固亭怀古》抄在这里,现在再来看这首词对里头的典故就有更加深刻的体会了。南宋因为地理原因对东晋、南朝有着特殊的感情。刘寄奴就是开创了刘宋的刘裕,佛狸就是后来的北魏拓跋焘(这一篇里应该跟他没关系了)。
词中的地名「京口」也大有文章,当初从郗鉴开始的流民军、后来谢玄组建的、刘裕依仗的非常能打的北府兵都是在这里组建的。桓温也经常说「京口酒可饮,兵可用」。
公元409年,南燕国主慕容超感叹御用音乐不完备,就去东晋掳掠了一些晋人补充歌舞伎人。???还有这种理由?!
因而才有了刘裕的报复性北伐,然后干脆就一股脑在公元410年把南燕给灭国了…. 当然这个巨大的战果很大一部分要归功于南燕国主慕容超自己作死,不守关隘,放刘裕进腹地,那不就一波带走么。
不过当刘裕在北边灭南燕的时候,卢循(孙恩叛乱的余党)在后方捅刀子,把刘裕的最大竞争对手刘毅也给打败了。刘毅应该就是在这一次失败中丧失了主动权吧?后来刘裕派兵从海路突袭广州😂。
与此同时在北方的世界里,公元405年,后秦国主姚兴把鸠摩罗什奉为国师,亲自率群臣听鸠摩罗什讲佛,同时让他大规模翻译佛经,于是佛教开始非常盛行。北方还有各种北魏、后秦、大夏、后燕、南燕、西燕、北燕等等的东西,但我都不怎么关心了..
公元416年,趁着后秦君王姚兴去世国内动乱的机会,刘裕北伐讨伐后秦。刘裕有多能打呢,在灭后秦的过程中,刘裕是和北魏交过手的,当时刘裕借道黄河,北魏在河北边虎视眈眈、诛杀劫掠被吹到黄河这边的东晋战船,刘裕就派兵还击,派精锐士卒到黄河北岸结阵,打败了北魏军,在追击中又斩杀俘虏数以千计的敌人。可以呀!
公元417年,王镇恶(王猛的孙子)攻下了长安,刘裕把后秦王室姚家灭了族..
但是公元417年这一年,刘裕最重要的谋士、留守建康的刘穆之去世了,刘裕听到消息之后非常悲痛,担心建康那边压不住局面,只好东归。原本还打算继续征服西北的,东晋的各个将领也因长期征战,思念故土,大多不愿意再留,那就只好回去了,留下了王镇恶和另一名将领沈田子辅佐自己12岁的儿子刘义真镇守长安。
不过沈田子因和王镇恶争功不和,因为王镇恶的祖父王猛在关中素有威名,大家怕王镇恶在关中自立,沈田子最后杀了王镇恶。。然后沈田子也因此被处死了。。然后刘义真听信谗言,擅杀大臣,人心离散,就这么被西北边的匈奴人赫连勃勃摘了刘裕北伐的桃子。。唉,可惜呀!这刘义真也真是 naive.
刘裕回去之后就在准备改朝换代了,公元420年,宋武帝刘裕建立刘松,结束了司马氏的统治,开启了宋齐梁陈的南朝。
而我,也在这里画下一个句号吧。这之后就是南北朝:
隋、唐的历史我们就又一次很熟悉了。魏晋风骨、汉唐风流,汉唐之间这400多年里,过去了多少朝代、出了多少风流人物、人民又受了多少苦难🙏。
花了6个多月,听、整理了118卷,但是一共有294卷,要听完真的是遥遥无期.. 每一卷整理都至少要半个小时,如果有对特定任务的背景、评价搜索的话就更久了。我中途中断了一下,去补听了罗辑思维以及得到 app 上的很多东西,有很多的收获,所以外边有广阔的蓝海,所以《资治通鉴》就暂时到此为止吧,将来有闲情的时候或许再翻开,也有可能就再也不翻开了..
就以田余庆老先生在书里的话做结语吧:
从宏观来看东晋南朝和十六国北朝全部历史运动的总体,其主流毕竟在北而不在南。只是北方民族纷争,一浪高过一浪,平息有待时日,江左才得以其上国衣冠、风流人物而获得历史地位,才有门阀政治及其演化的历史发生。但是不论在北方或在南方出现的这些事情,都不过是历史的表面现象。历史运动中的胜利者,不是这一胡族或那一胡族,也不是江左的门阀士族或次等士族。历史运动过程完结,它们也统统从历史上消失了。留下来的真正有价值的历史遗产,是江南广阔的土地开发和精致的文化创造,是北方普遍的民族进步和宏伟的民族融合。这些才是人民的业绩和历史的核心,而人民的业绩和历史的核心,又要通过历史现象的纷纭变化才能完成,才能显现。
整理完我才发现,好长啊。。所以这篇可能永远不会有人看完的吧。。😂
]]>之前的几卷:
这一纪看完有一点点的感想,放在末尾了。
回到西汉末年。
王莽做的各种改革就没什么好记录的了,我更关心的点是大事件之间的相互联系、顺序,与此无关的某项具体改革措施就完全不在意了。不过从改名狂魔王莽的迷信、天真、好虚名的程度看,「他是个穿越者」的观点应该只是牵强附会,这就是个天真的儒家学说死忠拥护者在尝试重新贯彻上古政策嘛。
我现在觉得王莽年轻时候表现出来的那些清廉的形象(王莽谦恭未篡时)并不是表演。那时天下受五德终始说的影响,大汉三代皇帝无嗣,自然会有大汉气运将终的流言,同时已经树立良好形象的王莽是以周公的人设重新登上政治舞台的,再加上之前有过霍光的先例,因此朝野对于王莽自称「摄皇帝」或许比后来的朝代来的更加宽容。直到有政治投机者伪造天命,王莽或许自己都信了。最后众叛亲离的原因,或许是之后王莽以儒生的政治理想治国,但是因天真的改革措施伤害了基本盘的利益吧。
刘秀
刘秀第一次大放异彩是王莽派「巨毋霸」这位小巨人来剿匪,率领近十万人把叛军围困在昆阳城,城中也就一万人不到。刘秀带人冲杀,攻击敌军主阵,王莽君的大将带一万多人单独与刘秀交战,命令其余各营按兵不动。结果交战不利,大部队又不敢擅自营救,就这么溃败了。。
夜有流星坠营中,昼有云如坏山,当营而陨,不及地尺而散,吏士皆厌伏。
「夜有流星坠营中」…… 这是后汉书对昆阳之战的描述,应该也是王莽军队士气大降轻松溃败的一个原因,(虽然资治通鉴里没写)。这正是「位面之子刘秀召唤陨石」的故事…. 😱😱😱
在昆阳之战后,海内豪杰都使用更始帝的年号。最初是刘秀的哥哥起兵,但是其它地方的义军为了好控制,拥立了更始帝刘玄登基。昆阳之战后不久,更始帝把刘秀的哥哥杀了,刘秀直接认怂,去向刘玄请罪,不夸耀昆阳战功,也不敢为哥哥服丧。后来更始帝任命刘秀为大司马,前往河北镇慰州郡,而更始帝自己登基之后就不理朝政了,日夜饮酒设宴。与此同时,刘秀在北方接收了好多股势力,大家都来归附。
刘秀在北方攻略王郎势力的时候,和随从官员一起要渡河。到河边时河水刚结了冰,等刘秀众人基本都渡过之后,冰就溶解了。😱😱😱 #冰系大法师!这个王郎号称是汉成帝的嫡亲骨肉,被击败之后派人前来投降,还想求封万户侯。光武帝嘲讽说:「假使成帝更生,天下亦不复可得,况子舆乎。」霸气👍
因此似乎说光武帝刘秀是位面之子是完全没有问题的:
刘秀一开始也不像是刘邦、项羽那样有大志向的人,曾经的梦想只是「仕宦当作执金吾,娶妻当得阴丽华」(真的娶到了!)。看书中的记载,有很大一部分因素是下边的谋士们有野望推着他往上挤呀。🤔不过刘秀平定天下的时候年富力强,镇得住、熬的过那些功臣,所以不需要杀功臣。
这几卷基本就是刘秀政权平定四方的缓慢过程(公元36年基本平定)。当时西边有隗嚣,西南边有公孙述,北方有匈奴支持的卢芳,各地还有盗贼和因为觉得分功不均而反叛的将领。并没有出现一个直扫六合的人物,大家也会犯错,给我的感觉是大家都比较弱,反正肯定没有韩信那样的帅才存在。刘秀手下的将领们或多或少都打过一些败仗,有时候甚至都需要劳烦刘秀远程指导😓:
恕我直言,东汉平定天下的过程和其它朝代比起来,有一种换个人来他也行的感觉,或许是因为战斗力最强的刘秀当了皇帝不能天天在外头带兵打仗了吧.. 😅 后来孙权曾经在评价鲁肃的时候把鲁肃比作自己的邓禹,邓禹就是光武帝的开国功臣,虽然也打过败仗,但是他自己的家庭教育做的超棒,将来汉和帝的皇后、再将来的邓太后就是邓禹的孙女。
光武帝的名头没有其他开国皇帝那么响,对手的弱小或许占了一大半原因吧。不过听说刘秀的功臣们(只要活到天下平定)都得善终👍👍👍,所以要穿越就穿越到光武手下吧!!
谶纬:
在平定蜀地的公孙述之后,就是刘秀治国的日常了,在这时候休养生息、不闹腾,就是一个好皇帝了!公元57年,光武帝刘秀驾崩。
汉明帝(公元57年——公元75年在位)
继位的是汉明帝刘庄。只有12岁的时候刘庄就能够看穿官吏们简牍上的暗语,15岁时又能够提出平定贼寇的正确办法,厉害!所以我们大致可以想象西汉昭帝刘弗陵如果没有夭折的话,大概也会是这么一位皇帝吧。不过司马光说「明帝性情狭隘而苛察」🤔。
刘庄是阴丽华的儿子,最开始并不是太子。刘秀最初立的太子是他前往河北接收势力时候迎娶的郭皇后所生的孩子。后来改立汉明帝之后,兄弟俩倒是继续一片和睦,生于帝王家却相亲相爱,真是不容易!
公元60年,汉明帝怀念东汉中兴大业的功臣,排了云台二十八将!因为马援是汉明帝皇后的父亲,所以唯独马援不在里头。。。。对,就是那位「马革裹尸还」的马援。
正是在汉明帝时期(公元65年),佛教传入中土,至少是明确被提到。
公元75年,汉明帝驾崩,死前也说不要厚葬,把牌位放在母亲阴太后的陵寝中即可。光武帝刘秀也不喜欢厚葬。再给他们俩点个赞👍。
汉章帝(公元75年——公元88年在位,所以其实是英年早逝呀)
汉明帝更加严苛,汉章帝则更加宽厚。他们俩一同构成了「明章之治」,不过讲真,我之前对这段时期完全没有了解.. 😓
汉章帝想要封各位舅父为侯,但是马太后(马援的女儿)不同意。最终汉章帝还是坚持封侯,以至于马太后去世时很不开心。在这之前东汉是没有外戚问题的,因为阴太后、马太后都很收敛,她们肯定都知道西汉灭亡的直接原因——外戚。不过从汉章帝的窦皇后开始,事情又回到了大汉熟悉的外戚轨道上。。后来的汉和帝在公园88年即位的时候只有10岁,后来的皇帝好像基本都是幼年即位?那长大了以后没有办法,总会有人开始借助宦官的力量对抗外戚,由是开启了宦官与外戚的政治争斗。╮(╯_╰)╭
班超的事迹出现在这之前的好几卷里,这一卷已经是他的尾声了,我真的好敬佩他!
班超一家都好棒,班婕妤是他爸爸的姑母,班彪、班固这都是史学家,妹妹班昭更是中国第一个女历史学家,儿子班勇也继续是镇守西域的将军👍👍👍。
公元73年,班超出使西域。这时离张骞第一次出西域已经过了快200年了!大汉压制匈奴、经略西域了这么多年,当时匈奴分为南北匈奴,南匈奴已经在西汉末年的纷乱之后再度向汉朝称臣。
班超这才能借大汉的威势「不入虎穴焉得虎子」在鄯善国斩杀北匈奴使者、在于阗国斩杀巫师、在龟兹国另立新王,恢复大汉与西域之间因为西汉末年战乱已经中断了65年的交往。
公元94年,班超人生最后一场大战「讨伐焉耆国」获胜。西域五十余国尽皆臣服。第二年,班超受封定远侯!👏
公元97年,西域都护定远侯班超派遣甘英出使罗马,听说到达了波斯湾!!
西域都护定远侯班超遣掾甘英使大秦、条支,穷西海,皆前世所不至,莫不备其风土,传其珍怪焉。及安息西界,临大海,欲渡,船人谓英曰:“海水广大,往来者逢善风,三月乃得渡,若遇迟风,亦有二岁者;故入海,人皆赍三岁粮,海中善使人思土恋慕,数有死亡者。”英乃止。
公元102年,班超上书乞归,说希望能活着进入玉门关,希望趁自己还在人世的时候,让儿子亲眼看到中原的风土😭。八月回到洛阳,九月就去世了。🙏 老将军千古!
哦对了,改进造纸术的蔡伦也生活在这个时期。公元105年,蔡伦把改进成果报告给汉和帝(但是资治通鉴书里好像没提到..)。
汉和帝后边,好像即位的皇帝都是年幼即位?然后国政就会被母族掌控,长大之后皇帝要亲政,就迟早会借着宦官的势力和外戚相斗。宦官们就这么走上前台。诶,那非外戚的大臣们呢?似乎光武帝忌惮再次出现王莽这样的权臣而削减了三公的职务范畴。
世道也渐渐不太平了,经常有地震、蝗灾、旱灾。边疆也狼烟渐起,西域离心、羌人叛乱。皇帝们也都变得昏庸。看着就非常气人!
这段昏暗时期的两束光:
张衡(公元78-139年)!张衡才高八斗,可要不是他曾经官至尚书曾经耿直上奏,我们永远不会知道是他曾经发明过浑天仪、地动仪吧。
杨震(公元?-124年),他曾经被称作关西孔子 😂。我是在《中国古代世家教育的当代启示》这篇文章里注意到他的,之前在书里听到的时候完全没有在意.. 其实经典的「天知地知你知我知」就是源自于他的话。
大约从这卷开始,三国时期人物及他们的祖先就陆续上线了!比如说荀氏八龙。曹操的“祖父”曹腾更是在前一卷就已经上线了。
另外汉桓帝是第一个笃信佛教的皇帝(在汉明帝时佛教传入中国),经常亲自祭祀、祈祷,从此佛教愈发盛行。
跋扈将军·梁冀
徐孺下陈蕃之榻
在除去梁冀之后,尚书令陈蕃上书推荐5位隐士,其中一位就是豫章郡的徐稚,这就是「徐孺下陈蕃之榻」的典故:陈蕃担任过豫章郡太守,曾经邀请徐稚担任功曹。平常陈蕃也不接见宾客,只有徐稚来的时候,特地为他摆设一张坐榻。
想不到后来官至太尉、太傅还曾尝试诛杀宦官(虽然失败了..)的陈蕃,被我记住还是因为大约500年后的名句。🤔
但是因为宦官在除梁冀的过程中出了很大的力,从此宦官专权。这才有将来孔明说的:
许多为此进谏的大臣都遭屠戮,直接后果就是「海内伤惧,益以怨结,朝野之人,以忠为讳」,翻译「四海之内悲伤恐惧,日益怨恨,无论是在朝的官吏,或者是在野的百姓,都把尽忠朝廷视为禁忌」。东汉时期出现了很多隐士,我猜测「昏君不值得效忠」肯定是一个很大的影响因子。
于是有了党锢之祸:
这是一场宦官们与大臣们之间的争斗。史书显然会站在大臣这一边,但是宦官代表着皇权。不过似乎爆发第一次党锢之祸(公元166年)的原因是士人们「法外杀人」?汉桓帝至少没怎么杀人。
第二次党锢之祸爆发(公元168年)的时候已经是汉灵帝了,他就比桓帝烂多了。一直到公元184年黄巾起义,党锢才被解除,士人们才重新回到政治舞台。在第二次党锢之祸的时候,那些三国前期的名人们已经上场了。
无论外戚还是宦官,他们都是要依附于皇帝的,所以名义上还是要保持天下稳定的。而后来黄巾起义、董卓进京、地方诸侯起兵反董掌握实权开始,情况就大不一样了。
对于这些被党锢之祸破坏的士人,司马光在评论中所赞赏的态度似乎是「择安去危,保全自身」?#请自嗣同始🤔
夫唯郭泰既明且哲,以保其身,申屠蟠见几而作,不俟终日,卓乎其不可及已!
从这一卷开始,三国的大舞台终于渐渐铺开了,那些熟悉的名字也一个个冒了出来,激动!
我对三国历史的了解深深受到几个游戏的影响。
①《三国志9》
最初是在堂哥家里看到他玩这个游戏入的门,一开始我什么都不懂,也不会上网找攻略,就自己瞎玩。长大之后就再也没法这么奢侈地投入这么多时间在新游戏上了,所以现在玩的仍旧是老游戏、或者是上手容易、即时反馈强的新游戏了。我现在就希望 KOEI 能够在 steam 上架这些旧版的三国志们,让我补个票..
我印象最深的一个档是208年赤壁前的剧本,之后再也没玩出过这么奇特的剧情了:
当时选了看着最简单的曹操,在灭了位于新野的刘备之后,北方的乌丸(a.k.a. 乌桓)部落就开始侵扰边境。当时执拗的我正面硬刚乌丸,各路猛将守在北平和蓟城,来一波乌丸消灭一波。最终就这么慢慢地硬生生耗光了所有30万乌丸军然后一波反推拿下乌丸….
这期间也没有招惹其他诸侯,专注内政,内政满了就探索,因此自己发现了东海之滨的隐藏城市倭!等乌丸最终被攻下的时候,我早就达到了1000声望称帝了。这时我突然发现,或许是看我为国征战太努力,剩下的全部诸侯都能够被我劝降了,以德服人!!我就这么兵不血刃地统一了全国。😄
因为对游戏浸淫太久,我对城池位置、对将领们的属性等等都有基本印象。
也因为浸淫太久,游戏也严重限制了我对三国的了解。比如说 san9 里只出现了乌丸、羌、南蛮、山越四个外族,因此我对这段时期匈奴、鲜卑的存在一直都没有概念。。
②《三国群侠传》
这是我在游戏店花钱买的正版游戏,是一个现代人被召唤回到三国时代挑选召集几位三国人物入队打败魔神附身的董卓的故事。以现在的角度来看,这个游戏做的也是非常棒呀。不过可惜我从来没有玩通关过….
游戏里董卓占据了洛阳,因此曹操的总部设在邺城。受此影响,初中历史课上有一次当老师提问「魏国的都城在哪」时,我毫不迟疑地就说了邺城.. 后来才知道不对,曹丕定都洛阳😅。
好了言归正传。不过这几卷里确实没有什么想记录的东西了,一切好像都那么熟悉,虽然细究之下肯定会有好多情节是与演义有出入的。不是很想找不同了..
不过这次在看到刘备说到髀肉复生的时候,我突然也有共鸣,有一股悲凉:😔
日月如流,老将至矣,而功业不建,是以悲耳。
此外这次倒是有了一些新的角度,比如说:
公元189年,汉灵帝终于挂了。外戚·大将军何进和袁绍谋划,打算诛杀宦官,袁绍建议何进多召各地的猛将豪杰率军向京城洛阳进发,以此威胁何太后,董卓因而进京。显然是不需要这么麻烦的操作呀,曹操也「闻而笑曰」。所以袁绍在这里是蠢还是坏?是坏吧?反正是被自己的私心所驱动。对于何进而言,大约20年前窦武陈蕃诛杀宦官失败身死的教训还历历在目,何进也怕。
衣带诏事件中,董承也算是外戚势力想要复辟吧,可惜曹操是掌握军权的实权派。
公元221年,汉献帝禅位于曹丕,享有四百年国祚的大汉终于完结了(蜀汉就不管了)。离三家归晋还有几十年,但东汉就到这里结束吧。想当年位面之子光武帝创下基业,之后仅有明帝、章帝算的上贤明,之后的皇帝们就都不咋地了,和西汉根本没法比!
不过最后的这段时期真的是谋士辈出、将星云集!!乱世乱世,选择错了,就会死,因此才能过滤出那样的星云璀璨吧。不过对于平民百姓来说,这段时期就只剩下十室九空、宁为太平犬不做乱世人的凄凉。
这之后,将会经历魏晋南北朝、会经历五胡乱华、会经历衣冠南渡,都是我不太了解的部分!不过东汉中期就已经没有什么感兴趣的了,南北朝期间肯定会有更多不感兴趣的部分吧.. 我专门 “prefetch” 了一下,现在看到了第68卷,再翻一倍到第136卷的时候还只是到宋齐梁陈中的齐呢…. 且行且珍惜吧。🙏
说实话,我确实有一点点疲倦了。从开始看(听)到现在已经过去了4个半月,按这个速度的话,全部听完整理完估计还要16个月…. 时间成本不容小觑。虽说基本是在开车路上或者运动期间作为 BGM 听完的,但是同样的时间里可以用来刷其它的书呀,最近几个月在微信读书上已经毫无进展了(kindle 上倒是还有一些进展)。所以争取加速在年底完结这个系列吧。💪
我最初的野望是把孤立的历史事件串联起来。但在某些没有「亮点」的时期里(比如东汉中期),政治不算清明,没有名垂千古的时代之子,但也没到民不聊生的地步,天下英雄仿佛都在蛰伏。因此不可避免地会走神,使我重新反思一个根本问题:自己翻历史脉络究竟是因为什么呢?
想了想,最终还是化为2个字:「有趣」。至于「前事不忘后事之师」什么的倒还真不是当下的关注重点。对前因后果、历史进程有更深刻的了解,这本身不就是一件很有意思的事情吗!往深了说,这也关系到我的身份认同🤔。
我其实也YY过,如果高中时候读了文科现在该是怎样一副光景呢。在那条世界线里我的榜样应该就是「稚嫩的魔法师」这样的UP主了吧!还挺期待的说!😂
]]>故事是酱婶的:很久很久以前,我偶然观测到 A 向 B 提出了一个在我看来属于无理的要求,然后 B 出乎我意料地居然就顺水推舟答应了。
我最开始的疑问是:啊为啥?!为什么在我看来无理的要求会被答应呢?这个观测事件是我的世界观里的黑天鹅,那只有两种可能性咯:
经过一点场外咨询,我意外地发现后者的可能性更大。这就意味着我对于边界感一直维持着一个比较高的标准,以至于以己度人,有些我认为是冒犯他人的举动在实际上并不是的。更何况,不同的接受者对于冒犯边界的定义、容忍度都不一样,甚至会产生类似存在、被需要、被肯定的正面反馈。因此,过于保守的策略是没有前途的!这点我早就意识到了,永远只能留在 safe zone 里无法蜕变。
这使我第一次明确感觉到了「注定孤独一生」的可能性…. 从前都只是自黑,我是从来不信的。但这个黑天鹅一出现,就仿佛我之前坚持的许多东西都不是必要的,仿佛我已经成型的世界观与现实世界是不相符的,存在一条大裂痕。那么为了避免 bad ending, 我或许就不得不去妥协、修正,忍受被否定的痛苦。
那之后我想了一晚上,幸好,得到的最终结论是:存在一条中间道路,使得我能够继续坚持已经成型的世界观,并且不会注孤生。来,听我慢慢说。
首先,阐述一下我理清楚之后的观点和立场:
A 向 B 提出的要求/请求是否「无理」,取决于 B 是否认为 A 提出的要求/请求是否有足够的「价值」。这个价值可能是物质回报,也可能是情绪价值。是否无理的判断标准取决于每个人自己的价值判断函数,即使没有任何的外部世界反馈,B 也有可能就是乐意,比方说出于情感联结,出于爱。
所以深究起来,这段话什么问题都没有解决,只是把「判断是否值得」明确确定为一个主观的函数。咱不知道别人经过了什么样的考量,也就不该替他们做出值不值得的判断。这也就是 “do not judge” 的核心观念了吧。
但是,在作为第三方观测者的我看来,「要求」中所蕴含的「理所当然」的含义是我坚决看不惯的。这跟 A 是否擅长、B 是否擅长完全没有关系。如果因果逆转,是 B 向 A 发出的 offer, 那只要不涉及第三方的话没人会有意见的。就是这个「要求」里的「理所当然」让我联想到了日剧中的家庭主妇,丈夫容易把妻子在家中的工作视为理所应当。
当然,只要 A/B 系统内部在非被迫的情况下达成了共识,那无论 B 是逆来顺受(包子)、还是无所谓(大多数人)、还是甘之如饴(圣母、拯救欲),达成共识就意味着 B 一定有它自己的考量,这个要求/请求里蕴含着 B 所认可的、而我没有观测到的价值。因此,关我屁事呢,反正在非受迫的情况下做出了这样的选择,就意味着 A/B 双方都与和我的观念不完全匹配了呀。
我进一步拷问自己,如果 A/B 系统在非被迫的情况下达成了共识、我认为的无理请求被答应了,同时我最终也能够得利,我会选择赞同并得利吗?(假定这个利还没到能够足以考验人性的地步)我想了想,依旧不会。
道理嘛我都懂,但是正如一开始提到的,保守的策略是没有前途的。而我观测到的事实显示,我一直持有的正是偏保守的策略.. 我同意「请求/要求」确实是主动推进关系的一种方式。而被动的方式需要有天时地利,可遇不可求。我把这里的「请求/要求」理解为类似不同级别不同程度的 “flirt”, 是一种很有效的方法。
所以,大方向我是赞同的,我的核心分歧其实在于:
关于①没啥好说的,我做不出来。关于②,我想到了一个简单明了的解决方案:把要求/请求中的「替我/帮我」换成「一起」!我也有出力、不是坐享其成,就足够了。所以其实有时候真的就是个态度的问题,说「一起」,即使最终啥忙都没有帮上也更容易被原谅😓。当然那就是另一个话题了..
我能想到的最激进的策略就是:只要相信不会造成不可挽回的后果,就去尝试,push to the limit. 可以说是非常 aggressive 了,但那真的不是我呀。Keep it real, 这是我最近看中国有嘻哈得到的东西。我特别喜欢里边那个商务小哥,何必一定要穿的 hiphop 才能唱 hiphop 呢是吧,做自己嘛。诶,突然有点禅味了😂。
以上不是一个放之四海而皆准的通用准则,但它至少展示了一条中间道路,我就不需要放弃之前的世界观与现实世界妥协啦。当我把这些东西理清楚之后,我只剩下一个疑问:
为什么之前会纠结,这不是很显然的吗.. 😅
]]>之前的几卷:
汉文帝
贾谊
汉景帝
晁错
直不疑
终于来到了汉武大帝的篇章!
推恩令(公元前127年)
在这一卷里北击匈奴,冠军侯霍去病也是在这一卷登场的。
霍去病
李广
在卫青和霍去病两个人形自走GPS的衬托下,李广老将军显得非常可怜——运气总是不好,总是迷路😓。在纪录片《河西走廊》第二集有过这么个画面,三路大军北击匈奴,结果李广军迷路了“断了卫青后路”….
感觉李广个人武力或许很高,但是统率能力不咋地吧,曾经还因为冒进害得博望侯张骞被贬为庶人.. 张骞问你的良心会不会痛!
但是真的心疼李广老将军。和匈奴缠斗一生,等到老了,国家强盛足以反击了,自己却运气不好总是在大漠中迷路。最后一战(从此匈奴远遁,漠南无王庭),卫青和霍去病各率五万骑兵出征,李广屡次主动请求出征,磨了好几次才被武帝封为前将军,隶属卫青麾下。但是武帝暗中告诫卫青:
李广老,数奇,毋令当单于,恐不得所欲。
说李广年纪大了,运气又不好,就不要让他与单于正面作战,怕他不能完成擒获单于的任务。卫青便把前将军李广安排到东路。李广心里也知道这些,气不过,没向卫青告辞就自己出发了。结果李广老将军又迷路了。。没赶上卫青和单于王庭的大战。直到卫青班师凯旋才找到组织。李广感叹「路途本就绕远又迷失了道路,难道不是天意吗?!」于是就拔刀自刎了。
但是太史公非常偏袒李广。太史公似乎不太喜欢卫青和霍去病,难道是因为他们的外戚身份?所以,写当代史显然会有视角偏差,但是隔了太久可能又丧失第一手资料了,tradeoff.
卫青
卷20很平淡,感觉就是汉武帝求神仙的一卷.. 在公元前117年,张汤创建了「腹诽」的先例。👎
另外幸好在北击匈奴之后,乌孙王没有答应迁徙到河西走廊一带,这才设立了酒泉郡,后来慢慢设立了武威郡,再之后扩展到了张掖、敦煌等河西四郡。
武帝的用人容忍度
公元前106年这年,
上以名臣文武欲尽
汉武帝因为朝中有名的文武大臣快要没有了而下诏求贤(卫青也在这一年去世了),。至于为啥会快没了,武将或许可能战死或者落下病根,文臣的话还不是因为你杀杀杀..😓 在「卷19 汉纪十一」有说到:
上招延士大夫,常如不足;然性严峻,群臣虽素所爱信者,或小有犯法,或欺罔,辄按诛之,无所宽假。
翻译过来就是:
汉武帝延揽士子文人,常常像怕人才不够用;但性情严厉刻薄, 尽管是平日所宠信的群臣,或者犯点小错,或者发现有欺瞒行为,立即根据法律将其处死,从不宽恕。
所以武帝的容忍度很低,一不小心就死。但是这样人才还是能一波波地冒出来?!说明那时候真是群星璀璨呀,也说明武帝看人能力很准吧。反正我是不想穿越到武帝时期呀,活不久..
公元前103年,公孙贺被武帝任命为丞相,但是公孙贺不接收丞相印信,顿首涕泣不肯起。汉武帝不理他起身离去,公孙贺才不得已接受印信,出宫后就感叹「我从此危险了」。。这是因为武帝时期当丞相的一个接一个不得好死。。
苏武
李陵
李广利出击匈奴的时候,武帝召见李陵,打算派他为李广利押运辎重。但是李陵想要自己率军,因为没马,就说愿意五千步兵直捣匈奴单于王庭。???你在逗我吗,步兵!直捣匈奴王庭!???
结果李陵在浚稽山被匈奴骑兵包围,毕竟5k步兵太拉仇恨了。匈奴单于表示要是数万骑兵连5k步兵都打不下来,以后还怎么号令匈奴还怎么和汉对刚?于是死战。最后李陵投降,逃回边塞的约四百多人。
所以一开始你托大说5k步兵也行,然后最终投降了??听到这样的战报我是汉武帝我也愤怒呀。😡
上欲陵死战,后闻陵降,上怒甚。
只有司马迁为李陵辩解,最终处以宫刑。不过很久以后武帝确实对当初使李陵陷入孤立无援的境地表示后悔。但是在我看来,用纯步兵出击匈奴,你当时在想些什么??!
巫蛊之祸(公元前91年)
这一卷里我关心的基本就只有巫蛊之祸了。
武帝曾经对卫青说过:汉家还有许多事处于草创阶段,再加上外族侵扰不断,所以朕如果不出师征伐,天下就不能安定,因此不得不征调民力。但是如果后代也像朕一样的话,就会重蹈秦朝灭亡的覆辙。武帝对卫青说这些是想表达卫子夫所生的太子性格稳重好静,将来能够以文治天下。
每当太子劝阻武帝征伐四方时,武帝就笑着说
吾当其劳,以逸遗汝,不亦可乎。
不知道差不多一千五百年后的朱元璋是不是也是这么认为的,把木棒上的刺拔去,太子才好即位。可是汉武帝这里拔的刺主要是外敌,明太祖拔的刺是功臣..
可惜太子在巫蛊之祸中因为奸臣陷害,起兵清君侧,最后兵败逃亡。最后武帝死后传位给了喜欢的小儿子刘弗陵。
汉武帝
公元前89年,武帝又一次巡游泰山,在祭祀中接见群臣时武帝说
朕自即位以来,干了很多狂妄悖谬之事,使天下人愁苦,朕后悔莫及。从今以后,凡是伤害百姓、浪费天下财力的崐事,一律废止!
即所谓的《轮台罪己诏》。然后首先废止的就是那一大堆寻访神仙的方士。从这时候开始,武帝开始体恤民力休养生息。这一年,武帝已经68岁了,离去世不到2年,他16岁(公元前141年)即位,在位时间长达54年。西汉一共210年,武帝就占了超过1/4的时间。武帝一朝,真是名臣辈出将星云集!
公元前87年,汉武帝驾崩。资治通鉴里是这么评价的:
帝聪明能断,善用人,行法无所假贷。
汉武帝人很聪明,遇事有决断,善于用人,执法严厉,毫不容情。确实是的呀,在「卷21 汉纪十三」里写道,武帝用法制控制国家,喜欢任用执法严苛的官吏。还曾制定法律,若有盗贼兴起,地方官若不能及时发现、或者发现之后没法完全擒获,主事官员会被一律处死。这种法律是在搞笑吗??果然不久所有的地方官就都再也不报告盗贼了..😳
汉昭帝
霍光
汉宣帝
说实话,后两卷中的朝政日常、老将赵充国平定羌族部落等等就不怎么感兴趣了。
哦对了,安西都护府设立了(公元前60年)!#自古以来
杨恽
宣帝的执政纲领:
在这一卷中记载了宣帝驳斥太子「陛下持刑太深,宜用儒生」的建议,体现了宣帝的施政纲领:霸道王道并存。武帝独尊的儒术在哪里,所以这就是外儒内法吗。宣帝说:
况且俗儒不识时务,喜欢肯定古人古事,否定今人今事,使人分不清何为‘名’,何为‘实’,不知所守,怎能委以重任!
这确实符合我看到目前为止的印象呀,动辄夸赞商汤、周文王这些上古人物。班固夸赞汉宣帝的时候也说
功勋光耀祖先,业绩永垂后世,实可称之为“中兴”,其功德可与商高宗、周宣王相比!
所以还是要和商朝周朝的人相比吗?!对于宣帝的主张,司马光在评论里说道:
宣帝所描述的是俗儒,难道就不能访求真儒而任用吗。像后稷、契、皋陶、伯益、伊尹、周公、孔子,都是大儒,假如汉朝能得到他们而予以中庸,汉朝的功业岂能只像现在这样!
以咱后世的眼光看来,无论从什么角度,大汉显然要比商朝周朝 NB 呀,这是历史的进程,没必要厚古薄今。而且在孔子之前的人就这么被你司马光归到「大儒」的行列里头去了嘛?棺材板要压不住了!
不过司马光反驳的是宣帝对于太子「柔仁好儒」的评价,认为「好儒」不是问题,你不要把儒批判一番。所以司马光也认为太子「柔仁」是一个正当的批评咯。╮(╯_╰)╭
麒麟阁
在宣帝时期,匈奴内乱,一时间有五位单于并立。其中的呼韩邪单于向汉称臣(公元前51年)。因为四方戎狄臣服,宣帝在麒麟阁上为中兴的功勋大臣绘制画像。
这种「麒麟阁」、唐太宗的「凌烟阁二十四功臣」、法国的「先贤祠」简直是我能想到的最大荣耀了!!麒麟阁没有凌烟阁那样被人传诵,或许是因为并非乱世的缘故吧,没有通俗演义加以发酵。
汉宣帝
公元前49年,宣帝去世。
所以从平定诸吕之乱以来,汉文帝——汉景帝——汉武帝——汉昭帝——汉宣帝,从公元前179年——公元前49年这长达130年的时间里,连续5任皇帝都不是昏君,都在及格线之上,甚至可称雄才大略!真是不容易!相比之下,罗马帝国大名鼎鼎的五贤帝时期也只有公元96年——公元180年这84年的时间。╮(╯_╰)╭
汉宣帝在反驳太子的「陛下持刑太深,宜用儒生」进言之后表示「败坏我家基业的人将是太子!」剧透一下,也确实如此,从宣帝之后,大汉由盛转衰,到王莽也只过去了50年左右的时间。罗马帝国的五贤帝中最后一位哲学家皇帝马可·奥勒留也传位于儿子康茂德,也正是在康茂德的统治下,罗马由盛转衰。让我不得不感叹一句「君子之泽,五世而斩」。🤔
// 这一卷里一大段都是文言,没有白话翻译。。我搜了下其它的网站好像也是这样,说明大家用的是同一套数据源。。😓
匡衡
虽远必诛
呼韩邪单于
汉元帝
汉成帝期间,王氏外戚专权。
赵飞燕
刘向
刘向(公元前77年——公元前6年)是这个平静而又浑浊时代的光。刘向「通晓天象」,那时候隔三差五天生异象,因此刘向经常上书。外戚王氏权位太盛,刘向专门编纂了一套天象→人间祸福映射的书向成帝暗示。后来更是直接上奏指出若不加以改变,田氏代齐的事件将重现于汉。汉成帝为刘向的心意叹息悲伤但是最终仍不能采用刘向的建议。#十动然拒?😓
刘向的儿子刘歆好像也是博学多才(不过后来改名刘秀,站队王莽)。汉成帝想要任命他为中常侍,正欲拜官,左右的人叩头力争,都说还没让大将军王凤知道。于是成帝就告诉了王凤,王凤认为不可以,此事就作罢了…. 王氏权威由此可知。
赵飞燕当上皇后之后,刘向编纂了《列女传》,意欲从内及外进行国家道德风化教育。《战国策》、《楚辞》、《山海经》也都是刘向编纂校对的。
刘向去世13年后,王莽篡汉。
公元前7年:
值得一提的是师丹,他在汉哀帝即位之后上奏建议控制贵族的田产数量、缓解贫富差距。不过由于贵族的激烈反对,最终不了了之。
// 西汉的尾声
断袖之癖
「卷34·汉纪二十六」里,董贤出场了。某一天午睡后汉哀帝起来,为了不吵醒还在睡着的董贤,把被他压着的袖子割断了。和董贤一起侍奉汉哀帝的还有董贤的老婆和妹妹.. 😳
公元前2年12月,董贤被封为大司马,当时董贤才22岁。
当时的宰相王嘉多次进谏关于董贤的封赏,但都没有用,哀帝渐渐疏远他。最终王嘉在狱中绝食而死😔。更令人心疼的是王嘉认为孔光是贤人,然而正是孔光弹劾王嘉「迷国罔上」才导致他下狱。
哀帝有次宴请董贤父子、亲属的时候喝多了酒,从容地看着董贤,笑着说「我打算效法尧禅位于舜,怎么样?」。哀帝对董贤的喜爱可见一斑。
公元前1年,6月,哀帝去世,没有子嗣。前任成帝没有子嗣,哀帝曾经是个诸侯王,他在封国的时候看着是个明君苗子,他在即位之初可能也曾有过远大志向,但是后来宠幸奸佞(e.g. 董贤),西汉要亡呀。董贤与妻子也在哀帝去世之后不久就失势自杀了。
王莽篡汉
之前王氏外戚权倾朝野的时候司马迁介绍过了王莽,说了好几次「王莽就是这样 xxx 以博取名声」。哀帝去世之后,王莽立汉平帝,自己把持朝政。然后开始搞各种献祥瑞,一拨一拨地吹王莽.. 😓
这时候到了公元元年!这时的年号是元始元年,😱
公元5年,王莽毒杀汉平帝,然后自己当了「摄皇帝」。隔年,公元6年3月,挑了个2岁的宝宝作皇太子,称作「孺子」,我这才知道《孺子帝》这本我喜欢的小说藏在标题里的梗,之前居然不知道.. 😂
公元6年,终于有人起兵反叛了.. 不过就几百人而且很快就失败了。公元7年终于有了上十万人的叛军,但是被官军剿灭了。击败这次叛军之后,王莽开始考虑正式登基。
有个叫作「哀章」的人,看到这个情况来了个政治冒险。他弄了个铜柜,伪造一道上天诏书,说王莽是真天子,然后写了8个辅政大臣的名字,还加上了「王兴」、「王盛」、以及自己的名字😂。后来王莽登基之后,还真就按照这个名单找人,找到了原是城门令史的王兴,以及原本卖饼的王盛,直接从平民启用,担任将军.. 😓😓😓
王政君
汉元帝时期的皇后一直活到现在,超长待机.. 到哀帝时已经是太皇太后了。在哀帝去世后她收起了皇帝玉玺,决定重新召用王莽为大司马,之前哀帝的时候王氏外戚已经被基本赶光了。哀帝即位靠的是他的祖母傅太后,骄纵的傅太后和赵飞燕是一拨,王氏外戚是另外一拨。这位太皇太后王政君真的是没有能力,谁都怼不过,绝招就是忍,靠着比别人活得久取得最终胜利..
王莽登基之后向太皇太后索要皇帝玉玺,王政君不肯给,怒骂一通,但是最后还是给了.. 班彪评论说,要不是因为你,王氏外戚哪能权倾朝野最终篡汉国祚,最后纠结于一颗玉玺又有什么意义呢 ╮(╯_╰)╭
及王莽之兴,由孝元后历汉四世为天下母,飨国六十余载,群小世权,更持国柄;五将、十侯,卒成新都。位号已移于天下,而元后卷卷犹握一玺,不欲以授莽,妇人之仁,悲夫!
历史确实总是在不断重复,无数强权瞬间倾覆都是内部自己作死。还来不及缅怀五贤帝的大汉荣耀,西汉就这么亡了。不过我已经迫不及待看到位面之子刘秀登场了!
]]>我所关注的历史人物/事件:
李斯
一直没有说到李斯。去年看了《流血的仕途:李斯与秦帝国》,以李斯的视角经历了他的一生,还算有一点点感情联结。在资治通鉴这里其实没怎么描述到李斯的内容,直到这一卷才着墨描写了他晚年在政治斗争中的接连败退。
为什么他不立扶苏愿立胡亥呢?有个说法是,扶苏及其背后的蒙氏兄弟所代表的军方与李斯是不同的政治势力,当时赵高几乎没有政坛势力,军方实力下降就意味着李斯独揽大权。但是没想到后来赵高这么不要脸,也没想到胡亥这么傻。
秦国的灭亡
张耳、陈馀
两位好基友素有贤名,一起来到陈胜帐下。
他们一起和陈胜派出的将领武臣攻打赵国旧地,在新任赵王武臣手下做事。
李良叛乱,杀死了赵王武臣。张耳、陈馀逃出邯郸,收拢逃散的士卒,赶跑了李良,接着又找了个赵国王族后裔拥立为赵王。你看,妥妥的好基友吧。
秦军最后一个能打的章邯击杀项梁之后,北上攻赵,张耳和赵王去了巨鹿,而陈馀去了常山收容散兵,就此分开了。张耳几次派人叫陈馀前来营救,陈馀觉得自己打不过,就不来。张耳想要他俩一同赴死,陈馀觉得,要留有用之身为你们报仇….
这时项羽率领的楚军来救,这才有了破釜沉舟(公元前207年)的故事,大败秦军。各诸侯原本惧怕秦军不敢出征(所以有了成语作壁上观),旁观看见项羽军威,莫敢仰视,尊项羽为上将军。
张耳和陈馀再次相见的时候,张耳就责问他不来营救。陈馀也生气了:想不到你对我的怨念这么深!你以为我就舍不得放弃这将军的官印吗?!然后他就把官印绶带解开,推给张耳,张耳惊了,不敢接受。
不过陈馀出去上厕所的时候,客有说张耳曰:天与不取,反受其咎。陈将军给您的将印,你不收下的话违反天意,很不吉祥啊。于是张耳就佩戴上陈馀的官印,接收了他的军队。陈馀回来之后应该也惊了:卧槽,你 TM 不按套路出牌啊?!于是就不开心地快步离开了。
章邯退却之后和项羽军队对垒,几次后撤。胡亥派人责问章邯消极避战,章邯恐,派人回朝解释但是赵高不接见。然后陈馀就写信把章邯给成功劝降了。
但是项羽不放心投降的秦军,觉得其心不服,坑杀了秦军二十余万人….
后来灭秦之后分封诸王,张耳被封为常山王,封在了赵国旧地。而陈馀因为抛弃将印而去,并没有跟着一起入关,所以没有封,最后就封了南皮边上的三个县给陈馀,封侯。这陈馀就不开心了,俩好基友基本是同样的功劳,为啥他是王我只是候,不公平啊!于是就游说新任齐王资助他一些兵力,他要去攻打常山(名义上是恢复赵王王位)。张耳兵败之后就投奔了刘邦。
下边这几卷在时间维度上非常接近,都不好分P, 只能连在一起了。
先入定关中者王之
当项羽北进解巨鹿之围的时候,刘邦正在奉命西进。
最初,项梁拥立曾经的楚怀王的孙子,立为楚怀王 (variable shadowing😳..)。楚怀王与各路将领约定「先入定关中者王之」。注意这里说的是「王之」,不是当皇帝。大家都觉得皇帝这个东西是一时脱轨,快回到分封诸侯的道路上来才是正途,并且大家以为大家都是这么觉得的。这个知乎回答里就从这一点推导出「刘邦和项羽政治抱负不对等」这个很容易被后人忽略的胜负手。
但是当时章邯率领的秦军还很能打,大家都不想上前一步去打地狱难度的副本。只有刘邦,还有项羽(因为项梁身死之故)愿意西进。怀王众将领对项羽的观感是「悍猾贼,尝攻襄城,襄城无遗类,皆坑之;诸所过无不残灭」,于是就派「宽大长者」👀 刘邦向西攻略土地。
刘邦约法三章,于是关中百姓唯恐沛公不为秦王。毕竟在秦国覆灭之后,关中百姓也需要投靠一个新的政治势力保护自身安危。
作为对比,后来项羽来了之后,杀了已经投降的秦王子婴,洗劫咸阳,收其货宝、妇女而东,还说出了「富贵不归故乡,如衣锦夜行」的豪言壮语。
鸿门宴
话说项羽打赢了巨鹿之战,就想率领各路诸侯军进入关中,来到函谷关,听说刘邦已经平定了关中,但是函谷关大门紧闭,勃然大怒,攻取函谷关。
刘邦手下的曹无伤向项羽暗通款曲,说沛公欲王关中。项羽大怒,期旦日击沛公军。是我我也不服呀,如果秦军主力是我干掉的,凭啥你先到关中就你来称王。
项伯和张良关系好,就连夜来到刘邦军营会见张良和他说了这个事。张良就和刘邦汇报了全部经过。刘邦紧急召见项伯,对他说「我进入关中啥都不碰就是为了等待项羽将军的到来啊!我派将领把守函谷关是为了防备盗贼,哪里敢谋反呀。」这种话也就骗鬼吧.. 😶 第二天刘邦就带着随从来面见项羽,鸿门宴剧情触发!
项羽可真是个耿直のboy, 刘邦说「有小人之言,令将军与臣有隙」,项羽居然就直接说这是沛公左司马曹无伤散布的流言………. ??!曹无伤表示你 TM 怎么也不按套路出牌!! 刘邦从鸿门宴脱身回营之后,立诛曹无伤。
汉
汉指的是汉中吧。公元前206年初,刘邦被封到汉中+巴+蜀。关中分为三份,封给了3位秦国降将。这对于刘邦来说是 easy mode, 关中百姓在「投降致使项羽坑杀二十万秦军」的秦国降将和「唯恐不为秦王」的沛公的之间会选谁呢。
刘邦就国的时候,张良毕竟是旧韩国的子弟,所以离开刘邦去辅佐分封的韩王。走之前劝他把栈道烧了,既能守备也向项羽表达没有东进的意愿。
然后同年八月,刘邦就采用韩信的策略,明修栈道暗度陈仓,一举平定三秦。张良打了一波配合,寄信给项羽说刘邦只是为了得到他失去的承诺,如约即止,又祸水东引转嫁给齐国、梁国。项羽就信了..
后来项羽把韩王成杀了,于是张良就又回到了刘邦身边。神助攻啊!
楚汉相争
项羽杀了楚怀王(公元前206年)。在这之前他其实已经边说着「古之帝者,地方千里,必居上游」边把楚怀王给迁到长沙郡的郴(chēn)县去了。我原本对这个还没有概念,正好稚嫩的魔法师在他的视频里讲到了这个,那么这个郴县在哪儿呢,我截个图:
刘邦就号召天下诸侯共同讨伐项羽。陈馀也是一个诸侯,就对刘邦说,你杀了张耳(之前被陈馀击败的时候就已经投奔了刘邦了)我就帮你。刘邦就找了个长得像张耳的人杀了…… 😯
但是这时候项羽的楚军还很强大,大败汉军,或者说项羽统率能力一直是 max 的,超级能打。刘邦逃亡途中遇见长子长女,都把他们推下车去加速逃亡…. 被击溃的队伍回到荥阳,后方萧何征发的替补兵卒也已经来了,汉军这才重新士气大振。
这么一败,号召起来的诸侯王又都依附了项羽。汉王自己打不过呀,张良就建议封英布、彭越、和韩信为王,把关东的土地赏给他们让他们更有动力。所以韩信才带兵去打的赵国/陈馀。
所以现在是刘邦、韩信、英布、彭越几个诸侯王共击西楚霸王项羽。项羽在西边和刘邦相持,彭越就在项羽后方当游击队。当项羽转头去攻打彭越的时候,刘邦就趁机进军。
但是项羽把彭越打跑之后,回头攻击刘邦,打下了荥阳。刘邦(又一次)被击溃,只身和夏侯婴逃走。他直接来到韩信、张耳的营地,在他们还在睡觉的时候直接「夺其印符以麾召诸将」,就这么得到了韩信的军队,NB 啊!!再一次士气大振。
陈平和当年李斯一样,献策贿赂离间计。结果范增就被项羽的不信任给气走了,很快也病逝了..
在楚汉相持的时候,韩信打下了齐国,给刘邦上书,请求封我为代理齐王镇抚齐国。刘邦生气了,但是出于大计考虑,直接正式封为齐王。
双方打了这么久,楚军快没有粮食了。刘邦这时候正好派人来请求接被项羽俘虏的父亲回去。鸿沟议和,两人约定了“楚河汉界”休战。但是张良、陈平劝刘邦不要放虎归山,于是就反戈一击!
刘邦追击项羽,与韩信、彭越约好了一起来打的。他俩没来,为了让他们来,就又多封了点土地给他们。
这才触发了垓下之战(公元前202年)、四面楚歌的剧情。
垓下之战后,刘邦回军,奔入齐王韩信的营垒,直接接管了他的军队…. NB 啊!!韩信被改封为楚王。
异姓王
以前没有概念,现在能够清楚看出在刘邦定鼎天下的时候,其实还只是一个诸侯王的盟主。要不是韩信、彭越、英布的军队,刘邦肯定打不过项羽,都被击溃多少次了。但是刘邦是想当皇帝的人(大丈夫当如是),于是开始一个个翦除当初分封出去的异姓王。
韩信是楚王。有人告发韩信谋反。刘邦假装巡游云梦泽,诓韩信前来,给直接抓到洛阳去了,改封为淮阴侯。从当年韩信自封齐王的那一天起,刘邦就不可能容得下他了呀。
后来在征讨英布班师回朝途中,刘邦经过沛县,老泪盈眶。一首大风歌送给大家
冒顿单于
我突然意识到,冒顿单于向爱马爱妃射箭的故事是纯正的「打哪指哪」😂
韩王信投降了匈奴。刘邦亲率大军评判。被四十万匈奴军队围困在了白登山。所谓白登之围(公元前200年)。幸好陈平献奇计,向冒顿单于的妻子行贿。
刘邦
公元前195年,高祖驾崩。从前,在我的印象中,刘邦就是个小流氓的形象,但是现在感觉完全不一样了。他的领导魅力实在是太强了!!欣赏的人就直接重用,别人劝谏有道理的他直接就听、就改,毫不犹豫:
识人之明就更不用说了。交代后事的时候说周勃为人厚道但是不善言辞,但将来安定刘氏的人一定是他。后来果然就是周勃平定了吕后外戚的诸吕之乱。我突然想到了同样看人很准的凯撒。
刘邦的统帅能力其实也不容小觑,虽然前期被项羽打得那么惨。但是后来的诸侯王叛乱都是他去平定的,应该只是项羽太厉害了吧。
至于“流氓”印象还是应该要归结于时代,毕竟他只比秦始皇小三岁。这个问答里描述了跨越两个时代的刘邦。
刘邦仅仅花了7年时间,白手起家从一个亭长当上皇帝!这是什么概念?!现在可能没有那么强的震撼了,毕竟陈胜吴广在公元前209年喊出「王侯将相宁有种乎」至今已经过去了两千多年。但是当时刘邦可是这句话的第一个实践者,在这之前茫茫多年间王侯贵胄都是出于血统。一个小亭长仅仅7年就成为皇帝,在当时的人看来能不是天命所归么。
刘邦死后,秦末汉初的历史在我这里也画上句号了。卷13·汉纪五是吕后以及汉文帝的篇章了,文景之治要开始了。
之后应该会渐渐有很多可以跳过的内容了吧..
]]>因为热情基本都投射到这个章节相关的部分上了,就把它放在开头吧。
由于现代社会生活领域的区分,自由和平等方能在每个领域中同步发展。因此,沃尔泽强调:“事实上,自由和平等是一个意思,我们可以说,(经过区分的)现代社会既享有自由也享有平等,但条件必须是任何领域中的优势不能转化为另一个领域中的优势。”也就是说,“要讲区分就得坚守区分,政治权力不得左右教会,宗教不能牵制国家,以此类推”。
我一直赞同政教分离,但是都是出于结果论的因素——历史上这么做的国家发展得更好。但是上述的这个观点确实点醒了我,原来还可以这么去理解!😯
每个社会本身的发展历史和传统也会形成具有特点的领域区分和领域间影响或跨越。但这不应当影响坚守领域区分,坚持领域独立的基本原则。否则,当一些人在一个领域中的优势能够顺利转移成为另一个领域中的优势时,就必然会形成沃尔泽所说的“宰制”(domination),宰制必然使得原本应当独立的领域正义遭到破坏。
从群体价值观,而非抽象正义原则来看,社会中并不存在某种统一的、行诸任何领域都有效的正义原则。每个具体的领域都有它自己约定俗成的正义,这就是沃尔泽所说的“多元正义”。
所以在沃尔泽 (Michael Walzer) 看来,首先金钱和医疗应该属于不同的领域,那么如果在医疗领域的分配正义是按需,那么有钱人得到更好的医疗保健优势,就属于一个领域对另一个领域的宰制。🤔
提出多元正义观,沃尔泽采用的是一种很现实的正义观。他看到现有社会中,各领域中都存在着许多实际的不平等。他认为,如果各领域能保持独立,不受其他领域的宰制,那么这些实际的不平等就至少不会加剧。而且,由于每个人都同时生活在不同领域之中,他在一些领域中的劣势至少可能由他在另一些领域中的优势所抵消,最后形成一种“不平等的平等”局面。沃尔泽称之为“复合平等”。
整理到这里我突然想到,这个复合平等 (complex equality) 的概念和 ensemble methods 里的 bagging 很像呀😂!多个不同 distribution 的 replica 所得到的 weak classifiers 共同做出的预测,能够显著降低 variance. 所谓的 variance 不就是不平等么!
我突然觉得,这个多元正义和复合平等的概念很有说服力呀!!整理笔记到这里,我就决定要放在博客上来了。😂
书中继续讨论,
复合平等观认为,“平等”不是一种可以预先设立的总体理想。平等只能是一种“不平等的平等”,即许多领域中实际存在的不平等相互抵消、平衡后达到的“复合平等”。
自由主义者习惯于把自由市场当作对抗政治专制、自动形成民主社会的力量。沃尔泽对此告诫道:“政治专制被废除以后,财富本身便会成为专制的形式,对此我们必须看清楚才行。”沃尔泽指出,限制政府权力是领域区分的伟大成就,但是,正是这一成就却可能为金钱统治打开大门。金钱可以影响和控制政府官员、操纵各级政策和决策,让有钱人肆意剥削、压迫和凌辱无力保护自己的弱势阶层。沃尔泽称此为金钱财富的“三重高压统治”。沃尔泽强调,只要存在这三重统治,就不可能存在有效的自由市场。
惊了!!感觉说到心坎上了呀!
徐贲老师表示,沃尔泽的多元正义观对讨论中国社会正义是很有意义的。因为首先分出不同领域,
这样讨论分配正义,可利于直接切入具体的中国社会问题,因为中国的许多社会问题其实都首先是在某些特定领域中的问题,确定问题所在的领域往往也就是研究问题的性质。
「多元正义」的另一个让我觉得特别熟悉的原因,就是它主动细分到不同领域这个行为吧。分治 (divide & conquer) 的算法思路跃然纸上!
这一分析方式的关键就是坚持现代社会领域的区分,反对强势领域(权力和金钱)对其他领域的宰制。在当今中国社会中,一些具体的社会问题,如学校的学店化、医疗服务的商品化、公职权力的腐败、商界的金权勾结、社会等级的官本位制、权贵势力干扰司法和欺压平民等,都是一些领域宰制另一些领域的结果。
但是,要阻挡不同领域之间的「宰制」好难的吧?这个理论在我看来好美好美!但是实际可行性有多大呢?我想去看沃尔泽的原书《正义诸领域》,但是发现 kindle 搜都搜不到 = =
另外我也搜了下对多元正义、复合平等的批判,想看看有没有反面的声音,但是居然没搜到几个,所以这个很小众吗??我就只好到 amazon 和 goodreads 上看外国朋友们怎么不给好评的:
我对那些并不了解,但是既然有了一个映射到 CS 上的概念那就可以随手类比想一想,比如,会不会有无限细分的困境呢??另外,不同的人对于不同的领域分类会不会有区别呢?又是一个要将主观标准客观化的死路吗?🤔 还是希望有机会能找出书来看一看呀。
对全书剩下的部分就没有那么大的热情了。这本书的线索是这样的:
一个好的社会应该是什么样的——应该要有社会正义、要有人的尊严。所以要谈通往尊严的公共生活,讨论的是各种关于社会正义的问题。
那么社会正义 (justice) 是什么,其与公正 (fair)、公义 (righteous) 又有什么区别?
社会正义作为政治问题包括两个基本原则:
而正义包含三个基本部分:
在书的前几章会依次说到。关于惩罚正义:
对于法律惩罚的目的有三种不同的说法。第一是“付出代价”,第二是“吓阻(其他人)犯罪”,第三是“改造(罪犯)”。
对呀,是这个理,我觉得三个都有道理呀。于是书中在第七章中就接着讨论惩罚正义对应的应该是哪一种。那么是哪一种呢?我就懒得写了,感觉我的热情全部投入到刚才的多元正义、复合平等里去了..
另外,书中讨论的一个大背景是全球化。在全球化中的群体认同和公共生活。
我们生活在一种文化中,时间长了,自然而然就觉得它是“我”的文化,因拥有它而认同它。但是,当这一文化被展现到世界观众的面前时,我开始用“见证人”而不是“拥有者”的眼光来看待它。我必须学会与我习以为常的群体保持距离,而用自由、独立个体的眼光来注视和判断我的群体存在及价值。当我用这种“见证人”眼光去仔细看我熟悉的生活世界时,我发现许多具有“国家特色”的东西原来不值得我认同。我开始明白,认同是值得认同,不是不得不认同。我于是有了积极参与营造新认同的意愿。因此,全球化看上去是破坏了我的认同,其实它是在帮助我实现另一种不同的认同。
🤔 话说我从来就不觉得传统文化是该全盘接受的呀,其中那些美丽的东西我一直很喜欢,那些糟粕的东西我也一直就很厌恶。对我来说,类似普世主义和全球正义这样的观点并没有吸引力。对于亲族、同胞我在 scoring function 中确实会给更高的初始点数,但是也仅仅是一小部分,个人的魅力、道德修养等等是更加重要的权重,可比血缘关系重要的多呀。
关于为什么讨论到全球化,首先,这个是大背景吧,其次,
对于国际关系,我目前赞同的是罗尔斯的观点:
在罗尔斯的《万民法》中不是完全没有对世界范围内的个人公民的考虑,但一国公民个人不可能对等地与其他国家公民进行直接的政治交往。每个公民对国际事务的影响只能由他在本国内的政治参与间接发生。
另外,徐贲老师在某一章的开头引用了下边这个观点,我觉得应该也是隐隐赞同的吧:
蔡美儿认为,全球化匆匆将自由市场制度引入一些发展中国家,迅速扩大了原有的贫富悬殊,埋下了社会动乱的火药,而缺乏宪政法制和公民政治文化基础的民粹式民主则随时都可能将之引爆。
正义社会毕竟是个很难达到的目标,于是引出了「正派社会」:
对我来说,正义社会要求个人主动参与的部分太多了,我就想静静地宅呀。能做到正派社会就已经很棒了!之前的两次连累老虎的动物园事件中都涌现出了不少蕴含解气意味的评论,不就是因为受这种破坏规则的人的气已经太久了吗,为什么总会是守规则的人受伤害呢。
维系正派社会和帮助人们认同正派社会的,是那些人们普遍觉得有价值、有意义、值得他们自觉自愿去做的事情。这种认同除了对现有社会秩序和政治权威合法性的确认之外,还涉及一般意义上的群体道德风气、人际关系、文化倾向、时尚流行等。个体成员对群体的接受和参与程度往往受到这些因素的制约。这些因素同样以其价值取向发挥着公共生活的纽带作用,对认同意愿有相当大的影响。它们包括:
- 群体的记忆(尤其是什么是值得保存的往事记录)
- 使用的物品(尤其是能体现我们自身价值的物品)
- 收藏的物件(不只是商品价值,而且是审美、感情、历史价值)
- 维持的传统和风俗(裹小脚、收童养媳不在此例)
- 对他人需要和利益的肯定、关系
- 人际间的承诺和信任,等等。
这些其实就是这本书中的后半部分讨论到的问题,新闻传媒、信任承诺、文革物品、博物馆等等概念都在讨论之列。
]]>除了积累上的不足,另一个深层原因是没有索引!!没有索引怎么做搜索?!因此,我决定开始慢慢翻一些古籍,看到喜欢的段落、篇章、情节就索引起来,将来等我的儿子/女儿需要取名字的时候就有准备了(不过首先,我得…..😳😳😳)。
于是,我找到了一个网站,开始看白话文版的《资治通鉴》,更准确的说是听一听。挑这个网站仅仅是因为它的网页能被 Pocket 识别处理,可以听,搜到的其它几个网站好像不行。
这两周的通勤途中就暂时告别了微信读书(还有2本的笔记还没有整理..),把「战国·秦」的几卷听完了。我更关注的是整个历史线索,不同的历史事件(好比长平之战前后)其实是串在一起的,但是从前我都是孤立地了解这些事件的,串起来、知道先后因果才有意思嘛!相比这些,文中所引述的各种诸子时评我倒是不一定赞同。
我关注的历史事件/人物:
突发奇想,孔子所追求的礼,虽然可能有繁文缛节的槽点,但是终极目标更像是今日的程序正义吧,礼只是实现途径。不过感觉程序正义应该⊆孔子的礼。一搜,果然有好多人这么理解过..
我关注的历史人物/事件:
我关注的历史人物/事件:
我关注的历史人物/事件:
我关注的历史人物/事件:
范睢
看战国时期的历史总觉得虎狼秦国怎么又欺负人了,但山东六国各种作死、各种昏庸、各种浪费人才,被错过甚至被欺辱的贤才们在秦国又都能发光发热,就对六国的境遇不仅不同情反而开心了。范睢就在魏国被猜疑、被羞辱。
在 有没有文明战胜野蛮的实例? 这个知乎问答中我曾经看到过这样一个回答:
秦国之所以能灭六国、定鼎中原,
是因为军功勋爵名田宅制度。
蒙古之所以能亡金平宋、饮马多瑙河,
是因为在铁木真治下,一名奴隶也能凭军功直升万夫长。
新中国之所以能在朝鲜对肛十七国联军,
说穿了还是因为tg给了所有生活在这片土地上的人过上新生活的希望。
文明是什么?把人当人看,才是真正的文明。
把愈多的人纳入统治阶层,才能够群策群力,
才能够进一步解放生产力,发展生产力,
才能够抡起拳头把别人打得满脸开花。
世世贵族,年年奴隶。
那所谓的“野蛮人”自然会让自诩“文明”的家伙们领教属于野蛮的骄傲。
我觉得至少在秦国的例子上,这段话说的是很有道理的。六国(可能楚国除外)总自居文化正统瞧不起秦国,但是组织能力的碾压会告诉他们谁才代表着前进方向。
范睢偷渡到秦国之后,献上远交近攻的战略构想。但是我并不觉得范睢属于最顶尖的那一批谋士,但是他能用阳谋、或者说是将私利与公利密切结合在一起(看到这里想到了有着同样特质的凯撒)。
秦国灭了周王室,于是变成秦纪了。
我关注的历史人物/事件:
荀子(公元前313年——公元前238年)
作之不止,乃成君子
孔斌评论鲁仲连的话语我很认同:
王曰:“鲁仲连强作之者,非体自然也。”子顺曰:“人皆作之。作之不止,乃成君子;作之不变,习与体成,则自然也。”
翻译:人都是要强求自己去做一些事情的。假如这样不停地做下去,便会成为君子;始终不变地这样做,习惯与本性渐渐相融合,也就成为自然的了。
郑国渠
廉颇老矣,尚能饭否
春申君
李牧
我所关注的历史人物/事件:
理论上说,在公元前209年结束、公元前208年开始之际,秦国还没有灭亡,之后还有「卷8 秦纪三」。但是在我心里,在始皇驾崩、陈胜起事的这个时间点,「战国+秦」的大篇章已经画上了句号了。
接下来,灯光师请把光往项王和沛公身上打一点,把舞台留给他们!(要是不提,谁会注意到刘邦只比嬴政小3岁呢╮(╯_╰)╭)
]]>Please do not hesitate to correct me if I am wrong anywhere. Thanks in advance. 🙂
BTW, I also found the slides from author. Check it out.
02/23/2017 Update: Great thanks to Prof. Naoki Kobayashi for generously sharing his thoughts and correcting some errors in this note!
This paper is picked while iterating the papers list in POPL’17.
First of all, I need to admit that I’ve not written programs in Go before. Actually I’d like to take this chance to know more about the concurrency model in Go language. One year ago I wrote about the shared memory part of Go. At that time I thought Go only has simple constructs in such concurrency consistency model, now I realize that I was seriously wrong, Go could be focusing more on the channel-based message-passing style concurrency.
Another minor reason for picking this paper is because of word “fencing”. It’s only after reading the full paper that I realized “fencing” is not talking about the “fences/barriers” I am more familiar with.. I’ve never used phrase “fence off” (把…用栅栏隔开) before.. 😓
According to the paper, for the channel-based message-passing style concurrency in Go language there is only runtime deadlock detector, but no compile time support on checking communication mismatch and partial deadlocks. The former is what they encode as “liveness” property, and the latter is their “channel safety” property.
Intuitively, the “communication mismatch” means every read/write must be “synchronized” with some other write/read, i.e., a WRITE should be read and a READ should reads from some WRITE.
The channel-safety property is simpler – channel is closed at most once, and closed channel cannot be used for output (writing to that channel), while input from closed is allowed, just returning default value.
This is to conform with semantics in Go. Originally, I was thinking they provide some verification framework for general liveness and safety predicates. That’s not the case in this paper. Actually, I am wondering how difficult it would be to extend to general predicates. 🤔
In this paper, they complement this compile time support. Essentially, a behavioral type sytem defined and extracted from source code such that if Safety (or Liveness) property holds in the behavioral type layer, Safety (or Liveness) property holds (may hold) in source code layer.
For channel-safety property, type level safety ⇒ source code level safety. While this may not necessarily hold for liveness property. We will see that later on.
They claim to support “dynamic channel creation”, “unbounded thread creation”. I suspect that “dynamic thread creation” is not supported at the moment, because I didn’t find corresponding semantics terms. But this may not be a big issue since analysis of Go source code could prepare this information beforehand.
Before delving into details, let’s look at the Prime Sieve algorithm as an example demonstrating the entire workflow.
There is a very good visualization for Prime sieve algorithm in wikipedia. Basically, every prime number removes all future numbers that divdes this prime number.
In Go, the concurrent channel-based version could be written as:
where
Generate()
will be a Go Routine that keeps generating new numbers.Filter()
will be a Go Routine transporting those numbers from input channel to output channel that is not dividable by a prime number.main()
will be iterating all prime numbers, and use the filtered channel as new input channel.To reason about liveness and channel-safety properties of this algorithm, this paper will
MiGo
, covering all channel-based concurrency usages.Regarding the prime sieve example, the extracted behavioral types would be:
where
t0
is the entry point of program.x
while $x$ means reading from channel x
.g(x)
is for generator function, which writes something to channel x
and recursively calls itself.f(x,y)
is for filtering function, which first reads from channel x
and then conditionally writes to channel y
before recursively calling itself.new b
means creating a new channel b
.|
is for parallel composition.For this example, it can be shown that all 4 types are fenced (we will explain shortly). And they can be shown to hold the liveness and safety properties by unfolding the behavioral type semantics.
Above is a quick view of extracted behavioral types. Frankly, I have not learned about this term before. According to survey Behavioral Types in Programming Languages:
A recent trend in current research is to use behavioral type theory as the basis for new foundations, programming languages, and software development methods for communication-intensive distributed systems.
Behavioral type theory encompasses concepts such as interfaces, communication protocols, contracts, and choreography.
Roughly speaking, a behavioral type describes a software entity, such as an object, a communication channel, or a Web Service, in terms of the sequences of operations that allow for a correct interaction among the involved entities.
And the authors seem to be experts in this area – they appear in the authors list of this survey and one tutorial cited in the paper. BTW, session types seem to be one kind of behavioral types.
As you can see, the defined behavioral type system is no longer simply carrying the type of payload data, it encodes certain behaviors in the type system. This makes it possible to define operational semantics on types.
Consequently, liveness / safety properties could be verified by the further defined operational semantics. In paper, this workflow is formulated as:
This 4 levels implication chain is my current comprehension of their entire approach workflow.
However, with the straightforwardly defined behavioral types, it may not be decidable (proved long long ago). Thus a subset of types needs to be identified which could make it decidable. That is their fenced types.
// 02/23/2017: Thanks Prof. Naoki for sharing his thoughts and correcting some errors here!
Below is my Revised Understanding:
The semantics of their Types is defined in Fig. 5 using “types as Calculus of Computing Systems (CCS) processes” interpretation. The resulting Labeled Transition System (LTS) provides a state space to explore, which is possibly infinite and thus undecidable.
To resolve this, they define in Fig. 7 a Symbolic Semantics for Types, which can explore only a finite subset of the possibly infinite state space which could therefore make it decidable. This finiteness guarantee is made possible by additional parameters k
and N
, where k
is the bound on steps (e.g. k-liveness / k-safety) and N
is the bound on used channel names.
Regarding k
: When k
is infinity, ∞-liveness/safety will again need to explore the possibly infinite state space. So ∞-liveness/safety is undecidable.
Regarding N
: This bound is ensured by “Fenced”. My current intuition about their “Fenced” definition is elaborated as below:
In semantics rules, they require in Def. 4.1 that:
types featuring parallel composition have a “finite memory” w.r.t. the names over which they can recurse.
For types without parallel composition, there is no restriction because this whole thing is regulating concurrent behaviors.
With parallel composition, they require channel names used in recursion to be “finitely many”, i.e., it’s fine to create new channels during recursion, as long as some same-amount old channel names are removed from scope and garbage collected. Therefore, the overall “spots” remains unchanged, and may “reduce to same state in LTS”. Through α-equivalence and structural congruence (see Proof for Lemma 4.1 in extended version paper), even if there are infinitely many channel names being created, they can reduce to finitely many states (with k
-bounded).
Let’s look in some visualized examples in addition to textual explainations. Intuitively, “having finite memory of channel names during recursion” implies no channel names should appear infinitely often. In other words, they appear in some fenced region. This is why they call it “fenced types”.
Below is one true fenced type diagram:
The blue region is where channel a
appears. The red region is where channel b1
appears. In the following wrong fenced type diagram:
channel a
appears infinitely often, it’s not fenced.
We mentioned earlier that channel-safety property can flow from behavioral type level to calculi level while this is not necessarily the case for liveness property.
This is because Type System is actually an approximation of code / calculi.
For the case of liveness, programs typically rely on data values to guide their control flow (e.g. in conditional branches) which are abstracted away at the type level.
For example, the liveness property may depend on exactly one branch in if
conditional statement. If the if
condition is always true or always false, the liveness property may not hold.
In the paper, they identify 3 special cases where liveness at the behavioral type level can extend to liveness at the calculi level:
I am not going into details of these here.
Apparently, the key step in this paper is to successfully apply behavioral types.
I don’t know much about those type systems, and may not be doing type-system related works in foreseeable future. But in my shallow understanding, the verification effort still exists there, but now transfers from source code level to behavioral type level.
Hence, my doubt is how much would it gain to do such symbolic execution analysis at the type level? Maybe it becomes more powerful with additional type information? The authors do mention doing model checking with the defined operational semantics. Why is it better to do such thing in type level remains to be my overall question.
If the type system continues to approximate more and more of code, could we eventually apply concurrency logics (e.g. Rely/Guarantee) in the very rich type system? I’d be very interested if that is possible.
Besides, as mentioned earlier in the note, I am also wondering how difficult it would be to extend the current livenss / channel-safety properties to general predicates?
🤔
]]>话说这个新功能我好喜欢!即刻这个 app 我一直就很喜欢,因为内容分类得精细,推送的基本都是我想要看的,👍。我一直很好奇他们到底是怎么抓取信息的?新版本里头列举的追踪机器人类别其实已经暗示了实现方式了:
我最关注的就是「RSS 订阅源更新」这个类别了(似乎是 02/13 才上线的😄)。几周前曾经因为没有第一时间看到推送而损失了一笔价值400刀+的潜在收益,还是很心痛的.. 于是第一时间就在即刻里加上了它!
另一个想到的是韩寒的「ONE·一个」app. 之前我会关注一个里的问题文章推送,在上学/班路上听一听。但是自从16年12月的某一天起,一个的 RSS feed 不能用了.. 我猜是官方停止支持了。我不想屈服于淫威、专门单独点开他们的 app, 就停止关注了很久。今天正好想起来,于是就打算自己制作一个问题专栏的 RSS.
首先,每一篇问题文章的 URL 都是 http://wufazhuce.com/question/1634 这样的格式,很好判断。于是我自然而然地想:RSS 能不能直接爬 “…/question/*” 这样的 URL 格式来爬文章。但是了解了一下,似乎 RSS 做不到这种。我或许可以自己写个爬虫周期地去爬最新的编号结尾的文章,不过好麻烦。RSS 的思路是从一个索引网页里去抽取信息,自动更新。正好,一个的首页上就有最新7个问题文章的索引!
反正我的初始目的是在即刻里建一个提醒,旧的那些历史就不要了,所以有这几个就足够了!
我在网上随手搜了下,http://feed43.com/ 能够快速制作 RSS Feed, 最终结果显示,确实可以,而且还挺容易!这里是官方的具体示例,具体步骤为:
标明索引信息网页的 URL, 对我来说就是 http://wufazhuce.com/ 了
定义 extraction rules.
这些 rules 的基本书写原则就两条:
{ % }
表示要 extract 的信息;{ * }
表示直接忽略的信息;要写的 rules 有两条:
global search pattern, 这个是用来定义在哪里抽取信息的。如果不填就是 global. 对我来说,我只关心「问题专栏」,「文章专栏」就可以直接忽略了。因此看看网页源码就知道,只需要在出现了 <h4> ONE 问题 </h4>
之后搜索就可以了。这里头出现在句首的 {*}
仅仅是因为不这么写的话,会 somehow 匹配失败.. 我猜测是不同的 whitespace characters 造成的吧。
1 | {*}<h4>{*} |
item (repeatable) search pattern, 这个是 用来具体抽取信息的。索引列表里提供的仅仅只有标题+链接,我其实也只需要这俩就足够了。所以可以把 pattern 写成下边这样子。如果只看最新的那个的话,还可以根据其 CSS class name 来判断,会有一个 one-articulo-titulo
的 class. 不过反正多抽取几个也无所谓,RSS 工具应该会自动排序的(吧?)。
1 | {*}<a href="{%}">{%}</a>{*} |
这样就可以得到 这样的结果了。不同的 { % }
都已经编号好了,直接按自己的需求设置 RSS item 的 title / link 就可以了!
就这样了,生成一个第三方网站的 RSS 源是不是很简单!
对了,生成的 feed 在这里:「ONE · 一个」问题专栏最新更新。先看看实际运行效果怎么样吧。
另外,在看一个的网页源码格式的时候我发现,不知道为啥,他们的 CSS class name 用了西班牙语:
😂😂😂
]]>所以先来换换心情。《中国历代行政区划的变迁》这本小册子其实一两周前就看完了,但是里头有些笔记一直没有时间整理,拖到了今天。
长者的智慧告诉我们:人的命运,当然要靠自我奋斗,但是也要考虑到历史的进程。坐拥上千年的历史,当我回望历史进程时,总会不由自主地注重几十年几百年之间的变迁大势,而往往忽略了每一次转变的曲折与摩擦。毕竟,通识教育的历史课本上写不下每一次变革所遭受的阻力,那些在几年、几十年间或许十分巨大的「反动势力」在千年的维度上只不过是朵小浪花。
但是这些小浪花在我眼里非常迷人。改革没有对错,只有得失的取舍权衡。那些现在看起来非常自然的措施、概念,在它们刚被提出的那个时间点,几乎总是会收到既得利益阶层的阻挠,不可避免。弹簧压久了总要反弹,那么这些既得利益者反对派们是怎么应对的呢,他们又是怎么最终「螳臂当车」而非「拨乱反正」的呢?在这些方面的启发式叙述总能戳中我的爽点!好像更加了解了历史的真实面目一样。
因此我想推荐一篇很喜欢的文章:“秦灭六国”这样重要的事,要做三遍,之前应该也推荐过吧。文章里便揭开了秦汉之间的分封制到郡县制的转变——一个我不知怎么从没考虑过的盲点。
上边絮絮叨叨的东西和今天的这本《中国历代行政区划的变迁》也有关系,因为行政区划的讨论其实是在郡县制之后才有意义呀。
在这本小册子里也有提到分封制相关的内容,比文章里说的更远了一些。书里表示,曹魏的皇帝吸取汉初封建的内乱教训,不分权给诸王。但是曹魏国祚太短,西晋矫枉过正,觉得是不是因为宗室失位、藩王无权导致的曹魏代汉以及司马代魏。于是西晋又分封了很多王国,结果来了个八王之乱.. 书中总结:
汉初和晋初的封建可以看成是封建制的两度回光返照,经过这两次貌似起死回生的波折之后,封建制是彻底地退出历史舞台了,只有名义上分封皇子为王的制度一直继续到中国历史上最后一个王朝——清代。
所以需要确认的共识是:我们古时候的大部分时间其实都不是封建社会,西欧古代那种「我的附庸的附庸不是我的附庸」才是封建社会,我们基本都是中央集权大一统的社会。除了:
为了统治广阔的被征服地区,周初所实行的政治制度是封建制,封建就是封邦建国,其实质是周天子将王畿以外的天下土地分给诸侯建国,诸侯再把国都以外的地域分封给卿大夫,卿大夫还可以进一步往下分封自己的子弟和家臣。
《左传》称这种制度是“天子建国,诸侯立家”。于是在西周的版图之中就形成天下——国——家三个基本的地域层次,这就是《大学》里“齐家治国平天下”的地理背景。
书中明确说到:
行政区划的实质就是分民而不分土。
所以「普天之下,莫非王土」这样的理念描述的其实已经不是春秋的东西了。
从「郡县制」的名称就可以看出,最初只有「郡」和「县」两种行政级别。后来还多了州、省这样的成为三级制。从秦到民国初年,政区一直在两级制与三级制之间周期性变化。
背后的原因也很简单,行政级别越繁复,从中央到地方的政令就越不容易贯彻,真实的民情也更不容易上报。其实都是中央集权与地方分权之间的博弈。
据书中所言,政区变化大约可以分为3个阶段:
在最开始,只有郡县制的两级的时候,中央政府要直接管理大约百来个郡,于是汉武帝设立郡之上的监察区,设立州刺史。这时候的州仅仅是监察作用,直到东汉末年黄巾起义,单独的郡抵挡不了黄巾,中央只好设置州牧统领兵权、财权、政权。政区就这么变成了三级制。
显然,在那个时候实行三级制,并且最高级的州幅员巨大,很容易就导致分裂割据了。职务设置了就不好去除,两晋南北朝期间州郡越分越多。
在取代西魏的北周统一北方之后的大象二年(580),就共领有属州211个、郡508个、县1124个。此时不但州数已接近30多年前南北朝双方州数的总和,而且三级政区数目之比已降至1∶2∶6的最低水平。换句话说,平均每州只辖两个郡,每郡只辖三个县。
😓 相比之下西汉末年一共有103个郡,每个郡统辖15个县左右。县的数目倒是没有特别剧烈的变化,一直在一千多个的级别。毕竟天下再怎么纷争,总还是需要百姓供养的呀,县级不能瞎搞。
书里有说到,设置县级行政区的一个重要参考因素就是辖区内人民能够在一天内徒步往返。除了这些方位距离之外,它显然还要和所辖人口有关嘛,太多了也忙不过来的。所以人口稠密的地方政区就划小一点,人口稀疏的地方政区就划大一点。
于是隋文帝忍不了了,必须改革!必须减少政区层次加强中央集权避免地方割据!中间的郡级政区因而被撤销。隋炀帝时期继续大举并州县,又改州为郡,再仿汉制设立类似监察的区域。结果隋朝一不小心二代而亡,唐初又把郡改回了州,加上各路投诚的义军都被分为刺史这样级别的官位,于是
到贞观十三年(639)依然还有358个州,县则有1551个。
显然,这么300多个州查不过来的.. 于是又慢慢地有了设置监察区的趋势。唐代的监察官员分区是按照交通路线划分的,所以全国依据「山川形便」分为十「道」。
监察区只要一固定,变成行政区简直就是时间问题。安史之乱一来,设立节度使、藩镇割据就不可避免了。唐末就此成了「道(藩镇)– 州 – 县」的三级制。
宋代怎么可能不注意到藩镇割据的问题所在呢,于是从开国伊始就杯酒释兵权,收归节度使统领的诸州回归中央,又要从州县二级制开始循环了。不过二级制长久不了的,因为咱幅员辽阔,二级之上没有监察区是管不过来的,而有了监察区慢慢就会变成行政区。宋代在州之上有了「路」,是从唐代转运使的临时差事来的,以之经度和转输地方财赋。不过或许是藩镇的阴影太强,州之上不再有单一的行政区划了,其行政权力被分到不同的机构——监司,而且不同监司分管的路不尽相同(复式)。
宋代由于采用路制,中央集权高度强化,而地方处于极度分权以至无权状态,这就使对外的边防和对内的治安能力大大减弱。西北虽设有众多安抚司路,但只管兵而不管民,只理军政而不理财政,抗御外侮能力极差,对内镇压农民起义的能力也受影响。所以有宋一代,内忧外患不止。
一饮一啄,未亡于藩镇,却最终亡于外敌入侵。
元代以游牧民族入主中原,一些战争中的临时措施慢慢固化成了永久性的制度。所以元代政区的层级多,而且分布不均、层级之间也不一定是单一层级,总之就是没有经过优雅的设计。不过反正元代的行政单位更像“军区”,关注的是镇抚而非安民。
不过也正是因为异族统治,元代放弃了「山川形便」的原则,而改用极端的「犬牙相入」的策略。不让任何一个省有完整的适合割据的地域。这样的设计一出,后头都会沿用的。╮(╯_╰)╭
明朝兴起之后,自然要改革元代混乱的政区,分了15个省,也仿宋制设立分权的第一级别的布政使司、按察使司、都指挥使司等等。到了清代,这15省被重新分成18个省(这其实就是「本部十八省」的概念来源了),再加上各个边疆少数民族区域的特殊编制,组成了多民族大清帝国。
到了民国初年,在省和县之间裁撤其它,只留下「道」,后来更是把道也给去了,恢复到省县二级制,显然是要加强中央集权避免地方割据嘛。只不过后来又为了「剿共」设置分区行政督察专员.. 算是半个三级制了。后来新中国其实大致继承了这样的区划,
后来又改专区为地区,但这种分区始终不作为一级正式政区。
「犬牙相入」和「山川形便」这两条原则基本是一直存在的,只不过越后来前者越占上风,体现中央集权越来越重。
咱的主要山川都呈东西走向,唐代的「道」主要是按照山川形便来划分的,因此更多的是横长竖短。元代是极端的犬牙相入,因此大多是纵向的。
书里写到:
犬牙相入极端化的做法虽然发生在元代,但其思想在南宋已经萌发。民族英雄文天祥就已提出:“今宜分天下为四镇,建都统御于其中,以广西益湖南而建阃(kǔn)于长沙;以广东益江西而建阃于隆兴(今南昌);以福建益江东而建阃于番阳(今波阳);以淮西益淮东而建阃于扬州。责长沙取鄂,隆兴取蕲黄,番阳取江东,扬州取两淮,使其地大力众,足以抗敌。”(《宋史·文天祥传》)
文天祥的建议几乎与元代南方几省的区划完全一致,这正是从政治、军事观点出发而得出的共同结论。文天祥为了北向抗敌,认为必须多头出击,又为了使“地大力众”,必须合两路为一路,所以就主张合湖南、广西为一,合江西与广东为一,合江东与福建为一,产生纵向的合并。如果横向合并,例如合江西、湖南为一,合广东、广西为一,那么虽地大力众,但却只有一个出击方向,在军事方面自然不利。
如果我哪天写本穿越小说的话,我就用这个改革套路!
书里还继续说了同级别政区之间的等第之分,这个其实我就不太关注了。还有军管类型的特殊政区,像是「安西都护府」这样的,就不写啦。
]]>
今天是大年三十,猴赛雷终于要下班了,当初那些号称「这梗我能玩一年」的人们还记得他吗。😄
今天是大年三十,我会和爸妈一起回雁石,和爷爷奶奶一起过年。在五年级转到市里念书之前,我们和爷爷奶奶一起住在老家,年年都一起过年,已然成了习惯。小时候大约农历廿七廿八就回去,后来大了些,爸妈也忙,渐渐地到廿九或者三十才回去了,但总归是要回去的。
今天,妈妈会帮着奶奶做最后一点打扫,帮着准备年夜饭。而我的任务,将是帮爷爷贴春联。在我还很小只的时候,我扶着长凳、爷爷站在凳子上贴。后来我够高了,就轮到我站在凳子上了。
林氏祠堂就在老家的隔壁,祠堂大门的春联也是爷爷负责。猪圈的门口也要贴一副小春联,猪圈这里爷爷总会自己去,或许是怕我嫌脏。妈妈教书的学校每年都会有懂书法的老教师为大伙写春联,妈妈会挑几幅回来。老家的大门口要贴七个字的,厅堂上贴副五个字的。当日期以农历计数的时候,我都会自动进入对联校验模式,看到一副念一次,像念两句诗,其实主要目的是看看上下联有没有贴反😂。
除了春联,我还得贴红纸,是那种简单的长条形纸片,用浆糊粘着,大门贴5条,房门贴3条,窗户贴1条。这些数目也不是定死的,有时候红纸用完了,没住人的几个房间也可以妥协,就贴个1条。
等这些做完、卫生打扫完,应该就到了傍晚时分。天还没黑,远处就会有间歇的鞭炮声传来,奶奶就会开始催「该吃饭啦,别人家都吃完放鞭炮啦!」😄
年夜饭永远是奶奶主厨。奶奶据说曾在街边开过餐馆,那是很久很久以前的事情了,或许我还没有出生。年夜饭里一定会有鱼,也一定会有切成四瓣的牛肉丸。奶奶虽然催得急,但等我们都上桌了她也总还有最后的几道菜要继续精益求精,这时就轮到我们催奶奶了「别管那几个菜啦,快过来一起先吃吧!」😂
年夜饭吃完,天已经黑了。爷爷在大门口点了一大盘鞭炮,噼里啪啦响个不停。爸爸会招呼我出去走两圈、散散步,我可能会跟着去,也可能不想去——光顾着玩手机了。妈妈会叮嘱我们别太晚回来,奶奶也会吩咐也正要出去溜两圈的爷爷别太晚回来。我们不会走太远,8点前准能回来,还要看春晚呢。
小时候的春晚并不总是像现在这样没有意思,本山大叔还上节目的那几年,小品里的新梗总会在之后几天的亲戚聚会中高频出现。爸爸会在看春晚的时候同时开着小取暖器,冬天的小龙岩挺清冷的,但永远不下雪。看春晚的时候爷爷也一定已经回来了,这时候我就负责把爸妈给爷爷奶奶的红包送过去,我也可以趁机拿上爷爷奶奶给我的红包☺️。
今天的晚上,所有房间都将彻夜通明。「别关灯」,奶奶或许会专门嘱咐这一点。但妈妈肯定会说「没事儿,关了灯好睡,早点睡吧」。老家没有过 wifi, 所以我确实不会太晚睡.. 但无论怎么样爷爷奶奶明天总会起得比我早!到8点多的时候可能已经来了好几拨拜年的街坊邻居了,而我还赖床不起来,奶奶就会大声喊我「快起来吧,别人都来拜年啦!」。好不容易离开温暖的被窝,穿上新衣服新鞋子,刚走到楼梯口我就想用方言大声喊「爷爷奶奶新年好」,奶奶笑笑,「新年好新年好」。
新年的第一餐早饭我们会吃白稀饭,就配一点糖,可能还会有蛋,但以前我总是不爱吃蛋。吃早饭的时候应该也会一直有一拨一拨的人来拜年,大家说几句吉祥话、吃上几粒年货、再喝杯茶寒暄寒暄,就用方言说着「谢茶谢茶」离开去下一家了。
来的会有爷爷奶奶认识的朋友,那我去打个招呼就能继续吃了。也可能会有我小时候的同学,那就挺尴尬了,因为四年级前的记忆其实已经很模糊了,我都不知道聊啥,有时候甚至叫不出名字…. 还可能会有一个嗓门洪亮的老阿婆从西边一路拜年过来,她肯定会大声地寒暄「刚刚回来过年了呀!」😓 是的,她从没念对过我的名字…. 我也一直不知道怎么称呼她…. 她们许多人在我很小的时候就从四川某个地方过来打工,然后就渐渐安顿下来了。他们看着我长大,我也看着他们的孩子长大。
等大家都吃完了就得差不多9点了,爸妈会带上我,开始挨家挨户得串门拜年。还有一些已经搬到街上镇上的老街坊邻居家那也都是一定要去的。今年或许去不了大舅舅家了,以前阿宝哥哥和阿梅姐姐都还没成家的时候,我都会去找他们玩。不过今年阿梅姐姐马上就又要生宝宝了,大舅舅大舅妈已经去了南京照顾她🙏。
明天的下午,或者晚上,我们一定会去爸妈都曾经教书过的那个中学,他们就是在那里认识的。那里有他们的同事,也有我小时候的玩伴,我们会一起去幼儿园老师家里拜年。老师就住在幼儿园里头,小时候上学要走好远好远的路,现在不到 10min 就走到了。每次回到那个小幼儿园我都会试着回忆,但是只能想起一个中班时期的画面,幸好还有张老照片!照片里大家一起去春游,小小的我和老师的女儿手牵着手留下了一张合影 😂😂😂
后天是正月初二,爸爸这头的亲戚都将回到老家团聚。大后天正月初三则是去妈妈娘家向妈妈这边的亲戚们拜年。印象里亲戚长辈们一直都很疼我,所以这两天是收红包的日子😄。
然后我将会在老家一直住到初六或者初七,爸妈希望我多陪爷爷奶奶一会儿,而他们白天会回市里拜年,然后就把我留在家里…. 后来上大学了,不同时期的同学们都会聚一聚,我就能以参加聚会的理由提早回市里了。元宵节如果还没去学校的话,我们会回爷爷奶奶家再吃顿晚饭。回到市里之后我也没法天天玩,得和妈妈去各个亲戚家都走一圈,拜个年问问好。
再然后,寒假就结束了,该去学校了。😔
我想得很美。
但是在村里的我已经三年春节都不是这么过的了。每次都是在春季学期进行之中,总会有这样那样的课业要求,所以每次春节都是特别平静地就过去了。
以其境过清,不可久居,乃记之而去。
村里倒也不是没有活动,只是性格所限,我不太习惯 reach out, 所以岁月静好,倒也无所谓。只是今晚想起在家里过年的一点点细节😭,岁月果然有着不动声色的力量!
这一个月来基本都在赶一个 deadline, 原本是这周二 due, 但是直到周二那天才搞定一个关键实现,所以 deadline 被迫变成了下周五 ╮(╯_╰)╭,希望不要再变了..
因此的确到今天傍晚才恍然「诶,明天就过年了呀」,并没有夸张,因为我对春节完全没有期待.. 客观条件所限,又是一年没法回家和老爸老妈一起过年。以前每年都得回老家过年还颇有微词,觉得又没法去找小伙伴们一起玩了。现在想起来却是很怀念,想和爷爷奶奶一起过年都难了呀。
本命年还有几个小时就结束了,理论上说也马上就算是奔三的年纪了😱。这个词对我来说真的太遥远了,我完全没有心理准备.. 是有一点点恍如隔世的错觉,现在想起初中高中、想起高考、想起大学甚至申请前的那段时光,都仿佛是非常遥远的往昔,我好像一头扎进了一个深不见底的梦里。反正,青春已经过去了。
就让我再感怀这么一小会儿,然后就继续去赶 deadline 了!
上一次非常认真地发贺年短信是在12年的春节,当时每条短信都是针对对方定制的,所以回复率超高。后来就渐渐没有这样的热情了.. 再后来大家变成微信贺年之后,甚至有些没有加上微信的小伙伴就失联了.. 慢慢地也懒得发贺年了.. 反正需要的时候我一直都在嘛!😄
就祝大家鸡年大吉吧!🙏
// image faked, from source
今年的 BGM 就挑 JJ 的《不为谁而做的歌》吧,不为谁而活的 2016。
我还是写这个的时候才知道原来 HTML5 中的 audio 音量只能在 JS 里设置 😓
现在回望 2016,有很大一部分时间其实是处于非常迷茫的学术状态的,虽然现在相比于 2015 年年末有了很大进展,但依旧没有显现出一条特别清晰的路,😔,只能明年继续 🙏 吧!16年里给很多东西画上了句号,也开启了好些个新篇章。但这些好像都不太习惯和爸妈说,连带着和父母联系的频率也降低了..;也不咋合适发朋友圈,于是 SNS 渐渐地也发的少了很多。是不是不由自主地显得更加「遗世独立」了呢..
上一周我出去旅游了一圈。平安夜,从 Key West 回程的路上,我们开下高速,停靠在 state park 门口,关掉车灯,看漫天星河!!上一次看到这么多星星的时候我还在上小学,那天妈妈带着我一起回外婆家,我玩累了睡着了,直到夜里在三舅舅背我回家的路上醒来,抬起头看见了苏邦村的夜空,留下了直到今天还深刻的记忆。但即使是那次也没有在 Key West 这里看到的星星多。我真是第一次看到原来星星真的会眨眼,第一次看到仿佛真的有一条银河横亘其间,第一次看到星星在照片里是可以拍得有颜色的!多亏了带单反的小伙伴:
跳到车顶上躺下,我一边静静地看着星星一边扇手赶周围的蚊子.. 如果能重来,我要当李白,或许就能在这个时候留下一首千古名篇!仰望寥廓深邃的星空,庄严圣洁、自由宁静、壮丽光辉的星空,当时我的脑子里应该什么都没有想,我的内心非常平静,没有了前两天的患得患失。
所以我现在并不愿意把这一年的日记都翻一遍,就根据豆瓣记录、日常账单啥的简单捋一捋吧:
就从📚开始吧。
截止到此时此刻,2016 年里一共在豆瓣上添加了 79 项读过记录。鉴于我每读完一本都会标记一下,这应该就基本是我这一年的课外书籍阅读量了吧,虽然里头可能会有零星几个补记录的标记。
根据账单显示,2016 年里一共买了 125 本,这些都是 amazon.cn 平台上的,因为其它平台都是用 RMB 结算的,只有 kindle 这里我可以刷我自己的卡。不过反正也没多少影响因为消费大头都在这里了。
数据显示,2016 年买书总花费是 251.68 刀,平均单价为 2.03 刀。月度支出如下图所示,看的出来是一波一波的冲动消费..
相比之下,2015 年的买书总花费是 173.52 刀,同比增长了 45.04% (被比率吓到了..)。而 2015 年在豆瓣上新增的图书标记项是 58 项,16 年同比增长了 36.20%。显然,在两项数据都有增长的情况下,买的比读完的更多了.. 这种趋势下去,肯定会有一些书是近似于打入冷宫永远都不会翻开的了吧 = =
这里只和 2015 年的数据进行了对比,其实从开始记账以来的数据应该都还在,但是我懒得把前几年的数据翻出来了,因为账单里的分类我改动过..
现在搜那种「有点有兴趣,又不是特别想马上看」的书的时候还有点怕有电子版.. 如果没有的话就可以光明正大地存着不买了!😓 这点上微信读书这类的 app 就做的好多了!可以先加入书架,看几页之后再买。在暑假小结里我写过,现在除了 Kindle 之外,我也在用微信读书的 app 在听书。它的 Android 版提供了听书的功能,效果还挺棒的。听书的习惯源于今年上半年陆陆续续听完的《把时间当做朋友》和李笑来老师的开源新书《新生·七年就是一辈子》,相见恨晚!到目前为止我发现的最适合在上边听的书籍就是《鱼羊野史》这一类的上下文无关书籍了,随时开始继续听都不影响.. 我也听了好几本文学小说,只是到后边会忘了之前说过什么,因为很容易就走神了呀!
年中的时候我也加过一两个读书的微信群,有那种每周读一本、每周解散重新加一次群的,也有高中同学小姐姐建的亲友读书群。不过基本都是潜水,还是按照自己的节奏在走,毕竟已经有很多买好了的书在等排位了啊..!
有几本印象比较深刻的,我想按照列一列:
《手机里的男朋友》,这个严格意义上是 12/31/2015 那天看完的.. 不过的确很喜欢就一并列在这里了。我对这一类的开脑洞有意思的短篇爱不释手,对亲王的文字也是一样。😄
《睡不着:Tango一日一画》,这是微博上我非常喜欢的脑洞博主画的合集,搜到有电子版后直接就入了。对有意思的脑洞完全无法招架呀 😂。类似的小绘本还有《你今天真好看》和《我可以咬一口吗》,感觉拿来当礼物会很棒的吧!
继续说脑洞,《人类简史:从动物到上帝》也可以算一本,我还写了一篇读书笔记。虽然当时我并没有觉得这本有风评的那么那么惊艳。反倒是作者的新书《未来简史:从智人到神人》有点吸引到我。新书的中文版好像还没上市,我看同人于野老师的微博专栏里的解读感觉振聋发聩,等出电子版了我一定买!还有类似的几本同样从非常宏大的角度看人类的书,虽然风评很好但是我还没有机会看就不提了,17年能看完吗..
还有一类脑洞就是科幻小说了,比如说《你一生的故事:特德·姜科幻小说集》,特别是里头的《地狱是上帝不在的地方》和《72个字母》这两篇!这个是因为电影《降临》而去看的。
说脑洞的话其实不能不提到网络小说,它们听起来很上不得台面,可以毫不犹豫地说 99.9% 的网络小说确实是上不得台面的,它们最多可以被归为「仅仅是有趣而已」的书。不过在这么大的基数下,总能冒出一些让我爱不释手的来的。去年看完《罗马人的故事》之后找到了一本穿越回到那个时代的《奥古斯都之路》,后来一看原来亲王也推荐过 😂。今年有看到一本《奥术神座》,写的是用科学解释魔法,这类玩梗的题材我都很喜欢(现在记起它是因为作者的新书),然后一看亲王也推荐过 😂😂😂。再一搜知乎上甚至都有一个亲王推荐过哪些小说的问题…. 另一本我今年必须提一下的惊喜是《孺子帝》,以及作者之前的《死人经》,找一本所有角色都有智商的书真的好难。其实亲王也推荐过后一本书的…. 所以果真是亲王喜欢的书我基本都会喜欢呀!😍 不过讲真,网络小说的输入/产出比是在是太低太低了,所以也仅仅只能作为一个消遣罢了。
不得不承认,现在的我看书越来越挑剔(功利?)了——要嘛能有些产出、要嘛能有浸入式的阅读体验,所以我对虚构类图书的要求越来越高。16 年有一本非常喜欢的《献给阿尔吉侬的花束》,它其实也可以归在科幻类别下边。我看完特别心疼,那种「得到了却又不得不看着它一点点离去」的感觉特别虐心。这个有点像是年老之后罹患阿尔茨海默的场景,因为爷爷奶奶今年开始有了一点点这方面的征兆,想到这些我就更忧伤了。另外一本印象中获得了浸入式体验的书是《24个比利》,看完我就去补了《致命ID》😂。
就写到这里吧,其实还有想到几本情感类的工具书,就不列出来贻笑大方了 😄。
直接上豆瓣的图好了:(读书怎么就没有这样的报告??15 年好像就没有?)
左图里「好友排名:55」的数据应该是由于我专门关注了一大批豆瓣上「大V」,都是看了很多书或者看了很多电影、并且与我很比较多共同喜好的用户。当时关注他们就是为了在条目的好友评分里获得更加准确的评估,忽略潜在水军的影响..
这些是截止到目前为止我在 2016 年里新标记的电影条目。鉴于我每看完一部就会标记一下,这应该就基本是我这一年的观影量了吧,虽然里头也包括了一些电视剧、综艺节目、动漫。官方数据显示 2016 年比 2015 年少了 13部.. 鉴于我还补了一些小时候看过的电视剧的标记,所以 2016 年比 2015 年少看了很多的电影。
从右边的图可以看出,除去 1 月之后,明显下半年看的电影比上半年多。这是因为上半年觉得可能不太合适自己一个人去电影院看那就干脆不去了.. 而下半年后来就不管这个了 😓
其实从具体花费上可以看的更加明显。2016 年里用于电影的花费为 208.42 刀而 2015 年的总支出是 391.2 刀.. 16 年的月度支出如下图所示:
对比之前的每月标记数可以看出:2016 年 1 月份基本是宅在家里补番的…… 😓😓😓
在这么些电影、剧集中,我最喜欢的是《疯狂动物城》和《奇葩说》!!真的是超喜欢超喜欢!疯狂动物城可能每个人被戳中的点可能不一样,Judy 来到大城市给家里打电话的场景现在还在我的脑海里😔。奇葩说我是今年才把全部三季补完的,又是相见恨晚的一个系列!就等着第四季了!
8月初搬家无家可归旅游期间,我还去体验了一把 drive-in theater, 9月份趁着去芝加哥跑半马的体验了一把 dine-in theater 都挺有意思的 😄。
嗯,关于电影其它我就没有什么好聊的了..
借着统计书影支出的机会,我也看了下每个月的油费和盒饭支出,其它的账目好像都没什么意思了吧。
月度油费支出如下图:
可以看出,抛开暑假的话上半年的油费比下半年会少一些,这应该是因为暑假搬家了!从离学校 2.7 麦的地方搬到了 5.2 麦左右的地方.. 而暑假那高到离谱的油费支出是因为去芝加哥看了几场球,以及去机场接了几次人,还有就是 8 月初出去「流浪」旅游了一周。
月度盒饭支出如下图:
16 年吃盒饭已经非常频繁了,因为自己做真的很花时间.. 而且也自己做也有点吃腻了.. 而且完全没有盒饭好吃!图中把每月盒饭次数、盒饭花费都显示出来了。数据统计显示,全年平均每个月吃盒饭 10.08 次,不过显然上下半年区别蛮大的,上半年平均每月 6.83 次,下半年平均每月 13.33 次.. 下半年吃盒饭吃的多多了!我想了想,噢确实 make sense.. 假期一般会吃的比较少,不过我已经解释不出为啥年初2月份的时候吃了那么多盒饭然后3-5月就少很多了..
□
看图写话就写到这里吧,祝所有人好!🙏
]]>这是其中之一:《政治的历史与边界》,是之前说要开始看的牛津通识读本系列里的一本小册子。
关于政治 (Politics),我自己之前的浅薄认识更多关注的是「权力从何而来」这个问题。说来惭愧,这还是之前看小说《孺子帝》引起的思考,那本真的好棒很推荐的!直接拔高了我对网络小说的预期!那里头提出的一个观点是:
千里之外,皇帝管不着,十步之内,皇帝与普通人无异,所以皇帝的权力只在十步以外、千里之内。
不过这本书里所讨论的「政治」和上述的「权力」应该并没有什么特别大的关系.. 在书中的序里已经大致总结了这本书所讨论的内容:
米诺格告诉我们,在思考良政善治这一重大问题的时候,历史方法也许比科学方法有用得多。于是,本书就试图通过历史的巡礼,给人们指示一条理解政治的路径:希腊民主如何诉诸公民参与;罗马共和怎样培育公民美德;基督教在何种意义上构成了文明发展的重要一环;国家的政治整合与个人的自主独立为什么成为政治现代性的双重面相;以及,为谋求国家权力与个人权利之间的良性均衡,现代政治文明如何从传统中提取价值资源,又怎样超越古典主义,在更高水平上构建了崇尚自由的宪政民主体制,等等。
那么我也以这些问题为线索整理一下好了。
(第二章)
注意是公民,只包括了成年男性自由人,妇女以及底下的那些奴隶是不算在内的。这部分人的「理性」被认为低于公民。
因而一项非常严厉的惩罚措施就是「放逐」——剥夺公民权。
在公民之间人人平等,大家轮流当统治者 / 被统治者,大家聚集在广场上讨论、辩论得出决议。
许多公共职务靠抓阄,主要职位靠选举。
(第三章)
罗马政治的基石是「爱祖国、爱罗马」。
罗马人把罗马看做一个家庭,这个和希腊不一样,希腊把家庭只当做出于动物本能的需求,而把政治当做一种赋予人类超越动物本能的自由。
增设护民官作为平民阶层的政治参与渠道。
书中说,罗马最不同希腊的一个特征是「权威」,
这个词代表政治与罗马宗教的结合点。罗马宗教包含了家族崇拜,从而也包含了祖先崇拜。所以才发展为罗马人的「祖国利益高于个人利益」的信念。
这么看来,我对罗马抱有亲近不是没有原因的呀
不过书中没有怎么说到罗马的法律呀!所以我觉得他说的不够深
(第四章)
关注的重点是「基督教」从何种意义上 blabla.
文中有说到
基督教是一种写成文字的宗教,这就激励了教徒去接受教育,学习文化。
呃.. 你这个逻辑链…. 写出来之后拉低了整本书的说服力 😓
反正,文中的主要观点是:
基督教对政治生活的真正意义在于它改变了人的价值观。基督教强调在上帝面前每个人的价值是相等的。个人的价值不在于他是否具有普遍理性,而在于是否具备对抗邪恶的个人品性。
……
假若没有基督教神学的曲折发展就不可能产生这些读物和人权的观念。
呵呵呀,前半句我还表示部分认同,后边就完全跳反了。在我看来,宗教改革前的教会就是反动力量,跑不掉的,没有你的话人本主义可能早就发展起来了呢。
(第五章、第六章)
这里讨论了国家的政治整合与个人的自主独立为什么成为政治现代性的双重面相,以及,为谋求国家权力与个人权利之间的良性均衡,现代政治文明如何从传统中提取价值资源,又怎样超越古典主义,在更高水平上构建了崇尚自由的宪政民主体制,等等。
不过这后边几个问题我不是很想整理了.. 有点多 = =
书中的《第七章 国家间的关系:如何保持均势》对我来说更有意思。里头有说到
国家利益就是一个国家认为保障本国安全所必须采取的一切行动。
😯 是吗
最后还有关于「意识形态」的内容是我很感兴趣的,毕竟也是我们切身相关的部分呀。
说意识形态一般具有一种三部曲式的理论结构:
诶确实是的呀 😂
从书中摘录一部分吧:
马克思主义者能够正确地理解世界,因此与之相悖的任何观念必是错误的——也必是意识形态的。也就是说,它是错误的,而且错误的原因是它不正确地反映了社会。我们可能用同样的矛盾说法来评价无政府主义者以及极端女权主义者的真理观。只要你懂得了这种共生现象,就可以放心地使用意识形态这个词——它既可以用来指真理,还可以用来指凭借对这一真理的信仰来判定的其他所有错误的信仰。
…
与政治学说不同的是,意识形态宣称自己是唯一的真理。意识形态不仅描述世界是什么模样,还要批评反对者所持的错误信念。
别急,还有一段:
“民主”有时会成为一些人最响亮的口号,因为他们相信,只要我们实现了(现在还没有)真正的民主,一切政治问题就迎刃而解了。
我们可以说,意识形态建立在这样一种幻想之上:有可能设计出一种社会结构,使理性的参与者们能够创建出一个幸福的世界。
是的呀,话说我之前确实从未思考过「意识形态」的具体定义。在某个已经不记得的地方曾经看过一个问题:如果遇到比我们先进很多很多的外星人,你有什么问题想问的吗?其中有一个回答就是问「是否存在一个完美的政治架构?」。我现在越来越觉得一个「完美」的政治架构或许是不存在的,并不存在什么一旦建立之后就能够一劳永逸、流传万世的社会。其实可能连怎么算是完美都无法定义的吧。我们永远只能不断地改革,偏离航线了就拉回来一些,航行一段时间之后又偏离了就再拉回来一些。意识形态只不过是理想主义者的好心留下的副作用。这样想会太悲观了么?🤔
]]>这个是我当前在做的事情之一,里头需要得到一个小 program 在某个特定的 relaxed memory models 下的所有 executions / traces.
经过调研,Herd7 是能够做到我想要的事情的。之前我还帮老板准备了一个使用 herd7 来体验不同的 RMM 的 lab, 写在另一篇博客里了。Herd7 能够输出以下边这样的图片的格式输出 executions: 显然在生成的过程中肯定会存有每幅图对应的中间状态,我的目标就是把这些中间状态打印到一个文件里存起来。
在这一篇博客里,我大致记录了整个实验、扩展的流程,对于想要了解 herd7 工具的实现的同学应该是会有一点帮助的吧,仅此而已了。除此之外的一点点干货可能就是 OCaml 的一点配置经验了吧。不知道会不会有人认真看完全文呢 😂
herd7 的代码可以在这里可以找到,我自己 fork 后修改的版本在这里。
这里我基于的是 v7.43 的版本。其实我原本还尝试过 diy v5.99 (diy 是旧版本的名字,v7 改名了)里的代码的,因为觉得旧版本的代码可能会更短小、更方便理解。但是我在旧版本下好像 make
一下就自动 build + install 了.. 不方便调试,也没有找到生成的中间文件路径用于 merlin-mode 的代码解析(这个真的很关键!!),所以就算了。而且我随便对比了两个版本下的几个文件,比如 top/top_herd, mem/mem, 好像并没有特别大的变化。反正最后也基本满足目标了呗 😁。
Herd7 是用 OCaml 写的,所以我得先学习一下 OCaml 这门语言。在12年听 coursera 上的 PL 课的时候学过一点点的 Standard ML, 除此之外对 OCaml 就没什么了解了。不过上手起来还是挺快的,我一直以来给自己的要求都是「3天之内能够上手任何一门新语言」。为了熟悉 OCaml,
这些果然就基本足够了。除了后来为了看懂 Herd7 里的一些 module / functor 的高级写法,又看了看 Real World OCaml 这本书。然后语言上就很熟悉了。
关于开发环境,我并没有找到 OCaml 的什么大型 IDE, 部分原因是 Emacs + Merlin-mode 就已经很强力了!!虽然这次我还没有怎么尝试 debugger, 光 printf 就做完了.. 不得不说,merlin mode 真的是超棒的!帮了大忙了。我最常用的两个功能是 jump to definition 和 show type information.
关于 merlin mode 以及 emacs 的设置,在这里有更加详细的介绍,我的 .emacs 里也有设置好的部分可供参考。
下边是一些 emacs 里使用 OCaml 相关的一些常用快捷键:(启用)
从 herd.ml 文件开始,在 let () = ...
那里开始是整个程序的 entry point,
Opts
和 Model
这两个 module 内from_file
函数开始解析,这个函数实际上是去调用 ParseTest.Top
这个 module, 其会根据配置好的 env
和 filename
来从这个 litmus test 文件中开始执行。files
都这么去做一遍所以下一步的重点是 parseTest.ml 文件中的 ParseTest.Top.from_file
函数,它会进一步调用内部的 do_from_file
函数:
Splitter
去解析 input litmus test program, 分出 initial state / program / final condition 等等不同的 section.PPC
/ ARM
/ AArch64
/ X86
/ MIPS
/ C
/ CPP
/ LISA
在 parseTest.ml parse 了 litmus test 的 syntax, 得到其 semantics 之后,会调用同一个文件里的 Top.Make
这个 module 调用其 run
函数,在这个 run
函数里,先生成了 Test_herd
module (test_herd.ml), 应该只是定义了其内部的 state 包含哪些内容;然后通过 Top_herd
module (top_herd.ml) 的 run
函数去真正执行——execute test according to model!
在 top_herd.ml 文件里可以看到,这里的 run
函数就是剩下的所有 generate + output 部分了。在一开始就调用了 mem.ml
中的 glommed_event_structures
函数:
glommed_event_structures
的输出是一个 record, 里头的 too_far
(bool) 说是可以丢弃一些 events, 我暂时不关心。重点是其中的第一个 field:event_structures : (int * S.M.VC.cnstrnts * S.event_structure) list ;
S.M.VC.cnstrnts
, 唉,你们为啥不写全名呢 = =S.event_structure
展开来是Sem.Semantics.event_structure
Sem.Semantics
会☞到 SemExtra.S
里头event_structure
又会☞到 Event.S.event_structure
那里event.ml
(~line160) 里头看每个 event structure graph 里头到底放了什么东西 = =procs
events
(set)intra_causality_data
(relation) 类似于 data dependency 吧intra_causality_control
(relation) 类似于 control dependency 吧control
(relation) 似乎指的是 if 这种的data_ports
(event set) 这个没太懂:Wvents that lead to the data port of a W. 所以是所有可能的 Write??output
(event set) 应该是最终外界 visible 的那些 events 吧eeid
最为唯一标识的glommed_event_structures
里得到的 event structures 里似乎仅仅是 events 为主呀,像是给 event 编个号啊、一些最最基本的信息等等。在 SemExtra 中有一个更大的数据结构 —— concrete, 这个里头应该才是所有 output 的总集合,里头包括了:write_to → read_from
的 map?!write_to
表示的是 “the event” to write to, 一个 write_to
是 to final (no further read) or another Load. 对应的,read_from
表示的是 “the event” to read from. 所以呀,这其实就是类似于俩 event 而已。write_to
作为 key, 其实就是 load event 作为 key, 因此是一个 rf-map 并非 wt-map 嘛conc
参数原来说的就是 concrete 咯!S.concrete
或者 conc
关键字),它至少用在下边这么几个地方的:Minimal
/ CAV12
/ MachModelChecker
里去。kont
function 马上就会说到了然后,top_herd.ml 文件里在生成了 event_structure
之后,会通过 iter_rfms
函数去 generate and process rfmap. 这里才是真正真正得到 relation 的部分吧?!那个 kont
就是这里用的!
iter_rfms
函数内部调用了 mem.ml 里的 calculate_rf_with_cnstrnts
函数,那个是有带着详细注释的,难得啊!甚至还有对于 kont
函数的描述,说是对于每个生成的 concrete event structures 都会调用一下 kont
。就是在这里头 generate / process rfmap 的吧,里头会有 solve 等等的函数似乎可以决定具体的 rf relations.calculate_rf_with_cnstrnts
函数中会传入 kont
函数作为参数(传进来的是临时定义的 call_model
),在这个函数里头:fold_mem_finals
函数,在里头构建一个个 concrete instance!! 用 fold_cross
这个函数应该是用来一下生成多种不同的结果的吧。这里就是我想要关心的东西了呀!等下会说到,把这个生成的具体结果再根据 user-specified model 去验证一下,没问题的话就会输出打印了。when_unsolved
函数。如果判定是 unloop depth 不够或者 cyclic rfmaps 的话就会调用另一个专用函数 kont_loop
函数来做事情。不过我看在现在的代码中传进来的 kont_loop
函数仅仅是 fun c -> c
这样子,这个真的会有区别么 = = 所以我猜测应该还没有实现完全,不过跟我也没有关系了,我关心的 Litmu test 都是没有 loop 的concrete
的时候,calculate_rf_with_cnstrnts
函数会调用在 top_herd.ml 里的 iter_rfms
函数里传入的 call_model
函数参数:call_model
调用了 check_test
函数,它会去调用 XXXMem.ml 所定义的 check_event_structure
函数。比如说在 machModelCheck.ml (mach ≡ machine) 中的 check_event_structure
函数是下边这样的。除了这个之外,还有 CAV12.ml 和 minimal.ml 里的实现,所以显然是下边这个 mach 的最通用了吧。check_event_structure
里头是会引入 bell info. 这个 bell 我在 herd7 tool demo website 里见到过的,但是不知道它什么意思,猜测应该是一些具体的 configuration 吧。run_interpret
这个函数,传 kont
进去。这个会调用 interpreter.ml 里的代码,去 interpret 一个 user-specified model! interpreter.ml 好大呢,2k+ 行,基本就是他们的类 OCaml cat DSL 的 interpreter 了吧,我就不看了 😓kont
去输出:kont st res
. 代码中的注释说的是:For all success call kont, accumulating results.终于可以说具体的 kont
函数里头做了什么事情了,其实就是在 top_herd.ml 里的 model_kont ochan test cstr
函数,它返回的是一个函数:
kont conc conc.S.fs st.I.out_show st.I.out_flags res
(in machModelChecker.ml)kont conc conc.S.fs vb_pp Flag.Set.empty res
(in CAV12.ml)kont conc conc.S.fs pp_relns Flag.Set.empty res
(in minimal.ml)model_kont
返回的函数里究竟做了什么事情。-through
这个 flag —— 额外打印哪些 executions. -through all
表示无论对错都给打出来,像 -through none
就表示只有正确的才打印check_prop test fsc
, 去看这个 final states 到底符不符合,然后继续根据其它的参数一起决定 show_exec
(bool) 与否。dump_legend
(ine 244 - line 283),然后收集一下 n-pos, n-neg 这种信息而已。然后就没有了。dump_legend
函数其实不仅仅 dump 了 legend ——图片标题,还有其它东西的 = = (这个渣命名..!!)在 Pretty.dump_legend
里会去调用 pp_dot_event_structure
, 所有的具体代码都在它的 worker function – do_pp_dot_event_structure
(line 743) 里头了,注释还说:This complex function is not meant to be used directly, 我还能说什么.. ╮(╯_╰)╭ 反正我就是围观一下,确认一下那些个具体的 data 是从哪里取出来的,每一个 data 分别表示什么而已。在调用 kont
的时候,肯定那些个 concrete / rfmaps / 啥等等等等的东西都已经确定了,所以我直接在这里 inject 保存我想要的东西就可以了!
在上边这些都执行完了之后,终于回到了 top_herd.ml 里的 run
函数 😂,里头剩下的部分都是输出到 terminal 的那些个 output 了,我就不太关心了。
上边是大致的流程,不过还有一个问题就是,在 pretty.ml 中具体是怎么抽取出关键的信息的呢,这里还是有点门道的:
dump_es_rfm_legend
函数可以学习 herd7 是怎么去读取 events 的。其实所有的操作都是通过调用 pp_dot_event_structure
这个函数来做的。PrettyConf.showevents
的值是 NON-REG-EVENTS.select_es
的效果可以看出,NON-REG-EVENTS 会禁用掉 write to r1 这类的 events.r1 := y
这样的东西,会变成 read y 和 write to r1 这样两个 events. 然后更新 r1 的 event 其实毫无意义了。毕竟真正 rf relation 去连的是 read y event 呀。所以这种 events 忽略掉完全没有问题!vbss
的参数,我看了很久它到底是个什么东西..vbpp
的东西,可以看出这就是将来传到 vbss
里的东西。可以通过 ctrl+c, ctrl+t
看到这个的类型是个 (string, relation) pair list
. 然后随便针对测试例子打印出来,就可以发现,这个是额外要打印的 relations!! 就像 ghb / fr / co 这些(虽然 co 在 concrete 里也有)do_pp_dot_event_structure
还有一个 mark 参数,我看了下,感觉像是 a set of events marked for debugging 啥的..conc.po
就是!!直接打印就好了!!为什么 Pretty.ml 里头还要大费周章地重新算一遍..就照着这么去改就改好了~ 😄
因为每次 make all
之后构造出来的是 herd.native
这么个东西呀。所以我就 ln -s xxx/herd.native yyy/herd7
了一下,经过确认,重新编译之后,yyy/herd7 也的确是最新的,然后就好了。
不过这样是不够的,因为 stdlib.cat 这种东西找不到.. 在 src code 是有这些的,在 herd/libdir 文件夹下,然后在命令里加上 -I path/to/herd/libdir
就可以了
这是第一次看 functional language 的 real code. 感觉是:确实有些东西可以写的很简洁!但是让我非常困惑的是好些个变量的命名,「用一个字母命名」这个行为真的是太不友好了 >_<
]]>The outline for this lab is:
In this lab, we will be experiencing memory models using herd7 – a memory model simulator.
herd7 is accessible via this website: http://virginia.cs.ucl.ac.uk/herd/#, which entirely frees users from installing the library and remembering the command line to execute + generate graphs. It is recommended to try common litmus tests with this setting.
The website version is preferrable. But if the online version is not accessible (e.g. due to suddenly large amount of traffic) or more customization is necessary, we could install herd7 on our own machines, and do the experiments offline.
Steps:
To see the specific execution graph generated, run commands using options with -evince
(which requires having installed evince), such as:
1 | herd7 -model tso_attempt2.cat -show prop -evince sb.litmus |
For those who got problems generating and displaying execution graphs directly, one alternative is to do in two steps:
Generate the dot file by commands of this shape:
herd7 -model tso.cat -show prop -o ./output SB.litmus
then it will generate a SB.dot
file under ./output
directory.
Then generate the image from this dot file using
dot -Tpng ./output/SB.dot -o SB.png
The herd7 tool website is easy to use:
OK
in the output, the behavior specified by litmus test condition is observed.· --rf--> ...
relation means it is reading from initial writes.The litmus test program is written in herd7’s DSL. Take the Message Passing program for example (src),
1 | LISA MP |
It can be further divided into 4 sections:
Line 1 – LISA MP
:
LISA
specifies what architecture this program is supposed to run against. LISA
is their DSL for describing litmus test programs. There are also other options such as PPC
(Power), ARM
, AArch64
, X86
, C
, CPP
. All these hardware or language “architectures” are used for determining how to parse the test program.
MP
is the name for this litmus test, it is the abbreviation for “Message Passing”.
Line 2~5 – { x= 0; y = 0; }
specify the initial state.
Line 6~8 are the actual program code.
Here it specifies two threads P0 and P1. P0 writes 1 to x and then writes 1 to y, while P1 reads from y and then reads from x. Variable y serves as a flag bit to show whether variable x is ready.
The empty [] is the syntax in LISA. It represents some tags attached to the instruction. This could be used to express rel/acq
atomic actions in C++11, for example. In this test program, [] is not used.
Line 9 – exists (1:r1 = 1 /\ 1:r2 = 0)
is the litmus test condition to validate (or invalidate). Here it asserts that the read of y in P1 returning 1 and read of x in P1 returning 0 should be possible.
PS: More details of their LISA DSL can be found in their paper Syntax and analytic semantics of LISA.
In the default test suite, “tutorial.cat” model is selected.
1 | "I can't dance" |
The first line "I can't dance"
is the name for this model. ""
is just used to include spaces as well.
Here it only includes “withco.cat” in the code. Relation co
will be defined and displayed if it exists.
co
is short for coherence. It is also called ws
(write-serialization) or mo
(modification-order) sometimes. co
serializes all writes to one same location. The definition / computation of co
is not shown here, those who are interested might check it out here.
Quiz: In the current MP litmus test, there is no co
relation. How would you modify the litmus test program to make co
displayed on generated execution graphs?
Answer: There is no co
relation in MP litmus test, because there are no two writes to the same location. For example, one modification could be adding a 3rd thread also writing to x / y, Then there will be co
in the graphs (src):
1 | LISA MP |
In herd7, the memory models to run against are specified in “.cat” format.
Quiz: So regarding this “tutorial.cat” model, do you think it is a strong model or a weak model? You may run through the 14 associated litmus tests to be confident on that hypothesis.
Answer: Now that it only defines the relation but not checking anything, this is the weakest model, in the sense that all 14 litmus test queries are observed due to no constraints. Of course, exists (false)
still won’t satisfy.
So, what if we want to avoid the non-MP behavior? How shall we define the model accordingly?
To do that, let’s first define relation fr
(from-read). fr
is also named read-before
sometimes in some other works. The intuition behind fr
is shown below:
This image is clipped from paper Herding Cats: Modelling, Simulation, Testing, and Data Mining for Weak Memory by authors of herd7. The basic idea is that: if a read event R reads value from a write event W0 that is before another write event W1 via co
, then R fr
W1.
The computation of fr
is omitted here. We could include cos.cat
(src code) to include the computation for both fr
and co
:
1 | "I can't dance" |
Now run the MP litmus test again against the refined model, relation fr
will appear in the generated execution graphs. Below is the execution graph that demonstrates { r1 = 1 ∧ r2 = 0 }
non-MP behavior:
Quiz: How could we modify the model to avoid this execution, and potentially also avoids similar behaviors in the future? Hint: cycles are usually suspicious in memory model specifications.
Answer: We can see a po · rf · po · fr
cycle in the graph. If we forbid such cycle, this execution will be eliminated.
To do so, the model may be written as:
1 | "I can't dance" |
Here |
operator means union of two relations. Run the MP litmus test against this new model, you will see that this erroneous execution graph is gone. There are only 3 possible executions and no non-MP behavior is observed.
The modification we just made turns it into a stronger model. In fact, Sequential Consistency, one of the strongest memory model, can be defined in a similar way: (src)
1 | SC |
Forget about the fences for the moment, SC requires in line 10 that po
(program-order, also called sequenced-before
in some other works), fr
(from-read), rf
(read-from), and co
(coherence) unioned together should be acyclic.
Quiz: Copy the definition for SC into the right panel on website, and try it with other litmus tests. Which litmus tests can still exhibit weak behaviors?
Answer: You’ll find that SC is very restrictive, no weak behaviors in these litmus tests are still observable under SC.
SC is intuitive to programmers, but as we will see shortly, more relaxed models are actually used in practice.
PS: More details of their cat DSL can be found in their paper Syntax and semantics of the weak consistency model specification language cat.
Next let’s go through the process of building the model for TSO step by step following that in herd7’s official documentation.
TSO is chosen because it is interesting enough as well as simple enough. TSO is the model underlying x86 architecture. Other model definitions such as Power / ARM / C++11 are also accessible in the website (see corresponding test suites), but they are much more complicated.
Consider the following canonical example for TSO – Store Buffering litmus test (sb.litmus in the list of tutorial test suite) (src):
1 | LISA SB |
SB litmus test says that:
Run this litmus against the SC model we defined just now, it shows that the case in litmus query is not observable. However, this is actually observable in real x86 machines! Which means, SC model is too strong, at least for those x86 machines.
In an operational perspective, TSO works by maintaining a write buffer for each thread.
In other words, TSO allows Write-Read reordering (to different variables of course). Because in a global view, the Write does not happen until it flushes into memory. On the other hand, the thread may “read its own write early”, earlier than other threads see that.
Following that in official document, let’s write a first version of the TSO model (src):
1 | "A first attempt for TSO" |
The key change in this temporary model is po-tso
, which preserves those W-W, R-W, R-R pairs except W-R pairs, since TSO allow W-R reordering. Now po-tso
is used instead of po
to check acyclicity.
Quiz: Do you think this would change the behavior of SB litmus?
Answer: Turns out YES! The SB weak behavior is no more observable.
But this is not enough. There are some more test cases (src) that are forbidden by the model but indeed observable in real machines.
1 | X86 SB+rfi-pos |
Initial values are 0 by default.
The rejected should-accept execution is shown below:
Apparently, the rf · po · fr · rf · po · fr
relation cycle is recognized as ghb
cycle and thus rejected.
Quiz: How would you propose to eliminate this false negative case while still being general enough?
Answer: The basic idea is to eliminate the specific relations among the cycle components. For example, it would suffice to exclude this kind of Wx=1 --rf--> Rx=1
and Wy=1 --rf--> Ry=1
relations.
Therefore, we may define rfi
(internal) and rfe
(external) relation to specify reads from the same thread or from other threads. Then only consider rfe
in the acyclicity check. (src)
1 | "A second attempt for TSO" |
Notice the com-tso
and rfe
change in the model. rfe
is assumed to be given just like rf
. Run the litmus test against this new model, that real world weak behavior is now allowed.
Again, the model is not completed, because the current model haven’t dealt with fences, at all. Consider the following SB litmus test augmented with MFENCEs (src):
1 | X86 SB+mfences |
Fence instructions are provided by hardware to restore orderings. According to x86 manual:
MFENCE guarantees that every load and store instruction that precedes in program order the MFENCE instruction is globally visible before any load or store instruction that follows the MFENCE instruction is globally visible.
Then the weak behavior of this litmus is not supposed to happen with MFENCEs inserted. But the current model definition even do not recognize and display MFENCE on the execution graph.
Here is how MFENCE could be defined:
1 | let mem-to-mfence = po & M * MFENCE |
In this definition, MFENCE is not exactly an event in the execution, but is used to contribute as a part of po
relation. Replace original po-tso
relation with the definition above, the SB+mfences litmus test is now correctly handled. (src)
There is one last conflicting litmus test to consider (src):
1 | X86 CoRWR |
This CoRWR litmus test cares about single thread correctness. The query asks if it’s possible to first read the future writes, and read initial writes later on. This is not rejected by current model via the acyclic check as following diagram do not have a cycle:
However, this is not replay-able in website herd7. This weak behavior of this litmus test never shows up. This is due to the extra “uniproc” check executed by herd7 tool, which eliminates such sequential weird behaviors. And the website version of herd7 does not allow changing this setting.
To show this, we need to use offline version of herd7. Running commands
1 | herd7 -model minimal CoRWR.litmus |
will have different results. The minimal model will allow the weak behavior with output similar to:
1 | Test CoRWR Allowed |
while the “uniproc” model puts additional check to eliminate such weak behavior.
For TSO, these “uniproc” check could be (somehow) specialized to
1 | irreflexive po-loc & (R*W); rfi as uniprocRW |
Adding this to the current model will produce a correct model for TSO (src):
1 | "A final attempt for TSO" |
To further check this, you could write (or find) the litmus tests in Intel Memory Ordering White Paper and run them against the defined model.
PS: Running the given litmus tests in Tutorial Suite against our freshly defined TSO model may not produce outputs. This is likely due to some internal conflicts between MFENCE and LISA definitions. For these non-MFENCE litmus tests, comment out the mfence related part would make it runnable again.
Now we should more or less have some basic understandings of TSO. Other models presented in the webiste are generally (much) more complex than TSO. PowerPC and ARM model formulations can be found in Herding Cats test suite, while C++11 model formulation can be found in C11 test suite (there are many variants inside that suite).
Instead of delving into details of those models, let’s look at some more litmus tests that can exhibit differences among those models.
IRIW is short for Independent Reads of Independent Writes. It is a very well-known litmus test, usually used to check if some specific model satisfies write atomicity or not.
There is IRIW litmus test just in tutorial test suite (src):
1 | LISA IRIW |
It basically says there are 4 threads: 2 of them writing to x and writing to y, respectively. The 3rd thread read x first and then read y, while the 4th thread read y first and then read x. The query of IRIW litmus test asks if it is possible for two reader threads to observe the 2 writes in different order?
Quiz: What result of this litmus test on TSO would you predict? What about PowerPC and ARM machines? Hint: “kittens.cat” in Tutorial testing suite is “almost-TSO”, without the fences stuff. The model for Power and ARM could be found in Herding Cats suite. There are runnable IRIW tests for each model. Remember that IRIW test for Power and for ARM are different in syntax, it is important to select the correct pair when running (there are two versions of IRIW.litmus in the list).
Answer: IRIW weak behavior is not observable under TSO, but is observable under both Power and ARM.
In addition to IRIW, 2+2W is also an important litmus test. According to paper Formal Reasoning about the C11 Weak Memory Model, 2+2W is one of the smallest known examples to distinguish release-acquire from TSO model (src).
1 | LISA 2+2w |
For TSO, the litmus test could be found in Tutorial test suite, and executed against kittens.cat (almost TSO) model.
Quiz: What result would you predict for TSO?
Answer: Weak behavior not observable.
C11/C++11 model has a Release / Acquire fragment. Detailed explanations on the release / acquire / relaxed memory order atomic keywords could be found in the official documentation.
However, the C11 test suite and Demo test suite’s c11.cat model on the tool website somehow do not produce outputs.. You could run on local herd7 to check the results for following two experiments.
Quiz: For the following litmus test (src), what do you think the result would be?
1 | C 2+2w |
You could run this program against C++11 model by command like:
1 | herd7 -model c11_orig.cat 2+2w_relaxed.litmus |
“c11_orig.cat” model comes with herd7 tool. You could check out the official code and its dependencies to see how delicate (or complex) C++11 model is defined..
Answer: Weak behavior observable.
Quiz: Then what about the slightly modified version litmus (src) (replace “relaxed” with “release”)?
1 | C 2+2w |
Answer: Weak behavior also observable.
□
]]>Please do not hesitate to correct me if I am wrong anywhere. Thanks in advance. 🙂
This new paper will appear in the upcoming POPL’17. It’s related to what I have been thinking about for a while. As you’ll see, the idea in the paper is very inspiring, I quite like this paper.
I usually use a shorter term “Memory Models” for them. They essentially define what values can be returned for a READ in different scenarios, mostly in a concurrent setting.
Litmus tests are essentially some tiny concurrent program snippets with a final assertion specifying which is the expected behavior. For example:
1 | Initially: |
Generally it is enough for the final condition to refer to a specific state instead of some abstract assertions. There might be more abstract expressive litmus tests, but at least this paper only takes this form, for the purpose of their Execution→LitmusTest synthesis.
First of all, the authors re-formulated 4 kinds of problems into one general problem:
They formulate the new general problem as: g(M, N, ▲)
.
It basically says to find some litmus tests (P, σ)
and (Q, σ)
. Here (P, σ)
is some litmus test with P being the program and σ being the final state to check observability. They should satisfy following properties.
M |≠ (P, σ)
, the litmus test (P, σ)
does not conform to M.N ⊨ (Q, σ)
, the litmus test (Q, σ)
conforms to N.P ▲ Q
, two litmus test programs are connected in some relation ▲.// In the paper, the ▲ is actually some black triangle pointing to the right. But I didn’t know how to type that.. so I just picked a similar symbol ▲.
Then the 4 kinds of problems are instantiations of this general problem.
About generating litmus tests for one model
g(M, ⊤, id)
, where ⊤ allows all executions and id is identity relation.About comparing different models.
g(M, N, id)
.About verified optimization or fence insertion – can strengthening a program ever introduce additional behaviors?
g(M, M, 'is weaker than')
.About verified compilation on RMM.
g(M, N, 'compiles to')
.In their problem definition, to actually reason about the given two models, the definitions about M, N, and the relation ▲ must also be defined (e.g. in Fig. 11), in a way that is based on their Event / Execution hierarchy, a way that can easily encode and delegate to SAT solvers. We will see.
g(M, N, ▲)
problem.1 | M ~~~~~ N |
The overall workflow, in my comprehension, can be illustrated as above.
(P, σ)
and (Q, σ)
.I’ll explain these steps in more detail.
Because g(M, N, ▲)
requires to find some (P, σ)
that must fail on model M, it’s essentially asking to find ∀ executions . it fails
. This universal quantifier ∀
turns everything intractable.
Their insight is to transform the litmus test level search problem into execution level search problem, and demonstrate that this becomes tractable. And reconstruct litmus test from executions later on.
They want to search for two executions X and Y such that:
M |≠ X
N ⊨ Y
// Again, in the paper the relation △ is some white triangle pointing to the right, and I don’t know how to type that..
Note that there is no more σ at the moment, the final state of found execution X will be used as σ. And when reconstructing litmus tests it will need both X and Y to allow the same σ as final condition.
But just these are not enough, obviously. Because this is finding just one execution X that fails on M. For the litmus test program P corresponding to X, it only means P may fail. To ensure that P must fail, they need to impose extra requirements – X ∈ Dead_M
.
The definition for X ∈ Dead
basically says: any other execution corresponding to the same litmus test program P that is consistent with M will not reach final state. In other words, all those executions of P that reach this final state will be inconsistent with M. Hence derived “P must fail on M”.
Above is the semantics definition, the authors presented some syntactic approximation later in the paper, for real-world implementation. It’s approximation, thus loses completeness, but still preserves soundness for up to 8 events according to them.
Honestly however, I am not 100% sure why those rules would work and suffice. I’ll omit that part in this note..
They utilize SAT solvers for executions search. In my opinion, their framework for encoding is also worthy of mentioning.
Executions, which I call execution traces sometimes or execution graphs, the latter one may be more accurate, are defined on top of Events, as usual.
However, their events are some objects purely with an ID tag. You know they were usually defined to contain at least the following information altogether:
But now in this paper, all those attached properties are represented as some set property. For example, E ∈ ReadSet
means E is a Read event.
There are several advantages, according to the authors. The most important reason in my opinion is that:
So,
Essentially, everything is now friendly with set manipulation, therefore friendly with SAT solvers.
They first define a tiny DSL for litmus test programs. For the sake of simplicity, they also define some well-formedness property, e.g., different values for different WRITEs.
Then the next (final) step is to recover litmus tests from the found executions. There is one inference rule in the paper (ξ3.2):
1 | (X, Y) ∈ g'(M, N, △) |
So the goal is to find some P / Q / σ such that:
(P, σ) ∈ litmin(X)
(Q, σ) ∈ lit(Y)
P ▲ Q
Their approach is to define some more abstract semantic predicatelit'(X, P, σ, disabled, failures)
. This is to connect the execution and the litmus test, semantically.
(P, σ)
are the input and output, respectively.lit'()
holds whenever there is a bijection μ between P and X, essentially, the instructions in P and events in X are all matched, one by one.
Then litmin()
and lit()
are defined on top of lit'()
.
lit()
is some instantiation of any disabled and failures.litmin()
is some instantiation of disabled and failures being ∅.litmin()
is used here for generation of P, while lit()
is used for Q. I am not 100% certain about the reason of using a minimal for P, but I guess it’s due to the P ▲ Q
requirement later on. Having weaker constraints may allow more space in searching of satisfying Q.
As mentioned before, there is one last step, to ensure that X is the dead execution in the corresponding P. But that is not very clear to me yet, so I’d suggest you to read the original paper yourselves. They were able to check that the syntactic approximation ⊆ semantic deadness, for all executions with no more than 8 events.
Their feasibility demonstration examples are very impressive and convincing, they manage to replay many existing problem instances and discover new instances. Their tool can generate simpler litmus tests. I’ll omit all those for simplicity here.
□
]]>首先,全书是完全站在西欧的角度说的。
根据书中总结,大欧洲历史的起源可以分为三个核心部件:
古希腊、罗马文化
关于古希腊和古罗马的文化,因为我看过《罗马人的故事》(1-5, 6-10, 11-15),已经有了了解,所以我对罗马是很有感情的!😳
基督教
关于基督教,我也体验、理解过不少了,当然出于环境所限,都是以新教为主的。书上的观念是教会保存了古希腊古罗马的学术,也用这些学术支持教义。(对于这点我是持保留态度的,后来不还是得从穆斯林那里翻译回来一大批么。😓)
日耳曼蛮族的战士文化
关于「日耳曼蛮族的战士文化」,其实我一直没有特别清晰的概念,总感觉那些曾经的蛮族民族怎么就一不注意摇身一变成为人类璀璨文化的核心贡献者(之一)了呢。曾经的蛮族南下之后也皈依了基督教认同了教会,在融入之后勇武文化被化作了骑士精神。
所以你看,在这个时期,教会是占据中心位置的。
至于这些是怎么慢慢融合构成欧洲历史的一部分的呢,从一个个线索串起来开始说吧。
首先,站在西欧的角度,及至中世纪期间,欧洲经历过几次大规模入侵:
日耳曼蛮族,3-6世纪。这个我在罗马的历史里已经见识过了。南迁的蛮族越来越多,最后罗马帝国无力抵抗,缩水成拜占庭帝国。
穆斯林,7-8世纪。一路冲到了西班牙,重新带来了古希腊的学说。
维京海盗,9-10世纪。这个我之前一直没有什么印象呢,维京人船浅,于是可以沿着海路河道深入内陆掠夺,当时的王国组织薄弱,无力成军(你们身为曾经蛮族的尊严呢??),只能任人宰割。后来有一小批维京人被招安定居在诺曼底成为诺曼人,后来某个诺曼底公爵征服了英国成为了「征服者威廉」….
这些是书中说的,我感觉还有时不时从东欧大草原那一片迁徙过来的比现有的「蛮族」更加「蛮族」的游牧民族吧,比如说上帝之鞭咯,书中怎么没有提到。╮(╯_╰)╭ 我觉得是因为那些并没有驻留在西欧、给文化留下和其它几次入侵那样深远的影响.. 😒
反正,这些陆陆续续前来的蛮族安家落户了,他们也不会治理呀,于是就只能拜托教会了!再加上要把土地分封给手下的将领,于是「封建」就这么渐渐形成了。在公元800年法兰克王国查理大帝好不容易由教皇加冕了一下,接着又分裂了好多好多年,直到公元962年,德意志境内出现了新的强有力的新王,加冕为神圣罗马帝国皇帝。就是伏尔泰吐槽的那个「既不神圣、也不罗马、更非帝国」.. 神圣罗马帝国有个选帝侯的制度很有意思,3个大主教、4个世俗诸侯来选帝,听着好酷炫啊!直到好远好远的未来,在拿破仑兵锋所指之下,神圣罗马帝国在1806年终于解散了..
教权和王权的争斗也是其间不可避免的东西,最著名的例子应该就是神圣罗马帝国时期的亨利四世了,关于他和教皇格里高利七世之间为了主教的任命权而进行的权力斗争。亨利四世被开除教籍,然后在雪地里等了两三天双方才何解。😂
等教权、王权处于一种平衡中之后,当年的蛮族尚武精神也早就演变成了骑士精神,这时候社会也安定一些了,重新开始繁荣起来。于是欧洲社会开始有能力去攻掠别人了,于是——十字军东征了.. 😶
原本占据中心位置的教会的地位开始了衰落,先是文艺复兴,再有宗教改革。
首先是文艺复兴,对于古希腊、古罗马的文化的推崇,在经过中世纪的禁锢之后开始迸发。最开始人们甚至觉得可能永远无法超过那些古希腊罗马的先贤们了,直到后来以牛顿为代表的17世纪科学革命。
忽然间人们发现,用理性思索、科学实验可以探索出整个自然体系的运作,还能够用数学精确的表达。于是顺理成章地,能不能发挥理性运用在各种更宽广的地方呢,比如政府、比如道德观念、比如神学、比如社会改造,这于是触发了「启蒙运动」!
这时已经来到了18世纪。从18世纪末期开始,原本三驾马车之一的「日耳曼蛮族」也做出了自己的突出贡献——浪漫主义。和一心一意信奉理性的启蒙运动相比,浪漫主义崇尚感受、情绪以及所有强烈的情感。
浪漫主义的信徒并不想用理性去控制情绪和激情。在他们心目中,光是优雅地将古典曲调重新演绎出来,称不上是伟大的作家或艺术家;穷尽灵魂,掏心剖腹地将热情、痛苦、绝望赤裸裸地摊在第一线的才是。艺术应该是情感激荡、表达淋漓、惊天撼地的。
浪漫主义的信徒说,我们的语言和历史塑造了我们,这些东西深植在我们体内。
按照书里的说法,有着自己历史和语言的德国人,想要找到自己民族独特的东西,因为他们永远都跟法国人不一样(*这个我持保留意见,你们俩曾经不都是日耳曼蛮族么..*)。
德国人希望知道,早期日耳曼民族在跟文明、罗马以及天主教会混合之前是什么模样。他们想把日耳曼民族从这个组合当中抽离出来。他们喜欢这些出身草莽的祖先,喜欢他们的活力、生命力和朴拙,他们不想跟着软趴趴的知识分子走,他们以过去那些亲近土地、深谙德国人原本面貌的日耳曼先祖为荣。
话说,关于启蒙运动和浪漫主义,我今天正好看到东东枪老师的公众号文章里才说到:
你可能当学霸时间太久了,看你谈恋爱和婚姻,也跟谈一道什么数学题或是论述题似的——全是冷冰冰的道理,毫无情感可言。听你描述,你男朋友不像是个活人,像是你购置的一件家具,或是皮大衣什么的,有用就留着,没用的时候就可以毫不留恋地随手处理掉。不瞒你说,这样看来,你对婚姻的悲观态度,似乎还是有根据的。
当时就觉得有点共鸣,看来(果然)我也是更加偏向于理性那一头很多的呀….
不管怎么说,启蒙运动和浪漫主义运动虽然有些相背而行,但却分别增强了三驾马车中的之二的存在感,共同削弱了教会的权威。
其次一个削弱的(大)因素是宗教改革。这个或许也有印刷术的重大推进作用在里边,原本的圣经是拉丁文,现在大家能够翻译成平民也看的懂的语言,解释权就不再是官方唯一的了。马丁·路德号召回归圣经本身、因信称义,出于教权、王权、贵族的权利角逐,马丁·路德并没有遭到迫害,于是宗教改革就这么愈演愈烈地发展起来了!
后来,新教和天主教在英国的争斗又促生了光荣革命。议会赶跑了天主教国王,推举了一名新教国王,并且以《权利法案》订立了国王和议会的权利。没流一滴血,真是了不起呀!
书里说后来的法国大革命最开始也是想效法英国那样的,但是权力在全民手中越来越跑偏变成了极权。10年后,拿破仑上台了。书里说
罗马是拿破仑一个重要的榜样。他一开始自称执政官,接着又称皇帝,不过他跟奥古斯都一样,并没有借这个头衔弭除法国共和体制的意图。
呃.. 我保留意见.. 😷
这大约就是我从书里汲取的整个历史链条了,还是挺有收获的,大致每个时期都能对的上号了!
□
]]>Please do not hesitate to correct me if I am wrong anywhere. 😁
Since this is a book chapter, the materials are already well-written, it is easy to find the overall clue throughout underlying texts.
Intuitively, the “invariant” can be generated by ∨ assertions in all paths. This is why they call it inductive assertions of programs in the chapter.
Therefore, the question now becomes “how to generate assertion at this program point in different paths”. The answer is straightforward, just propagate by predicate transformers.
We have introduced in detail the weakest precondition (wp) in previous lectures. The strongest postcondition (sp) was paid less attention to at that moment, but is now heavily used in this chapter.
As the name suggests, predicate transformer strongest postcondition is generating the strongest result after some command, in the sense that ∀ Q . {P} c {Q}
, we have sp(P, c) ⇒ Q
.
From my understanding, Symbolic Execution is basically doing strongest postcondition propagation under the hood.
There are some interesting rules for sp, it’s interesting to compare them with its wp duals:
for assume:
sp(F, assume p) ⇔ p ∧ F
wp(F, assume p) ⇔ p ⇒ F
for assignment:
sp(F[v], v := e[v]) ⇔ ∃ v0 . v = e[v0] ∧ F[v0]
wp(F[v], v := e) ⇔ F[e]
For sp, it’s basically differentiating two versions of variable v
, with v0
being the old value. The notation here that changes F[v]
to F[v0]
means replacing the parts of v
in the formula with v0
and keep everything else unchanged.
Due to this extra ∃
quantifier in sp, wp is generally preferred when possible.
As mentioned, the goal in chapter is to do invariant generation.
They call some program points that should assign assertions cutpoints, from one cutpoint to another cutpoint constructs a basic path (which is a segment in my dictionary).
My understanding for the defined cutpoint is just the program points that shall be assigned assertions to. One could have different set of cutpoints for different purposes. The assertion map just assigns assertions to each of these program points / cutpoints. The goal – invariant generation – is to find such assertion map. Note that it is not the assertion that holds throughout entire program, just at that program point.
To propagate assertions to each program point (cutpoint), the algorithm is:
1 | let ForwardPropagate F_pre L = |
The algorithm is straightforward, it just propagates using sp predicate transformer, and merge the assertions from different branches/paths if necessary. The whole algorithm terminates when all assertions become stable.
However, there is no guarantee that the algorithm will terminate, possibly due to undecidability of F ≠> μ(Lk)
, possibly because always including some exact states via ∨ may never reach to an end. Consider the following counter-example:
1 | L0: { Initially: n ≥ 0 } |
So:
From L0 to L1, the assertion is {i = 0 ∧ n ≥ 0}
.
But from L1 to L1 after one loop iteration, the new formula is added by {i = 1 ∧ n > 0}
.
This could go on and on forever, because the terminating condition is never reached – Fk ⇒ F_{k-1}
, it always fails the check that the newly generated condition i = k ∧ n ≥ k
⇒ (i = 0 ∧ n ≥ 0) ∨ (i = 1 ∧ n ≥ 1) ∨ ... ∨ (i = k-1 ∧ n ≥ k-1)
, the collected assertion. (Page 320)
This is because that we are doing some semantic analysis, and the algorithm can only check the next syntactic possible stop, thus L1 itself should always be considered as a next step for L1.
It’s obvious that there is a much simpler invariant for the above example: 0 ≤ i ≤ n
.
Now by the improved approach – abstract interpretation – it can over-approximate the concrete states, operate on abstract states, and guarantee termination via some widening heuristic if necessary.
Intuitively,
1 | Abstract →sp→ Abstract ...... →sp→ Abstract |
Below are the necessary preparation steps for abstract interpretation, throughout which the basic idea is to do the same set of operations on abstract states.
What the abstract domain is, apparently. It stipulates the form of formulas that could appear in abstract domains.
The mapping relation from concrete states to abstract states, $v_D$. This is an over-approximation, meaning that $F ⇒ v_D(F)$.
The sp transformer was on concrete states, now there should be some sp for abstract states.
The new $\bar{sp}$ may need basic logic operators, hence we still need to define abstract conjunction and abstract disjunction. The basic rules are:
The resulting formula should reside in abstract domain as well, obviously.
The resulting formula should still be an over-approximation, i.e. $F_1 ○ F_2 ⇒ F_1 \bar{○} F_2$, where $\bar{○}$ is the corresponding operator in abstract domain.
In particular, abstract disjunction ⊔
is emphasized, because it will be used in the same propagation algorithm operating on abstract states.
Abstract implication also needs to be specified. Because it will be used in the abstract domain version algorithm to decide whether it has reached fixpoint. For concrete states, it may even be undecidable.. But by carefully selecting the abstract domain, the implication validity check can become decidable and fast.
The last is yet another novelty – heuristics to ensure algorithm termination, namely, a widening procedure. Intuitively, this is delicately defined to stretch to the limit of over-approximation.
Formally, let F1, F2, … be an infinite sequence of Fi ∈ D
such that $Fi ⇒ F_{i+1}$. Then another sequence Gi can be defined as: G1 = F1
, G{i+1} = Gi ▽D F{i+1}
.
1 | F1 → F2 → F3 → ... → Fi → ... |
Then it shall have the property that after some i, Gi ⇔ Gi+1
. Sequence Gi converges even if Fi doesn’t converge.
With all these preparation, the abstract version of forward propagation algorithm is:
1 | let AbstractForwardPropagate Fpre L = |
The main difference other than abstract version of operations is the WIDEN()
function call. It determines whether widening should be applied (e.g. after specified max iterations, could be more complicated strategies).
This widening is to replace the original abstract disjunction of including more states.
Compare with G{i+1} = Gi ▽D Fi+1
, here μ(Lk) := μ(Lk) ▽D (μ(Lk) ⊔D F);
has μ(Lk)
as G(i)
and μ(Lk) ⊔D F
as Fi+1
.
Next, we use the example of Interval Analysis to demonstrate the just defined abstract interpretation approach.
Interval analysis, as the name suggests, extracts the bound of a variable.
Abstract domain formula literals are of the shape: $v ≤ c$ and $c ≤ v$ for some constant number $c$.
Some simplification rules are also given:
All these should be intuitive.
Some computation rules are given:
[l1, u1] + [l2, u2] = [l1+l2, u1+u2]
c = [c, c]
introduce ∞ and -∞
[∞, -∞] is empty interval
[l1, u1] ⊓ [l2, u2] =
The following several rules are over-approximation:
[l1, u1] ⊔ [l2, u2] = [min(l1, l2), max(u1, u2)].
[l1, u1] ≤ [l2, u2] if l1 ≤ u2.
[l1, u1] = [l2, u2] if [l1, u1] ⊓ [l2, u2] ≠ [∞, -∞].
Now given some concrete state formula, $v_{DI}$ over-approximates it into a abstract domain formula.
For clause literals it only filters out those clauses such as:
and extract condition of variable $v$ in the basic abstract state formula as just defined.
However, this very weak filtering will lose much valuable information such as those more complicated inequality formulas, e.g. $j + 2n ≤ 4$.
That’s why a non-trivial $v_{Di}(H, G’)$ is defined, which basically uses the context information in $G’$ to simplify $H$. This can re-pick up the lost information of $j + 2n ≤ 4$, otherwise it just trivially distributes vD
to each conjunctive clauses.
More formally, this is written as
$v_{Di}(F, G ∧ v_{Di}(F))$For example,
1 | F: i = 0 ∧ n ≥ 0 ∧ j+2n ≤ 4 |
With the extra context $G: j ≥ 5$,
1 | = vDi (H, G ∧ vDi(F)) |
Without this context information, the interval won’t be [-∞, ∞].
Note that $F ⇒ v_{Di}(F)$, so if without $G$,
$v_{Di}(F, v_{Di}(F))$should be the same as $v_{Di}(F)$. It’s the added context information $G$ that makes everything more accurate.
This schema due to weak $v_{Di}$ is also used in subsequent abstract domain transformers $\bar{sp}$.
⊓ in abstract domain for interval analysis is just ∧.
The similar idea of “using more information” in last step can also be used here.
$$\bar{sp}_{D_i}(F, assume \ p) ⇔ v_{D_i}(p, F) ∧ F$$This $v_{Di}(p, F)$ is also intentionally making it more accurate here with the existing context information $F$.
Otherwise $v_{Di}(p)$ may directly discard those non-basic constraints.
Let [l, u] be the interval evaluation of $e$ under the context of $F$, and $G$ is all the rest literals of $F$ not involving $v$, then
$\bar{sp}_{D_i}(F, v := e) ⇔ l ≤ v ∧ v ≤ u ∧ G$
This is straightforward.
When $e$ is too complicated, e.g. not a linear expression, set the interval of $v$ to ⊤.
In interval analysis abstract domain, for
$$F: x ∈ [l_1, u_1] \\G: x ∈ [l_2, u_2] \\F ⊔_{Di} G = [l_1, u_1] ⊔ [l_2, u_2]$$i.e. the interval hull. Over-approximation, again.
In interval analysis abstract domain, for $F: x_i ∈ [l_i, u_i]$, $G: x_i ∈ [m_i, v_i]$, then $F ⇒ G$ iff $∀ x_i, [l_i, u_i] ⊆ [m_i, v_i]$. i.e. subset.
With all the steps above, it has simplified a lot, but still cannot guarantee termination.
See the example below:
1 | @L0: i = 0 ∧ n ≥ 0 |
In this tiny program there are two so called “basic paths” (I’d prefer call them segments).
1 | (1) before while loop |
And our goal is to generate the invariant @L1.
According to the algorithm, it will keep “run” the iteration and add newly generated assertion to invariant, all on abstract domain.
At the end of kth iteration, the newly generated formula $0 ≤ i ∧ i ≤ k ∧ 0 ≤ n$ never ⇒ the existing invariant formula $0 ≤ i ∧ i ≤ k-1 ∧ 0 ≤ n$.
To solve this, it needs to over-approximate even more, using the widening operator $▽_{D_i}$.
For each variable v, suppose that $F$ asserts $v ∈ [l_1, u_1]$ and $G$ asserts $v ∈ [l_2, u_2]$.
Then $F ▽_{Di} G$ asserts that $v ∈ [l, u]$, where
According to usage, $F$ is the accumulated invariant, so the idea is that if the new invariant $G$ is still beyond the bound of $F$, $F$ chooses ∞/-∞ as the new bound. Apparently, in this way $F$ will definitely reach some fixpoint, thus guarantee termination.
Omitted due to time of preparation..
All above is using some notation that is easy to understand, while in literatures, Abstract Interpretation is defined using more mathematical notations – operations on lattices.
We should have seen lattices in Discrete Mathematics.
A lattice $(S, ⊔, ⊓)$ is a set equipped with join ⊔ and meet ⊓ operators that are commutative / associative, idempotent.
Knaster-Tarski Theorem.
The fixpoints of a monotone function on a complete lattice comprise a complete lattice.
It guarantees the existence of the least fixpoint and the greatest fixpoint of monotone function f.
My comprehension is that, if it terminates (has fixpoint) in abstract domain, it is also valid for the concrete domain. But by adding concrete state one by one it may never reach this fixpoint.
For abstract interpretation, consider the possible program states to be a lattice, then
This is represented by $C_p = (2^S, ∪, ∩)$. This is the concrete domain.
On this lattice, define $F_p(S’)$ as $S’ ∪ P(S’)$. Here $P(S’)$ means the next reachable states from set S’.
Compare $F_p$ to the predicate transformer together with the inclusion phase in our algorithm.
Then ForwardPropagate algorithm is like starting from those states satisfying the initial assertion, and aim to include all the reachable states into the set.
But again, as we have shown, this may not terminate.
So define abstract domain $A_p = (A, ⊔, ⊓)$ corresponding to the concrete domain $C_p$.
Two functions for mapping to/from abstract/concrete domains are needed: (recall $v_{D_i}$)
Apparently, these functions should preserve partial order!
$F_p$ is operating on concrete domain $C_p$, so there should be a dual $\bar{F_p}$ on abstract domain $A_p$. It is valid if
$∀ a ∈ A . F_p(γ(a)) ⊆ γ(\bar{F_p}(a))$
Intuitively,
1 | a → Fp-bar(a) |
which basically means $\bar{Fp}$ is a corresponding over-approximation of Fp in the abstract domain.
So, as you can see, all are operating on these two abstract/concrete domains.
□
PS: To display LaTeX symbols on this blog, I integrated MathJax engine, but it seems my blog engine Hexo will treat _
as italic at a higher priority than subscript.. which lead to a lot of problems in re-formatting.. 😒
This paper was pushed to my email via Google Scholar Alert in 09/05. I found it to be a Sumit Gulwani’s new paper, and it seems pretty relevant to my yet another long term research topic – program transformation / optimization. So I picked it for our reading group this week. Although after some detailed reading, I didn’t find it completely well-explained in itself at the moment.. But after all it is just my understanding, please correct me if I am wrong. :)
So, in this paper their goal is to synthesize program transformations. By program transformation they are referring to those such as:
TA in MOOC (Massive Open Online Courses, e.g. Coursera) can automatically fix incorrect submissions of online students. Otherwise it will be a great burden for a TA to manually handle that many students’ submissions.
Refactoring in IDE, such as renaming, extracting code into a function, etc. More generally, this is “repetitive codebase editing”.
The Fig. 1 and Fig. 2 in paper are some examples of such transformations. Let’s just look at Fig. 2 because it is also used in subsequent demonstrations:
1 | - while (receiver.CSharpKind() == SyntaxKind.ParenthesizedExpression) |
The snippet above basically replaces the type/kind check from “compare using the return value of CSharpKind()
method call” to “delegate to a field method IsKind()
“. This kind of changes is fairly common when refactoring.
Their synthesis result for these code edits will specify the transformation as follows. This is how they specify a transformation. Their DSL is operating on Abstract Syntax Tree (AST).
location expression: (where the transformation takes place)
1 | Filter (λ x → Context(π, Absolute(""))) |
It basically instructs to find some ==
expression with the left hand side being some expression calling its CSharpKind
field method, and its right hand side being any expression.
operation: (what the transformation transforms)
1 | Update (x, ConstNode(., l1, <call>, "IsKind", l2)) |
It basically replaces the ==
expression (sub-tree) with a new l1.IsKind(l2)
node. Here it is again matching the same x
as just before, but could be matching with different patterns, apparently. l1
is referring to the te
– any caller object, which is Absolute("1")
child in π1
. l2
is referring to the te
– any right hand side expression, which is Absolute("2")
child in π2
.
I believe this is the interpretation of the path
grammar in their DSL, and they claim that:
This allows for a rich variety of possible pattern-matching expressions, constraining the ancestors or the descendants of the desired locations in the input AST.
Other than this, I think their DSL (defined in Fig. 4) is pretty straightforward.
Abstract
token represents a kind of AST nodes, while Concrete
token represents those with some specific value.
Their allowed operations include Insert / Delete / Update / InsertBefore
.
…
So, how does their synthesis algorithm actually work? Well.. they implement it based on their (two authors’) previous OOPSLA’15 work – FlashMeta framework. This is why they say:
… leverages state-of-the-art programming-by-example methodology …
To me, it’s like one instantiation of that framework with respect to program transformation. From my limited knowledge, FlashMeta framework seemed mainly applicable to string / data manipulation.
So to use this FlashMeta framework, they will need to specify:
Witness function is some concept used in FlashMeta framework. It deduces a smaller necessary specification from a larger given specification. In this way the framework can sort of divide and conquer the whole big synthesis problem. This whole procedure is also called backpropagation.
Therefore in my comprehension, it actually embeds the domain specific knowledge from user! This domain specific knowledge is, of course, also embedded in the user-defined DSL. Grammars of DSL are already well-structured (inductively defined), except the top level grammar – transformation
. There is one more gap from input/output examples to transformation
rules, that’s where they relatively explained more:
The key part of this process is the witness function for the top-level
Transformation
operator.
This may actually be viewed as pre-processing as well, IMO.
With above in mind, here is what they mentions to do:
Given a input/output example, which may contain a whole program with just a few lines of code edits. They first calculate the tree edit distance between input and output programs, to separate out individual code edits.
I searched about this unfamiliar tree edit distance, and found one introduction website. It returns a sequence of node edit operations to minimize the corresponding assigned cost. Therefore, the concrete transformation sequence is now in your hand..
But at present the generated code edits are still scattered, they conjecture that components with similar edit distances consitute examples of the same rewrite rule.
Here comes the part I am still a bit confused:
Then, in lines 7-11, for each similar component, we extract the topmost operation to create an example for the corresponding rewrite rule. This example contains the subtree where the operation was applied in the input AST and the resulting subtree in the output AST.
I don’t quite follow their pseudo-code, either.. They wrote:
Line 8: … create a single concrete operation based on ops
In my guess, they may only need to specify the operation, and can leave the rest unspecified at the moment. Underlying FlashMeta framework will automatically synthesize the details in each operator expression. That makes sense to me.
After the steps above, a lot of candidate transformations will be generated. They instruct to select the transformation by a ranking function heuristics that:
Honestly, I was expecting more on the ranking functions.. Using, for example, some probabilistic foundations in the ranking / recommendation would be more interesting to me.. They also depicted the ranking function as
… rank them with respect to their trade-off between over-generalization and over-specialization.
But I didn’t find further discussion on this trade-off.. 囧
I’ll skip the evaluation section, since we (well, actually I) are mainly interested in technique details.
To end this note, this is an pretty intersting paper to me. I am aware of several different formalizations of compiler transformation / optimizations. It’s interesting to see that the based-on-AST one can lead to synthesis using FlashMeta framework. I am wondering if similar approaches could be applied to those in a relaxed memory setting.
Again, please correct me if I am wrong. :)
□
]]>于是看了本课外书。🙄
《佛学概论》 // 开始遍历这一整个系列了!
在 6 年前的大一下,我曾经和沈明哥一起上过佛教的选修课。然而那时候仍是没有皈依 markdown 记上课笔记的“史前”年代,所以具体学过啥几乎都没印象了.. 只有当偶尔看到一两个名词的时候感叹:😯 我好像看到过诶!!
这本书其实说的也非常非常粗略.. 不过我也就是大致看看西方的视角而已。在这篇笔记里我也没打算梳理自己对于佛教的全部看法,仅仅针对书里出现的一些字句写写评论好了。
长到现在,三观几乎已经完全定型了呀,我并不是一名佛教徒,我所理解的佛教核心逻辑、或者说其基于的假设/讨论的核心问题(再或者说是我真正关心的问题)是:
这其实就是所谓的「四圣谛」:
四圣谛,即(一)一切皆苦;(二)苦起因于欲望;(三)一切苦皆可得到解脱;(四)存在着一条解脱苦难的途径。
关大眠 (Keown D.) (2013-06-01). 牛津通识读本:佛学概论(中文版) (Kindle Locations 548-549). 译林出版社. Kindle Edition.
「众生皆苦」的说法会造成一种悲观主义的印象。但是,
在这样和那样的境况下,“不满足”较之“受难”似乎更能表达出“苦”的真义。
关大眠 (Keown D.) (2013-06-01). 牛津通识读本:佛学概论(中文版) (Kindle Locations 566-567). 译林出版社. Kindle Edition.
怎么说呢,现实确实是这样的呀,绝大多数不开心的原因都是「不满足」,或者说是未达预期。反正我对「不以物喜,不以己悲」这样的境界完全不感兴趣,在我看来这已经失去了人性。我敬爱的高中语文老师曾经这么说文解字:「佛」,弗人,不是人。(另俩是「儒」——社会需要的人、「仙」——山里隐居出世的人) 我是同意这个「弗人」的说法的。
所以,我宁愿把佛教在这方面的观点理解成「对期望的管理,对人本性里的欲望的管理」,一旦接受了这个设定,还挺带感的?
书中其实也有说到,这种非常写实的着眼点,是佛教思想在西方世界传播的一个利器。
而且,佛陀也没有具体解释达到终极目标涅槃之后会是什么样。
佛陀不主张探究涅槃的性质,倒是强调过努力获得涅槃的重要性。他把探究涅槃性质的人比作身中毒箭者,不去设法拔出毒箭,反而不住追问放箭者的情况,比方说叫什么名字,属于哪个部族,放箭时距离有多远等等(M.i.426)。
…
最终涅槃的本质除了体验者之外仍然是个谜。我们所能确切知道的只是这一点,涅槃意味着苦难与轮回转生的终结。
关大眠 (Keown D.) (2013-06-01). 牛津通识读本:佛学概论(中文版) (Kindle Locations 643-649). 译林出版社. Kindle Edition.
超脱「苦」之后的涅槃状态,佛陀没有具体解释,可能这根本无法解释,就像三维生物要给二维生物描述三维世界;可能佛陀自己也不知道;也可能佛陀觉得现在不说更好,还没到说的时候。孔子不也说「未知生,焉知死?」,然后就这么把死后的问题一笔带过了..
我自己倾向于认为,佛陀自己可能也并不了解…. 不然像他这样的智者,肯定是知道「不了解目的地就上路」是绝对不如「知道目的地的美景」更有吸引力的呀。亦或者他觉得这样的追求/期待也是属于要根除的欲望么?我无意探索佛陀初创这个理论的时候的原意究竟是啥(写到这里想到了斯卡利亚大法官的司法原意主义法学精神)。和一神教不一样,佛陀并不需要肩负绝对正确的责任。更何况我本来就不是信徒,仅仅取其所需而已。
核心问题就写到这里,至于具体的后续发展,比如大乘小乘(上座部)的分别,我其实并不怎么关心,不过大乘的下边这个观点其实和我想要达到的非常相似呀:
当然菩提萨埵并不像基督那样为他人赎罪,而是以自己的努力成为众生的“益友”。他的帮助之道就是成为众生的榜样,以实用方法减轻众生苦痛,鼓励并帮助他们,引导他们走上解脱之途。
关大眠 (Keown D.) (2013-06-01). 牛津通识读本:佛学概论(中文版) (Kindle Locations 697-699). 译林出版社. Kindle Edition.
另外这是西方角度的读本嘛,书中也讨论到了佛教如何与现代的权利/义务观念相整合,这个挺有意思的。在一神教里,「人的尊严」来自何处很好解答呀,e.g.
Genesis 1:27 (NIV)
So God created mankind in his own image,
in the image of God he created them;
male and female he created them.
而
在佛教中,人的尊严似乎源自人人皆具有明心见性的能力,正如佛教传统中诸圣和佛陀本人的事迹所显示的那样。“佛陀”反映出了人所具有的潜力,体现了深刻的见识和慈悲——众生皆可仿效的品质——从中可以寻得人的尊严。佛教教义曾经指出,我们都是潜在的佛陀(大乘佛教某些派别将之表述为一切众生皆有“佛性”,或证悟得道的种子)。由于具有这种共同的悟道潜力,所有个体都值得受到尊重。故此为了公平起见,每个个体的权利也都应该受到保护。
关大眠 (Keown D.) (2013-06-01). 牛津通识读本:佛学概论(中文版) (Kindle Locations 1198-1202). 译林出版社. Kindle Edition.
也说得通哦 😯 。
下边这个点我从来没想到过.. 2333
同样的困难也困扰着想撰写其他早期宗教人物(如耶稣)传记的人们,故此要想在勾画“历史上的佛陀”时取得更大成功是没什么可能的,甚至还有额外的麻烦:既然佛教徒相信“来生转世”,那么要写出完整的佛陀传记还必须包括他的前生后世!
关大眠 (Keown D.) (2013-06-01). 牛津通识读本:佛学概论(中文版) (Kindle Locations 282-284). 译林出版社. Kindle Edition.
还有下边这个观点也是我所认同的,但是那句谚语我搜不到,难道又是什么出口转内销的类似「先贤孟修斯」、「常凯申」之类的吗 = =
根据佛教说法,人具有自由意志,而行使自由意志便需自决。在现实意义上个体通过自己的道德选择确实创造了自己。通过自由而反复地选择某类事物,个体塑造了自己的性格特征;通过自己的性格特征他又塑造了自己的前途和未来。如谚所云:“做一事成一习,以一习成一性,以一性成一命。”
关大眠 (Keown D.) (2013-06-01). 牛津通识读本:佛学概论(中文版) (Kindle Locations 470-473). 译林出版社. Kindle Edition.
以上皆为一家之言,基于模糊的旧时记忆以及这本书里的描述,所以肯定有偏差的,欢迎指正。
]]>这是从张霄助教那里借来看的实体书。大家都说文笔好,可是看到些实在不敢苟同的历史观,就怎么都细看不下去了.. 原本想因此给个低分差评的,但是竟然有点莫名的心疼,因为胡是那么一本正经地在娓娓道来,他沉浸在自己的小世界里,我又怎么忍心去把“美好”的东西去打碎。
书是繁体竖排版,最后一章是「伐共建国」。竖排繁体真的非常不习惯,读书速度已经跌停。于是看完这最后一章后才在 Kindle 上看完的剩下横版简体内容。
看完这一章,我的表情是这样的:
都不知道从哪里开始吐槽.. 一个个看吧:
十九世纪的科学常识是物质不灭论与万有秩序为诸力关系所维持的观念。物质不灭论则亦不生,若然即孙文学说的生元思想为不合。又若万有的秩序是基于诸力关系,则孙先生的非霸力而崇王道的说法更是不能成立的了。
胡兰成的观点是:20世纪的学说(量子论和相对论)推翻了19世纪的学说(物质不灭论和万有引力)。所以大家仍旧信奉的是“旧的错误的”科学观念,因此社会变革都达不到(最)好的结果:
而因大家所信奉的科学观念与政治学的观念是十九世纪西洋的错误东西,所以结果都不自然,俄国革命变为共产党独裁,印度则虽独立了而没有自己的创造,最可惜是中国成了苏俄之续。
胡兰成极度推崇孙中山先生,他说孙文的学说比普朗克、爱因斯坦的学说「更高、更真、更大」……
量子论与相对论接不过是自然现象的记述,并不知尚有在其背后的理由,而孙文学说则总是直接对应大自然的法则而创造出来的。
因此,我们要坚持孙先生的学说,已经到了两个凡是的地步了….
孙文学说都是好的,凡孙先生说过的话决没有那一句是错的,惟是他未说过的地方尚有要我们继续努力。
// 这里我真的没有断章取义,这是一个完整的句子….
这样,应用文中之后提出的「宣传新知识」的五项措施,对现代社会的改革办法五项措施,我们就一定能够成功!
这些建议措施包括比如:
现在先得把美国式的学校制度与教学的方法改了,废止联考,使学生活泼起来,有生命、有感情。要恢复从小学起到大学以经书为必修课。学科学与史学教育上要把陈旧的十九世纪科学常识与史学常识改了,代以今世纪物理学上天文学上及历史学上的新知识,因以复兴中国自己的政治学产业学与文章音乐。
吐槽多了,我反而有点心生同情..
在领略了最后一章的“奇特”观点之后,我对剩下章节也没法集中注意力了.. 胡用自己的理解去“反驳”其它科学理论,透着一股浓浓的民科味道.. 举个栗子们:
罗素说0是一个群或团或类,殊不知0时尚未有一,如何能有这一群一团一类的一?
胡兰成 (2013-04-01). 山河岁月 (胡兰成作品) (Kindle Locations 81-82). 中国长安出版社. Kindle Edition.
再说一次,奴隶社会之后必有农奴社会,中国则因没有过奴隶社会,所以亦没有农奴社会。中国没有过农奴社会,是连考证亦不必考证。
胡兰成 (2013-04-01). 山河岁月 (胡兰成作品) (Kindle Locations 243-244). 中国长安出版社. Kindle Edition.
日本军曾占领了大半个中国,中国人当时并不觉得失去了,不过沦陷而已,照常有着它。
胡兰成 (2013-04-01). 山河岁月 (胡兰成作品) (Kindle Locations 287-288). 中国长安出版社. Kindle Edition.
西洋人惟有从他们的历史得来的知识,真理之神成主义,矛盾统一律,必然与偶然,个人对团体要牺牲不要牺牲等,皆是其阶级社会的反映。中国却有礼乐,礼实而乐虚,礼经而乐权,静则为礼,动则为乐,礼者尚别,乐者尚同,能正能奇故能变,这就把那些哲学的问题都解脱了。
胡兰成 (2013-04-01). 山河岁月 (胡兰成作品) (Kindle Locations 347-350). 中国长安出版社. Kindle Edition.
而在西洋则分工只是零件,凑起了亦仍是零件的综合,零件相加仍是零件,如0加0等于0,西洋东西都是附属品,附属于资本的灵魂,所以不具足,亦不亲切。
胡兰成 (2013-04-01). 山河岁月 (胡兰成作品) (Kindle Locations 947-949). 中国长安出版社. Kindle Edition.
还有一些对于孙中山先生的执迷:
他的三民主义不像外国的主义,他的国民党亦不像外国的党,他的干部,高级党员及政府官吏其实是幕僚,和古来开国英主的幕僚是一样的,称为代表与通过选举都只是依依名。他的组织民众并不看重职业团体,倒是像君子之交,天下事与四方豪杰共之。他的党仍像中国向来民间起兵聚众结党的党,他的党员是士。
胡兰成 (2013-04-01). 山河岁月 (胡兰成作品) (Kindle Locations 2344-2347). 中国长安出版社. Kindle Edition.
科学是孙先生更走在了物理学上发见了素粒子的世界的现象的前头,提出了宇宙生机说,而且孙先生的知难行易说是完全合于大数学者与大物理学者从事发见的经验的。
胡兰成 (2013-04-01). 山河岁月 (胡兰成作品) (Kindle Locations 2353-2354). 中国长安出版社. Kindle Edition.
还有一个压轴的,读到这里,真的笑,笑出声!
抗战是非常伟大的,它把战前十年间种种奢侈的小气的造作都扫荡了,于是中华民国便非常清真。
胡兰成 (2013-04-01). 山河岁月 (胡兰成作品) (Kindle Locations 2395-2396). 中国长安出版社. Kindle Edition.
话虽如此,抛开蕴含的观点不谈,文字确实美.. 但是观点不对了,没有卵用啊!
]]>书中的四个部分:
光是第一部分我能打6星,对我而言简直振聋发聩!一二部分一起我打个五星,第二部分是我已经大致知晓并基本认同的价值观。而整本书加在一起我却只给4星,因为后半部分所讲述的内容在我看来就不是那么客观或者令我们感同身受的了。
于是这里的笔记只有第一第二部分的内容。
那么究竟什么是自律呢?如何才能通过自律消除人生的痛苦呢?简单地说,所谓自律,就是主动要求自己以积极的态度去承受痛苦,解决问题。自律有四个原则:推迟满足感、承担责任、忠于事实、保持平衡。
斯科特·派克 (2013-10-01). 少有人走的路1:心智成熟的旅程 (Kindle Locations 136-138). 中国商业出版社. Kindle Edition.
这是书中所谓的自律。
其实,这本盛名已久的书我是看到「延迟满足」/ “Delay Gratification“ 这个名词才注意到的,这是我的痛点…. 而这之外的三个其实我对自己还比较满意了~
玩游戏若是没有打断会一直沉迷两三天,直到觉得在这个游戏上花费了太多的时间而没有工作/学习,引发愧疚感,怒删游戏、存档。以上是我周期性会触发的一个循环。
看小说、看杂书也是如此,觉得在开始工作之前,先看看这些,然后就拉不回来了 >_<
我对这些「诱惑」很难做到延迟满足,这是我对自身最诟病的一点 >_< 就连买了包零食我都想要一下子吃好多,不会想着存着明天吃..
其实这也是我所战斗许久的拖延症的外延,沉湎于 √ 掉 yet another TODO list item 的满足感,感觉自己在前进,却并没有推进真正需要做的事情。
在看这本书之前,我把这些现象归因于我的习惯、我对「又勾掉一项 TODO list」所带来的满足感的执着。但是看完我知道,其实没有那么简单..
推迟满足感,就是不贪图暂时的安逸,先苦后甜,重新设置人生快乐与痛苦的次序:首先,面对问题并感受痛苦;然后,解决问题并享受更大的快乐。在充满问题和痛苦的人生中,推迟满足感是唯一可行的生活方式。
斯科特·派克 (2013-10-01). 少有人走的路1:心智成熟的旅程 (Kindle Locations 157-159). 中国商业出版社. Kindle Edition.
对自我价值的认可是自律的基础,因为当一个人觉得自己很有价值时,就会采取一切必要的措施来照顾自己。
…
如果我们认为自己很有价值,就会认为我们的时间也很有价值,如此有价值的时间必须要加以善用。那位拖延工作的财务专家的问题,就在于她忽略了自己时间的价值,因此才造成时间的浪费。
斯科特·派克 (2013-10-01). 少有人走的路1:心智成熟的旅程 (Kindle Locations 222-226). 中国商业出版社. Kindle Edition.
问题是,有时候我觉得,不做学术上的事情,而去看本杂书,也并没有「浪费」时间…. 我看过一种理论,说拖延症只要在拖延的时候做的仍旧是有意义的事情,那就也算有成果。这应该只是一种安慰的吧….
书中甚至给了一种成因解释:
这样的父母把爱心丢在一边,取而代之的是控制和专制,这使得孩子对未来充满恐惧。他们觉得世界是不安全的,甚至把世界看成是地狱,这种恐惧的感觉会一直保留到成年以后。他们宁肯提前透支将来的快乐和满足,也不愿意推迟满足感,先苦后甜。在他们眼里,将来太遥远、太渺茫、太不可靠,所以,即使将来比现在好过许多倍,他们也不愿意去等待,只愿意得过且过。
斯科特·派克 (2013-10-01). 少有人走的路1:心智成熟的旅程 (Kindle Locations 241-244). 中国商业出版社. Kindle Edition.
T_T 可我不是这样的呀!那是什么的,或许只是以前没有主动去养成这样的习惯吧 😢
书中有写到:
力图把责任推给别人或是组织,就意味着我们甘愿处于附属地位,把自由和权力拱手交给命运、社会、政府、独裁者和上司。埃里克·弗洛姆把他讨论纳粹主义和集权主义的专著命名为《逃避自由》,可谓恰如其分。为了躲开责任带来的痛苦,数不清的人甘愿放弃权力,实则是在逃避自由。
斯科特·派克 (2013-10-01). 少有人走的路1:心智成熟的旅程 (Kindle Locations 433-436). 中国商业出版社. Kindle Edition.
没有错呀,可是我并不觉得放弃选择权因而放弃随之带有的责任是一件多么值得诟病的事情。人生已经这么艰难 XD
只要坦然接受随之带来的任何后果就好了呀。——这也是我一贯的观点:人为自己的选择负责。╮(╯_╰)╭
不敢承担主动选择的后果,只会在一旁吐反对意见的,叫做 naysayer.
30年前,心理学家埃里克·艾瑞克森曾列举出人生各阶段的八种危机。只有放弃旧的、过时的观念和习惯,才能渡过危机,顺利进入人生的下一阶段。不少人不敢面对现实,或者无法放弃早已过时的东西,所以无法克服心理和精神的危机,只能止步不前,不能享受到新生带来的欢悦,也不能顺利地进入更加成熟的心智发展阶段。我们不妨按照人生危机发生的时间次序,简单归纳我们在各阶段需要放弃的东西:
- 无需对外界要求作出回应的婴儿状态
- 无所不能的幻觉完全占有(包括性方面)父亲或母亲(或二者)的欲望
- 童年的依赖感
- 自己心中被扭曲了的父母形象
- 青春期的自以为拥有无穷潜力的感觉
- 无拘无束的自由
- 青年时期的灵巧与活力
- 青春的性吸引力
- 长生不老的空想
- 对子女的权威
- 各种各样暂时性的权力
- 身体永远健康
- 最后,自我以及生命本身
总体说来,这些就是我们在人生过程中必须放弃的生活环境、个人欲望和处世态度。放弃这些的过程就是心智完美成长的过程。
斯科特·派克 (2013-10-01). 少有人走的路1:心智成熟的旅程 (Kindle Locations 733-748). 中国商业出版社. Kindle Edition.
自我反思了下,我所还没有放弃的有:
不过,关于这些我的直觉是,所谓的「放弃 xxx」应该是个必要不充分条件。并不是说我去放弃 xxx, 就能达到哪些哪些阶段;而应当是在我真正达到那样的人生境界、有了对应的人生感悟之后,会自然而然地放下了这些那些的执念,放弃妄想转而接纳这个世界的真实,所谓知天命、不惑。说到这里,感觉和佛学也有点像了..
书中所描述的所谓的爱,和我的三观很契合:爱 是/会/应 共同成长成更好的人。
爱是一个长期、渐进的过程。爱,意味着心灵的不断成长和心智的不断成熟。爱在帮助别人进步和成长的同时,也会拓展自己的心灵,使自我更加成熟。换言之,我们付出的爱,不仅能让他人的心智成熟,同样也能使自己获益。
斯科特·派克 (2013-10-01). 少有人走的路1:心智成熟的旅程 (Kindle Locations 827-829). 中国商业出版社. Kindle Edition.
下边这段话我也比较认同:
其实,我们真心去爱某个人,是因为我们自己需要去爱别人;我们生儿育女,是因我们自己想要孩子;我们爱自己的孩子,是因为我们渴望自己成为充满爱心的父母。真正的爱能够使人发生改变,在本质上是一种自我扩展,而非纯粹的自我牺牲。所以,爱在某种意义上是自私的,最终追求的是自我完善。区别爱与非爱的关键不是自私或是无私,而是行为的目的。真爱的目的永远都是促进心智的成熟,出于其他目的的“爱”都不是真爱。
斯科特·派克 (2013-10-01). 少有人走的路1:心智成熟的旅程 (Kindle Locations 1210-1214). 中国商业出版社. Kindle Edition.
因此我不喜欢所谓的「为你而牺牲了那么多,你却 xxx」的套路。一来人类特别容易给自己正名,把本质是为了自己而做出的决定归因到他人身上,进行或有意或无意的道德绑架;二来亮出「为你而牺牲了那么多」的大旗之后,人类容易拥有特别高的期望,通常会伴有很大的失望。
越长大越发现,感同身受是件多么困难的事,只有在双方背景相似、或者处于非常类似的环境时才有可能做得到。当你对这个领域一无所知,你能感受到个毛呢?这也是之前看《忽悠的原理与技巧》时体会到的,强行换位思考、用自己在那个领域有限的知识去想象它应该是什么样,谣言就是这么传开来的说.. _
爱,最重要的体现形式,就是关注。我们爱某个人,一定会关注对方,细心照料对方,进而帮助对方成长。我们必须把成见放到一边,调整心理状态,满足对方的需要。我们对对方的关注,一定是一种发自内心的行为,这种行为不仅能促进对方心智成熟,还可以对抗自己内心的懒惰,让我们付出努力。
斯科特·派克 (2013-10-01). 少有人走的路1:心智成熟的旅程 (Kindle Locations 1256-1259). 中国商业出版社. Kindle Edition.
这就是所谓的爱让自己变得更好更完整嘛。
不把别人看成独立的个体,无视别人的独立和自由,这种情形最极端的体现,恐怕就是“自恋”了。自恋者不能接受这一事实:他们的子女、配偶和朋友,都有各自的想法与情感。
斯科特·派克 (2013-10-01). 少有人走的路1:心智成熟的旅程 (Kindle Locations 1730-1732). 中国商业出版社. Kindle Edition.
有时候我还觉得自己挺「自恋」的,但是看书中的这个定义,我觉得我仅仅只是「自视甚高」.. 😊 至少下边这个描述的肯定不是我呀:
自恋的人无视别人的存在,只把别人当成自我的延伸。他们没有感同身受的能力,从不去体会别人的感觉,也不具备为别人着想的能力。患有自恋症的父母,对于子女的情绪和状态,无法做出正确的回应,对他们的需要也不加体会。他们的子女长大成人,也很少懂得体察别人的感受,这是童年时期家庭负面影响的结果。
斯科特·派克 (2013-10-01). 少有人走的路1:心智成熟的旅程 (Kindle Locations 1763-1766). 中国商业出版社. Kindle Edition.
]]>昨天读到一篇微信公众号文章,于是昨晚就心血来潮读完了在 TODO 列表里都要长毛了的《月亮和六便士》。或许是因为已经被剧透过了的缘故,感觉并没有特别的激动?但是一气呵成读完确实挺舒服的。
「读书」于我而言是一个领略万千世界的过程。所以读书的时候我喜欢时不时代入角色,设身处地开一开脑洞:如果是我在那种情况下,会有什么样的反应、会不会做出同样的选择。这或许就是我特别钟爱历史类题材的原因之一,至少那里的事件不至于过分 YY.
而纯虚构类小说中更容易出于艺术效果而夸张,或者干脆就是作者自己半瓶水凭借不成熟的世界观瞎想象瞎写,扑面而来的套路、狗血、矫揉做作,一眼就能看穿是假的!是特技!!举个栗子,各种青春电影;举个反栗,《冰与火之歌》。讲真,我能接受的乱加特技的文章,可能只有小黄文了。_
因此,在本书的阅读过程中,我也一直在问自己一个可能每个人都会问的问题:「斯特克里兰放弃一切去追逐画家梦想,对吗?我会(应该)像他那样去做吗?」
其实这都是对自我价值观的拷问。自诩身处「守序中立」阵营的我,对他的这个行为当然不置可否,但是对于真的能够抛弃一切去追逐梦想的人,我会心存敬意,不做对错评判。当然,有一个前提条件——当且仅当他的行为与我没有利益相关!
若我身为“受害者”,比如妻子儿女,我对斯特克里兰抛妻弃子的「自私」行为当然会反对;当我身为某个看到斯特克里兰的艺术作品受到启发的后人时,我对他的妻子儿女或许抱有同情,但对他的行为可能会持中间偏赞同的态度,反正妻子儿女后来都好好地继续活着了不是吗。艺术家只要有好作品,对其人品的要求可以无限降低;坏人只需放下屠刀就能立地成佛。这个世界,真的就是这么不公平。
记者问老农:“如果你有一百万,你愿意捐给国家吗?”,老农:“愿意。” 记者:“如果你有一头牛,你愿意捐给国家吗?” 老农:“我不愿意。” 记者:“??” 老乡:“我真的有一头牛。” 「小孩子才只看对错,成年人纯站队」,这句我修改后的“金句”(我非常不喜欢“金句”这个词)或有偏颇之处,但依我所见人们的确总是在依据与自己的三观契合程度站队..
假定了置身事外之后,我对这样追逐梦想的行为不敢苟同,却心存敬意。
几周前,我刚刚在《海风中失落的血色馈赠 · 船》一篇中看到了下边这句几乎是完全相反的描述,那本书其实并没有给我留下太深的印象,但这一句话在那个瞬间打动了我。
就在那时,我对父亲生出无限的爱。花一辈子去做自己厌烦的事,比永远自私地追逐梦想、随心所欲,要勇敢得多。
[加拿大]阿利斯泰尔·麦克劳德 (2015-06-30). 海风中失落的血色馈赠(短经典·第四辑) (Kindle Locations 1571-1572). 上海世纪出版股份有限公司. Kindle Edition.
「放弃一切以追逐梦想」和「放弃梦想而坚守责任」这俩极端选择都是大毅力者才做的到的。正是因为非常困难,才会得到人们的赞颂。人们赞扬、感慨这样追逐梦想的行为,常常是因为把自己未能如此这般的夙愿寄托在了斯特克里兰身上,这是对「能为己所不能」的赞叹。
而我对二者都不敢苟同,我向来不喜欢极端的言语,极左极右都是。但要说哪句我更不喜欢,还是应属前者。因为人人都有梦想,却并非人人都有责任。「放弃一切以追逐梦想」,是一句蕴含了丰富情感更具煽动性的口号,也特别容易仅仅变成一句中二口号。不给方法论而只谈愿景无视副作用,这就是鸡汤。
如果知晓了所有这些可能的后果,而你依旧愿意抛弃一切以追逐梦想,恭喜你,你已经是我认为的这个时代的英雄了(句式语出这篇微信公众号文章,PS: 不看到最后不要开始吐槽)。
这些代价我做不到,也认为并不值得。所以我心存敬意。
诚然,极端情况的推演往往毫无价值,仅供站队。理想情况当然是你既能够追逐自己的梦想,整个社会也能与此同时一起受益,代表栗子有美国梦。
而真正出现在生活中的往往是一个左右为难的抉择:你需要放弃的虽不至一切却也会心疼,你梦想得到的并非没有了就活不了但也偶尔朝思暮想。在这些人生选择中就更不可能有什么通用的说明书指导了,而且别人其实也没有资格来代替做出这些判断。
话说,在科研中,最近我有涉及到两种模型的定义方式:
(同样的类比还有软件开发中的 Implementation 和 Interface.)
因为无法给出一个 operational semantics, 我只想说说我的 axiomatic semantics 里有哪些限制条件。这些和我二十多年来塑造起的三观也是一脉相承的:
权利边界。
我受连岳老师影响颇深,对于个人的权利边界非常敏感。《论自由》(On Liberty)曾经被严复翻译为《群己权界论》,这是一个我非常喜欢的译名。谁都没有权力慷他人之慨(俗称圣母)!
书中的斯特罗夫因为自己的滥好人,不顾妻子的拒绝,要把斯特克里兰带回家中照顾,还用上了道德绑架。在我看来这就是侵犯了小家庭中的权利边界。(所以他被绿的情节我看了心里毫无波动,甚至有点想笑 _)
对己责任。
我个人很喜欢帮朋友分析解惑。有一个「免责声明」是我所认同并且觉得每个人都应当知晓的:
话说这是不是古代谋士选主公的参考条件之一呀 XD。其实,上边说这么多,都是在立稻草人靶子,因为迄今为止我还没有这么遇人不淑过~
总结起来,愿赌,要服输。
对人责任。
契约并非不可背弃,然而若要背弃,理应承担相应的后果。如果必须牺牲他人的权益以实现自己的梦想,至少你得准备好接受接下来的惩罚。而且,如果你肩负不起这个责任,当初为何要将其扛起?(年少无知..)斯特里克兰你一开始结什么婚?你最后在塔希提为毛又结婚了?
更何况,真的一定需要背弃契约、放弃一切才足以实现梦想的么!这也是我对「放弃一切追逐梦想」这类口号背后所代表的价值观的最大不满所在。目前我理解的所谓成功管理者,应当能够整合内部大多数利益小团体的力量,使得大多数人能够为了各自的利益朝着一个共同的方向奔涌而去,至少得能够做到不拉后腿。我佩服那些虽千万人吾往矣的勇者,也更佩服那些能造时势的英雄。
总结起来,我并不认为「实现个人梦想」就必须要「放弃一切」。而当我真的必须「放弃一切」才能「追逐个人梦想」的时候,我希望愿赌,能服输。
PS: 我能够理解小说的情节应当只是夸张,我也了解这类夸张存在的必要性。再者说,学其上者得其中,口号喊的响一点,之后妥协的余地也大一点嘛。
20多岁的年纪,总不可避免会特别关注书中爱情/婚姻的桥段。
书中谈到最多的当属斯特罗夫和他的老婆之间的爱恨纠葛了。之前说过,斯特罗夫不顾老婆布兰琪坚决反对,坚持要把斯特里克兰带回家中照顾,最终布兰琪移情别恋跟着斯特里克兰跑了…. 斯特罗夫卑微到尘埃里地跪舔,求挽回(这其实只会把夫人越推越远)。最终果然并没有什么卵用,前妻自杀都不愿见到他。只是有一点我有些疑惑,一开始布兰琪为什么会那么推崇斯特罗夫的画呢??
如前所述,看到情节进展到斯特罗夫戴绿帽之后,我「甚至有点想笑」。按理说,我当怀有悲悯之心.. 但是或许是本性使然,我对一而再再而三卖蠢(没错,我把这种滥好人、毫不在意自由边界的行为称作蠢)的桥段非常厌恶。所以《僵尸肖恩》这类充斥着卖蠢行为的电影虽然有很多人都说好、黑色幽默,但我就是不喜欢。若是像大部分剧集里的憨豆那样并未有人因此受伤还好,尚可称得上是呆萌。然而有无辜群众因之连累的话…. 并不是我上纲上线,我对卖蠢的人并无成见,我只是对被他波及到的无辜吃瓜群众更加心存同情。
不过,看到斯特罗夫跪舔之后,心底多少还是会有些怜悯,毕竟他说:
我爱她远远多过爱自己。我觉得如果你在谈恋爱的时候还讲自尊心,那原因只有一个,其实你最爱的是你自己。
威廉·萨默赛特·毛姆 (2016-01-01). 月亮和六便士(13000字深入导读,206条增注)(果麦经典) (Kindle Locations 1916-1917). 天津人民出版社. Kindle Edition.
这个观点在不在理另说,看到这句话我自己其实也很有感触,因为我就一直特别爱自己……
其实,讲道理我早就犯了嗔戒,这也不符合
Do not judge, or you too will be judged.
的价值观,而我却并不在意。20多岁的年纪里,我仍旧想要改变这个世界,让它变成更符合我心中美好预期的形象。因而我对不平事仍旧会生气,想要让它变得符合我所认为的「好」。这也算是我的「月亮」。不过话说回来,我好像一直没有机会描述我心中的「月亮」..
大三下学期的五四青年节夜晚,我在图书馆里拿出白纸列举我的喜好,想要找到我的人生目标。这个问题我在之前的确很少思考过,这或许是当时三线小城市孩子的忧伤之一(?),眼界就是不够开阔,很多东西没人提点就是意识不到。
最后我粗略总结的人生目标是:
To be enlightened. To be enlightening.
或者用文言文是:
己欲立而立人,己欲达而达人。
人生目标这么大的事件怎么可能一稿就是终稿呢。但接下来的几年里我也并没有一个清晰的路径能够直接通往我要的人生目标。交换、实习、毕业、出国、科研,我被一步步推着往前走。现在的我对于影响他人并没有太多的执念,单纯地只是想多体验花样的人生,而又不至沉迷。与此同时他人若在我这里有所求,我也不介意倾囊相授。
我突然想念两句诗:
“Who drives me forward like fate?”
“The Myself striding on my back.”
– Stray Birds
写了这么多,三观梳理校验完毕。😊
]]>好久好久没有写新博文了。暑假几乎一晃而过,但过去的这几个月中似乎并没有出现强烈的想要直抒胸臆的冲动;日常的科研笔记也没法放上来;读书笔记也少了很多。要不是今天决定要写一篇《月亮和六便士》的读后感,新的博文或许得等到新学期开学…. (这里我原本可以用猴年马月的梗,但是时效已经过了.. ╮(╯_╰)╭)
读书笔记变少的一个原因,是我开始大量采用「听书」的方式增加阅读量。众所周知,我是一个非常不能容忍浪费のboy. 这段时间我的工作流发生了巨大改进,主要归功于下边这3个 app:
Pocket: 自从4月份发现了 Pocket 可以把添加进去的文章念出来之后(我为此专门测试了如何在手机上快速分享添加文章到 Pocket 中,详见这篇),我在通勤途中、炒菜做饭期间基本就都在听预先添加好的文章了。
即刻: 所听文章的主要来源是我的 RSS 订阅源以及微信公众号。这时我才发现我的每日有效信息摄入其实是非常贫乏的,正巧看到霍炬推荐「即刻」:(source)
内容创造迟早会都变成收费的,这件事我非常确信。
……
你可以用他订阅各种主题列表,然后混合起来获得更新推送。这是在今天这个封闭环境下,最接近过去Rss阅读器的东西了。
于是现在我基本可以保证每天都有优秀内容可以看(tīng),转而要再次担忧信息过载的问题了..
微信读书: 添加的文章短时间内总归还是有读完的时候,何不直接听书呢。我测试了几个读书的 app, 感觉还就是「微信读书」读的最好听。
不过讲真,「听」其实只是对时间的废物利用:
听比看慢多了!我前前后后听了好久(估计都以周为单位了)才听完了《呼兰河传》。不过也正是因为如此,得以被动地细细品味其一字一句。
听没法做笔记!听的过程基本都是处于手不方便操作的情境下,比如高速上.. 那么不做笔记有什么后果呢?大二前后我曾经在空余时间陆陆续续听完了《耶鲁公开课——死亡》,但是现在毛!都!不!记!得!了!相比之下,从博一开始的「上课用 markdown 记笔记」的习惯几乎可以确定就是我又一次蜕变的主要驱动力。O.O
所以,目前我优先听那种容易断点续传的、不太需要做笔记的、不是特别长的书。不听白不听,只希望不要听了也白听.. (′⌒`)
不过讲真,月前读书少还有一个原因也是不容狡辩的。6月的大部分时间里,我一直处于一种周期性颓废的状态,学术没有动力,书也不想看。6月很蹉跎,是因为5月下旬出去玩了!(对呀,我怎么就忘了写一篇游记了呢?!)不知道其他人是怎样,反正我旅游完就很难收心,需要好长一段时间后才能恢复到学术状态。
5月,我充满遗憾地结束了春季学期 😭,由此开始了我一个人的暑假。
在下旬我悄悄和小伙伴们去了
这么一列举还是去了挺多地方的呀。旅游的初始旗号是毕业旅行,当然,不是 我 毕业。只是恰好东海岸沿岸一线是我一直想去的地方,便加入了 接待小伙伴家长旅游团。
在山区的前半段是 road trip, 我们一路从大烟山开过了整条 Blue Ridge Pkwy, 从亚特兰大开到了夏洛特维尔,又在 Shenandoah 里见到了熊!一路和新认识的小伙伴相处的很投缘很开心~ 也有拍到了很喜欢的照片~ 😊
在城市的后半段,某小伙伴的男票加入了行程。和他也很聊得来呀,祝福她们能一直幸福走下去~!不过没有对比,就没有伤害,电灯泡单身狗(01/2018: 不再是了!)总归还是要独自思索:「我是谁?我为什么会出现在这里?」
5月过后,这两三年经常在一起玩耍的这一批小伙伴们就基本全毕业了,绝大部分都跑加州去了…… 湖区似乎就真的只剩我了…… 倒也没有特别伤感,总感觉,迟早还会在湾区见面的,不是吗~
不过,以后估计就很少有机会简单地响应旅游征召了,得自己纠结好久能去哪里玩.. 能和谁去.. 直到最后觉得不如还是宅在家里 >_<
暑假留校的小伙伴们也有不少,至今玩了好多次桌游、一起去刷了魔兽电影、开了卡丁车、一起看球。对呀,自认为纸上董秋迪的我怎么可能错过暑期的美洲杯+欧洲杯呢!这也是6月蹉跎的另外一个不可忽视之原因…. 我还去现场看了美洲杯在芝加哥的两场比赛——小组赛 阿根廷vs巴拿马 以及半决赛 智利vs哥伦比亚。#一个足球狗的信仰!!
7月总算恢复了大半的学术状态。部分是因为大师兄毕业答辩老板要回校.. 和老板开会更新了下进度,补足了动力。经实测,一次会的动力大约就只能维持一周左右.. 所以一周设为7天应当是先贤的智慧咯?!
没有三了,就这些吧,其实或许还有一个点可以说,不过想了想还是等待崭新的秋天吧。
]]>https://www.zhihu.com/question/35712237/answer/95059455
古罗马帝国的戴克里先皇帝!
戴克里先曾经贵为罗马帝国的皇帝(公元284年11月20日至305年5月1日在位),在位期间结束了之前235-284年期间的军人干政、皇帝轮流做明年到我家的乱象,那段三世纪危机期间内罗马出现了26位皇帝,平均在位时间只有2、3年。作为当政期间罗马世界的第一人,戴克里先曾经的荣耀无可比拟吧。
戴克里先在位期间进行了改革,如
这些改革措施是为了给罗马帝国续命,好坏另说,其影响力肯定是杠杠的。没有这些改革的话,罗马帝国有可能在那时候就已经灭亡了。但也有很多人觉得:
从戴克里先开始,到君士坦丁奠定基础之后的罗马帝国,已经不再是罗马了。
戴克里先皇帝在公元305年执政20年多之后主动宣布退位,而且退的干净利落,直接回故乡养老去了。马克西米安是当时另外的一位正帝,是戴克里先很信任的副手,他和戴克里先一起退位,但是后来又复出,只是后来在与君士坦丁权利斗争中失败了,在被君士坦丁俘获之后:
不久,副帝君士坦丁公开宣布,前任正帝马克西米安自杀身亡。
…
公元310年开始,随着马克西米安的退场,有关戴克里先的记载也就很少看到了。不管正帝还是副帝,甚至被定为篡位者的马克森提乌斯,在公元310年之后,所有掌权者都开始恣意行事,不再理会戴克里先的意见。
戴克里先只有一个女儿瓦莱里娅,没有儿子。在四帝共治的期间,瓦莱里娅嫁给了戴克里先的副帝伽列里乌斯。时间来到公元313年,此时争夺最高权力的帝位候选人只剩下君士坦丁、李锡尼和此时的东方副帝马克西米努斯·代亚。
而君士坦丁和李锡尼都已经娶了有王室血统的曾经的“公主”,所以剩下的东方副帝先生就向已经守寡了的瓦莱里娅求婚(她嫁的原副帝伽列里乌斯已经在2年前去世了),也想要这么一个政治身份。
但瓦莱里娅拒绝了他的求婚。恼羞成怒的马克西米努斯·代亚立刻派兵,不仅将这位先帝遗孀,还有恰巧在这个时期来探望女儿的戴克里先夫人一起逮捕,关进了大牢。
当时戴克里先身在亚得里亚海的海滨宫殿中,当得知这个消息后,立即派遣使者来到副帝跟前。除了对妻女所受到的待遇表示抗议外,还要求副帝把两名女性交出来。副帝虽然将两人释放,却没收了一切财产,并流放东方。
这时候是公元313年,离戴克里先退位仅仅过去了8年!!果真是人走茶凉的最佳注释,308年前后戴克里先还能够为新一轮的四帝共治牵牵线搭搭桥,现在连自己的妻女被人流放都无能为力了。
我们实在不知道,当时已68岁的戴克里先,是如何承受这种明知妻女在外过着流浪生活却无计可施的日子。这时已经没有任何人再理会退位老皇帝的意见了。
那位不要脸的副帝先生于同年8月死亡,书上原话是:不知是自杀,还是被手下官兵暗杀。之后李锡尼掌控了罗马帝国的全部东部区域。戴克里先的妻女在知道消息后决定求见李锡尼,毕竟李锡尼登上现在的东方正帝的位子当年也是有戴克里先和瓦莱里娅的前夫——前任正帝首肯了的。她们想要拿回被没收的财产,回到戴克里先身边。但是!
结果李锡尼根本就不打算接见这两名应该算是旧识的女人。无奈之下,这对母女只好继续流亡。为了尽可能地接近戴克里先,两人来到了希腊的塞萨洛尼基。而李锡尼派了一队军人在此,手里拿着死刑判决书在等她们。统领罗马帝国20年、创立“四帝共治制”的戴克里先的妻子和独生女,就在面对爱琴海的塞萨洛尼基中央广场被处死,尸体直接让人丢进了大海。
戴克里先曾经贵为罗马帝国皇帝,但是晚年潦倒以至于连自己的亲人(妻女)都保护不了!他退位后还看着自己曾经建立的各种政策制度一步步崩溃及至全面反转:四位皇帝之间的多年内战已经让人完全不相信四帝共治的好处了;313年6月15日的米兰敕令也昭示着之前抑制基督教的国策开始反转。
戴克里先也于313年去世,不过书里说史学家并不知道他去世的具体日期,也没有他晚年心境的资料记录,不知道他对这些坏消息了解多少。在我看来这些是对他一生的否定,把你的荣耀一点点撕碎给你看。
以上内容来自于《罗马人的故事13: 最后一搏》,由以往读书笔记整理,如有错误谢谢指正。:)
]]>如果你不是Purdue同学, 你可以自动忽略下边所有的东西..
我在地里也发了个同样内容的召唤帖。希望不用让我进一步到各种群、贴吧里发广告了吧 = =
04/11/2016 Update: 找满啦~ 谢谢诸位
04/07/2016 Update: 签了Copper Beech - Baywater的4人间(4bed 4bath)了,人数2/4, 欢迎前来填满!
04/02/2016 Update: 目前倾向于签Copper Beech - Baywater的4人间了,有兴趣的同学可以继续联系我 :)
本人13fall入学,刚来时候的认识的好多小伙伴都已经陆陆续续毕业走了.. 目前我住在Beau Jardin (是一个在校外、很实惠的小区)的3人间,当前的俩室友一个要毕业一个要搬走但是我倾向于继续住在这里,所以我正在找1-2名今年秋天起(16fall, 8月开始)的室友(尽可能长期),新室友是新生老生无所谓。下边是具体信息,联系方式在最后。
自我介绍:
室友福利:
对室友的期许(我自己也会做到):
— 上边是关于找室友的部分,下边是关于找房子的部分 —
如上所言,我现在住在Beau Jardin的3人间,这里很实惠,去年一年里每个月的花费平均能在350以下(包括了水电气网等等之后),房子虽然不如其它地方新,但是对我来说够用了(反正我平时也只是回来吃个饭睡个觉..),而且空间也挺大,物理位置也方便。
上周我收集比较了大约20个学校周边小区的参数,反正我应该只会考虑这俩选项了:
联系方式:
// 写了这么多,好累.. = =
]]>这两天偶然发现Pocket可以朗读文本,这样可以把平时通勤的时间也利用起来,挺棒的。但是,微信内嵌的浏览器对于Android系统分享集成的很烂,要分享到Pocket的话,需要复制链接,然后进入Pocket app, 再点击添加。最烦的就是切换app的这个过程了。
那么,自由度这么高的Android要怎么设置自动监听剪贴板的URL链接添加到Pocket呢?
实测显示,Pocket能够自己判断分享过去的内容是不是URL, 对于无法添加的普通文字,它会报错的,所以我只要能做到自动“分享给Pocket”这一步就可以了。
花了点时间把已经火过好一阵子的IFTTT仔细了解了下。概念确实挺棒的,我也发现了很多以前不了解的能够增加生产力的服务..
我就此决定了弃用Feedly, 启用Inoreader. 主要诱因就是Feedly要支持IFTTT居然还得收费.. 换成Inoreader之后就能设置每天收到一封daily digest, 显示昨天在RSS里关注的所有journal papers的更新了。^_^ 话说,不同RSS reader之间的用户黏性真低啊,毕竟迁移起来特别方便,只要导出导入OPML就可以了。
另外我也决定试试Todoist, 当前的Omnifocus于我并没有特别之处,还老贵.. 最常使用的桌面端快速录入快捷键发现Todoist也支持的。
言归正传。
但是,我并没有看到其Android Device channel中有提供clipboard相关的trigger. 难道为了这个小需求还需要自己创建一个channel不成?现有的东西毕竟还是太粗粒度了呀。所以我还是得另寻他法。
此外,我感觉IFTTT最大的槽点是:这么多年了,居然仍旧连个propositional logic都不是!!讲真,我挺失望的。多个条件同时满足也做不到,满足之后的多个action相互配合也做不到,你就只能做那些浮于表面的事情了吗?比如说我想要一个定时的设定,IFTTT里有Date & Time的channel, 但是里头指定的action channel是限死的,i.e. action channel里能访问到的变量只能来自于trigger channel, 在这里就是时间信息。我想要在这时候读Evernote的数据怎么办?做不到啊!(要是你知道怎样能完美设置的话,请一定要告诉我!拜谢 Orz)
其实我就是想看看要设置一个「每天晚上写下第二天要做的事情,然后第二天一早自动提醒」的流程用不同工具该怎么操作。
IFTTT下, 如上所述,IFTTT里没有提供这样延时的设定啊,怎么办呢?我看到了Email Digest channel, 会发每日总结邮件,这是IFTTT里唯一的延时类锦囊了吗?但是数据哪里来呢,我蛋疼地添加「一旦Evernote里某个文件夹下多了一个note, 就把它加到第二天的Email Digest里」,然后「一旦受到相关新邮件的话,就在手机上单独显示一个通知」(避免和其他邮件的通知并到一起去)。这样能行,第二天早上09:54我收到了daily digest邮件,里头是我昨晚写下的内容。
稍微方便一点的设置是将定时机制交给外部工具去做,比如说用Boomerang定时发送邮件,然后一旦收到邮件就在手机上单独显示一个通知。实测可行。
而最方便的设置其实是,完全不用IFTTT.. 毕竟术业有专攻,Google Keep做这个就是设置一个reminder的事情!_
平胸而论,IFTTT在特定的场合挺有用的,比方说喜欢的妹子发了条状态,我立马就能收到提醒第一时间去点赞。但是.. 我喜欢的妹子她好像基本不在这些SNS上发东西.. [抠鼻] // 嗯你说啥?闭嘴!我才不是被屏蔽/拉黑了呢!
其实在仔细了解IFTTT之前我是先看了Android Tasker的,很早以前就用Google Opinion Rewards回答问卷攒的钱入了这个app. 但是这次才开始真正了解,这里有一套“教程”,我反正是看到一半就跑去了解IFTTT了.. 如果说IFTTT是漂亮的UI、不复杂的操作、简单的功能,那么Tasker就是反人类的UI、非程序员很难了解的操作、NB的功能!
在IFTTT碰壁之后,我再次回到了Tasker的怀抱里来,毕竟,功能肯定是能做到的,但是具体怎么做呢?直接说结论吧:
首先看Pocket的文档,里头介绍了直接发一个“ACTION_SEND”就可以分享至Pocket:
If your app already has sharing functionality using an Intent.ACTION_SEND action, with a text mimeType, then ‘Add to Pocket’ will automatically appear in the Share Via menu/chooser for any users that have Pocket installed.
所以我要做的是发一个Intent给Pocket app, 具体在Tasker中的设置步骤是:
添加一个PROFILE, Add → Event → Variables → Variable Set. 剪贴板的变化已经在系统变量中了,直接输入%CLIP
或者直接在右边点开全部选项选取也可以。这里的%CLIP
这样的全大写东西表示系统变量,值就是剪贴板的内容。这样设置就表示这个profile的触发条件为——当剪贴板内容变化时。
然后需要添加一个TASK, Add → System → Send Intent. 然后就是参照着这个帖子里的2楼所介绍的关于分享到一个特定app的设置写法了:
1 | Send Intent [ |
注意extra的内容要写%CLIP
, 是发送的内容。然后package要写上Pocket自己的包名,这个我是从其在play store上的url里确认的:https://play.google.com/store/apps/details?id=com.ideashower.readitlater.pro说明它的包名就是com.ideashower.readitlater.pro
.
我甚至写了个知乎回答..
就是这样了!Tasker的UI真的真的是反人类,而且常驻通知栏导致的那个小图标要怎么去掉呢,强迫症表示不开心。别人家的app即使常驻通知栏也可以选择去掉这个头像的。
在全部设定完毕之后,我才发现了这么一个app——Clipboard Actions. 好看!实用!几乎完美解决了我不离开当前app快速分享链接到Pocket的需求。
那么我折腾个什么劲儿呢..?
]]>Disclaimer: 这篇博客只是记录了我寻找解决方案的整个过程,大家都是遵纪守法的好公民嘛,你要是用这个东西乱来,反正后果我是概不负责的。(ง •̀_•́)ง
// 以下试验环境在墙外,未测试过其它环境,反正当前的东西已经能够满足我自己的需求了。
我已经很久很久没有下载大文件到本地另行存储的需求了,数据基本都在云端里静静地呆着。因此当我真的要下载某一个文件却怎么都下载不了、就连充了会员已经离线好都没有什么速度的时候,本宝宝很不开心!
感觉最近网络条件挺差的,1月上旬中旬的时候在家里、在学校,知乎里的图片完全加载不出来,反正第二个包开始就都丢了,用手机流量上网就完全没有问题。后来正常了一段时间,但是这两天症状又出现了,这是在主动帮我戒知乎吗?!
但是人怎么能让尿憋死?!刚过去的这个周末正好在帮助上初中的妹妹设置翻墙,发现去年暑假能用的ss + do的方案早已不能用了.. (最后据说好像用lantern效果还可以,不知道会“可以”多久)。不过正好提醒了我,也许我可以拿VPS做一个临时私人离线下载服务器呢!
我们都是遵纪守法的好公民,当然要遵守各家VPS的Terms of Service啦!
虽然我想要下载的那个文件已经在网盘上离线下载好了,应该已经不会再有P2P的需要了。我不太想直接在VPS上去下载,因为.. 因为我已经充了网盘的会员了啊.. [手动抠鼻]
但是为了保险起见,我还是尽量挑了不禁止P2P的VPS供应商,谁知道以后会不会一不小心又需要了呢。而在Digital Ocean的ToS里头明确写了:
Subscribers of Grandfathered Accounts must NOT:
(i) run Torrents for download or Seed Servers, TOR, or services that include content of an adult or pornographic nature;
…
Failure of Subscribers of Grandfathered Accounts to follow these terms will result in the revocation of their Accounts’ grandfathered status.
我对Digital Ocean一直挺有好感的的,从Github的学生大礼包可以拿DO的$100 credit(诶,现在好像只有50刀了..),我在他家的使用体验一直很棒!
特别是去年秋天,当时在上计算机网络,课程项目需要使用Mininet来测试评估不同网络条件下不同topology的性能差异。一只妹子本机上的环境配置一直不成功,于是我干脆帮她在DO上搭了个测试环境 :) 实测效果还挺好~ 只不过因为我设置的密码太简单,第二天收到邮件说检测到异常网络情况,半夜里往中国发了好多SYN包(SYN flood!!)。在后续停用、恢复数据的过程中,客服的表现让我很满意呐!
不过既然你家不许用这些,那我就不叨扰了。
然后,我看到在Linode的ToS中好像要求会松一点:
Linode does not prohibit the use of distributed, peer to peer network services such as Tor, nor does Linode routinely monitor the network communications of customer Linodes as a normal business practice.
However, customers are responsible for the contents of network traffic exiting their Linode.
Any usage that prompts the receipt of abuse complaints pertaining to violation of United States and/or international copyright law must be promptly discontinued to avoid service cancellation for violation of these terms.
就决定是你了!
我要做的事情是:
后者随便scp啥的都能做,就不管了。第一步是在VPS下操作,所以我得先去找找命令行下有什么工具能够自动从网盘下载。
我先去找了找这些个网盘有没有放出命令行API, 您别说,还真有!bypy: 这是百度云的Python客户端(应该不是官方的吧?),截止到今天已经有1598个星了,很活跃的样子!文档也已经比较完善了。关于如何使用这个bypy的样例/解说,也许可以参考这篇博文。
但是!我并没有看到115能用的命令行API, 似乎其曾经有过一个官方的Linux (Ubuntu)客户端(beta?), 但是现在好像没有了.. 在Github上搜索相关项目如下(截至目前只找到这么几个显著相关的,没有其它的了):
这个:是个非官方的Python API库,文档也很详尽的,应该是和bypy一样的效果,但是!其显示已经Deprecated了.. 就是因为官方现在收紧了登录策略,只能通过自家浏览器和移动端登录了.. 真是坑啊 →_→
这个:似乎就是命令行批量添加种子/磁链到离线下载,并没有我想要的下载出来的效果。不过这个repo有启发的地方在于:推荐了使用EditThisCookie插件导出cookies, 即可正常使用新115登录方式。不过每次都要导出一下cookie就是了..
这个:和上边的一样,似乎都注重的是用API操作真正的网盘,而非下载东西到本地,所以并不是我想要的。
最重要的东西放到最后说!这个:是一个浏览器插件,能够导出Aria2 RPC下载!最终结果表明,这个就是我想要的东西了!!话说同一个作者也有百度网盘的版本。他还写过扇贝网的插件!天呐,我想起了曾经每天刷单词的时光 ◑ω◑
我搜了下,Aria2是Linux下的很常用的下载套件,大部分方式都支持!它的一大特性就是提供RPC模式,就像是为这个远程服务器离线下载专门设计的一样!Aria2还有个YAAW的工具,提供了Aria2的GUI管理界面!能够达到的效果是——我访问VPS上的YAAW界面,发出特定指令,VPS上的Aria2工具就会自动从指定的地方下载文件,YAAW界面还会定时更新进度、速度等等,所以远端服务器真真正正变成了一个下载器了!我猜想那些智能路由要自动下载的话应该也是类似的做法的吧?
在加上Aria2的关键字后,临时私用离线下载服务器的相关搜索结果一下就多了很多了,原来是我之前太孤陋寡闻呐~ 不过大约几年前的版本基本都说的是拿到一个链接,然后在terminal里手动输入这个链接下载,看来RPC模式是比较后来才添加的咯?
随手搜到的比较有干货的博文可以看这里,其实就是上边俩插件作者的科普博文!后边写Aria2的设置文件可以参考这里。
工具找好之后,离全部搭建起来只有一步之遥了。最终效果描述如下:
我的具体设置步骤如下:
在Linode上新建一个node, 我就挑了个最便宜的,Ubuntu系统,一个月5刀,还可以接受,不过似乎没法暂时suspend等之后要用的时候再启用..
建好VPS之后,看看比如说这篇博文,做一些安全方面的设置,上次在Digital Ocean被compromise的事情还历历在目啊。
VPS上设置好环境,安装好我常用的几个工具。
安装Aria2. Aria2需要写配置文件,就放在~/.aria2/
下吧,这是默认的放置路径。这个文件夹下需要建立2个文件,
aria2.conf: 具体的设置文件,配置怎么写可以参考插件作者的科普, 随手搜到的博文, 还有官方文档。关于aria2.conf, 有几个东西特别要改:
aria2.session: 这是用于断点续传啥的,一开始touch一下建一个空文件就好,若是没有这个文件的话启动aria2c的时候会报错的(应该是我设置了断点续传之后?)。
如果要设置开机启动的话,在/etc/rc.local
里加上一行aria2c --conf-path=xxxxx -D
,这里-D表示执行在后台的daemon.
git clone YAAW到VPS上的随便哪个文件夹下。
安装Nginx. 具体的安装过程我是参考着池老师的博客来做的。也照着里头说的去设置一下开机启动Nginx.
然后还需要修改Nginx的设置文件,使得我们能从公网IP直接访问到YAAW所在的那个文件夹。我以前没用过Nginx, 搜了下,应该是需要去改/etc/nginx/sites-available/default
这个配置文件,默认使用的就是default. 把里头root后边的选项设置成自己的YAAW所在的路径就好了。然后reload一下Nginx就可以了。可以在本机浏览器上用IP地址测试能否访问的到。
本机浏览器 -> 访问IP -> Nginx映射到YAAW文件夹 -> YAAW操作VPS上的aria2c工具。这么一套流程我觉得超棒的!!
安装百度网盘助手/115网盘助手,前者的设置就在导出RPC的下来菜单那里,后者的设置页面在个人信息那里点开来,后者没看其github项目主页的话我是肯定找不到的.. Chrome webstore里还有人因为找不到这个给了1星差评 = =
两个插件设置大同小异,和YAAW页面里的设置也基本都一样。最重要就是那个JSON-RPC-path, 这个在YAAW的主页里有介绍,需要写成这个格式:http://myusername:mypasswd@123.456.789.123:listenport/jsonrpc
.
俩插件都提供了验证是否连接成功的选项,只要上边这个路径设置正确,应该是会连接成功并显示VPS上Aria2的版本号的。
Done!
整个东西其实并没有什么技术含量,只是把几个已有的工具拼接起来而已,源码都不用改,写几行配置文件的事情.. 但是正因如此,才展示了现有工具链的强大啊!
VPS还可以做很多事情呢,也许还可以用它去自动去爬小说的更新什么的,咳咳咳..
]]>正如书中所言:
有时书本也要到适当的时候才会引起我们共鸣。
…
读小说需要在适合它的人生阶段去读。记住,玛雅:我们在二十岁有共鸣的东西到了四十岁的时候不一定能产生共鸣,反之亦然。书本如此,生活亦如此。
确实是这样的,刚开始读的时候还怀疑,或许最近的心境并不适合静下心来看小说,读完之后只剩庆幸,幸好在合适的时候看到这本书。所以即使某些地方我不满意也无所谓了。在另一个时空里,在另一个心境下,或许我并不会被本书轻易打动。虽然它读起来确实很愉悦啊,描述假冒作家弗里德曼等等章节都是加分项,23333
还有,这本书的译者是孙仲旭老师,翻译得很棒,可惜已成绝笔,向他致敬!
// 程度渐次增强。
作为一名文学博士,书店老板,A.J.他定可算是真爱了。他的小岛书店牌子上写着:
无人为孤岛;一书一世界
高中语文老师曾经在课上说过:(大意如此)人的一生是有穷尽的,而每一本书都是一个新的世界,书里的世界是无穷尽的。我深以为然奉为圭臬,然后将其作为我看网络小说的正当解释…. →_→ (不过只要养刁口味、降低容忍度、提高弃坑率,现在倒也不会沉迷就是了。)
在大部分时候,读书于我只是消遣,或是陷于孤岛迷途之中的避难所。这一本其实也不例外。
此外我也没有A.J.那对于电子阅读器的敌视,毕竟这几年我几乎所有新增书籍阅读量都来自于它。
独在异乡为异客,每逢佳节倍思亲。孤独的感觉在
时体现的最为淋漓尽致。毕竟Social / Study / Sleep三取其二,那么只能放弃social了.. 而且今年的春节再次过的并没有什么年味,前两年的日记里也是类似的记录,只是今年特别明显。除了近期情绪的加成之外,关键在于参与感越来越低,就连拜年问好的次数都越来越少了。孤独能磨练意志,也能消磨锐气。所以暑假一定得回国一趟了吧,不然真的要烂掉了….
A.J.的人生谷底应该比我这凄惨多了,至少我还有心力不断吐槽,至少我还能有个盼头。书中开篇他是处于真正的人生低谷的状态,妻子车祸去世(差不多相当于他和世界的接口断开了),每日借酒消愁,计划用来保证退休金的绝版书也丢了。这一切直到小天使玛雅的出现!
A.J.一开始连亡妻妮可曾为书店举办的「吸血鬼主题舞会」都不喜欢。在小玛雅降临之后,他从亡妻姐姐眼中曾经「最自私、最以自我为中心的人之一」,慢慢的与整个社区的建立了越来越紧密的联系。在亡妻姐姐流产住院时,他“甚至”能“赶去”医院,这对于遇见小玛雅之前的他应该是不可想象的。
因为岛上的妈妈们时不时来看望小玛雅,A.J.也开始进一些以前从不正眼看待的书,比如说女性喜欢看的杂志和爱情小说.. 最后还成立了一个相关读书小组:= =
四月份是《我是海明威的巴黎妻子》,六月份是《可靠的妻子》,八月份是《美国妻子》,九月份是《时间旅行者的妻子》。十二月时,他找不到书名中有“妻子”的好书,她们就读《美声》。
有时候来探望的妈妈们也会带着自己的孩子来,于是A.J.也进了一批童书,A.J.打破以往偏见之后感慨「这些作者中有些人真是才华横溢,我以前真的不知道」..
与此同时,主线人物之一的兰比亚斯警长也建立了一个“警长精选读书会”,从各种侦探犯罪小说开始。= =
警长还帮助举办了小玛雅的非受洗party, 会上A.J.再一次体验到了爱的力量:
A.J.看着穿粉红色礼服的玛雅,心里隐约沸腾着一种熟悉的、略微有点让他难以忍受的欢欣感。他想大笑,想一拳砸在墙上。他觉得自己醉了,或者至少是喝了太多汽水。精神失常了。一开始他觉得这是快乐,而后才知道这就是爱。要命的爱,他想。
不过说实话,A.J.决定收养小玛雅的那段我觉得跳转的太快了。A.J.前两天还曾经坚决表示「我没法养小孩儿」、「当然没有。我只照看她到星期一」;前一天晚上还对玛雅说「有些人注定不会永远留在你的生命中」、「可是我老了,很快你就会忘了你曾认识我」;而周一负责管理弃婴的政府工作人员一来,却很快就表示出了要收养玛雅的意愿了。你原来是在傲娇吗?
A.J.喜欢上Amy是因为他看了一本她4年前诚心推荐过的书开始的。而他表达好感的方式是:「把Amy所在书商公司的书目都看一遍,针对每一本聊一聊读后感」…. 但是把这些书单刷完之后,他就找不到话题和Amy说话了….
卧槽,这简直一毛一样啊!
A.J.把Amy最喜欢的《真爱如血》电视剧给都看完了,从此他在和Amy的聊天中时不时就会说一说剧里的梗。
卧槽,这简直一毛一样啊!
A.J.最期盼的就是来年春天和Amy一起讨论夏季书目的时刻。但是前一天Amy摔伤了,于是只能通过Skype视频。全程A.J.都在关注Amy的背景板,尽可能多地了解她的喜好。
这也像是我会做的事情.. 相比于时不时「Hi, 在干嘛」然后机械性的查户口问答几句,要是没话题我宁愿不说话..
A.J.以带着小玛雅去Providence看园艺造型动物的名义,打算“顺便”去探望摔伤的Amy. 但是去了才发现动物园在11-5月期间是不开放的……
A.J.就连去Amy家里探望,都还是打算带着小玛雅一起去的,要不是同行的警长神助攻带了小玛雅去了博物馆玩,A.J.真的就这么做了.. 那样的话,他去Amy家里之后应该就不会——哔——哔——,回来之后就不一定在一起了。但是书里这么快速进展的剧情我表示真的不能接受!!
确立关系之后,A.J.为了创造让Amy多来爱丽丝岛的理由,决定举办Amy最喜欢的那本书的签售会。他买了戒指想在会后求婚,A.J.并不打算在会上求婚,只为避免因群众压力逼迫Amy同意(我也表示赞同)。小天使玛雅告诉A.J., 她曾告诉Amy关于那趟Providence trip的细节,说其实当时就是为了去看她,小玛雅转述:「她几个月前说过,你这个人有时候让人难以猜到心思」。
看到这里我简直要哭了,天哪,满满的即视感.. 大部分时候我都处于一个内敛不善言辞的状态,毕竟切换到社交状态精力下降速度会成倍提升,需要高强度快乐情绪反馈才能得以维持。
明天过节,就把A.J.向Amy求婚的片段摘录在这里吧,读后感是:作为主角,他无所不能..
“不,等一下。再待一会儿吧。”A.J.摸索口袋里的首饰盒。他不想夏天过完都没有向她求婚,管它结果如何。他就要错过时机了。他突然从口袋里掏出那个盒子扔给她。“快点考虑。”他说。
“什么?”她说着转过身。那个首饰盒“啪”的一声打在她额头中央。“噢,见鬼,A.J.?”
“我是想让你别走。我以为你能接住。对不起。”他走到她跟前,吻她的额头。
“你扔得有点高了。”
“你比我高。我有时候对高多少估多了。”她从地板上捡起那个盒子,打开。
“是给你的,”A.J.说,“是……”他单膝跪下,两只手攥着她的手,想避免感觉假惺惺的,不要像一出戏里的演员。“我们结婚吧。”他说,带着几乎是痛苦的表情,“我知道我被困在这个岛上,我穷,是个单身父亲,做生意的收入越来越少。我知道你妈妈讨厌我,在主持作家活动这方面显然我表现糟糕。”
“这样求婚挺怪的,”她说,“先说你的强项嘛,A.J.。”
“我只能说……我只能说我们会找到解决办法的,我发誓。当我读一本书时,我想让你也同时读。我想知道阿米莉娅对这本书有什么看法。我想让你成为我的。我可以向你保证有书、有交流,还有我的全心全意,艾米。”
在婚礼上,Amy请那本缘定之书的真正作者来朗读了书中的一段话:
“因为从心底害怕自己不值得被爱,我们独来独往,”那一段是这样的,“然而就是因为独来独往,才让我们以为自己不值得被爱。有一天,你不知道是什么时候,你会驱车上路。有一天,你不知道是什么时候,你会遇到他(她)。你会被爱,因为你今生第一次真正不再孤单。你会选择不再孤单下去。”
心有戚戚焉。
最后是宅男A.J.仅有的一些撩妹技巧:
“那还是年轻,”A.J.说,“我的意思是,你很可能没怎么经历过弗里德曼先生所描绘的人生。我看过这本书,现在我看着你,心里纳闷它怎么会让你产生共鸣。”
加布瑞埃拉•泽文 (2015-05-01). 岛上书店(现象级全球畅销书!美国独立书商选书第1名!每个人的生命中,都有最艰难的那一年,将人生变得美好而辽阔。) (读客全球顶级畅销小说文库 137) (p. 99). 江苏凤凰文艺出版社. Kindle Edition.
“我是挺糟糕的,”A.J.说,“为自己辩解一下吧,我当时正在经历一段艰难时期。”他从桌子对面探身,拨开她脸上的一绺金色卷发,“我第一次看到你时,觉得你就像是一团蒲公英。”
加布瑞埃拉•泽文 (2015-05-01). 岛上书店(现象级全球畅销书!美国独立书商选书第1名!每个人的生命中,都有最艰难的那一年,将人生变得美好而辽阔。) (读客全球顶级畅销小说文库 137) (p. 129). 江苏凤凰文艺出版社. Kindle Edition.
好了,精神充满电了,我得继续看paper去了
]]>02/03/2016, 星期三,9时许。
家住西老佛爷村的某位不愿意透露姓名的林先生在上学途中按去手机响起的闹铃,然后将爱机Nexus 5X随手放在肚子上。等到他停好车走出车门的时候,被遗忘的手机摔落在地上,于屏幕右上角出现了明显的裂痕(crack)!>_<
林先生很伤心,在不久前取消了手机的Nexus Protect保险计划之后,他将必须独自承担所有手机维修的费用,这对于手头不是很宽裕的林先生来说又将是一比不小的开支。
02/03/2016, 星期三,正午。
经过与客服的沟通,林先生认识到,由于并非机器自身原因导致的破损,生产厂家是不会同意免费维修/更换的。所幸,林先生用于消费的CSP信用卡提供了purchase protection benefit, 应该足以补偿维修所需要的开销。
Covers your new purchases for 120 days against damage or theft up to $500 per claim and $50,000 per account.
由于林先生的Nexus 5X整个都不足500刀,所以正常情况下肯定是可以补偿全部维修费用的!
02/07/2016, 星期日,下午。
在忙完几天的琐事之后,林先生终于有时间联系客服提交具体的claim了。CSP卡的客服将林先生导引至另一个客服电话,经后续确认,这个客服所属与Chase不同的公司,原来这是Visa卡提供的benefits. 客服在收集相关信息之后,向林先生发送了一份claim form. 将这个claim form以及其他必要的证明文件寄送到,一旦claim通过了,林先生就能免费维修手机了。
经客服描述,兑换整个purchase protection的流程是这样的:
而所需材料如下:
一些摔手机用不到的材料:
根据客服(在回答了林先生很多很多个问题之后,略不耐烦的)的描述,提交之后如果还缺什么还可以再补。
林先生这个case的特殊性在于:他在12月上旬过出现卡被盗刷的记录,因此换了一个新的卡号。而手机是用旧卡号购买的,在月账单上的记录则已经是新卡号的记录了。客服表示,他们是VISA客服,和Chase银行是不同的公司,因此需要Chase出示一份证明「某时某刻进行的某项消费,是林先生用旧卡号进行的,但是其与新卡号效果等同」。这个在向Chase的客服反应之后倒是很快就拿到了,只是需要7-10个工作日才会寄到。
林先生的原始收据/发票已经不见了,网上的google store消费记录能否打印出来作为收据/发票呢?客服(在回答了林先生很多很多个问题之后,略不耐烦的)表示,可以先寄过来,缺失文件的话会让你再补的..
若是已经不可维修,需要出具生产商(manufacturer)或者authorized第三方的证明,用于申报的维修账单也是如此。然而,林先生经过与生产商LG的客服沟通,了解到全美只有一个手机维修店,得寄到那里去…. 是的!你没有看错!全美只有一家!其他的local provider是不被认可的!整个检测的过程预计会花费7-10天,其中林先生将负担寄出的运费,其间的检查以及寄回的开销是厂家负责的,具体维修另算。
林先生也向客服询问了何为authorized第三方,客服表示她们并无法推荐local stores, 只是说在AT&T, Verizon这样的carrier如果有维修服务的话,就算的。林先生表示,总不能任何一家店声称自己能修屏幕就可以被算作authorized吧?对此客服并未给出明确回答 = =
林先生在询问了AT&T, T-Mobile等运营商公司之后发现,他们对于并非从本店购买的手机是不提供维修服务的.. 而林先生的Nexus 5X是从Google官方商店购买的,使用的也是Google Fi网络,和四大运营商完全没有直接联系….
林先生又想到了Best Buy. 然而Best Buy这样的商店提供的服务仅仅是当顾客购买了其商店提供的protection plan之后,直接更换,也不提供维修屏幕的服务。当地的Best Buy geek squad表示,在当地的t-mall里有个地方或许可以修屏幕,但是他没有静态地址(只是一个修理摊..)而且没有手机号.. 这显然算不了authorized第三方了呀!你敢更靠谱一点吗?
除此之外,林先生认为其他的小作坊应当无法满足authorized的要求了.. 既然如此那么就只能寄出手机到LG官方维修中心去修复屏幕了。在修好之后,根据维修费用收据以及Chase提供的证明,加上其他必要文件提交purchase protection claim.
于是,在寄出维修的这一周多时间内,林先生将过着失去电话的生活.. (虽然仍旧可以通过其它移动设备上网)。因为林先生使用的是Google Fi的网络,其SIM卡并不支持林先生之前的旧手机们.. 林先生其实也可以选择再买一个Nexus 5X备用,等到修好之后再选择退货,但是拿到一个新手机需要5天左右的时间,那时已经寄出手机去维修了,并没法转移备份,所以并没有太大区别.. 再说了,平时并没有谁打电话给林先生 T_T
林先生目前情绪稳定,他表示,希望整个流程顺顺利利,虽说碎碎平安,但是能省钱还是要省的呐。
电影上映的时候我去看了的,当时就很喜欢里头那股乐观的劲头。亲王推荐过原书,说比电影更好。这个无法反对,书里确实是超硬的科幻,超赞的!可惜在电影已经看过被剧透完毕的情况下,(还有看书时的发泄心态的作用下),我对于这些细节很多都看的不仔细 = =
如果没看电影,这本书5星稳稳的,看过电影再看书的话,感觉期待值少了一点了..
但是说实话,主角这种科学家我是非常非常钦佩的!我也希望能成为这样的科学家,会不会太晚了..?我最喜欢的几个地方有:
他转身对文卡特说:“我很好奇他现在在想些什么?”
— 日志:SOL61 —
潜水侠26怎么能控制鲸鱼呢?它们是哺乳动物!一点也讲不通嘛!
[美国]安迪·威尔 (2015-10-01). 火星救援(11月25日大陆震撼上映 2015最值得期待大片) (译林幻系列) (Kindle Locations 834-837). . Kindle Edition.
另外,请注意你的用词,你打出来的每个字都会被实时转播给全世界。
[12: 15] 沃特尼:快看!好大一对奶子!—>(.Y.)
[美国]安迪·威尔 (2015-10-01). 火星救援(11月25日大陆震撼上映 2015最值得期待大片) (译林幻系列) (Kindle Locations 1707-1708). . Kindle Edition.
各种时不时的吐槽确实很棒,这里还需要夸一下的是译者,确实很贴切!我还见到「你牛逼」的译文,真的就是用这个最贴切了!哈哈哈哈哈
而且还学到了一个比较舒服的死法..
但是,假如错失掠过,我就只能飘浮在太空里,直到耗尽最后一丝氧气。对此,我有一个应急措施,那就是将氧气含量降到最低,呼吸纯氮,直到闷死。过程不会太恐怖,肺部不会感觉到缺乏氧气,我只会感到困倦,睡着,然后死掉。
[美国]安迪·威尔 (2015-10-01). 火星救援(11月25日大陆震撼上映 2015最值得期待大片) (译林幻系列) (Kindle Locations 4438-4440). . Kindle Edition.
所谓的小情绪,其实现在已经没啥了,怨念已经差不多快消散完毕了。毕竟大过年的..
我反省了一下,怨念产生的根源是预期和现实的巨大落差,这是期望管理没有做好,而造成此现实的原因是机缘巧合的,并没有人应该被责怪。强行归咎于别人是不成熟/没有帮助的做法,今年刚满18岁(XD)的我是不会这样的!
祝看到这里的你新年快乐~
]]>Amazon.cn上的标题还有:
(比小说还好看!各方势力、各个利益集团生死搏斗的晚清18年。《明朝那些事儿》之后通俗说史巅峰之作!)(读客这本史书真好看文库)
整本书一下子变得很low了好吗!!其实它原本写的很棒的,不需要这样俗气的腰封→_→
下册出的话还会买的。
在试看的章节里看到下边这段话,立马就决定入手这本书了!
我还记得《罗马人的故事》里对凯撒的一个评价就是他懂得将公事和私事有机结合在一起,这样大家都能开心!我很同意这个方法,在本书里描述「袁世凯在朝鲜最后是否为日本人所欺骗」的细节时也是这么叙述的:
而我们在观察历史的时候,经常缺乏的是“体制内思维”,对于一个体制内的人物,我们经常把握不准,不知道他真正想的是什么。
我们有必要首先来了解一下什么是体制内思维。
这不是一种为了集体(朝廷、国家等)的思维。
也不是一种为了个人的思维。
而是一种在为了集体的口号掩盖下为了个人的思维——表面为集体,实际为个人。但这也只是一般官吏的想法。对于身处中高位的官员,他们的想法还要更高级一点,那就是:公私两便。
因为他们知道,天下为公,没人愿意去干;完全为私,也干不长久。而朝廷的体制是有很多空子可以钻的,它不像有些完善的体制,公就是公,私就是私,朝廷的体制公私是混在一起的,公里面可以夹带一点私,私里面也可以混淆一点公。
黄治军 (2016-01-01). 晚清最后18年:从甲午战争到辛亥革命(比小说还好看!各方势力、各个利益集团生死搏斗的晚清18年。《明朝那些事儿》之后通俗说史巅峰之作!)(读客这本史书真好看文库) (Kindle Locations 314-320). . Kindle Edition.
说到心坎里了呀!
袁世凯在朝鲜工作了13年,想回到权力中心都想疯了,开始卖萌啦:
他向国内发工作报告时,袁世凯在这份报告上特意加了一句“具体事项可等袁道到天津稍痊愈后面禀”。我们别小看这句话,这正是他老袁冥思苦想加进去的,他的算盘是:一旦国内没注意到这句话或者不作公开表态,他可就要拔腿走人了。
现实又一次打击了袁世凯,证明了领导是比他更精的人,领导很快给了个答复:袁毋庸调回,切不可径自赴津。而且这个答复居然是通过最高命令——奏请光绪皇帝的上谕发出的。
黄治军 (2016-01-01). 晚清最后18年:从甲午战争到辛亥革命(比小说还好看!各方势力、各个利益集团生死搏斗的晚清18年。《明朝那些事儿》之后通俗说史巅峰之作!)(读客这本史书真好看文库) (Kindle Locations 356-359). . Kindle Edition.
在宣传标语里本书是和《明朝那些事》相比较的,语言上确实挺有意思,我都要唱出来了!那是我们都回不去的从前~
我们再次见到他将是一年以后了(1895年),而那时候,一切都已经物是人非了。无论是对于袁世凯,还是对于李鸿章,以及整个大清国,他们是再也回不去的曾经。
黄治军 (2016-01-01). 晚清最后18年:从甲午战争到辛亥革命(比小说还好看!各方势力、各个利益集团生死搏斗的晚清18年。《明朝那些事儿》之后通俗说史巅峰之作!)(读客这本史书真好看文库) (Kindle Locations 459-461). . Kindle Edition.
还有一个令我笑出声的段落在本书结尾附近,这是在说光绪和他的爱妃,233333
但他有一颗爱她的炽热的心。
珍妃,我是京城公子,你是南国佳人,我来自冰天雪地的北方,你来自草长莺飞的南方,是什么让我们走到了一起?
“选秀。”珍妃说了这两个字,跑去玩了。
黄治军 (2016-01-01). 晚清最后18年:从甲午战争到辛亥革命(比小说还好看!各方势力、各个利益集团生死搏斗的晚清18年。《明朝那些事儿》之后通俗说史巅峰之作!)(读客这本史书真好看文库) (Kindle Locations 5517-5518). . Kindle Edition.
在日本皇宫,服侍天皇的是又老又丑的老妈子。咦,太监去哪里啦?这个真没有。整个日本历史上都没有太监。日本从唐朝学习了政治制度而没有搬走宦官制度,
黄治军 (2016-01-01). 晚清最后18年:从甲午战争到辛亥革命(比小说还好看!各方势力、各个利益集团生死搏斗的晚清18年。《明朝那些事儿》之后通俗说史巅峰之作!)(读客这本史书真好看文库) (Kindle Locations 494-495). . Kindle Edition.
问题是日本一直是一个狭小的岛国,只有米和绢的产业,基本没有畜牧业。没有畜牧业的结果就是没有人来掌握那高深的阉割技术——这就是日本历史上没有太监的真正原因:纯粹的经济问题。他都没给动物割过,你怎能放心让他割?
黄治军 (2016-01-01). 晚清最后18年:从甲午战争到辛亥革命(比小说还好看!各方势力、各个利益集团生死搏斗的晚清18年。《明朝那些事儿》之后通俗说史巅峰之作!)(读客这本史书真好看文库) (Kindle Locations 507-509). . Kindle Edition.
在与陆奥宗光的外交争斗中,李鸿章可以用“完败”一词来形容。除了国家实力,清日两国在外交方面上的指导思想也是完全不同的。这要从一本书说起。
1864年,大清国翻译出版了一本很专业的书籍(ElementsofInternationalLaw),这是一本国际法著作,主要讲述国家之间的往来、出使、交战等国际惯例,作者是美国人,他的观点是很善良的,比如小孩子们不到万不得已不打架,国家也一样,要注意维护世界和平;即使打架,也必须有个理由(师出有名),而且不能自己先动手,要等对方先开打(不能衅自我开)。
书翻译成中文后,取了个很吓人的名字:《万国公法》。
《万国公法》受到了清国外交界的热烈欢迎,除了书中的观点很符合传统道德,也代表了他们对于西方列强世界的“善良”愿望。在他们看,此书是西方“大儒”所著,各国君主必定真心遵守,不敢违抗,一旦国与国之间发生摩擦,各国都得翻到书中的某一页来定案。
于是他们把这本书奉为了外交宝典,有重大问题争论不下的时候,就搬出宝典来看一看。
黄治军 (2016-01-01). 晚清最后18年:从甲午战争到辛亥革命(比小说还好看!各方势力、各个利益集团生死搏斗的晚清18年。《明朝那些事儿》之后通俗说史巅峰之作!)(读客这本史书真好看文库) (Kindle Locations 916-924). . Kindle Edition.
但是同时期的日本人没有这么天真,他们派人出国考察之后发现,世界并不是这样的 →_→
回国后,他们每个人都已经是一名有世界级眼光的军官了。
严宗光始终放不下科举的那个梦,虽然回国后的他成了天津水师学堂的校长(总办),但他仍然很郁闷,加上认为自己并不得志,后来抽起了鸦片,改行当作家,改名严复,翻译整理出了名作《天演论》,那句著名的“物竞天择,适者生存”就出自这本书里。
黄治军 (2016-01-01). 晚清最后18年:从甲午战争到辛亥革命(比小说还好看!各方势力、各个利益集团生死搏斗的晚清18年。《明朝那些事儿》之后通俗说史巅峰之作!)(读客这本史书真好看文库) (Kindle Locations 1010-1012). . Kindle Edition.
严复和他同时期的一批人都是海军特招生,可是甲午海战最终却输成那个鬼样子,唉..
清国的苦难是从海上开始的,海军就成了国家寄予厚望的军队,舰队是抚慰帝国心灵的神兵利器,舰队官兵的收入是所有军队里面最高的,而且还从来不会遭到拖欠,所有人都纳入中央政府正式编制。朝廷甚至直接拿海军的军旗作为了国旗,为了支持发展海军,基本上是要钱给钱,要人找人,要政策定政策。为的就是有朝一日能够抵御洋人,保护国门,重振帝国雄风!
黄治军 (2016-01-01). 晚清最后18年:从甲午战争到辛亥革命(比小说还好看!各方势力、各个利益集团生死搏斗的晚清18年。《明朝那些事儿》之后通俗说史巅峰之作!)(读客这本史书真好看文库) (Kindle Locations 1274-1277). . Kindle Edition.
一天之内,享誉全世界的“铁打的旅顺”就这样全部沦陷了。日军陆军在清国本土获得了一个坚实的根据地,海军获得了一个优良的军港,接下来将发动更大规模的作战。在这一战中,日军还获得了数不清的战利品,仅大炮一项,从金州、大连湾到旅顺,日军就缴获大炮278门,这个数字是比较枯燥的,但如果我们了解另一个数据就知道它的涵义,日军全军所有的野战炮加起来也不过300门!
黄治军 (2016-01-01). 晚清最后18年:从甲午战争到辛亥革命(比小说还好看!各方势力、各个利益集团生死搏斗的晚清18年。《明朝那些事儿》之后通俗说史巅峰之作!)(读客这本史书真好看文库) (Kindle Locations 2578-2581). . Kindle Edition.
北洋海军最终无法成为真正的强军,不是它技不如人(军舰是世界上最好的军舰),也不是没银子(花的钱比日本多),更不是没时间来发展(比日本起步还要早),而是从一开始,在源头上,它根本就无法强大!
黄治军 (2016-01-01). 晚清最后18年:从甲午战争到辛亥革命(比小说还好看!各方势力、各个利益集团生死搏斗的晚清18年。《明朝那些事儿》之后通俗说史巅峰之作!)(读客这本史书真好看文库) (Kindle Locations 4086-4088). . Kindle Edition.
书里描述的原因,主要还是在于朝中各自抱团党争的现状,北洋水师是李大人,是后党的北洋水师,救它干啥。可惜了呀
荣禄显然不想听这样的废话,谁都知道法要变,问题是怎么变。
“法是要变,不过几千年的祖宗之法不是一下子就能变过来的吧?”荣禄问道。
实事求是地说,荣禄这句话说的是实情,是一种从实际情况出发的忧患考虑。荣禄先生的这句话并不是要反对变法,而是询问他老康有什么办法,希望康有为能给出一个建设性的意见。
康有为知道真正厉害的问题来了,这个问题如果回答不好,那些“顽固派”们就会见不到变法派坚定的意志和决心,必须拿出一点雷霆万钧的手段让他们瞧瞧!
于是,康有为大手一挥,用慷慨激昂的语气说道:“这有何难?杀几个一品大员法不就变了?”
四周一片安静,康有为突然察觉有什么不对,但具体哪里不对他也不知道。荣禄并没有再说什么,他内心一定在翻江倒海,但这在表面上是看不出来的。荣禄“嘿嘿”干笑两声,说了句“康大人请”,然后转身走了。走的同时摸了摸自己头上的顶戴。
黄治军 (2016-01-01). 晚清最后18年:从甲午战争到辛亥革命(比小说还好看!各方势力、各个利益集团生死搏斗的晚清18年。《明朝那些事儿》之后通俗说史巅峰之作!)(读客这本史书真好看文库) (Kindle Locations 4424-4431). . Kindle Edition.
康有为并没有在体制内呆过,他是在民间造势起家的,真正要询问他推进改革的意见时,却只能说出这样粗浅的看法,这不显然在激化矛盾么。
一个高明的政治家从来不预设敌人。但老康你在喊杀一品大员,人家又刚刚成为一品大员,你要别人说什么才好呢?
贪官是应该杀的,但也要经过公正的审判后去杀,变法的目的之一就是加强制度建设和法治,避免官官相卫,也避免政治迫害,如果还是喊杀就杀,那跟过去有什么区别,还需要变什么法?
黄治军 (2016-01-01). 晚清最后18年:从甲午战争到辛亥革命(比小说还好看!各方势力、各个利益集团生死搏斗的晚清18年。《明朝那些事儿》之后通俗说史巅峰之作!)(读客这本史书真好看文库) (Kindle Locations 4451-4454). . Kindle Edition.
书中对康有为的评价并不高:
由于不懂得程序正义的重要性,康有为始终没有跳出自己的世界。他一直沉浸在自我悲壮的角色里,他把自己当作民意的代表,而且是唯一的代表,在康有为看来,似乎其他人所有的人都反对变法,只有他在为了天下苍生而奔走呼号,受苦受难。在这样的心理驱使下,加上那惊天的野心,很容易做出极端的举动来。
他虽然是官二代,但他更关心草二代;他虽然行事鲁莽,但敢作敢为;他虽然性格冲动,但恩怨分明;他或许不是一个天生的政治家,不是一个合格的变法家,但他是一个有烈士气节的人,一个敢于承担结果的人,一个有着自己原则的很真实的人。他可以不死,不死,并不算错,没人可以责怪他,可是死了,却突然凸显了意义。英雄与凡人的分野就在这里,他不仅要为自己总结,也要为天下人总结,为“天下为公”总结。
从某种意义上说,谭嗣同是一个平凡的英雄,一个值得敬佩的人。
谭嗣同的出现给这场变法带来了黑暗中的光芒,这微小的光亮,照过了多少野心与权谋、多少算计与圈套,让它们都在光亮下显得荒谬和渺小。多年以后的人们再次谈起这场变法时,一定会提到谭嗣同,因为他也埋下了勇敢与正义的种子,留下了热血和希望!
黄治军 (2016-01-01). 晚清最后18年:从甲午战争到辛亥革命(比小说还好看!各方势力、各个利益集团生死搏斗的晚清18年。《明朝那些事儿》之后通俗说史巅峰之作!)(读客这本史书真好看文库) (Kindle Locations 5299-5306). . Kindle Edition.
]]>从获知各种hardware/language memory model的存在开始,我就一直好奇在业界的各种常用语言中memory model是怎样被定义的。随着了解的深入,我知道了C/C++, Java. 现在轮到了Go.
关于”memory model”的这个概念,我最开始见到的定义大意是「定义在concurrent环境下,一个Read能够读到什么值」。现在我的理解更加注重其目的,它规范了怎样的optimization是valid的。因为人类总想让程序运行得更快,于是提出了一种又一种优化,而优化本身可能在某些条件下能够保持原有语义(semantics),而在某些条件下却将出现不期望的后果。一个定义好的memory model能够用于规范这些优化,如果some optimization使得原有的正常program出现了memory model不允许的behavior, 就知道它绝对是有问题的了。
科普就到这里,肯定还说的不够清楚.. 不过就先这样吧。接下来,专门记录下书中读到的Go中和此相关的内容,不过并没有完全用代码验证,那些有机会再说吧。
我对Go了解不多,channels似乎是Go中用的挺普遍的一个东西。具体到unbuffered channel, 就是sender在receiver还没有来接收的时候就会blocking wait下去,同理receiver在sender还没有来发的时候也会blocking wait下去。
我说这些的意义是什么呢?这个unbuffered channel可以用来synchronize两个goroutine!!
When a value is sent on an unbuffered channel, the receipt of the value happens before the reawakening of the sending goroutine.
我其实感觉书上说的这个有点奇怪,为啥强调「receiver收到」和「sender恢复运行」这俩时间点呢,而不是去说「sender发出」和「receiver收到」这俩时间点呢?不管了。
而定义的happen before relation其实是很重要的,在各种memory model中,都是定义,如果x happens before y, 则在x时候能够visible的effects, 在y的时候也肯定都能visible. 这里注意,并不是说在x的时候var := 1
is visible, 则在y时候一定是var == 1
. 或许其间有一个var := 2
的东西发生了,然后在y时刻var := 1
和var := 2
都是visible, 然后由于其它某些axiom, 选择了var == 2
. 我见到的很多axiomatic memory model都是这么定义的。呃.. 我可能越说越乱了..
这本书里关于这些是这样描述的:
when we say x happens before y, … we mean that it is guaranteed to do so and that all its prior effects, such as updates to variables, are complete and that you may rely on them.
有了hb关系之后,也可以据此定义concurrent了,两边互相都不happen-before的话,它俩就是concurrent的。他们可能x先,也可能y先,没有保证的。
在使用lock的时候,unlock()这个操作,和之后获取这个lock的那些个goroutine之间,也是有一个happen-before的关系的。我想起这个是因为Gustavo曾经让我在Coq中写TSO下的semantics, 当时toy language里执行lock/unlock就是需要已经flush完毕buffer的,现在我充分理解了,意义就在于此!
看到这里的时候,书上还描述了reentrant-lock的定义,这是我之前有点弄乱了的?
possible to lock a mutex that’s already locked
1 | var x, y int |
上边是Go语言中写的store buffering program, 这是用来描述TSO与Sequential Consistency区别的经典例子。
在这个例子里,一种可能出现的结果是打印出来的x == 0 ∧ y == 0
. 在TSO下,可能的成因是「一开始x := 1
以及y := 1
的Write都还存在local buffer里没有让所有人都看见」;compiler optimization也可能出现这个问题,可能的成因是简单的reordering, 因为在单独的一个thread看来,Write to x与print y是没有关系,那么为了效率执行顺序是可以调换的。
书中写起这个也是为了介绍这个non-sequential behavior, 这是在向读者举例说明,concurrent条件下,程序猿很容易直观地想象成不同instruction atomically interleaving的情况。然而现实并不是这样运作的..
In the absence of explicit synchronization using a channel or mutex, there is no guarantee that events are seen in the same order by all goroutines.
这个描述里,只是说了“write to different variable”在不同的thread间可以有不同的order, 那么write to same variable呢?是会同样的order的吗??coherent? 这其实是另一个经典litmus – IRIW (Independent Read, Independent Write)所描述的内容,在书里这儿并没有说。
1 | T1: |
IRIW例子想要看到的最终情况就是,是否可能a == 1 ∧ b == 2 ∧ c == 2 ∧ d == 1
. 即在T3和T4的眼中,x的更新顺序是不一样的。例子很极端,普通代码中基本用不到,但是对于完整了解整个memory model的定义/实现是很有意义的。
书中介绍了这个几个例子,之后只是引出,在Go中,如果我们stick some programming patterns, 就不需要担心这些个幺蛾子。
Whenever possible, confine variables to a single goroutine; for all other variables, use mutual exclusion.
但是这么说有点废话呀 = =
Go自己也提供了一个race detector. 那么看来,他们显然也提供了DRF guarantee, 即对于data-race-free的program, 可以忽略上边一大串幺蛾子,想象成atomic interleaving (sequential consistency) 就足够了,足以考虑到所有的情况了。
而他们的race detector也只是dynamic的,所以其实并不完备呀:
However, it can only detect race conditions that occur during a run; it cannot prove that none will ever occur.
以我推断,Go至少提供了DRF model, 其它并没有特别明显的东西,也好像没有official formal formalization. 所以就先这样吧。其实官方是有文档的,我只是要强行把笔记整理出来而已 +。+
我只看了这本书中我想要看的ξ8. Goroutines and Channels, 以及ξ9. Concurrency with Shared Variables这两个章节,因为只有这俩是我关心的.. 我现在感觉,Go routine其实和thread没多大差。而Go整个给我的感觉,就像是很多Unix commands用的很开心的程序猿把这些全部融合到一个语言里打包给你,加上其它实际很可能用到的支持。认识还很粗浅,很可能不对,就先这样吧..
]]>其实也并没有特别深入的去了解对比每一个算法,也不全,不过有写总比没写好,对吧..
「自旋锁」这个名字其实很不直白,本质其实就是一个thread busy wait, 直到这个lock真正空出来。Wiki上说,spinlock的优势在于,当context switch的overhead比较大,而预期等待时间比较短的时候,用spinlock直接死等会更好。
一种实现如下:
1 | lock(l): |
如果还不太了解CAS, 出门右转wiki. 它表示一个atomic operation内,只有当l == 0
的时候才将其设置成m.
直接上代码吧:
1 | bool flag[0] = false; |
显然,这个有个要求就是:write propagates immediately and atomically. 所以relaxed memory model下、或者compiler乱序优化一下就跪了。
这里为啥能够达到mutual exclusion呢?当Pi在critical section中的时候,显然flag[i] == true
, 此时,P_{1-i}有这么几种情况:(只有这几个地方修改了相关变量)
flag[1-i] = true;
以及turn = i
都还没有执行。所以一会儿它执行到while loop的时候,将会再次更新turn为i, 因此满足了while (flag[i] and turn == i)
的条件,进入死等状态。
执行了flag[1-i] = true;
, 但是还没有执行turn = i
. 这个和第一种情况没差别,这个process一会执行的时候也是会更新turn然后堵在while loop那里busy waiting.
已经都执行了flag[1-i] = true; turn = i
的设置,但是既然Pi已经进入了critical section, 就说明Pi这里的flag[1-i] && turn == 1-i
的while loop条件没有满足,因此turn肯定是设置成了i, 于是P_{1-i}那里就会busy waiting. 不会进入critical section.
综上所有条件都说明会busy waiting, 不会同时进入critical section.
那么会不会卡在路口那里俩人都不得动弹呢?不会的。因为现在有了”write propagates immediately and atomically”的假定,所以即使两个process都执行完所有的设置语句来到while loop面前了,它们俩的turn变量赋值一定会决出一个胜负。所以一定有一个人进入while loop busy wait, 另一个人直接进入critical section. 反正遍历所有可能的执行顺序组合,都会出现一个process在critical section里头,另外的一个在外头busy waiting的情形啦。
此外更进一步的guarantee是:一个process在离开critical section之后,假设有其它process正在等待,那么就不会立马重新进入critical section. 所以每个process都能有bounded-waiting guarantee.
以上只是对于2 processes的情况,关于如何适应>2 proc的情况,我就没有看了。
话说,我感觉Dekker’s Algorithm和Peterson’s Algorithm超像的,不过应该是因为更晚才发布,Peterson的这个确实更加清晰明了,网上也确实有人好奇问过这个问题的。
这是Lamport大神提出的,for multiple threads.
1 | Initalization: |
Why this works? 直接用Lamport大神最开始的比喻就很好理解了:
在一个bakery store, 进来的顾客要先拿号,上头的”doorway”就是拿号的过程。注意,这里是允许几个threads拿到了同样的号的,那样的话就break the ties using thread ID, 就是同时比较label[i], i
的过程。号存在label[i]里。
然后拿好号之后就开始排队,准确的说就是等我拿到的号最小了,那么就轮到我了。这里需要先等待没人正在doorway取号中,为什么呢?
max()
此时并不假定是atomic的。那我就能理解了。Simpson’s 4-slot Algorithm, 这个在那篇paper里举例说到了,在505的课程上没有打算提到。这个算法是设计用来确保 a single write & a single reader 之间的mutual exclusion的。
其代码其实很简单,但是就是很绕不好看懂!Richard Bornat有专门一个slides来介绍这个,里头是这么写的:
Programming is really hard: only nine lines, no CAS, and you still can’t understand it
哈哈哈哈哈,我竟无法反驳..
1 | global variables: |
代码理解如下:
上边里头的pair以及index都是local variable.
关于slot[0]以及slot[1], 原文解释如下:Each element of this array indicates the index of the slot which contains the latest data within the corresponding pair.
对于writer来说,挑¬reading作为新pair很显然的,然后第一次slot[pair]读到的值是上一次写的位置,所以这一次就要换一个位置了。slot[reading]和slot[¬reading]是独立存档的,所以没事。
Why it works? 简要的说,它存了好几份copy在data[0..1][0..1]
里,因此可以做到你写你的,我读我的。注意,这里reader是先更新了reading
再真正去读数据,而writer是写好之后再更新latest
. 一旦reader声明了我要读之后,writer如果还有动作,则要嘛是有新的东西要开始写——那肯定是写在另一个pair里了;要嘛是有新的东西已经写到一半只是还没有更新latest, 那么看情况吧,reader读到latest written (not published yet)还是second to latest都有可能。
显然,writer这里需要是latest更新的时候,之前的update都publish出去的呀。因此,再一次,这个算法的未修改版本(i.e. 未加fences)对于relaxed memory models或者compiler reordering都是不能继续保证正确性的。
经paper中提醒我才注意到,这个algorithm里是没有岔路的哦,一条路走到底!设计这么个算法是要满足3个属性的:
电视机前的小朋友们还有可能会问:
为啥2-slot不行呢:paper上说:
The two-slot mechanism fails because there are circumstances in which the writer requires a slot for new data but the reader is still busy with the slot containing the last-but-one data item.
而如果硬是要使用2-slot的话,就只能要嘛牺牲coherence, 要嘛牺牲freshness了。那么为啥4-slot就解决了这个问题了呢:4-slot直接写到另一个pair里去了呀,然后如果reader一直沉迷在旧数据中不可自拔,而writer一直有新数据来的话,那么reader从最老的一两个数据,跳过其间的很多个数据,直接来读最新的一两个数据也是完全没有问题的。
为啥3-slot不行呢:paper上(P21)讲了2 flaws, 但是并没有很理解.. 也无法复述在这里.. 似乎是关于interleaving of control variables时的预料外情况吧。4-slot中关于这个的话,是分了2个pair来分别分档进度的,应该能好一些。
为啥4-slot就足够了呢:呃.. 上边一长串已经大约解说了为啥it works, 至于为啥选4这个数字,仅仅是因为2x2的吧。
关于这个算法就先这样吧,知道大致的思路了,以后若是有具体用到的地方再来细细探索吧。
]]>// 光荣属于人类,伟大属于比蒙!
总结:我并不觉得这本书有传说中(书单推荐、豆瓣高分)那么好,我得到的大部分启发只是来自于史前部分。
本书主要内容有:
在历史的路上,有三大重要革命:大约7万年前,“认知革命”(Cognitive Revolution)让历史正式启动。大约12000年前,“农业革命”(Agricultural Revolution)让历史加速发展。而到了大约不过是500年前,“科学革命”(Scientific Revolution)可以说是让历史画下句点而另创新局。这本书的内容,讲述的就是这三大革命如何改变了人类和其他生物。
这点(i.e. 直立行走)对妇女来说造成的负担更大。直立的步行方式需要让臀部变窄,于是产道宽度受限,而且别忘了婴儿的头还越来越大。于是,分娩死亡成了女性的一大风险。而如果早点儿生产,婴儿的大脑和头部都还比较小,也比较柔软,这位母亲就更有机会渡过难关,未来也可能再生下更多孩子。于是,自然选择(natural selection,又译“天择”或“自然淘汰”)就让生产开始提前。与其他动物相较,人类可说都是早产儿,许多重要器官的发育都还不够完善。看看小马,出生没多久就能开始小跑步;小猫出生不过几周,也能离开母亲自行觅食。
时间线如下:
科学家多半都同意,大约到了15万年前,东非就已经有了智人,外貌和我们几乎一模一样。
大约10万年前,有几群智人向北迁移到地中海东部、侵入了尼安德特人的领土,但没能攻下这个领地。
然而,等到大约7万年前,智人仿佛脱胎换骨。大约在那个时候,智人第二次从非洲出击。这一次,他们不只把尼安德特人和其他人类物种给赶出了中东,甚至还赶出了这个世界。
科学家也同意,大约7万年前,智人从东非扩张到阿拉伯半岛,并且很快席卷整个欧亚大陆。
原来智人真正走上历史舞台只是在近7万年中,之前我一直没有一个直观的概念。
还有,美洲直到公元前12000年左右才被人族占领,真是意外呀。
一开始,阿拉斯加和美洲其他地区被冰河隔开,可能顶多只有一两个独立的探险者曾经到过更南边的土地。但到了公元前大约12000年,全球暖化融冰,出现了一条比较容易通过的通道。借由这个新的通道,人类大举南迁,走向整片大陆。
等到公元前10000年,人类已经来到了美洲大陆最南端的火地岛,他们能在美洲这样如同闪电战一般横行无阻,正证明了智人已有无与伦比的聪明才智和适应能力。
上边最后那两段在文中其实是为了说明站在食物链顶端之后的人类对自然的杀伤力..
在14000年前,美洲的动物物种远比今天丰富。
智人抵达后不过两千年的时间,大多数这些独特的物种就全部惨遭毒手。根据目前的估计,就在这短短的时间里,北美原本有足足47属的各类大型哺乳动物,但其中34属已经消失;南美更是在60属之中失去了50属。像是剑齿虎,原本活跃了超过3000万年,却几乎在瞬间灭绝,其他像是巨型地懒、巨型狮子、美洲的本土马和本土骆驼、巨型啮齿动物和长毛象,也都未能幸免。
但在大约1500年前,象鸟、巨狐猴以及马达加斯加岛上多数的大型动物都突然消失,而这正是人类第一次踏上马达加斯加的时间。
等到认知革命之后,智人有了八卦的能力,于是部落规模变得更大,也更稳定。然而,八卦也有限制。社会学研究指出,借由八卦来维持的最大“自然”团体大约是150人。只要超过这个数字,大多数人就无法真正深入了解、八卦所有成员的生活情形。
这里的认知革命指的就是大约7万年前,智人的认知能力有了革命性的发展。这里的“八卦能力”,是作者在文中列出的一种假说.. 夭寿啊,人族开始八卦啦!不过150人的限制倒是持续至今。
所以,究竟智人是怎么跨过这个门槛值,最后创造出了有数万居民的城市、有上亿人口的帝国?这里的秘密很可能就在于虚构的故事。就算是大批互不相识的人,只要同样相信某个故事,就能共同合作。
门槛指的是超过这么150个单人能够了解的范围,去和陌生人合作。所谓「共同相信虚构的故事」,这个提法我很喜欢,宗教、法律,只要是某种大家都遵守的规则,就包括在内。
通过文字创造出想象的现实,就能让大批互不相识的人有效合作,而且效果还不只如此。正由于大规模的人类合作是以虚构的故事作为基础,只要改变所讲的故事,就能改变人类合作的方式。只要在对的情境之下,这些故事就能迅速改变。例如在1789年,法国人几乎是在一夕之间,相信的故事就从“天赋君权”转成“人民做主”。
因此,只要故事一变,人就变了。这是n倍速加快人类进化的过程呀。
出于类似的原因,远古人类也没有什么革命性的改变。据我们所知,过去想要改变社会结构、发明新科技或是移居到新的地点,多半是因为基因突变、环境压力,而不常是因为文化的理由。
与此相反的是,在认知革命之后,虽然智人的基因和环境都没什么改变,但智人还是能够迅速改变行为,并将新的行为方式传给下一代。
还有中国的太监。这些精英阶层虽然手中握有权力,但却自愿放弃生育,…
上边这最后一句…. 我都不忍心看了,所谓司马迁自愿接受宫刑的梗.. [抠鼻]
骨骼化石的证据显示,远古时期的采集者比较少有饥饿或营养不良的问题,而且比起后来的农业时代,他们身高较高,也比较健康。虽然平均寿命显然只有30~40岁,但这主要是因为当时儿童早夭的情形十分普遍。只要能活过危机四伏而意外频现的生命早期,当时的人就大多能活到60岁,有的甚至还能活到超过80岁。
这个我是不太相信的,以当时的医疗条件,能活到60?? 话说彭祖的年代早就在农业社会里了吧?
此外,农业和工业社会的永久居住环境通常非常紧密,但卫生条件又不佳,正是疾病的理想温床。至于采集者,他们总是一小群一小群在广阔的大地上漫游,疾病很难流行起来。
↑这里是在论证远古采集者比较少收到传染病的侵扰。但是这个论点没道理吧?只是说没传起来,又不能说明寿命会高呀!
↓这里是为了论述远古采集者们或许也拥有复杂的“文明”,但是书中只列举了这一个“例子”, 不够有说服力呀。
巨石阵的年代约是公元前2500年,是由一个已经相当发达的农业社会所建造。但哥贝克力石阵的年代约是公元前9500年,所有证据都显示,它是由狩猎采集者建造而成。一开始,考古学界觉得这简直是天方夜谭,但经过一次又一次检视之后,无论是这个结构的年代,还是建造者尚未进入农耕社会,都是毋庸置疑的。看起来,过去我们对于远古采集者的能力和他们文化的复杂程度,都是严重低估。
从采集走向农业的转变,始于大约公元前9500年~公元前8500年,发源于土耳其东南部、伊朗西部和地中海东部的丘陵地带。
确实,农业革命让人类的食物总量增加,但量的增加并不代表吃得更好、过得更悠闲,反而只是造成人口爆炸,而且产生一群养尊处优、娇生惯养的精英分子。普遍来说,农民的工作要比采集者更辛苦,而且到头来的饮食还要更糟。农业革命可说是史上最大的一桩骗局。
从这种角度看来,1000份DNA拷贝永远都强过100份。这正是农业革命真正的本质:让更多的人却以更糟的状况活下去。
庞氏骗局哈哈哈!
不过向农业进发确实是不可逆的,一旦变成农业了,能养活的人口就多了很多,在和旧式采集的人口的争斗中就占上风。于是总人口中农业的比例不断增加.. 即使大家并不“快乐”, 也再也回不去了.. // BGM: 那是我们都回不去的从前
这样一来,发现苗头不对,为什么他们不赶快放弃农耕,回到采集生活?部分原因在于,所有改变都必须点点滴滴累积,经过许多代的时间,才能够改变社会;等到那个时候,已经没有人记得过去曾经有不同的生活方式可选了。另一部分,是因为人口增长就像是破釜沉舟。一旦采用农耕之后,村落的人口从100人成长到110人,难道会有10个人自愿挨饿,好让其他人可以回到过去的美好时光?这已经再无回头路。人类发现时,已经深陷陷阱、无法自拔。
当时每个子女至少会相隔三到四岁。而女性能控制这点的方式,靠的就是一天24小时都待在孩子旁边照顾着,直到孩子大一点为止(毕竟没多久就得哺乳一次,男人想来干些什么也不太方便,于是可以大幅减少怀孕的机会)。
无法反驳..
另外,中国在大约公元前1200年、中美洲各地在公元前1000年至公元前500年间,也都发展出了完整表意的文字。
公元前1200年,那是商朝了吧。
例如许多学者推测,印度种姓制度成形的时间是在大约3000年前,印度–雅利安人(Indo-Aryan)入侵印度、征服当地居民。入侵者建立了阶级森严的社会,
以前对时间线一直没有概念。3000年前,那么是公元前1000年左右?
就算我们真的要完全去除掉某个残暴帝国的遗绪,希望能够重建并维护在那之前的“纯正”文化,很有可能最后恢复的也不过是更之前、没那么残暴的帝国留下的文化。
真正让多神论与一神论不同的观点,在于多神论认为主宰世界的最高权力不带有任何私心或偏见,因此对于人类各种世俗的欲望、担心和忧虑毫不在意。因此,要向这个最高权力祈求战争胜利、健康或下雨,可以说是完全没有意义,因为从他全知全观的角度来说,某个王国的战争输赢、某个城市的兴衰胜败,又或是某个人的生老病死,根本不构成任何差别。
这是书中表示的多神教和一神教的区别
之前看过拜火教的介绍,知道其就是二元论宗教之一。不过二元论有一个巨大的漏洞:
但如果我们说的是善与恶的互斗,现在又有什么法则来规范?这些法则又是谁订出来的呢?
这种说法有时称为“迷因学”(memetics)。迷因学假设,就像是生物演化是基于“基因”这种有机信息单位的复制,文化演化则是基于“迷因”(meme)这种文化信息单位的复制。而所谓成功的文化,就是特别善于复制其迷因,而丝毫不论这对于其人类宿主的成本或利益。
这里说的是,各种思想让人们即使牺牲自身利益,也要将这个思想推广开去。不过话说我打字的时候都没有“迷因学”这个词组..
书中说到为啥古代没法用信用卡这样的东西:
过去的问题不在于有没有信用的概念,又或是知不知道如何使用这种概念,而在于当时的人并不相信“明天会更好”,所以并不愿意延展信用。毕竟当时的概念,总觉得黄金时代已经过去,未来顶多就是维持现况,而且可能更糟。用经济学的概念来讲,也就是他们认为财富的总量有限,而且还可能萎缩。
黄金时代早已过去,现在已经是黑铁时代了,所以未来不会更好,所以明天没法寅吃卯粮。好像有点道理哦。
正因如此,许多文化都认为赚大钱是种罪恶。
如果整个饼就是这么大,而我又拿了一大块,一定就是对其他人不公平。于是,富人一定得把他们多赚的财富拿出一些,捐给慈善机构作为赎罪。
我们不愿想起这些过去的手足亲情,背后其来有自。
我一开始还以为这是typo….
成语解释:指事情的发生、发展有其来由,并非偶然。自:从……出来的地方。
在英文里,未阉割的公牛称为“bull”,阉割后的称为“ox”,
说实话,这是我第一次知道….
]]>我原本尝试放些代码自动播放BGM的,但是试了一圈,好像没有特别好的解决方案。
<audio>
的话,估计不太好,或许会有版权纠纷的吧所以「同志们,不如拉上窗帘,坐在座位上自己摇动身体,做出BGM正在播放的样子」=_=
随手想到的BGM Playlist: (标题无实义/请手动播放)
// 以下想到啥写啥,非时间顺序排列。
那是4月上旬中旬的某个周二深夜,每日例行刷craigslist的时候出现了非常心水的目标。po主并没有留电话于是我只好发站内邮箱邮件,在“会不会就是她了”的激动与不安下,我的第一封邮件也忘记了附上自己的电话.. 第二天周三傍晚验车敲定,周四就开回家了!果然迟半天看到的话,她就会已经被买走了。
那几晚入睡前,我都要多看几眼特意停靠在卧室窗户正下方的她,看那皎洁的月光流淌其上,美!真美!…… 不过现在就没那么讲究啦,都停在离大门最近走路距离最短的坑位里了.. [抠鼻] 好期待这种亢奋溢于言表的心情的下一次降临。
(呃,因此带来的支出攀升就暂时忽略好了 =.=)
暑假期间,室友Bill实验室的一个学妹因为要回国,将她刚认领不久的喵星人寄养在我们家。铲屎官的职位由Bill光荣担当,我主要辅助负责陪玩~
乖巧的他会在卧室门口卖萌求我开门(然后进来巡视领地);会在我回到家开门时小跑出来迎接然后躺下求摸(但是后期认识到他才是真正的主人之后就不躺了..);会在我吃饭的时候(还有刷牙、上厕所的时候)趴在一旁静静围观……;而且他只挠过我2次..
我暗自认定,以后如果养猫的话,我就想养这样一只乖巧又会卖萌的猫!
从14年年末上映的《星际穿越》开始,我已经发现电影院简直是村里最方便的娱乐去处。听力并不是大问题,话痨片之外的剧情理解都是没问题的。不过也出现过老美23333,而我在一旁面无表情的时候.. 像Ted 2这样的玩梗狂魔我就得在B站又刷了一遍啦哇哈哈哈哈!
据账单分析显示,15年的电影平均开销是32.60刀/month, 正好是约一个月去看四次左右的频率(实际频率会稍低一些),而且还蹭了好几次Kids Movie活动的东风去只花一刀看电影~ 最常去的那家电影院已经被我刷出了23888 points, 足以拿很多次免费情侣爆米花啥的了,但是我从来用不到…. 绝大部分场次是独自去的,有些时候还能被动包场 =.=
来村里之后,我摄入中文书刊的主要方式已经从“图书馆借阅”变成了“于Amazon.cn购买Kindle版”. 因为它实在是便宜啊!时不时有优惠活动一本不到10元,才2刀不到?!买买买!!据账单分析显示,2015全年买了173.52刀的书(还有零星的豆瓣阅读以及多看,走的是支付宝或者微信支付渠道),平均每个月15刀不到,还kuǒ以。
我很喜欢整理书单/买书的这个过程,里头仿佛蕴育着无限希望的未来。小时候的周末晚上经常去新华书店一直看到工作人员赶人离开,那样无忧无虑的时光再也不会有了吧。不过毕竟买书如山倒,看书如抽丝,今年最大的里程碑或许是Bible以及《罗马人的故事》全系列(1-5, 6-10, 11-15)。
曾经在微博吐槽过“Kindle app做的笔记无法在Kindle设备里的txt笔记里导出”这个莫名缺失的feature, 现在我的绕过方法是直接在桌面端边整理边输出笔记。不过Kindle app里复制出来的文本会带有奇奇怪怪的分词空格,为此我专门写了个小脚本自动strip spaces, 代码见这个gist。于是我可以安心地重新变回脑残粉了~
15fall成为了CS503 Operating Systems的TA. 很惭愧,就做了一点微小的工作,谢谢大家。
14年7月心血来潮写就的那篇朋友圈拉黑测试的博文,在15年里慢慢变成了最多人关注/评论的文章…. 于是我知道我的博客真的是有人来看的…. 而且真的是有用的….![抠鼻] 也认识了不少新朋友~ 16年要写更多更深入的技术文章!其实Evernote里有很多可以直接搬过来,有时间反正我不信慢慢填坑吧。
这两年心里一直有一个苦恼,为什么课业能够如鱼得水,科研却总是步履蹒跚?对这个问题我并没有一个完整的答案,或许是因为从小接受的训练大多只是为了系统的知识学习。拿再多的A+, 但是迟迟没有找到一个合适的科研破题点有什么用呢。好了不多说了,再说的话,无形装逼就要失效了。
2016年请多试错吧,多test-driven! 或许从前攒下的时光便是注定要用在这儿的呢。
翻阅2015年的日记回溯一整年的时光,最令我扼腕的是其间沉迷三国志9和足球经理2015而虚度的那些日子。自从手柄在毕业时送人之后,这俩成了我仅存的可沉迷游戏。一旦玩high了就停不下来,所以我需要一个断点。曾经使用的眼睛护士等等app都是为了这个目的。只需短暂的清醒,我的理智就能重新占领高地,引发贤者模式的愧疚感从而努删游戏。
这也是多少年的老问题了。我的新年对策是,这次根本就没有买最新的FM2016! 还能省点钱.. 不过最根本的解决方案,还是要真正爱上学术呀。
其实,我的烦恼,大多源于自身性格上的缺陷。越长大,越认识到自身的不完美,也逐渐意识到未来早已开始渐渐收敛、不再是任意可能。对于这些,我坦然接受,能改就改。
2016年里,以前经常面基的小伙伴们很多就将/已前往湾区,感觉更加孤独了。不过,这条路本来就是孤单的,不是吗?
祝所有人好。
Farewell, 2015. Hello, 2016! :)
]]>整个系列的最后一部分,罗马已经盛极转衰。蛮族入侵、胡乱改革、政局不稳、君权神授、变身绝对君主制度、各种作死,唉..
“波利比乌斯,我们现在正在见证荣极一时的帝国灭亡的伟大瞬间。可是现在充满我心中的不是胜者的喜悦,而是终有一天我们的罗马也将迎来同样时刻的悲哀!”
// 7/12/2015 - 12/22/2015
系列到了这一本,终于开始介绍罗马的衰亡了,长盛不衰的国家,从来就没有出现过,罗马经过了这么多年才开始衰落,已经很了不起了。
读的时候还有下边这个情形.. 咳咳,对血统的执著呀
比马可小两岁的妹妹克鲁尼菲奇亚和表兄渥米狄斯·库瓦德拉特结婚。新娘的父亲和新郎的母亲是同胞兄妹。在罗马的上流社会中,表亲之间的婚姻已经并不少见。而这种情况即使不回溯到共和时期,在百年前的帝政初期也是不可想象的。
盐野七生 (2013-02-01). 罗马人的故事11:结局的开始 (开放历史系列) (Kindle Locations 404-406). 中信出版社. Kindle Edition.
奥勒留皇帝留下了一尊骑马像,这在罗马的皇帝中也是独一份的。
当初,这座骑马像并不在卡匹托尔山,在上千年的岁月里,它一直位于罗马市中心南端的拉特兰教堂广场上。这座骑马像之所以能在4世纪末席卷罗马的基督教徒破坏与希腊、罗马相关作品的风暴中得以保留,却并不是因为狂热之徒中有人读过《沉思录》,也不是因为有人发现了骑马像的艺术价值,觉得销毁太可惜,因此对其伸出援手,只不过是当时人们单纯地误以为它是第一位承认基督教的罗马皇帝君士坦丁。马可·奥勒留蓄有浓密的大胡子,不知人们为什么会将他和总是刮净胡须的君士坦丁搞错,而正是因为这个误会,马可·奥勒留骑马像才最终在当时22座罗马皇帝骑马像中仅存下来。据记载,其他21座骑马像,包括尤里乌斯·恺撒、奥古斯都、图拉真等皇帝的骑马像,因为和马可·奥勒留骑马像一样均为青铜所制,结果都被熔化,然后转为他用,最后消失得无影无踪了。
盐野七生 (2013-02-01). 罗马人的故事11:结局的开始 (开放历史系列) (Kindle Locations 174-181). 中信出版社. Kindle Edition.
这些雕像很多是在文艺复兴士气被重新提起的,看了这么多本之后,我对复兴啥有了更深刻的概念
文艺复兴时代就是以“复兴古代”为口号的,所以它也是大规模挖掘古代遗迹的时代。
盐野七生 (2013-02-01). 罗马人的故事11:结局的开始 (开放历史系列) (Kindle Locations 189-190). 中信出版社. Kindle Edition.
毕竟宗教一极端起来,真是 =.= 而罗马是那种万神的概念,这算是原始宗教吗
在其他神殿里,被供奉着的神是主角,可是在万神殿里,人被守护神所围绕,成为主角。这种安排形式,是多神教的古代精神的具象化,也体现了罗马帝国的哲学。
盐野七生 (2013-02-01). 罗马人的故事11:结局的开始 (开放历史系列) (Kindle Locations 484-486). 中信出版社. Kindle Edition.
还有,原来罗马的皇帝登基这不也是要三辞三让吗….
皇帝的登基典礼在元老院的议事厅举行。既然是仪式,就有一套既定的程序。首先,由元老院的全体议员派出一位代表,面向前任皇帝指定的继任者发出邀请,请他就任皇帝。而被邀请的人则需表示自己无力承担此项重任,予以回绝。于是议员代表只好再次发出请求,对方此时才可以正式接受邀请,同时向议员们宣布自己出任皇帝所要采用的名称。
盐野七生 (2013-02-01). 罗马人的故事11:结局的开始 (开放历史系列) (Kindle Locations 944-947). 中信出版社. Kindle Edition.
关于罗马皇帝究竟意味着什么,之前可能已经提过了,不过也许没有这里说的这么完整。
不过,罗马皇帝最重要的职责,正如“Imperator”(凯旋将军,元首,皇帝)字面上的含义,就是指挥军队保卫帝国。正因为他是罗马全军的最高司令官,所以才被称呼为“皇帝”(Imperator)。
盐野七生 (2013-02-01). 罗马人的故事11:结局的开始 (开放历史系列) (Kindle Locations 1240-1241). 中信出版社. Kindle Edition.
摘录下边这个仅仅是因为——进化!嘎啦嘎啦!….
塞维鲁在任上待了两年,其间第二次结婚,对象是叙利亚神职人员的女儿尤利亚·多姆娜。在里昂,他们的长子降生,即后来继承父位的皇帝卡拉卡拉。
盐野七生 (2013-02-01). 罗马人的故事11:结局的开始 (开放历史系列) (Kindle Locations 3919-3921). 中信出版社. Kindle Edition.
他写了《沉思录》,那本前任总理提过的书,为我的孤陋寡闻致歉,我确实是从那时候才知道这本书的..
奥勒留在罗马所有皇帝中的评价绝对是数一数二的,为啥呢,书中说了一个原因我很喜欢:
柏拉图曾说,国家让喜爱哲学的人来负责政治是最为理想的。我们暂且不论柏拉图的这种论断是否恰当,对于启蒙主义运动过后的近现代学者而言,马可·奥勒留正好是历史上实现了柏拉图理想的唯一案例。
盐野七生 (2013-02-01). 罗马人的故事11:结局的开始 (开放历史系列) (Kindle Locations 164-166). 中信出版社. Kindle Edition.
皇帝本人也是非常受手下爱戴的,死后大家仍旧遵守对他的誓言可以看得出来。不过哲学家皇帝真的一定是个好皇帝吗?至少不一定是个高效的皇帝:
皇帝的工作态度已经不是“勤勉”一词所能形容,因为他坚信,自己所下达的判决应该在任何人眼中都是公正的,也就是说,包括被告在内都要认为判决无可指摘,所以他必须事无巨细毫不疏忽。然而,这种性格也使皇帝总是字斟句酌,连遣词造句都要花上一天时间。力求公正的责任感,以及洁癖一般的完美主义,都促使他一直坚持着这种繁重的工作。
盐野七生 (2013-02-01). 罗马人的故事11:结局的开始 (开放历史系列) (Kindle Locations 2259-2262). 中信出版社. Kindle Edition.
奥勒留是斯多葛学派()的实践者,这俩名词我都听过,但都过耳即忘
相对于重视公务的斯多葛学派,伊壁鸠鲁学派则侧重“私务”和内心,认为人“内在的东西”更重要。我们常把伊壁鸠鲁学派翻译为“享乐派”,这恐怕容易引起误解,实际上翻译为“私生活派”比较合适。因为不管怎么说,这个学派和斯多葛学派最大的不同,就是他们认为私生活比公共生活更重要。
盐野七生 (2013-02-01). 罗马人的故事11:结局的开始 (开放历史系列) (Kindle Locations 2860-2862). 中信出版社. Kindle Edition.
一个关于沉思录的小细节 😂下边的这个阿提库斯老师和奥勒留的性格相反..
顺便说一下,马可·奥勒留在《沉思录》中表示谢意的“恩师”,几乎都是教他“自重”的人,因而马可对赫罗狄亚斯·阿提库斯只字未提。
盐野七生 (2013-02-01). 罗马人的故事11:结局的开始 (开放历史系列) (Kindle Locations 1309-1310). 中信出版社. Kindle Edition.
我很早以前就入了《沉思录》的kindle版,趁此机会翻出来看了一些,说实话,我已经过了看语录的年纪了.. 是已经慢不下来了吗..
说回正题,从书中介绍的历史环境来看,奥勒留真是一个不幸的皇帝,执政其间天灾人祸,和东方帕提亚打仗,和北方蛮族打仗,辛辛苦苦一辈子最后逝于前线。而他那不成器的儿子执政其间,却从无战争,连天灾都很少。
这里还穿插着夸了一下前一本里介绍的哈德良皇帝,正是他的四处巡视奠定了后来几十年的稳定基础,相比之下后一位安东尼皇帝养在深闺人未识,却也风调雨顺23年,其实给后期带来了不良的示范..
领袖之所以被赋予强大的权力,就是要让他未雨绸缪,在大雨不期而至的时候为大家准备好雨伞。哈德良真正的伟大之处,就是他在众人都未曾想到的时候,认识到了重建帝国制度的重要性并加以推行。
盐野七生 (2013-02-01). 罗马人的故事11:结局的开始 (开放历史系列) (Kindle Locations 585-587). 中信出版社. Kindle Edition.
因为安敦尼·庇护的示范作用,人们都对行省经历的重要性缺乏认识,认为不出本国也同样可以统治整个帝国。这就好比一个跨国公司,如果在总公司里就能顺利经营的话,谁还会忍耐着时差的困扰,跑到分散于世界各地的分公司,辛辛苦苦地接触不同种族的客户呢?我认为安敦尼·庇护这个皇帝至多是个擅长处理眼前问题的优秀官员,怎么也算不上是未雨绸缪的政治家。
盐野七生 (2013-02-01). 罗马人的故事11:结局的开始 (开放历史系列) (Kindle Locations 1362-1365). 中信出版社. Kindle Edition.
下边这个例子更是说明安东尼皇帝其实不是那么”贤”.. 流水不腐,户枢不蠹呀!
不过,安敦尼·庇护只要觉得一个人胜任职位,就会毫不在意地让他一直做下去。以往曾有先例,相当于罗马市长的“首都长官”职务竟然被同一个人占据了20年之久,直到这位“首都长官”本人提出了隐退的要求,安敦尼才让别人取代他。
我想,不论是多么称职的官员,在同一职位上停留10年、20年绝非良策。历史研究者们一致认为,安敦尼·庇护是对人事安排不作轻易改变的皇帝。
盐野七生 (2013-02-01). 罗马人的故事11:结局的开始 (开放历史系列) (Kindle Locations 1155-1158). 中信出版社. Kindle Edition.
不管怎么说,之前留下的坑,到奥勒留皇帝这里都爆发出来了,蛮族呀蛮族:
总之对罗马人而言,只要接受帝国统治,在帝国境内生活,种族差别根本就不是问题。马可·奥勒留无疑也继承了这种思维。不过到了他的时代,真正的问题在于,蛮族入侵的性质已经发生了变化。公元5世纪灭亡罗马的伦巴底、哥特、汪达尔等蛮族的名称,已经犹如远方的雷声,滚滚而来了。
盐野七生 (2013-02-01). 罗马人的故事11:结局的开始 (开放历史系列) (Kindle Locations 1929-1932). 中信出版社. Kindle Edition.
在北线和蛮族的战争中,奥勒留的初始目的是为了建立另一个行省,一个嵌入敌方的桥头堡,但是最终在奥勒留逝世之后以康茂德和蛮族议和收场,部分蛮族向罗马一方提供兵员。
问题不在于罗马军队是否可以收编异族,而在于这些被收编的异族是否认为自己是留在罗马的异类,或者他们已经融入罗马社会,认为整个帝国就是一个大家庭,自己已经是罗马公民中的一员。至于前线的基地,问题就在于他们能否作为罗马军中的一员服从军规,并与同一民族的敌人作战。
盐野七生 (2013-02-01). 罗马人的故事11:结局的开始 (开放历史系列) (Kindle Locations 3019-3021). 中信出版社. Kindle Edition.
说实话,看到上边这段,我不禁想到了现在的欧洲,肯定也有人以蛮族覆灭罗马来比喻过的吧?
奥勒留皇帝做的一个比较有争议的选择,就是让他的儿子康茂德继承皇位,康茂德皇帝在位其间的荒废朝政,标志着罗马帝国衰亡的开始,据说衰亡史的第四卷就是从这个时间点开始的。
具体的论述,我放到接下来说。
这本书之前曾经介绍过罗马帝国对于皇帝最严厉的一项惩罚——记录抹杀刑,即将其生前的功绩全部消除。康茂德在死后元老院一致同意对齐除以这项惩罚..
唯独没有得到救赎的昏君是卡利古拉,但卡利古拉的在位时间只有短短4年。而另一个尚未得救的就是康茂德,在位时间12年。并且,后世评价皇帝康茂德时还有一个特别的问题始终无法回避,那就是贤明的马可·奥勒留明知儿子不能胜任,为什么还把帝位交给他呢?
盐野七生 (2013-02-01). 罗马人的故事11:结局的开始 (开放历史系列) (Kindle Locations 2775-2778). 中信出版社. Kindle Edition.
前边说了康茂德做出决定和蛮族议和,作者为这个决定辩护了一番(很多历史学家是批判的),当时元老院也是反对的,所以当时对于康茂德肯定是负面评价的,然后作者列举了提比略和哈德良.. 二者都是元老院不喜欢的皇帝:
本来就得不到公民的支持,再加上元老院态度冷淡,连继承人都不能理解自己的政策,提比略和哈德良之所以还一意孤行,就是因为他们坚信自己的政策是行之有效的,并且这两个人都是强烈的自我中心主义者。也就是说,他们对负面评价具有免疫力,两个人都四五十岁,正是不易为他人所左右的成熟年龄。
盐野七生 (2013-02-01). 罗马人的故事11:结局的开始 (开放历史系列) (Kindle Locations 3083-3085). 中信出版社. Kindle Edition.
然后再次悄悄夸了下哈德良..
我们可以简单分析一下哈德良皇帝为什么在同代人中间声誉不高。这就像是万里无云的好天气,可是皇帝却总是为不知何时到来的洪水作准备。他离开首都,到帝国各地去加强堤防。当时无论是沉溺于观赏角斗士比赛和四马战车比赛的平民,还是忙于主持会议的元老院议员,当皇帝始终缺席的时候,他们却都没有意识到未雨绸缪的重要性。
盐野七生 (2013-02-01). 罗马人的故事11:结局的开始 (开放历史系列) (Kindle Locations 3114-3117). 中信出版社. Kindle Edition.
Anyway, 以下是作者对于为啥奥勒留要传位给康茂德的论述:
如果马可继续贯彻以往的实力主义,放弃康茂德做继承人,那么帝国的将来会怎么样呢?
答案很明显,帝国无疑会陷入内战。不管怎样广施仁政,反对派却总是存在的。因为能使所有人同样满意的统治肯定就不是统治了。不论是出于公义还是私愤,对最高统治者不满的人迟早会出现。在这种情况下,如果有合适的人,反对派就会拥戴他,内乱由此而生。一个人如果是老皇帝的亲生儿子,却又没能继承皇位,那他真是再合适不过的拥戴人选了。
盐野七生 (2013-02-01). 罗马人的故事11:结局的开始 (开放历史系列) (Kindle Locations 2802-2806). 中信出版社. Kindle Edition.
这个看着很有说服力,但是选一个能力不足的暴君,最后他被刺杀以后不还是出现内乱了吗!!这不是马后炮,上边这段话的逻辑我实在是不能同意,因为有不满,所以就一定会拥戴别人出现内乱,这么说来,岛国药丸呀!这都啥啥啥呀。(╯‵□′)╯︵┻━┻
不过下边这段我还是认同的:
没有比马可·奥勒留更尊重法律和追求公正的皇帝了。既然康茂德已经得到了元老院承认,也在圆形竞技场接受过公民的欢呼,那么马可就绝不会再轻易把儿子从共治皇帝的位置上赶走。除非康茂德死了,他才不再担任共治皇帝,可是康茂德一直活蹦乱跳。
盐野七生 (2013-02-01). 罗马人的故事11:结局的开始 (开放历史系列) (Kindle Locations 2823-2826). 中信出版社. Kindle Edition.
因为已经得到了元老院的承认,从法律上说已经不能平白无故废太子了。后头也可以看出,康茂德正是从姐姐刺杀她之后,才蜕变成一个多疑的暴君的。
罗马人区分暴君与贤君的标准,就看处罚当事人时是否株连其家属。就连马可·奥勒留处分煽动军团叛乱的叙利亚总督卡西乌斯时,对其家属也只是重者流放,轻者只需闭门思过而已。
盐野七生 (2013-02-01). 罗马人的故事11:结局的开始 (开放历史系列) (Kindle Locations 2888-2890). 中信出版社. Kindle Edition.
这里说的叛乱总督卡西乌斯,闹了个大乌龙…. 收到奥勒留去世的假情报就急匆匆出来称帝,结果奥勒留没死呢,骑虎难下了吧,跳反跳早了吧!
我觉得作者的日本背景(仍旧有君权)对于很多论述的影响都是显而易见的,比如:
什么叫乱世呢?就是以下犯上的世道。这时元老院议员世家或者权贵姻亲等因素都不起决定性作用了,就如同野生动物的世界一样,最重要的是依靠武力和智慧,胜者为王!
盐野七生 (2013-02-01). 罗马人的故事11:结局的开始 (开放历史系列) (Kindle Locations 3533-3534). 中信出版社. Kindle Edition.
下克上什么的.. 我反正很喜欢古代中国的科举和文官制,主要是因为打破了世家的垄断,提供了上升的途径,只不过还是跑不过时代的潮流呀。
我一开始对康茂德还没什么特别的恶感的,直到看到这个描述:
康茂德对自己的妻子很冷漠,本来克丽丝庇娜与暗杀阴谋毫无关系,只是因为皇帝另有新欢,她比较碍事,于是就被扣上通奸罪的帽子流放卡普里岛,不久之后也惨遭杀害。
盐野七生 (2013-02-01). 罗马人的故事11:结局的开始 (开放历史系列) (Kindle Locations 3393-3394). 中信出版社. Kindle Edition.
卧槽,这TM果然是个暴君!!
康茂德之后的一任皇帝是柏提那克斯,一个解放奴隶的儿子,作者评价这是罗马布衣卿相的典范!可惜最后还是死于内乱..
柏提那克斯的经历是罗马时代布衣卿相的典型,也说明罗马社会是流动着的社会。一个解放奴隶的儿子,最后竟然做到了皇帝,而且这也是他一步一个脚印,扎扎实实,逐步高升,不仅为自己,也为他所属的共同体不断作出贡献的结果。
盐野七生 (2013-02-01). 罗马人的故事11:结局的开始 (开放历史系列) (Kindle Locations 3633-3635). 中信出版社. Kindle Edition.
稍微结束内乱的是塞维鲁皇帝,他做了一些改革,初衷是好的,比如提高军人待遇,可惜….
换句话说,只要体力允许,永远在基地里生活都没什么不合适的。
这就是罗马政权军事化的开端。士兵们满足于军人的身份,退伍开创第二段人生的意愿出现衰退,造成罗马的军人与社会脱节。
盐野七生 (2013-02-01). 罗马人的故事11:结局的开始 (开放历史系列) (Kindle Locations 4279-4281). 中信出版社. Kindle Edition.
塞普提米乌斯·塞维鲁在帝国内部争夺帝位的过程中发挥出了卓越才能,但即位以后在政治军事方面就乏善可陈了。这是众多历史学家的基本论断,我也持类似看法。塞维鲁的悲剧性就在于他坚信自己所做的一切都是为了罗马帝国。帝位世袭是这样,提高军队待遇也是这样,这次战争还是这样。
盐野七生 (2013-02-01). 罗马人的故事11:结局的开始 (开放历史系列) (Kindle Locations 4348-4351). 中信出版社. Kindle Edition.
是在第12和第13本都看完之后才有时间回过头来整理这本的笔记的,所以或许会有一些穿插的地方,不过估计整个进程的理解也会更加深刻的吧。
从这一本开始,真正就进入到了衰落的阶段了,看的其实有点忧伤,毕竟追了这么多本,对罗马已经有感情了,感觉像是一个老朋友慢慢的堕落了,而且我啥都做不了,只能静静地看着它往深渊一点点滑落。
后世的历史学家和研究学者,都将3世纪危机的原因归结为以下几个方面:
- 统治阶级的昏庸
- 蛮族的频繁入侵
- 经济的衰退
- 知识分子的愚钝
- 基督教势力的崛起
以上的分析都没有错。但是在罗马人漫长的历史之中,绝对不是第一次遇到这些问题。除了基督教势力的崛起之外,其他的那些问题他们多少都经历过。可是为什么之前都能够克服的问题,到了3世纪就变成无法逾越的鸿沟了呢?
盐野七生 (2013-04-01). 罗马人的故事12:迷途帝国 (开放历史系列) (Kindle Locations 184-191). 中信出版社. Kindle Edition.
为什么呢,这个问题我也想知道,社会固化了吗,几十年前还是五贤帝士气蒸蒸日上,怎么现在就不行了呢。其实看完整本书(和后一本)之后我还是没有特别明确的概念——就是因为这个东西没做好,慢慢的就衰败下去了。不过相比国家级别的衰落也是一点一滴日积月累的吧。在最顶峰的时候,谁能想到从此就是衰亡的开端呢。
文中说的第一个理由是:
通过这张表格我们立刻就可以看出,造成3世纪危机的最大原因,就是政局的不稳定。
盐野七生 (2013-04-01). 罗马人的故事12:迷途帝国 (开放历史系列) (Kindle Locations 192-193). 中信出版社. Kindle Edition.
那个时期的皇帝,能当个6-7年已经是比较长寿的了,然后就因为各种原因领了盒饭,有已经开创了一手好局面,然后被手下莫名其妙多疑然后就犯上刺杀了的,甚至还有被雷劈的!我真是被雷到不行….
样例1:
皇帝马克里努斯的统治只持续了不到一年便宣告终结。这位悲惨的皇帝甚至在自己统治时期一直到死都没有踏入过帝国的首都罗马半步。
盐野七生 (2013-04-01). 罗马人的故事12:迷途帝国 (开放历史系列) (Kindle Locations 912-913). 中信出版社. Kindle Edition.
样例2:
在秘书艾洛斯的带领下,将军们悄悄潜入皇帝的房间将其杀害。皇帝奥勒良在经历了短短4年零9个月的统治时期后便遇刺身亡。当时的编年史作者这样写道:“奥勒良统治时期的罗马帝国非常幸福,人民爱戴他,士兵尊敬他,敌人惧怕他。”但就是这样一个英雄式的人物,最后竟然落得一个如此荒诞的结局。
盐野七生 (2013-04-01). 罗马人的故事12:迷途帝国 (开放历史系列) (Kindle Locations 4049-4052). 中信出版社. Kindle Edition.
这个我看了最痛惜了,奥勒良皇帝开局打的很好,结果出现了猪队友,这可真是国运不昌盛啊。
样例3:
同年8月末的一天,为了视察工程进展情况,皇帝普罗布斯登上专为视察而建造的高塔之上。因为工程动员了大量士兵,所以其中有几名士兵来到高塔下没有引起任何人的怀疑。但是接下来的一瞬间,视察用的高塔忽然倒塌下来。随后,装做赶去帮助皇帝的士兵用短剑将普罗布斯杀害了。
盐野七生 (2013-04-01). 罗马人的故事12:迷途帝国 (开放历史系列) (Kindle Locations 4239-4242). 中信出版社. Kindle Edition.
样例4:
这年夏末,就在罗马军队进入沙漠之后的某天夜里,落雷袭击了他们的营地。
一道非常骇人的落雷,伴随着巨大的轰鸣声划破夜空,照亮了整个地平线。当时的士兵们甚至忘记了自己正身处险境之中,全都惊讶地望向天空那耀眼的雷光。j
事故就在此时发生了。因为皇帝的帐篷比其他的帐篷都更大更高,结果遭到落雷的直击。皇帝卡鲁斯当场毙命。
盐野七生 (2013-04-01). 罗马人的故事12:迷途帝国 (开放历史系列) (Kindle Locations 4299-4303). 中信出版社. Kindle Edition.
这TM都可以,我还能说什么呢╮(╯_╰)╭
在这种情况下,想政令通达基本是不可能的了。这一百多年的乱局,当时的皇帝们肯定是有深刻反思的,我觉得后来的戴克里先皇帝创立的四帝共治、君士坦丁推行的推崇基督教制度,肯定有一部分是有考虑为了避免这些皇权斗争的因素在内的。至于是不是矫枉过正,这就是第13本最后的结语了——这么做,真的值得吗?
每个人都是罗马公民!罗马作为一个法治国家,所有的政策都是以法律的形式颁布的。这个被称为“安东尼努斯敕令”(ConstitutioAntoniniana)的法令规定,凡是居住在罗马帝国范围之内的自由人,全都拥有罗马公民权。
盐野七生 (2013-04-01). 罗马人的故事12:迷途帝国 (开放历史系列) (Kindle Locations 248-251). 中信出版社. Kindle Edition.
这是卡拉卡拉皇帝(这时期的皇帝太多,名字我已经对不上号了..)颁布的”平权“法令,从此再也没有罗马公民和行省居民的区别了,大家都是罗马公民。这样的坏处在于,首先,给你的东西你不会珍惜的,自己争取来的才会珍惜,想象一下全世界都能瞬间拿到美国绿卡的情形吧..
此外还有税收啥的不足,因为一下子少了行省居民,少了很多财政来源。大约是从此之后,罗马帝国时代以来的轻税制慢慢告别了,以后就越来越乱了。
但是,卡拉卡拉颁布的“安东尼努斯敕令”给罗马社会造成的影响,不仅仅是废除了作为国税支柱的行省税,导致帝国的财政恶化,更关键的问题在于,这个法令动摇了罗马帝国的根基“罗马公民”存在的意义。
盐野七生 (2013-04-01). 罗马人的故事12:迷途帝国 (开放历史系列) (Kindle Locations 342-344). 中信出版社. Kindle Edition.
卡拉卡拉使罗马公民权失去了其长久以来一直保持着的魅力。而失去了魅力之后,附加在罗马公民权之上的义务感和责任感也随之消失。这对于多民族、多文化、多宗教融合在一起的罗马帝国而言,无异于动摇了其存在的根基。每个人都有的东西,就相当于每个人都没有。用现在的话来说,就是一个品牌的消亡。
盐野七生 (2013-04-01). 罗马人的故事12:迷途帝国 (开放历史系列) (Kindle Locations 448-451). 中信出版社. Kindle Edition.
卡拉卡拉是想搞个大新闻反转颓势的,他除了这个好像还提出了军队里的啥的改革,但是长久来看好像也是负面效应居多.. 我已经忘了是从他这里还是另外的某位皇帝开始(好像是后者),封死了元老院和军团司令的转换。之前罗马的培养人才思路是文武双全,两边都做一做。然后军人皇帝上台之后,由于政务不通,应该做出啥成就来的几率不大的吧..
接下来的50年,在罗马历史上被称为军人皇帝时代。因为在这半个世纪之中,各个军团完全不顾元老院的意见,纷纷擅自推举自己的司令官做皇帝。而罗马帝国的衰退,与这些军人皇帝的层出不穷也有非常大的关系。后世之所以对皇帝亚历山大·塞维鲁的统治予以高度评价,也是因为他并非一名军人皇帝。
盐野七生 (2013-04-01). 罗马人的故事12:迷途帝国 (开放历史系列) (Kindle Locations 1752-1755). 中信出版社. Kindle Edition.
这里,把罗马的元老院想象成国会好了。
罗马的元老院并不是功成名就的老人们养老的地方,除了不需要通过选举这一点之外,和现代国家的国会没什么两样。
盐野七生 (2013-04-01). 罗马人的故事12:迷途帝国 (开放历史系列) (Kindle Locations 1033-1035). 中信出版社. Kindle Edition.
不过,我觉得这也是有背景环境限制的,当时的大环境是蛮族入侵,这时候保家卫国是第一要务,那么军人皇帝更能够干好这项工作(吧)。
与作为新兴民族并且统一在国王领导之下的波斯相比,由众多部族不断地聚散离合所组成的日耳曼民族对于罗马来说更加难以应对。这并非因为日耳曼人与波斯人相比作战更加勇猛,而是因为想要搞清楚日耳曼人的动向基本上是不可能的。
盐野七生 (2013-04-01). 罗马人的故事12:迷途帝国 (开放历史系列) (Kindle Locations 2616-2618). 中信出版社. Kindle Edition.
想象一下,当时的日尔曼蛮族,现在已经是为人类文明在各种领域贡献出那么多的瑰宝,沧海桑田啊。
不过至少在当时,蛮族是罗马的心头大患。甚至开始有皇帝阵亡了。
皇帝德基乌斯是罗马帝国第一位在与蛮族的战争中阵亡的皇帝。但是,罗马帝国即便付出了如此巨大的代价,仍然没能将哥特人和汪达尔人从巴尔干地区驱逐出去。
盐野七生 (2013-04-01). 罗马人的故事12:迷途帝国 (开放历史系列) (Kindle Locations 2723-2724). 中信出版社. Kindle Edition.
然后还有被俘虏的皇帝,简直土木堡..
不管实际情况如何,皇帝瓦勒良被敌人生擒是千真万确的。在此之前的罗马皇帝,像马可·奥勒留以及塞普提米乌斯·塞维鲁,是在与外敌交战的前线基地中去世的。还有德基乌斯父子,是在与哥特人的战斗中阵亡的。但是,被敌人生擒的罗马皇帝,瓦勒良是史无前例的第一个。
盐野七生 (2013-04-01). 罗马人的故事12:迷途帝国 (开放历史系列) (Kindle Locations 2982-2984). 中信出版社. Kindle Edition.
瓦勒良皇帝的另一面:
3世纪后期的罗马帝国,军人皇帝层出不穷,那些最终登上皇帝宝座的军人,几乎都是在这个时候被瓦勒良破格提拔上来的人才。
盐野七生 (2013-04-01). 罗马人的故事12:迷途帝国 (开放历史系列) (Kindle Locations 2838-2840). 中信出版社. Kindle Edition.
这些个军人皇帝要守卫边疆呀,于是罗马就开始渐渐失去了政治中心的地位,直到后来的四帝共治,直到后来的君士坦丁堡。
对于3世纪后半期的皇帝们来说,首都罗马的存在意义,仅仅是他们同蛮族和波斯战斗胜利之后举行凯旋仪式的场所而已。元老院只能承认军方选举出来的皇帝,所以他们也就没有专程前往首都罗马的必要。况且,对他们来说也没有在皇宫之中悠闲享受的时间。
盐野七生 (2013-04-01). 罗马人的故事12:迷途帝国 (开放历史系列) (Kindle Locations 4172-4174). 中信出版社. Kindle Edition.
这个点一直是我很想了解的内容,基督教花了300多年时间走上罗马帝国大幕的前台。由于一神教和罗马原生多神教的内在冲突,镇压过,简直是理所当然的事情。
皇帝德基乌斯不仅重新整顿了军团的纪律,他还尝试恢复社会纪律,并且真的付诸行动。于是德基乌斯也成为了对基督教实行迫害的皇帝之一。
盐野七生 (2013-04-01). 罗马人的故事12:迷途帝国 (开放历史系列) (Kindle Locations 2561-2562). 中信出版社. Kindle Edition.
100多年的时间里只有12人殉教,从这个数字上来看,即便对基督教进行镇压,殉教者的人数也应该不会出现大幅度的增加。因为镇压的对象只是那些传播基督教信仰的神职人员,而不是信仰基督教的个人。但是,将打击面首次扩大到一般信教群众身上的,就是皇帝德基乌斯。
盐野七生 (2013-04-01). 罗马人的故事12:迷途帝国 (开放历史系列) (Kindle Locations 2587-2589). 中信出版社. Kindle Edition.
以下是我特别欣赏罗马的一点,咱咋就做不到呢=.=
罗马人就算在内乱的时候也只是自己人之间的争斗,从来没有一个人会去寻求其他国家的帮助。尽管在罗马漫长的历史中曾经发生过许多次以内乱为名的势力斗争,但是其中完全没有出现过借助外国势力来击败同胞的情况。这应该也算是罗马人的特点之一吧。而之所以没有人这么做,恐怕是因为这种行为会彻底失去同胞的支持。
盐野七生 (2013-04-01). 罗马人的故事12:迷途帝国 (开放历史系列) (Kindle Locations 701-704). 中信出版社. Kindle Edition.
不记得哪里看到过的了,有任期的好处是宽容,无需不死不休的搏斗。
罗马的皇帝是终身制的,而身为终身制的最高统治者一旦失去人民的信任,那么等待他的下场只有死路一条。
盐野七生 (2013-04-01). 罗马人的故事12:迷途帝国 (开放历史系列) (Kindle Locations 3436-3437). 中信出版社. Kindle Edition.
我把这本结语放在开头「这样做真的值得吗?」
罗马帝国有必要为了延续寿命做到这个程度吗?有很多研究人员认为,戴克里先和君士坦丁两位皇帝使罗马帝国获得了重生。可是,这两个人是把罗马帝国变成了另一个帝国,才维持了罗马帝国的名义。如果没有这两个人的存在,也许帝国早在3世纪末就走到了尽头。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 3754-3757). 中信出版社. Kindle Edition.
可是,没有试过,你又怎么知道不值得呢 :)
反正,改革吧,不改革肯定没活路了(咦,门外好像有快递)。这时期国力衰弱,有浴场为证。
这样说来,公元305年建成的戴克里先浴场,算是由皇帝修筑、馈赠给公民社会的最后一座大型公共浴场。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 1637-1638). 中信出版社. Kindle Edition.
奇奇怪怪的四帝共治就是戴克里先搞出来的。首先从二帝开始,之后又东西二帝各自添加了一个副帝,这样就是东/西*正副皇帝四人执政。
至此,41岁和36岁的两位皇帝同时治理帝国东方和西方的统治体系形成。当然,戴克里先并没有将帝国分裂为东、西两块的意思。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 284-285). 中信出版社. Kindle Edition.
不过这个对于防务确实是有效果的,那段时期确实蛮族就不咋入侵的进来了。当时的罗马军队也在经历着变化,不过这个是没办法的吧?有其它的办法吗?
罗马军的作战主力由步兵转变成骑兵,最大的原因,在于实际作战中,需要在机动能力上与大举入侵的蛮族骑兵团对抗。即使步兵利用全线铺设石板、相当于现代高速公路的罗马大道,在机动能力上,也要五比一才能与骑兵打个平手。对于那些热心于提高部队战斗力的指挥官来说,将前不久进攻罗马失败而投降的蛮族骑兵纳入自己旗下为己所用,自然是毫不犹豫的事。这样一来,也就意味着罗马军队的主力正逐渐蛮族化,而且未来有愈演愈烈的态势。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 688-692). 中信出版社. Kindle Edition.
有人说这时候开启了军队蛮族化的开端,其实这点我倒是赞同书里的观点:
不管是异己还是蛮族,引入机制本身没有问题。问题在于,被引入一方有无罗马化的意愿。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 738-739). 中信出版社. Kindle Edition.
罗马军队以骑兵为战斗主力,的确蛮族化了。罗马帝国将文官和武将相分离,也的确蛮族化了。这些都是事实。但是,真正的问题并不在这里,而是蛮族不再想被罗马化。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 760-762). 中信出版社. Kindle Edition.
作者这话说的在理,这时候的罗马,已经不再能够吸引同化蛮族了,不知恺撒泉下有知当做何感想,也许他会很豁达的看开吧,毕竟没有长盛的帝国。
不过戴克里先的时期主要是分摊军事防务,大家各自守好自己的防区,政务上还是戴克里先做主。然后还是大家默契不插手的局面..
例外。“四帝共治制”体系下的12年里,两位皇帝并肩作战的例子,除了这场波斯战役之外,就再也没有了。就像皇帝只有一个人的时代一样,从多瑙河防线抽调部队前往不列颠、北非支援作战的现象,也已经完全消失了。四位皇帝之间好像形成了一条不成文的规定,那就是不希望别人来干涉自己的地盘,相对的,自己也不会插手别人的管辖区域。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 781-784). 中信出版社. Kindle Edition.
而且到他们这一代下去之后,就不是这么好说话的了。
我认同这么一个观点,3世纪的乱局中皇帝频繁的换位,给后来想要力挽狂澜的皇帝们留下了心理阴影,他们想要政局稳定,怎么办呢?变观念:
这样,罗马帝国踏上了从元首制到“绝对君主制”的第一步。皇帝的形象,也从“第一公民”转变为“远离公民的统治者”。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 866-867). 中信出版社. Kindle Edition.
既然人类赋予的权力不够充分,那就只有求助神灵了。戴克里先推动绝对君主制后,把自己逼进脱离罗马传统风气的立场中,陷入背后必须要有神灵做后盾维护权威的局面。戴克里先皇帝大力提倡复兴对罗马诸神的信仰,其政策背后其实隐藏着上面的苦衷。当然,不是希腊罗马诸神都可以拿来做后盾。既然要赋予当权皇帝绝对的权威性,唯一的选择就只有30万众神的领袖——最高神朱庇特。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 1382-1385). 中信出版社. Kindle Edition.
这里,其实后来的君士坦丁应该也是同样的思路的,只不过他的选择是基督教。
此时,罗马的政治地位进一步下降了。位于罗马的元老院也是。
不过,这也是以首都罗马为舞台举办的最后一场凯旋仪式。之后,罗马的皇帝渐渐都与胜利无缘。而且,似乎迎合这种趋势一般,此后罗马也不再是帝国的首都了。
罗马的地位沦落到与叙利亚的安条克、埃及的亚历山大同等的级别。帝国的根据地意大利本土也开始与其他行省平起平坐。这也是戴克里先实行帝国大改造,即“最后一搏”的一部分。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 904-908). 中信出版社. Kindle Edition.
要力挽狂澜怎么办,改革!然后改了税制..
然而罗马帝国的税制就是从这个外行、胆识符合常识的想法开始的。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Location 1071). 中信出版社. Kindle Edition.
经济改革!
也许是戴克里先对通货膨胀的无法抑制感到绝望,在货币改革6年后,即公元301年,他开始着手实施人类历史上第一次物价管制政策。他把罗马帝国境内流通的所有物产、服务均设定了上限价格…
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 1338-1340). 中信出版社. Kindle Edition.
军事改革!显然之前 * 1的东西现在就得 * 4了呀.. 于是军队人数暴增..
在整个公元1世纪的百年时间里,罗马军队的主要战斗力,军团数量一直维持在25个,军团兵力保持在15万人左右。进入公元2世纪,才扩增到28个军团,到马可·奥勒留皇帝时代则扩增到30个。200年的时间只增加了5个军团,3万兵力,这个事实足够令人惊叹不已。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 1124-1126). 中信出版社. Kindle Edition.
社会体系也改革!
社会上绝大部分的职业被列为世袭制。也就是说,子承父业,成为一项人人必须遵守的法律。而且,儿子还必须住在父亲工作的地区。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 1362-1363). 中信出版社. Kindle Edition.
他还在大浴场完工的公元305年宣布退位。这在罗马帝国史无前例,不仅由皇帝自己主动要求退位,连同事皇帝马克西米安也被连带拖着下台。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 1646-1647). 中信出版社. Kindle Edition.
戴克里先皇帝,我很同情你。当你晚年退位之后,竟然连妻女都无法保护,相比你那时心中也是无限愤懑的吧。你们那些同时代的皇帝真是太不讲规矩了。
统领罗马帝国20年、创立“四帝共治制”的戴克里先的妻子和独生女,就在面对爱琴海的塞萨洛尼基中央广场被处死,尸体直接让人丢进了大海。我们不知道戴克里先在亚得里亚海海滨的斯普利特宫殿中接获消息时,心中会作何感想。
遗憾的是,没有任何关于记录戴克里先晚年心境的资料留存下来。在历任罗马皇帝中,戴克里先是唯一亲眼看着自己多年构建的政策陆续崩溃的人物。仅就基督教问题而言,从最初的强制镇压和迫害,10年后政策已经发生了180度的大转变。至于“四帝共治制”,帝国中已经没有人相信它的好处。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 2515-2520). 中信出版社. Kindle Edition.
出来了,出来了!米兰敕令!!
就连我都曾听过这个名词。经过戴克里先时期的镇压之后,君士坦丁在走上最高皇位的过程中,和当时另一位东方正帝颁布了这个米兰敕令,官方认可了基督教。不过这时候还只是承认,并未列为国教。
在这之前,罗马要求属于“共同体”(ResPublica)的公民,不论个人信仰何种神灵,都必须对“共同体”的守护神——传统的罗马诸神,保持一定的敬意。在罗马军中,无论信奉基督教、密特拉教,还是太阳神,那都是官兵的个人信仰自由。但每年的1月1日,官兵必须聚集在军团基地的中央广场上,在举行给罗马诸神的献祭仪式之后,对身兼最高司令官的皇帝宣誓忠诚。这时就要求大家暂时将个人信仰放在一边,全体行动一致。
而在“米兰敕令”颁布以后,就再也没有这个必要了。“敕令”中,承认个人有完全的信教自由,却完全没有提到国家“共同体”的宗教。也不像伽列里乌斯敕令那样,在认同基督教徒信教自由的同时,也注明“必须在不违背帝国国法之限度内”一条。因此,“米兰敕令”是“无条件地完全认同”宗教信仰自由。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 2583-2590). 中信出版社. Kindle Edition.
虽然君士坦丁的心里,应该是想要用基督教来重塑罗马帝国的。好了,关于君士坦丁是怎么成为唯一的皇帝的过程,没有啥好记的,感觉是对手太弱鸡..
君士坦丁在历经千辛万苦得到最高权力之后,究竟想要实现什么样的理想呢?
那就是一个由新首都、新政体、新宗教构成的新罗马帝国。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 2793-2794). 中信出版社. Kindle Edition.
新首都——君士坦丁堡,新政体——绝对君主制,新宗教——基督教。
这一点,说明作为罗马帝国安全保障最高责任人的罗马皇帝,已经放弃了由元首制时期的皇帝们建立的、在帝国边境上阻止敌人入侵的安全保障理念。换句话说,现在的安全保障思路,是要在敌人突破边境防线之后,才由皇帝率领军队击退入侵的敌人。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 2992-2994). 中信出版社. Kindle Edition.
如今,帝国对防线的弃守,意味着去除了守护家门外围的栅栏。在君士坦丁皇帝眼中,对于跨过围墙侵入家中的敌人,将从房屋中央戒备森严的高塔中派出士兵,进行剿灭。至于这个过程要花多长时间,以及这段时间内将产生多大的损失,都不在考虑范围内。
这样一来,“respublica”的理念也就失去了存在的意义。原先是一个大家庭的罗马帝国,换句话说,属于公共财产的罗马帝国,现在让皇帝转为私人物品了。如今国家保卫的对象不再是帝国的国民,而是掌握帝国的皇帝。从这个层面来讲,中世纪是从君士坦丁开始的。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 3011-3016). 中信出版社. Kindle Edition.
君士坦丁优秀的地方在于,树立大目标之后能将完成这一目标的路径分成很多小步骤,然后一步一个脚印认真执行完毕。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 2648-2649). 中信出版社. Kindle Edition.
很多历史学家在叙述罗马史的时候,到君士坦丁时代就戛然而止,其理由是,此时的罗马帝国已经名存实亡。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 2778-2779). 中信出版社. Kindle Edition.
是呀,从此不再是元首制的罗马帝国了,从此是基督教罗马帝国了。
其实关于其它方面我其实不太关心,我就想知道他和基督教之间的联系。
君士坦丁被视为罗马史乃至世界史上的伟人,首要原因就在于他为振兴基督教作出了巨大贡献。提到中文译为“大帝”、英语称为“theGreat”的历史人物,我们马上可以举出三个人来:他们分别是亚历山大大帝、君士坦丁大帝和查理曼大帝。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 3193-3195). 中信出版社. Kindle Edition.
查理曼是法兰克人的国王,法兰克人是罗马帝国存续时期,北方蛮族的一支。公元800年,查理曼从罗马教皇手里接过象征神圣罗马帝国王位的皇冠。在罗马帝国灭亡后,欧洲陷入无法摆脱的黑暗的中世纪。神圣罗马帝国的创设意图,是要建设一个高举基督教旗帜的强大帝国。法兰克国王查理曼之所以会让人加上“大帝”的称号,是因为对当时的基督教教会来说,这个人是唯一的希望。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 3197-3201). 中信出版社. Kindle Edition.
君士坦丁当时把皇帝私产捐给了教会。
总而言之,即便是宗教组织,不,也许正因为是宗教组织,资产的作用尤为重要。如果不能理解这一点,也就无法理解当君士坦丁将皇帝的资产捐赠给基督教教会时,当时的基督教教会人员为什么不仅感恩戴德,还永世不忘。知道了这一点也就不难理解,为什么君士坦丁会获得了“大帝”的尊称。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 3373-3375). 中信出版社. Kindle Edition.
他还发布政令,允许神职人员免除公务,还不用交税。
政策也好,施政也罢,常常会在立案人意想不到的地方产生效果。这一道免除基督教神职人员公务的敕令,产生了一个恐怕连君士坦丁本人也未曾预料到的额外效果,那就是罗马社会的中间阶层,特别是其中文化层次较高的那一类人,开始纷纷涌进基督教教会。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 3410-3412). 中信出版社. Kindle Edition.
有人说过这样一句话:“罗马人曾经三次统治世界:第一次以军团,第二次以法律,最后则是以基督教。”
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 3538-3539). 中信出版社. Kindle Edition.
戴克里先镇压基督教,君士坦丁推崇基督教,但是我觉得他俩的目的是一样的,维护祖国统一。
之前说到戴克里先皇帝要正法统,于是选择了朱庇特等罗马众神,
对戴克里先来说,如果抵御外敌入侵,守卫边境平安是其一系列治国举措的开始,那么镇压基督教徒就是之前诸般努力的总结和收尾。换句话说,镇压基督教,不是戴克里先一时的心血来潮,而是执政19年来逐步酝酿的决断。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 1504-1506). 中信出版社. Kindle Edition.
戴克里先害怕的,并非基督教徒的实际数量,而是担心基督教普及之后,帝国的“防线”会被侵蚀。如果敌我不分,防卫对象也就不再明确,“防卫”的功能也就无法发挥。从这个意义上来说,戴克里先继承了元首制时期的列位皇帝对基督教的观念。很多研究人员将戴克里先定位为罗马帝国的最后一位皇帝,也是从这个角度得出的结论。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 3570-3573). 中信出版社. Kindle Edition.
这个我必须点个赞!完全赞同。但是回过头来看,这样的民族观和普世的弟兄姊妹观,真不能说谁对谁错呢。
而和戴克里先相反,君士坦丁扶持基督教,有啥好处呢?其实是一样的:
如果要一个人统治国家,就必须另外构思一套不但有效而且能长期维持效力的新施政体系。这既不是已经证明无法发挥效力的“四帝共治制”体系,也不是随时可以通过暗杀方式撤换皇帝的元首制体系。
君士坦丁也知道,政局稳定是维持帝国存续的关键。可是在他任内,军事力量分配上,不是以帝国边境防线为重点,而是注重强化他个人领导的兵力。因为他视个人家族存续优于政局稳定、帝国利益,所以他才会被称为第一个中世纪君主。
如果托付权力给掌权者的是“人类”,那么拥有剥夺掌权者手中权力、罢黜掌权者权力的,自然也是“人类”。但是,如果这项权力不是为“人类”所有,而改由其他存在掌控,会是怎样的状况呢?
罗马传统诸神并不适合扮演这种角色。因为多神教的神灵只是护佑人类,并不指点人类如何生存。多神教和一神教的神灵,从性质上来说是不一样的。这样,能够满足君士坦丁需要的神灵,就只能从一神教当中去找。因为犹太教一直维持着犹太人的民族宗教地位,在公元4世纪时,能满足上述条件的一神教,只有以跨越民族差异为传教方针的基督教。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 3625-3635). 中信出版社. Kindle Edition.
自从统治和领导的权力,不是由“人类”赋予而是由“神灵”赋予之后,让历代罗马皇帝头痛不已的问题一下子都不见了。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 3697-3699). 中信出版社. Kindle Edition.
其实是相互选择。
如果没有君士坦丁,基督教教会在教理解释问题上将陷入无休止的争论中,结果就是一再分裂,最后与古代大多数宗教一样销声匿迹。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 3750-3751). 中信出版社. Kindle Edition.
这是文中摘录的一位研究人员的观点,这种就是用来立argument反驳的呀.. 反正我觉得迟早是会发光的。
罗马帝国能长期维持低税率,在于采用了“三大支柱”并存的体系。尤其是成功地让富裕阶层参与到公共事业上来,这一点最为重要。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 1216-1217). 中信出版社. Kindle Edition.
我喜欢罗马,很重要的一个原因就是他们的民族性格很多方面我很赞赏,再比如:
罗马人思想中的“宽容”(clementia)是,身为强者,也不将自己的生活方式强加给弱者,尊重弱者有自己的生活方式。
盐野七生 (2013-06-01). 罗马人的故事13:最后一搏 (开放历史系列) (Kindle Locations 2546-2547). 中信出版社. Kindle Edition.
大约从之前的戴克里先皇帝,我对罗马帝国的历史就没有一开始那么兴趣盎然了。之后的东方式的绝对君主,咱见得多了早就不新鲜了。反观元首制时期的那些“皇帝”们,就是历史书写的绝对君主制之外的另一种过法。
这一卷从君士坦丁大帝之后说起,字里行间满满的熟悉感.. 比如说兄弟阋墙的桥段;比如说自相残杀的内战:
公元351年发生的穆尔萨会战以及公元353年进行的这场屠杀,使得驻守莱茵河以及在北海防线抵御北方蛮族侵略的罗马军团丧失了几乎所有中上级的将领。
盐野七生 (2013-06-01). 罗马人的故事14:基督的胜利 (开放历史系列) (Kindle Locations 707-709). 中信出版社. Kindle Edition.
还比如说阉党:
正因为命运掌握在他人手中,宦官们有着强烈的自我保护意识。最关键的就是操控主子的情绪,使之向有利于自己一方发展。而达到这个目的的最有效的方法,就是让主子始终心怀不安。只要烦恼不断,主子就会不断地听取他们的意见。宦官优西比乌尤其擅长此道。他虽然长得肥头大耳,却心思缜密,手段巧妙,或许这是他唯一的生存方式。
盐野七生 (2013-06-01). 罗马人的故事14:基督的胜利 (开放历史系列) (Kindle Locations 732-735). 中信出版社. Kindle Edition.
这是尤里安皇帝:
将自己的首领举在盾牌上游行,是尤里乌斯·恺撒征服高卢前当地人的习俗。历经了400年的罗马统治,高卢已经完全被罗马同化,连高卢人都不觉得自己是高卢人,而是罗马人。对那些来到高卢时日尚浅、驻扎在罗马行政当局称为“日耳曼”的莱茵河西岸一带的日耳曼人士兵而言,尤里安是他们这4年来生死与共的战友。可能他们认为用这种高卢传统的方式更能表达自己的情感。总而言之,尤里安是第一位以蛮族人的方式被拥戴登基的罗马皇帝。
盐野七生 (2013-06-01). 罗马人的故事14:基督的胜利 (开放历史系列) (Kindle Locations 1995-1999). 中信出版社. Kindle Edition.
尤里安皇帝崇尚希腊古典哲学,所以他继位之后想要扭转前几任对于基督教的偏爱。不过他和西方蛮族战斗结果还不错,但是在东方,这个基督教势力已经很雄厚的地方得不到支持,再加上自己的失误,最后死于与波斯的战斗过程中。不然的话,或许历史大不相同。
之后,罗马在与南下的哥特人的哈德良堡战役中惨败…. 从此帝国相当于被蛮族一分为二.. 在那之后,赋予了哥特人居住的权利。
哈德良堡战役并非罗马人第一次被蛮族人打败。然而,总司令同时又是皇帝死于战场的惨败,还是首例。而且,皇帝的阵亡之地不是在敌国他乡,而是在自己的国土上。
盐野七生 (2013-06-01). 罗马人的故事14:基督的胜利 (开放历史系列) (Kindle Locations 3273-3275). 中信出版社. Kindle Edition.
卷末还说到了匈奴(Hun), 是蛮族中的蛮族.. 好期待最后一卷呀!
和基督教相关的部分我还是很感兴趣的。这是君士坦丁大帝留下的国家,
君士坦丁在临终前接受了洗礼成了基督徒,
盐野七生 (2013-06-01). 罗马人的故事14:基督的胜利 (开放历史系列) (Kindle Location 257). 中信出版社. Kindle Edition.
在临死前受洗,至少可以在生前不受教会的约束。大约是最后一个小节,说到基督教对皇帝的胜利的时候,就说了圣安布罗西乌斯和狄奥多西皇帝的几个关于主导权的争夺,最终都是皇帝退让,算是奠定了教宗高于皇帝的基础吧。
狄奥多西皇帝接到信后,抵抗了8个月。不过,8个月过去之后,他主动提出了和解。
犯错的人公开承认有罪,请求宽恕,基督教称为“公开忏悔”。必须经过这一关,才能得到宽恕,重新有机会朝拜圣体。普通的信徒通常要用很久的时间才能完成这种忏悔,过程中必须做很多事情来证明赎罪之心。
罗马帝国的皇帝狄奥多西,除去了身上所有象征皇帝的饰物,比如绣着皇印的衣服、头上的皇冠、镶嵌着宝石的长剑等,一身素衣出现在教会前,请求得到宽恕。他在门口等了一阵子之后,门才被打开,主教走了出来。安布罗西乌斯头戴镶满宝石的主教高冠,披着用金银丝线织成的豪华披风,一级大礼服的装束。主教走到跪着的罪人前面,问他是否有悔改之心,罪人用谦卑的口吻表达了自己的忏悔之意。仪式结束后,罪人再次得以进入上帝之家,在祭坛前,由主教赐给一小片面包,即朝拜圣体。
盐野七生 (2013-06-01). 罗马人的故事14:基督的胜利 (开放历史系列) (Kindle Locations 4023-4031). 中信出版社. Kindle Edition.
Game of Thrones里的情节和这多么相似呀!(请不要吐槽我用电视剧名指代书/电视剧..)
最终,安布罗西乌斯也得以封圣。也是在他掌权时期,基督教成为了罗马国教。
信仰是弥合种族的一剂良方:
当年马格嫩提乌斯举兵造反,野心勃勃地欲称帝登基时,他的蛮族血统给他带来了诸多不利。不过才过去14年,与马格嫩提乌斯同样来自日耳曼的瓦伦提尼安,毫无障碍地当选为罗马帝国的皇帝。因为高官们一致认为,新任的皇帝只要信仰基督,哪怕来自蛮族也不是问题。
盐野七生 (2013-06-01). 罗马人的故事14:基督的胜利 (开放历史系列) (Kindle Locations 2998-3001). 中信出版社. Kindle Edition.
这好像说的是这位蛮族皇帝的儿孙辈:
对一个不知道共和时代以及元首制时代的蛮族人而言,他所认知的罗马就是在君士坦丁大帝倡导之下,逐渐走向基督教国教化的罗马,要做一个真正的罗马人,就是成为基督徒。
盐野七生 (2013-06-01). 罗马人的故事14:基督的胜利 (开放历史系列) (Kindle Locations 3115-3116). 中信出版社. Kindle Edition.
不要骗我,万圣节是这么来的吗….
随着时代的推进,圣人的数量逐渐增加,到了近代,甚至连老婆通奸的丈夫都有专门的守护圣人。由于圣人数量不断上升,就是把一年中的每一天都定为一位圣人的纪念日也不够。于是,教会定了一个专门的日子,纪念所有没能单独享受纪念日的圣人,那就是我们叫做“万圣节”的11月1日。
盐野七生 (2013-06-01). 罗马人的故事14:基督的胜利 (开放历史系列) (Kindle Locations 4079-4081). 中信出版社. Kindle Edition.
说到当时两河流域那里的宗教氛围.. 23333
难得有一位不受这种气氛感染的人,曾经就当时的社会现象作了以下的描述:
无论是在街角还是在广场,城镇的每一个角落都有人在热心地讨论着我们无法理解的问题。卖布料的、卖食品的、兑换钱的,人人参与其中。如果你想问商品的价格,那么你最好有个心理准备,在得到答案之前,你得先听一番他们对圣父、圣子、圣灵的观点。“这位客人,您认为子的地位次于父吗?”
盐野七生 (2013-06-01). 罗马人的故事14:基督的胜利 (开放历史系列) (Kindle Locations 1146-1150). 中信出版社. Kindle Edition.
即使在4世纪这么一个国力衰弱的时候,罗马对波斯的战斗力优势依然存在..:
这一天双方阵亡的士兵人数,分别是罗马军75人,波斯军2.5万人。
盐野七生 (2013-06-01). 罗马人的故事14:基督的胜利 (开放历史系列) (Kindle Locations 2785-2786). 中信出版社. Kindle Edition.
终于来到整个系列的终章了。时不时出现的自己作死的情节让人哀其不幸恨其不争,古今中外都是一样的呢。
罗马帝国分裂为东西两部分了,这次是真的分裂而不是分治了。东边国力更加强盛,这时候是老大哥,想摆脱西边。东边以希腊语为主,西边仍旧是拉丁语。
罗马帝国的东西分离,是“东部”分了出去。东罗马帝国被希腊人建成了单一基督教帝国,而西罗马帝国虽说也是拉丁人的基督教帝国,但异教时代的罗马色彩依然浓重。因此,东罗马帝国也许并没有视西罗马帝国与自己性质相同。这样一来,罗马世界分裂为东西两半就成定论了。
盐野七生 (2013-08-15). 罗马人的故事15:罗马世界的终曲 (开放历史系列) (Kindle Locations 552-555). 中信出版社. Kindle Edition.
东边与之前肆意骚扰的蛮族媾和,封对方为大元帅,还想着祸水西引,真是..
不过,西哥特人的统帅阿拉里克也推迟了入侵,利用这段期间巩固了自己的势力。
阿拉里克被东罗马帝国皇帝正式任命为负责巴尔干地区的“大元帅”。他十二分地利用了这个职位赋予他的权力——可以自由使用储备在罗马帝国军用仓库里的武器、军服和粮食。这样,西哥特人的士兵就与其他蛮族士兵大不相同了。他们学会了使用高精武器,身着防护功能强大的军服,营养充足。
盐野七生 (2013-08-15). 罗马人的故事15:罗马世界的终曲 (开放历史系列) (Kindle Locations 903-907). 中信出版社. Kindle Edition.
国力衰微,群众转变为农奴以求生存。
从自耕农转变为农奴的现象,一句话说,就是背靠大树好乘凉。“国家”(respublica)不能尽到应尽的责任,个人就只有靠自己寻找活路了。
盐野七生 (2013-08-15). 罗马人的故事15:罗马世界的终曲 (开放历史系列) (Kindle Locations 799-800). 中信出版社. Kindle Edition.
国力衰微,仅有一两万的常备军,真的是完全不入眼。
据研究者的推测,到了5世纪初,兵力或已减少到三分之一以下。随着帝国接近末期,历史记录的质量下降,甚至已无法弄清“联军总司令”斯提利科所率将士的数量。不过,他恐怕一次也没有统率过10万人以上的军队,人数顶多也就一两万。可是,来犯的蛮族动辄超过10万人!
盐野七生 (2013-08-15). 罗马人的故事15:罗马世界的终曲 (开放历史系列) (Kindle Locations 1136-1138). 中信出版社. Kindle Edition.
西罗马帝国的联军总司令甚至把手伸向了奴隶,才征召到3万人的兵力,这真令人惊愕。
盐野七生 (2013-08-15). 罗马人的故事15:罗马世界的终曲 (开放历史系列) (Kindle Locations 1267-1268). 中信出版社. Kindle Edition.
从不列颠退回来了,从高卢北部中部退回来了,从西班牙大部分地区退回来了,从北非也退回来了。西罗马帝国早已风雨飘摇。
公元439年,在蛮族渡过直布罗陀海峡登陆北非的第10个年头,北非中枢迦太基终于陷落了。
盐野七生 (2013-08-15). 罗马人的故事15:罗马世界的终曲 (开放历史系列) (Kindle Locations 2492-2493). 中信出版社. Kindle Edition.
斯提利科的父亲是蛮族,但他却被认为是最后一个罗马人。他依先皇嘱托,尽心尽力保这个江山,即便如此,西罗马帝国的傻逼皇帝仍旧要干掉他..
是作为罗马人而死,还是回到蛮族而生?斯提利科难以抉择,苦恼不已。
盐野七生 (2013-08-15). 罗马人的故事15:罗马世界的终曲 (开放历史系列) (Kindle Locations 1652-1653). 中信出版社. Kindle Edition.
仅仅几十年后,另外两位大元帅也因为搞起了内战,这次似乎是因为摄政王太后脑子瓦特了。
就这样,西罗马帝国失去了罗马军队已经撤出的不列颠,失去了高卢北部和中部,失去了东部沿海地区之外的西班牙大部,又失去了北非,目前仅有迦太基城及其周边一带还在罗马人手里。在这样的状态下,西罗马帝国又要开始浪费所剩无几的力量。被浪费的不光是人和钱,还有时间。埃提乌斯与波尼法提乌斯这两位罗马军队“大元帅”之间的这场内战,直到两年之后才结束。
盐野七生 (2013-08-15). 罗马人的故事15:罗马世界的终曲 (开放历史系列) (Kindle Locations 2382-2385). 中信出版社. Kindle Edition.
西罗马帝国的公主也在作死:
公主霍诺丽娅把身边一个颇得信赖的宦官偷偷地派到阿提拉那里,让他带着书信和一看便知是属于公主所有的昂贵戒指。信中写道,如果娶她,作为嫁妆阿提拉将得到西罗马帝国领土的一半。
盐野七生 (2013-08-15). 罗马人的故事15:罗马世界的终曲 (开放历史系列) (Kindle Locations 2734-2736). 中信出版社. Kindle Edition.
这是在匈奴王阿提拉强势的期间,我感觉,阿提拉最出名的还是他那「上帝之鞭」的外号。
下边是关于阿提拉的传说,其实我是不太相信的:
传说主教利奥得到圣彼得和圣保罗的神助,鼓起勇气,当面谴责阿提拉的暴虐,说教此后超脱和慈悲的重要。阿提拉被利奥的热情雄辩说服,离开了意大利。这个故事中没有一字提到付钱之事,只是强烈而深刻的信仰把基督教社会从蛮族的暴虐中拯救出来。西方天主教势力的两大领袖之一迦太基主教现已不复存在,罗马的基督教教会需要强调幸存的罗马主教。从这时起,罗马主教开始被称为罗马教皇,成为全体西方基督教徒的支柱。
盐野七生 (2013-08-15). 罗马人的故事15:罗马世界的终曲 (开放历史系列) (Kindle Locations 2891-2895). 中信出版社. Kindle Edition.
这一天终于到来了。不过,连是哪一天都没有明确界定.. 仅仅是蛮族没有推举下一任皇帝,自己也没有获得东罗马帝国的承认,于是干脆自认为王。
罗马帝国就这样灭亡了。没有蛮族攻来和随后激烈的防御战,自然没有轰轰烈烈的死。既没有火焰,也没有惨叫,无声无息,无人注意到她的消失。少年皇帝退位后,奥多亚克既没有取而代之登上皇位,也没有把其他什么人扶上皇位。只是没了皇帝而已。半个世纪前的公元410年,发生“罗马浩劫”时整个帝国发出了悲叹痛惜之声,而在公元476年却是一片寂静。
今天全世界的教科书都把公元476年明确地记为西罗马帝国灭亡的年份。但是,不论哪本教科书,也不论哪位罗马史权威,即使记下了灭亡之“年”,却未记下“月”与“日”。原因很简单,无人知晓这“月”与“日”,充分发挥想象力,能说出9月也是极限了。
盐野七生 (2013-08-15). 罗马人的故事15:罗马世界的终曲 (开放历史系列) (Kindle Locations 3260-3266). 中信出版社. Kindle Edition.
而蛮族西哥特人的统治其实还不错….
奥多亚克保留了农庄这个元老院阶级的经济基础,又给予元老院铜币铸造权,紧紧地抓住了败者中两大势力之一元老院阶级的心。同样,他通过保留农庄和手工业,保障信仰自由,笼络住了另一大势力天主教会。他还通过社会自上而下在全体败者中扫除对蛮族入侵的恐怖,抓住了败者的心。他把“蛮族统治下的和平”带给了因失去“罗马统治下的和平”而痛苦的人们。
盐野七生 (2013-08-15). 罗马人的故事15:罗马世界的终曲 (开放历史系列) (Kindle Locations 3555-3558). 中信出版社. Kindle Edition.
查士丁尼是东罗马帝国历史上的重要皇帝,虽然我并不认为他配得上大帝的称谓。
高中的历史教科书中在提到查士丁尼皇帝的功绩时,一般举出下面三项:
一、建造圣索菲亚大教堂。
二、编纂《罗马法典》。
三、收复旧西罗马帝国领土。
盐野七生 (2013-08-15). 罗马人的故事15:罗马世界的终曲 (开放历史系列) (Kindle Locations 4052-4054). 中信出版社. Kindle Edition.
第二项确实是功在当代利在千秋的大好事。至于第三件嘛.. 功劳都是手下的贝利撒留将军干下的呀.. 他除了在后头添乱还做过啥吗?更何况整个19年的哥特战争其实让意大利半岛生灵涂炭..
蛮族汪达尔人曾经接管北非的罗马领土,但是:
贝利撒留6月初离开君士坦丁堡,9月初登陆北非,9月15日进入迦太基城。他仅用了两周时间,就在相当于现在利比亚、突尼斯和阿尔及利亚的广大地域上把统治长达100年之久的汪达尔王国消灭得无影无踪。尽管贝利撒留战略巧妙,真正的原因却是汪达尔人毫无作为地虚度了这100年。
盐野七生 (2013-08-15). 罗马人的故事15:罗马世界的终曲 (开放历史系列) (Kindle Locations 4223-4226). 中信出版社. Kindle Edition.
要用攻打北非一半的兵力进攻意大利,我在想,究竟是什么把这种想法灌进查士丁尼大脑的。
盐野七生 (2013-08-15). 罗马人的故事15:罗马世界的终曲 (开放历史系列) (Kindle Locations 4273-4274). 中信出版社. Kindle Edition.
这里的一半兵力,是7500人左右…. 真的是看不下去了!
后来贝利撒留向查士丁尼求支援,查士丁尼是这么做的:
贝利撒留紧急派遣一位信得过的队长,带着信件前往君士坦丁堡,严命他必须直接将信件交到皇帝手上。然而,不知道是查士丁尼没有理解贝利撒留直接上书的意义,还是认为没有必要,他亲切慰劳了送信的队长,甚至为他张罗结婚对象,却始终没有写回信。好像他钦准了7000名私家兵前往意大利,也许他认为这已足够。
盐野七生 (2013-08-15). 罗马人的故事15:罗马世界的终曲 (开放历史系列) (Kindle Locations 4658-4661). 中信出版社. Kindle Edition.
贝利撒留离去后,意大利半岛的状况已不能用“悲惨”二字来形容。哥特军队与拜占庭军队在意大利半岛各地冲突不断。意大利天主教会的主教们看不下去,派代表去君士坦丁堡请愿,请求查士丁尼皇帝不要再在意大利打仗了。
盐野七生 (2013-08-15). 罗马人的故事15:罗马世界的终曲 (开放历史系列) (Kindle Locations 4742-4744). 中信出版社. Kindle Edition.
沧海桑田,从公元前735年建国算起,1229年之后,罗马帝国灭亡了。东罗马帝国、或者称之为拜占庭帝国一直持续到公元1453年,但是从迁都君士坦丁堡、摒弃古罗马诸神、化身绝对君主制度开始,真正吸引我的古罗马世界已经结束,之后的各种作死、各种恨其不争的桥段在世界另一端的故事里我已经见怪不怪了。当时的蛮族,有的早已消失在历史长河中,有的在一千多年后已经成为人类辉煌文明的又一重要贡献者。让我正冠整衣目送历史,她,是最好的编剧。
最后,就以文中再次引用的小西庇阿的文章结束这个系列吧:
《罗马人的故事2·汉尼拔战记》是以史学家波利比乌斯叙述灭亡迦太基的罗马军队总司令小西庇阿(即西庇阿·埃米利乌斯)的文章结束的,在此我想再度回忆一下:
小西庇阿的目光久久没有离开展现在他眼帘中的迦太基城。这座城市开国以来经历了700年的沧桑岁月,长期极尽繁华。他望着这座城市陷落,望着她正在化为瓦砾之山。
700年的漫长岁月,迦太基把广袤的土地、众多的岛屿和辽阔的大海置于自己的统治之下。由此迦太基拥有了庞大的武器、战舰、大象和财富,与人类迄今创造的任何强大国家相比毫不逊色。
迦太基因自己的勇气和气概而高于过去任何国家。她虽然屈于罗马的要求交出了所有的武器和战舰,但她经受住了罗马军队长达3年的进攻,直到现在。然而,现在她陷落了,毁灭了,行将从大地上消失。
小西庇阿因想到敌人的命运而流泪。
尽管他胜利了,他却不能不让思绪驰骋起来。他不能不想到,不仅是人,就是城市、国家乃至帝国,都逃脱不了灭亡的命运。特洛伊、亚述、波斯、马其顿……历史展示给人类的是盛极必衰的图景。
不知是有意识地还是下意识地,这位罗马的胜将口中吟出了荷马史诗中的一句。这句话应该是特洛伊总司令赫克托尔所说:
“特洛伊终将也会随着普里阿摩斯国王以及他的战士一道灭亡!”
站在身后的波利比乌斯问罗马的胜将为何吟出这样一句,小西庇阿回头看着波利比乌斯,拉着这位希腊好友的手回答道:
“波利比乌斯,我们现在正在见证荣极一时的帝国灭亡的伟大瞬间。可是现在充满我心中的不是胜者的喜悦,而是终有一天我们的罗马也将迎来同样时刻的悲哀!”
盐野七生 (2013-08-15). 罗马人的故事15:罗马世界的终曲 (开放历史系列) (Kindle Locations 3268-3293). 中信出版社. Kindle Edition.
]]>Although this is my first time being a TA, either in undergrad or graduate school, I feel I’ve done a not-bad job. Hopefully I am not the only one to think so. :D
After weeks of PSO sessions, now I can finally confirm that my English is more than sufficient for class scenarios. :D And I did give some useful guidance to students’ questions!
I redesigned the handout web page for each lab I prepared. Now it’s “adaptive” to some extent.
Because I just cannot stand texts in a web page stretching to its full width all the time!! (See my shaking head there in front of a big screen?) And this was easy, just a few lines of CSS.
I prepared Lab2-Lab5, delivering a handout, a code base, as well as a master solution for each!
When I was taking the course, I’ve done similar labs then. So I am not doing all labs from scratch. Otherwise I doubt if I’d have time making a solution tar ball for each lab.
I replied almost all piazza questions with respect to labs.
// I feel piazza is sometimes like the supreme court, where students raise questions just for clarification, whether something is allowed / will be punished..
I automate the grading process, using my written scripts and test cases. Here I want to thank Wei-Chiu Chuang, Bo Sang, Shouyu Luo, and other previous semesters’ TAs for their helps. Wei-chiu is my TA when I was taking the course. He shared his scripts with me, upon which I build my own scripts. Part of the test cases I’ve integrated are from previous semesters, I’ve also designed a bunch new cases myself.
Some side notes for such scripts:
I’ve seen quite a few versions of scripts. Perl version, Python version, shell version, etc. The core of all these is to use “Expect” to interact with XINU back-end in command line. (Run man expect
to know more)
I’ve modified the shell version of expect setting file, to make it automatically stop after no output for 10 seconds (configurable). The old version I saw just stops after, say, 1 minute.
All the rest are fully up to the programmer. My scripts are in shell, and can uncompress / grab submitted PDFs / inject test cases / build and run automatically / restore all files automatically.
The scripts and solutions should be available somewhere under /u/u3/cs503/ (i.e. /homes/cs503/)
There are valuable resources in the cs503 directory on department servers!
There was a script to set ACL permissions for each student to only access their own grades/feedbacks. But I didn’t see it until 2nd lab or so.. Hence, we just generate texts for each student, and post it on blackboard’s grade feedback.
I also learned to set up the “turnin” system for code submission. And use crontab to turn off submission after deadline. We asked student to send late submission to us via email.
But next time, probably I could set something like lab1, lab1late1, lab1late2, lab1late3, in which lab1late3 means submitting using 3 late days. (thus no need to collect by email, or check ls -tl
to see submission time)
Always put everything student must know into a single handout file!
In Lab2-B, I put some part in TA-notes, assuming students will read that web page as well. It turns out some student complained and requested for full credit stating that they didn’t see this requirement in the main handout. We gave in..
Make a Piazza post, and sometimes send email notification to students, if necessary.
Students will complain if they lost points because they didn’t see some clarifications in piazza follow-ups..
State API requirements EXPLICITLY! In Lab3, we didn’t unite the declaration for one variable. Eventually in grading, we have to manually look into student’s submission to see how they defined this. It costs much much more time!
Automate if you can. Provide some sample/simple test cases.
I sometimes feel sorry for student if they failed to pass any test case.. Providing a sample test case should be helpful. Also, maybe the points distribution could be revised to be more fine-grained.
If no further changes, I’ll be a TA for CS240 C Programming CS505 Distributed Systems in 16spring.
Honestly, it took me a lot of time to prepare labs, set up the environment, grading, etc. I absolutely wish to have more time on my own research if possible T_T.
For such a course notorious for its high workload, I have expected it to be very time–consuming in all lab preparations / gradings. But it’s still even more so than I expected..
At the end, thanks to Dr. Payer and Shuvra for all the work in this semester! I am glad to work with them!
This concludes this semester. I truly wish I could have more time on my own research in next semester, provided that I’ve confirmed the right direction to pursue. T_T
]]>https://www.zhihu.com/question/36800026/answer/77016841
Black Friday期间入了Nexus 6P, 用了2周多,明天准备去退掉了。今天5X到了,接下来用5X.
用了6P两周,最大的感觉是——大!之前用的手机是5寸上下,换成6P之后,或许是我手不够大,单手无法完全握持,所以心里总觉得有点慌,怕掉了。或许最适合我的手机尺寸就是在5寸上下吧。也因为尺寸太大,车上固定手机的夹子(car mount)也得重新买一个,因为6P用了Type C接口,所以连接线也得重新买..
买之前很多人吐槽的背面顶端黑边,我觉得其实挺漂亮的!至少比5X那个迷之凸起漂亮。我买的是64G的白色版(frost),要不是冲着白色的话,平时我16G就足够了。相比之下,5X我就只敢买黑色的了,这凸起能盖一点是一点.. (5X的呼吸灯在底部实在是不习惯)
但是说实话,我觉得6P的后盖没有5X的后盖摸着舒服.. 是时不时有点阻力的那种感觉,不顺滑。
手机的电源键和音量键都在右侧。有一个大大的槽点!当我用car mount夹着手机当GPS用时,car mount的夹子正好会压在音量↓的位置!!你妹啊,我都再也不敢顺手塞到car mount里了。不过这个应该是car mount设计师的锅。
6P还有一个大槽点,上下两端的扬声器附近的凹槽部位,很!容!易!积!灰!尘!我这才用2周呀,就有肉眼可见的区别了.. 相比之下,5X的对应地方好像不是凹槽,不知道容不容易积灰尘,过几周看看。
至于迷の屏占比等等槽点,没对比的话是感觉不出啥的.. 另外我觉得6P底部的大黑边是必要的,大拇指按上去才能稳稳抓住手机..
平胸而论,我是有点失望的。6.0新系统的大卖点”doze”的效果并没有出来。直到决定退货的那天晚上,发现是QQ空间占用了太多的电,Android OS和Screen都只占用了3%, 而QQ空间占用了12%. →_→ 卸载之后果然好多了。但是在我每天时不时刷下手机的情境下,还是很难完全坚持到一天。应对方案就是在家里、车上、office都配备了连接线随时充电..
在使用5X一段时间后,我推测或许6.0系统关于蓝牙的部分还没有完全优化完毕。如果没有关闭蓝牙的话,那耗电量简直不能看,一晚上掉过12%的电,开回家一路几个小时耗费了27%的电,而手机仅仅是静置在一边没动弹。
很流畅!因为我不在手机上玩游戏,日常app是完全够用了,或者说太浪费了.. 2周多差不多没卡过(还是稍稍卡过1次来着?)。我拿出大二时候买的Defy, 里头刷着CM7的系统,现在对比来看,Android你真的是变强了呢(皮卡丘脸)。6P的运算资源对我来说几乎完全用不上.. (所以还是降格吧..)相比之下,今晚设置5X里的微信的时候,已经卡过2回了.. 不知道是不是微信的锅。
用了5X几周之后来吐槽。5X在快速打开相机的时候有很明显很明显的卡顿。同时开着虾米音乐以及Google Maps导航的时候,想要再语音google now或者google keep快速记东西的话,会很卡.. 我猜测有可能是蓝牙的锅。因为同时用这俩app的时候一般都是在开车。不连蓝牙的话就顺滑很多。
还有大家关心的发热这个槽点。因为我不在手机上玩游戏,所以平时也没有多少机会看手机发热。最高温度是在某次去聚餐的晚上,手机开着流量放在口袋里,然后全程很暖手,没停过。不过我之前一个破手机也有这毛病,不知道锅应该给谁。我遇到的最热也就是暖手吧,不会烫。
关于指纹识别,没有对比,不知道算不算快,有时候识别不出来,估计是我没有训练好全部的姿势。按照标准手势放手指上去的时候,识别很快的。我现在已经习惯指纹识别的按钮放在背后了,只是确实在平放在桌上的时候特别不好办。(Confirmed, 应该是手指按不准,我用5X的时候特意调整了几个姿势,识别的很快很准)
因为对AT&T不爽,就顺手换成了Project Fi的号码,这样一个单人plan, 对于常年用不了几百M流量的我来说真是太适合了。只是还不知道在各个national park里会不会没信号,估计在那里会悲剧。听说Project Fi的客服挺好,打过2次电话,体验还不错。
关于Google Play Music. 买6P或5X都附送3个月的Google Play Music会员。这个其实没有卵用,Play Music太弱了。
5X的盒子里比6P少了一条连接线.. 不过正好Project Fi之前发了个礼物过来(似乎是冲着生日发的?),里头就包括了个连接线,还有一个乐高积木,我搭了一个手机架。给官方一个大大的赞!
暂时就想到这些,有机会再补充。
暂时没图.. 等final考完,估计也就忘了上图了吧..
]]>第6部描述罗马共和国如何变成实质上的罗马帝国,有点像是终身制的大总统;第7部介绍奥古斯都之后的几任皇帝,提比略、尼禄或许你已经听说过;第8部介绍尼禄之后的乱局,以及之后的拨乱反正,为之后的五贤帝做好准备;第9部描述铺垫已久的五贤帝之中间三位;第10部不说人的历史,说道路、桥梁、引水渠等硬件软件设施的历史,很难让人不为之叹服,那是2000多年前的鬼斧神工!
这一本主要是说奥古斯都的故事,作为罗马帝国的首任皇帝,其实他并没有“登基继位”这样的仪式,他只是实际上拥有了皇帝的权柄。或者说,罗马帝国的”皇帝”并不是Emperor, 而是Imperator这个名词。所以从罗马共和国到罗马帝国的过程,并不是在某一天一个人跳出来说,啊我们从此就是罗马帝国啦!当时的国民对于“王政”还是非常敏感的。这个过程是奥古斯都在几十年的执政期间一点一点变化的,到最后大家突然发现,咦,世道早已不是共和寡头的那个世道了。
奥古斯都卓越的政治手腕,在于他的所作所为都是合法的。
奥古斯都所做的每一件事情,都合乎共和体制下的法律规定,而这些事情串连在一起,最终将演变成违反共和制法律的帝制。这就是他的“卓越”之处。
仅军队改革这一项,奥古斯都就用了28年的时间。
奥古斯都的改革中,最有意思的一个是因为少子化而做的对于婚姻法的改革,通过立法,他扭转了原本对离婚和婚外情无所谓的风俗。
可是,到了奥古斯都时代,不结婚的人越来越多。 公元前1世纪的罗马,人民并不是因为生活贫困、对未来不抱希望才放弃生育。理由恰恰相反,因为除了养育孩子,还有其他舒适的生活方式可以选择。 贵族即使单身,也不会有生活上的障碍。家务有奴隶代劳,日常生活的一切由管家奴隶负责打理。
我最不喜欢奥古斯都的一点,是他对属下/家人的私生活的干涉,而这源于他对传承自己血统这一执念的追求。在那个与嫡长子继承制完全不同的年代,毕竟医疗条件差,奥古斯都前前后后想确立的多少个继承人都中途夭折了,衣钵最终传给了他一开始不喜欢的提比略。
盐野七生 (2012-06-01). 罗马人的故事6:罗马统治下的和平 (开放历史系列) (Kindle Locations 3324-3326). 中信出版集团股份有限公司. Kindle Edition.
奥古斯都在政治心理学上可称是天才,但在个人的感情问题上完全没有智慧。按照古代的审美标准,他绝对是一个胜过恺撒的美男子。但是说到异性缘,我认为他肯定不如恺撒讨女人欢喜。千万别小看了女人的感性,女人不是那么简单就会被男人的权力和容貌骗过的。
坚定不移的意志原本是非常值得赞赏的品质,然而奥古斯都在血缘问题上的偏执已经到了执迷不悟的地步。执迷不悟往往是悲剧的开始。古代人认为,狂妄地想要自己操控命运的人,会遭到天谴。
其它看到的一些有意思的东西:
除了奥古斯都自身,同时代的历史学家提图斯·李维(Titus Livius)以第三者的立场曾经写过一本《罗马史》,可是在之后的中世纪基督教统治时期,作品被毁于一旦,因为基督教对罗马的兴盛以及“罗马统治下的和平”根本没有深究的兴趣。
不过,对奥古斯都而言,《爱经》三卷本诗集简直是不堪入目的东西。 奥维德在《爱经》的第一、第二卷中,向男性宣讲如何追求女性的技巧,在第三卷中则是教导女性如何去获得男性的欢心。作品中列举了大量的实证佐以说明。 《爱经》并不是一本黄色书籍。古典的“教战手册”通常带有对人性深刻敏锐的观察,充满了机智和黑色幽默,《爱经》是这一类作品中的杰作,让人读了心领神会,忍俊不禁。
这一本说了奥古斯都之后的几任臭名昭著的皇帝,其中有确实不咋地的卡里古拉、尼禄,也有其实还不错只不过管不好家庭的克劳狄乌斯,还有其实真的挺不错的提比略。
盐野七生 (2012-09-01). 罗马人的故事7:臭名昭著的皇帝 (开放历史系列) (Kindle Locations 2605-2606). 中信出版社. Kindle Edition.
烟消云散。说明白点,提比略统治后期怨声载道,是因为他之前一直殚精竭虑施行德政,还有比这更有讽刺意义的事吗?
盐野七生 (2012-09-01). 罗马人的故事7:臭名昭著的皇帝 (开放历史系列) (Kindle Locations 429-430). 中信出版社. Kindle Edition.
罗马元首制的特点就此表露无遗。罗马皇帝的权力从来就不是君权神授,而是在大家认可之后,才能成为治理国家的皇帝。
盐野七生 (2012-09-01). 罗马人的故事7:臭名昭著的皇帝 (开放历史系列) (Kindle Locations 1769-1771). 中信出版社. Kindle Edition.
而且,遴选皇位继承人也得经过元老院认可,否则皇帝的政令也不过是临时性办法。如果要成为长久实施的政策,就必须经过元老院这一关,否则还是无法实现它的法律化。这也正是奥古斯都所创立的罗马元首制。对于中国的皇帝而言,要当上罗马皇帝真得费尽九牛二虎之力。
大博评论说,他感觉罗马皇帝就像是个终身制的总统。有点道理,而且在总统之外,罗马的皇帝是指定继承人的。再然后,皇帝是需要元老院、平民的承认的。而且当新皇帝实在是不得人心的时候,暗杀其实也已经成了一种监督机制.. (如卡里古拉、尼禄)
盐野七生 (2012-09-01). 罗马人的故事7:臭名昭著的皇帝 (开放历史系列) (Kindle Locations 1727-1729). 中信出版社. Kindle Edition.
直到离世,他始终保持总归一死的凡人心态。何况一生都贯彻这种生活方式的人,竟是大祭司——罗马宗教界的第一人。此外,在罗马的宗教史上,自始至终都不曾有过独立的祭司阶层。我认为没有比这两件事更能体现罗马人对于宗教的态度的例子了。所以在罗马,政教分离一直被认为是不辩自明的道理,也是理所当然的。
我一直觉得政教分离应该是必备的,让恺撒的归恺撒,上帝的归上帝。
盐野七生 (2012-09-01). 罗马人的故事7:臭名昭著的皇帝 (开放历史系列) (Kindle Locations 1831-1834). 中信出版社. Kindle Edition.
在罗马人看来,就算是神君奥古斯都创设的体制,也绝非一成不变。对于从奥古斯都时代传承下来的体制,去其糟粕、取其精华的这种做法,本身与继承奥古斯都的传统并不矛盾。因为,只有在必要的时候进行修改,才能永远维持创设者本人的意图。这样一个只要作出适时“修改”就能维持其效用的体制,对于体制的创设者本人而言也是非常高兴的事情。显而易见,这说明了他已经完美地将雏形制造了出来。
我一直相信,没有什么制度是永远OK的,所以每过一段时间就得改革,罗马人在这个方面实在是令人佩服!
最后说到了尼禄,尼禄这个名字在我对罗马知之甚少的时候就听说过了,也许是最臭名昭著的罗马皇帝之一,原因是他“反基督教”.. 这站错队不一下就钉在耻辱柱上了吗!
盐野七生 (2012-09-01). 罗马人的故事7:臭名昭著的皇帝 (开放历史系列) (Kindle Locations 6941-6942). 中信出版社. Kindle Edition.
公元64年,尼禄迫害基督徒而成为罗马史上的名人。基督教徒极其反感尼禄,称其反基督教。对尼禄的评价在2000年后的今天依然没有丝毫改变。
尼禄他自杀身亡的时候才30岁(因为“乱党”打到罗马来了,众叛亲离),他喜欢希腊文化,爱诗歌,妥妥的一个文艺青年..
盐野七生 (2012-09-01). 罗马人的故事7:臭名昭著的皇帝 (开放历史系列) (Kindle Locations 7086-7087). 中信出版社. Kindle Edition.
在他仿佛获得“和平之神”的赞誉之际,尼禄已经下定决心前往他心驰神往的希腊旅游。然而,这次并非皇帝视察,而是去希腊参加比赛,一展歌喉。
在尼禄及之前,皇帝都有奥古斯都的血脉的,似乎之后就没了,大家无所谓了。
盐野七生 (2012-09-01). 罗马人的故事7:臭名昭著的皇帝 (开放历史系列) (Kindle Locations 7296-7297). 中信出版社. Kindle Edition.
在我看来,尼禄之死并非单纯意义的奥古斯都血统断绝,而是象征着奥古斯都一手创立的“ 精致的虚构”的帝国政权终结。
盐野七生 (2012-09-01). 罗马人的故事7:臭名昭著的皇帝 (开放历史系列) (Kindle Locations 7342-7343). 中信出版社. Kindle Edition.
尼禄之后的罗马帝国皇帝,全都与奥古斯都毫无血缘关系,这充分说明当时的罗马人早已不再唯奥古斯都的血缘论事了。
最后记点关于历史学家塔西陀的:
盐野七生 (2012-09-01). 罗马人的故事7:臭名昭著的皇帝 (开放历史系列) (Kindle Locations 7390-7391). 中信出版社. Kindle Edition.
然而,最后变成了德国历史学家蒙森说的:”该记的不记,记的都是不该记的。”
上边这句就是嘲讽他的,虽然他是那个时代最伟大的历史学家之一,但是他似乎有很多的个人偏见,特别是对这本里头说的几个皇帝(e.g. 提比略),历史还是要不相关的人来描述啊,可是当叙述者不相关的时候,往往已经好久之后了,没有第一手资料了。
离上一本读完已经过去了两个半月了…. 这本书是陆陆续续看完的,所以有些地方已经记不清了.. 这学期实在是事情太多 >_<
这本书讲的是传说中的五贤帝之前的乱状,内乱的几年间,皇帝你方唱罢我登场,然后韦斯帕芗和他的两个儿子担任皇帝的几十年间拨乱反正,帝国总归大致重回正轨。
奥托的弱点就在于没有实战经验,如果他参加过实战,在一开始就不会制定这种一旦所有事情不按预定方向发展就产生不了效果的战略了。
盐野七生 (2012-10-01). 罗马人的故事8:危机与克服 (开放历史系列) (Kindle Locations 892-893). 中信出版社. Kindle Edition.
奥托就是内乱期间称帝的一个人。
对手之间存在的是竞争意识,并非互相敌视的意识,尤其是双方当事人都颇具才能时,这种程度更加明显,他们彼此反而会惺惺相惜,所谓嫉妒只不过是自己的能力不如对方时产生的下意识的表现。
盐野七生 (2012-10-01). 罗马人的故事8:危机与克服 (开放历史系列) (Kindle Locations 1162-1164). 中信出版社. Kindle Edition.
在现代的欧洲,“韦斯帕芗”这个词语在各国语言中成了公共厕所的通称。在意大利一般说到韦斯帕芗,指的不是罗马皇帝,而是公共厕所的意思。
盐野七生 (2012-10-01). 罗马人的故事8:危机与克服 (开放历史系列) (Kindle Locations 3590-3591). 中信出版社. Kindle Edition.
第二个问题是,大帝国的经营需要能够担当的人才,哪一种体制对于确保人才更为有效。由600人组成的元老院势必无法摆脱优先考虑自己的权益的宿命,所以元老院主导的体制更容易形成封闭的统治阶级;君主政体的统治者只有一个人,所以必然需要广纳贤士。罗马帝国向被征服的行省人民开放门户就是选择了皇帝主导的帝政而带来的结果。
盐野七生 (2012-10-01). 罗马人的故事8:危机与克服 (开放历史系列) (Kindle Locations 4028-4031). 中信出版社. Kindle Edition.
话说,这个大元老院更容易带来的统治阶级封闭的问题,我还真是从没想到过!有点道理!
第九本里说的是公元1-2世纪的时候其中的「五贤君」的事迹。说是五贤君,其实第一个涅尔瓦才在位一年多就挂了,他做的最大的功绩就是指定了图拉真作为接班人.. 这本书里的主角是图拉真和哈德良。五贤君之四的安东尼·庇护所花笔墨甚少,也许是无为而治吧,前两任把大事都做完了,他像文景之治一样继承就好了。而五贤君的最后一位,那位写了《沉思录》的奥勒留,在这本里还没开始细说,也许要等到第11本吧。
这本书里我再次发现了很多值得摘录的语句,也许是和犹太人、和基督教有关的地方多了起来吧,而且也和宗教极端主义——这个最近世界的主题——有呼应。另外,在这本看到一半的时候,我突然想这样被当代首脑收为养子、确认为下任首脑的过程…. 不说了。另外还有对两千多年前的罗马帝国建筑工艺的钦佩,这也许是罗马人的天赋技能吧,同时代的汉朝估计造不出来这么些个的.. 这个在第10本里会详细介绍。
摘录的第一条,就是日常黑意大利人,哈哈哈哈哈
与现代意大利人不同,古罗马人的工程进展速度很快。
盐野七生 (2012-11-01). 罗马人的故事9:贤君的世纪 (开放历史系列) (Kindle Location 854). 中信出版社. Kindle Edition.
与建一座医院需要花上30年时间的现代意大利人相反,古罗马人的施工速度非常快。就连圆形竞技场也只用4年时间就建成完工了。
盐野七生 (2012-11-01). 罗马人的故事9:贤君的世纪 (开放历史系列) (Kindle Locations 1764-1766). 中信出版社. Kindle Edition.
下边这个说的是建筑用石上的“商标”,从这个可以大约看出经济的繁荣程度。
这些研究结果表明,公元前1世纪中叶尤里乌斯·恺撒时代就已经有了这种带“商标”的砖块。实行帝制后,从尤里乌斯——克劳狄乌斯王朝到弗拉维王朝,每经历一个王朝,这种砖块的数量就会有所增加。到了公元2世纪的五贤帝时代,它们的需求数量进入鼎盛时期,到了3世纪开始减少,直至4世纪几乎销声匿迹。
盐野七生 (2012-11-01). 罗马人的故事9:贤君的世纪 (开放历史系列) (Kindle Locations 1754-1757). 中信出版社. Kindle Edition.
需求量的变化和随之出现的行业分工化趋势大概是经济发展状况的风向标。如果真是这样,我们就可以知道4世纪基督教的兴起极不利于经济的繁荣。既然基督教重视来生甚于现世,我们自然无话可说。
盐野七生 (2012-11-01). 罗马人的故事9:贤君的世纪 (开放历史系列) (Kindle Locations 1758-1760). 中信出版社. Kindle Edition.
我印象里也许是到一千多年之后资本主义出现,才重新变得繁荣起来?那时候将经济活动和“天职”联系起来,我挺喜欢这个概念的~ (《新教伦理和资本主义精神》)
罗马是契约的社会,罗马的仁政和咱古代的仁政估计大不相同,不过我挺喜欢那边的概念的,毕竟现在也是这样的:
施行仁政归根结底就是要建设本分人不吃亏的社会。
盐野七生 (2012-11-01). 罗马人的故事9:贤君的世纪 (开放历史系列) (Kindle Locations 2266-2267). 中信出版社. Kindle Edition.
还有下边这一小段:
罗马人说这些人是蛮族,不只是因为他们的生活水平与罗马人不可相提并论,同时,也是法治民族罗马人对这些不习惯遵守承诺的人的蔑称。
盐野七生 (2012-11-01). 罗马人的故事9:贤君的世纪 (开放历史系列) (Kindle Locations 3037-3038). 中信出版社. Kindle Edition.
我们是蛮族T_T
开始具体说图拉真皇帝了,图拉真皇帝是第一位出身行省的皇帝,勤勤恳恳一生,开创了罗马帝国最大的版图。下边这段描述简直要看哭了:
正因为他是位得到高度评价的好皇帝,所以图拉真的雕像在经过了1900年后的现在依然还有很多。站在其中一个雕像前,我脱口说出了这样一句话:
“为什么你会如此地努力?”
…
因此,我试图揣测图拉真的内心想法,作出这样的回答:
“因为是第一位行省出身的罗马皇帝,所以需要比常人付出更多的努力。”
这样的人难道不是很常见吗?那些因为是女人中的第一个人,或者因为是东方人中的第一个人,所以他或者她只能格外地努力。
盐野七生 (2012-11-01). 罗马人的故事9:贤君的世纪 (开放历史系列) (Kindle Locations 2684-2692). 中信出版社. Kindle Edition.
从最后两句来看,作者也是经历了很多的人呀。
然而,图拉真皇帝的摘录到此为止了,他勤勤恳恳,但也许是太没有话题点了,所以连传记都没留下多少.. 相比之下,我们古代的史官真是个棒棒的设定~ 接下来都是说哈德良(Hadrian)皇帝的了。这一小节摘录的都是关于哈德良皇帝这个人的。
话说我觉得Adriano应该就是从Hadrian这个名字衍变过去的吧?H不是常常不发音么。
由此可见,哈德良的这两大爱好,即对希腊文明的迷恋和对狩猎的狂热,在十几岁的时候已经养成。这两个爱好粗看似乎毫无关联,但是,它们有一个共同点,就是感性。在哈德良的一生中,他始终是个感性的男人。
盐野七生 (2012-11-01). 罗马人的故事9:贤君的世纪 (开放历史系列) (Kindle Locations 2739-2740). 中信出版社. Kindle Edition.
尽管如此,图拉真在64岁之前,的确一直没有指定他为继承人。按照图拉真的性格,如果说是因为担心将军中有一些人怀有对哈德良不满的情绪,这样的解释也让人难以接受。
按照我的想象,很可能是图拉真在哈德良身上看到了某种自己无法理解的东西。那种东西或许可以叫做性情。它不会成为他讨厌哈德良的理由,但是,它会让他感到不安。这种东西在女人普洛蒂娜的眼里,是一种魅力,非常具有吸引力。但是,对于男性图拉真来说,即使在理性上,他可以接受,但是,真要指定其为继承人,会让他犹豫再三。
盐野七生 (2012-11-01). 罗马人的故事9:贤君的世纪 (开放历史系列) (Kindle Locations 2948-2953). 中信出版社. Kindle Edition.
哈德良和图拉真的性格不同,哈德良的上位过程在历史上也有争议.. 历史上对于他和图拉真的妻子普洛蒂娜是否发生过关系也有猜测…. 在图拉真病逝之后正是他老婆极力支持哈德良登基。
哈德良博学多才,绝对是个吸引女人的美男子。
在著名学者和皇帝展开辩论的时候,在场旁听的学者中还是有人理解了哈德良的想法。其中一人叫托勒密。哈德良访问图书馆的时候,他年仅30岁。虽然我们没有确切的证据证明他领会了哈德良的意思,但是在随后的几年里,他发表了大量的著作,内容涉及天文学、数学、地理学等,是革命性的集各学科之大成。
盐野七生 (2012-11-01). 罗马人的故事9:贤君的世纪 (开放历史系列) (Kindle Locations 4634-4637). 中信出版社. Kindle Edition.
对了,还有,哈德良是bi.. 他喜欢过一个希腊美男子安提诺乌斯(Antinous), 后来安提诺乌斯在尼罗河上“自杀”身亡,有说法是,他认为自己的死可以解救当时针对哈德良的将死预言.. 也有说法他想把自己最好的年纪留在哈德良的记忆里…. 而在安提诺乌斯死后,哈德良是这么表现的:
安提诺乌斯死后,哈德良像个女人一样哭得昏天黑地,让人不知如何是好。但是,他没有一味地沉浸在悲伤之中。首先,他神化了已故的安提诺乌斯。在埃及有一个传说,凡是被居住在尼罗河中的鳄鱼吃掉的人都会变成神,所以人们很容易接受哈德良的决定。其次,哈德良在事故发生地的对岸,建了一座城市,命名为“安提诺波利斯”(安提诺乌斯之都),还让希腊系的埃及人大批移居此地。人们很高兴移居到安提诺波利斯,无须哈德良采取强制措施,因为皇帝建的这座城市充满了希腊情调。接着,哈德良又铺设了一条从尼罗河畔的这个城镇穿过沙漠,到达苏伊士湾的罗马式大道。这条大道沿着海湾一直延伸至红海。这样一来,安提诺波利斯就可以作为一个物资中转站而变得繁荣起来。因为来自东方的物资要运到亚历山大,首先要从红海进入尼罗河,再在尼罗河上顺流而下经过安提诺波利斯。虽然哈德良像女人一样失声痛哭一场,但是上述举措绝对符合哈德良的作风,是帝国最高统治者经过冷静思考后作出的决定。
盐野七生 (2012-11-01). 罗马人的故事9:贤君的世纪 (开放历史系列) (Kindle Locations 4730-4738). 中信出版社. Kindle Edition.
这是一个皇帝的爱呀~
不过,到了晚年,哈德良皇帝变得乖张了..
但是,我认为除了年龄和疾病以外,导致哈德良改变的原因还有一个——那就是该做的事情他都已经做完。因为需要他做的工作已经全部结束,曾经紧绷的神经突然松弛下来,他感到极度不适。一直以来,性格自我的他突然失去了精神支柱。
当他一心一意履行皇帝职责时,他非常注意维护自己的权力。因为要做自己想做的事情,权力必不可少。为了保证权力在握,他必须控制自己的情绪。换句话说,他有所顾忌。但是现在,职责已经完成,于他而言,权力已经没有那么重要,他不再需要像从前那样有所顾忌,不再需要在意元老院及民众对自己的评价。作为一名统治者,哈德良看重的是业绩而不是他人的评价。如果与业绩相比,他更看重评价的话,在言行举止方面,他一生都会小心翼翼的。
盐野七生 (2012-11-01). 罗马人的故事9:贤君的世纪 (开放历史系列) (Kindle Locations 5063-5069). 中信出版社. Kindle Edition.
看完这本我才知道,在一千多年之间犹太人散居各地,就是从哈德良皇帝这里开始的。说哈德良是犹太人的死敌不为过吧。看了这些历史,我才更加理解说伊斯兰教继承了很多古犹太教的内核是什么意思。
犹太教徒叛乱时,经常会出现一种现象,这个时候也出现了。教条主义者常常会有过激的行为,因为他们努力要做到纯粹,为此,他们绝不允许有一丝一毫的不纯。其宿命就是过激行为的不断激化。
巴尔·科赫巴不能原谅放弃割礼的人们,不管他们与哈德良的禁令是否有关。他禁止没有接受过割礼的男子出入耶路撒冷,否则一律处斩。这就是说,要在耶路撒冷居住,条件是必须接受过割礼。
犹太人的保守稳健派中,有不少人用从头冲水的洗礼方式来替代割礼。但是,自称救世主的科赫巴和支持他的阿基巴都拒绝这样的洗礼方式。
盐野七生 (2012-11-01). 罗马人的故事9:贤君的世纪 (开放历史系列) (Kindle Locations 4832-4837). 中信出版社. Kindle Edition.
确实是这样的,左倾的时候,容易变得过激,因为对于群体内的人来说,更左肯定不会错;相反,更不左会被极左的人以共同理想为借口攻讦。
也正是在犹太人这个时期的叛乱中,使得基督教徒和犹太教徒彻底分裂了:
在犹太人中,用洗礼代替割礼的人大多数是基督教徒,他们并不承认科赫巴是救世主。因为对他们来说,唯一的救世主就是耶稣基督。于是,那些自认为正统的犹太教徒开始了对基督教徒的迫害。科赫巴和他的追随者们非常偏激,他们的行为已经超出了一般意义上的迫害程度,他们是要消灭基督教。
尽管犹太人中既有犹太教徒也有基督教徒,但是到公元70年耶路撒冷沦陷时,他们之间已经出现不和,开始分离,只是还没有走到决裂的地步。然而,以公元132年为界,犹太教徒和基督教徒彻底决裂,互为敌人。
盐野七生 (2012-11-01). 罗马人的故事9:贤君的世纪 (开放历史系列) (Kindle Locations 4838-4843). 中信出版社. Kindle Edition.
在哈德良皇帝统治期间,说实话他挑衅了犹太人,然后平叛之后“一劳永逸”禁止反对罗马统治的犹太人回耶路撒冷。
就这样,犹太人失去了自己的祖国。犹太人大流散政策经元老院决议通过,于公元135年正式生效,并一直持续到20世纪中叶以色列建国。就这样,搅得哈德良心神不安的犹太问题得到了彻底解决。从此,犹太教徒再也没有发起过大规模的叛乱。
盐野七生 (2012-11-01). 罗马人的故事9:贤君的世纪 (开放历史系列) (Kindle Locations 4886-4888). 中信出版社. Kindle Edition.
在这里作者说到了一神教(犹太教、基督教)和多神教(罗马、日本)之间观念的区别:
如果你认为自由中还有选择的自由,那么你所持的就是希腊和罗马的自由观念。但是,对于犹太教徒以及近代基督教徒来说,他们的自由中没有选择的自由。对他们来说,自由就是遵循神的教诲建设国家。也许你认为免除了他们的公职及服兵役义务,也同意他们有周六和周日,就是给了他们自由。但是,对他们来说,只要他们要的那种自由得不到承认,就是没有自由。
盐野七生 (2012-11-01). 罗马人的故事9:贤君的世纪 (开放历史系列) (Kindle Locations 4945-4948). 中信出版社. Kindle Edition.
所以,在这个共识错位的情况下,罗马人认为已经给予了犹太人足够的自由,而犹太人认为最重要的那个不给就不是真正的自由,所以二者的矛盾其实是不可调和的。现在中东的乱局和这个像不像呢?
恺撒认为有必要阻止犹太民族的封闭倾向。当然,他这样想不是出于人道的考虑,而是因为他知道封闭是导致关系激化的温床。
盐野七生 (2012-11-01). 罗马人的故事9:贤君的世纪 (开放历史系列) (Kindle Locations 4956-4957). 中信出版社. Kindle Edition.
恺撒的这个观点确实有道理,只有交流才可能避免误解、冲突。现代西欧吸引移民应该也有一部分是这个考虑的吧?不过只有双方都有兴趣才有交流的可能呀。当时犹太人在经济方面可是很厉害的呢,有利可图的情况下不会自闭。
有一点可以确定:不管犹太人是否起来反抗罗马的统治,哈德良对犹太教徒的感情始终是冷漠的,他对犹太人的处世理念深恶痛绝。犹太教徒认为,真理只属于他们,独一无二的神就是他们的真理。在哈德良看来,他们的这种处世理念是视而不见人类社会多样性的态度,是过于自我的表现。他无法接受犹太人对信仰其他诸神的人们所表现出来的轻慢,无法接受犹太人因为崇拜自己的神而憎恨人类的偏见。由于深受希腊罗马文明的影响,哈德良有这样的想法非常自然。因为希腊哲学的本质是不墨守成规,可以随时提出质疑。如果这一时期的基督教徒与犹太教徒一样,也起来反抗罗马,发动叛乱的话,我想哈德良一定会毫不犹豫地同样对他们实施镇压。
盐野七生 (2012-11-01). 罗马人的故事9:贤君的世纪 (开放历史系列) (Kindle Locations 5025-5030). 中信出版社. Kindle Edition.
关于基督教,当时的这个背景还真是我从来都不知道的呢:
尤其是继奥古斯都之后的提比略皇帝,他过于顾虑犹太人感受的种种做法让人觉得那不过是善意的无为之举,从一开始就是错误的。但是,就像历史学家塔西佗记述的那样,无疑,“提比略统治期间,犹太是太平的”。也许因为皇帝的态度如此,罗马的官员们也纷纷效仿,他们为了不刺激犹太人,一味地维护犹太人,甚至不惜违反罗马的司法制度,处死了耶稣基督,因为正是控制了耶路撒冷、对犹太社会有强大影响力的祭司阶层强烈要求处死这位自称救世主的犹太年轻人。
盐野七生 (2012-11-01). 罗马人的故事9:贤君的世纪 (开放历史系列) (Kindle Locations 4972-4976). 中信出版社. Kindle Edition.
// 安东尼庇护
好像是元老院不忍心辜负新皇帝的殷殷期望,结果,神化哈德良的决议最终得以通过。如果这时候元老院固执地坚持反对神化哈德良,并顺着这一势头决定处以“记录抹杀刑”的话,哈德良为重建帝国所付出的一切心血早就消失在历史的一隅,不会传到后世。因为这件事情,安敦尼得到了一个外号叫“庇护”,意思是“慈悲的人”,也因此,“安敦尼·庇护”成了历史上的安敦尼正式称呼。
盐野七生 (2012-11-01). 罗马人的故事9:贤君的世纪 (开放历史系列) (Kindle Locations 5285-5289). 中信出版社. Kindle Edition.
只有这一点点了.. 无为而治的安东尼皇帝..
系列中的第10本,暂时跳出历史,来围观古罗马时期的基础建设水平。说了道路、桥梁、引水渠、医疗教育等等。
大约和古罗马开始修路的同一时间段(公元前3世纪左右),遥远的东方也在修长城。相比之下,看了古罗马修建的四通八达的道路网,很难不对他们新生敬佩,这可是2000多年前啊!!
我最喜欢的是上边这幅图,用同等比例尺对比了当时的罗马和咱的长城。其实主要是以前没咋见过两个古国用同等比例尺的对比图.. 可以看出,罗马全盛时期把整个地中海变成内海,和咱的总面积是不相上下的,当然,纯陆地面积就小多了。我不禁想起了之前微博上看到的那副把地中海挪到中国的假想图:
脑洞大开 XD
总结,我到今天才真正体会到「条条大路通罗马」这句话的涵义。
好久以前我在玩某个罗马背景游戏的时候,曾经需要建设好多高架桥引水渠,当时没有深刻理解,现在回想起来,满眼都是历史啊!可惜已经忘了游戏名字了。
但是,用这种办法确定水费就说明,在古罗马时期即使家庭中也是通过不断地流动来保持水质。而且,昼夜不停地流水不仅可以保持水的清洁,而且能够非常有效地让下水道发挥作用。这是因为,由于有大量的水永不停歇地流动,下水道也会因此变得通畅,在卫生方面也会产生极好的效果。
盐野七生 (2012-12-01). 罗马人的故事10:条条大路通罗马 (开放历史系列) (Kindle Locations 1996-1999). 中信出版社. Kindle Edition.
罗马人的引水渠,水是一直流动着的,所以用这个方法来计费。
令人感到不可思议的是,在罗马帝国经济繁荣的时期,医疗和教育都是私营的,而在经济衰退的时期却变成了国营。那些认为社会应该用一种思想来统一的人在掌握权力的时候,想要实行的便是按照自己的思想重新组织教育和福利。基督教成为罗马帝国的国教以后,基督教会所做的就是这件事。半个世纪以后,罗马帝国灭亡了,留下来的是可以称为基督教帝国的拜占庭帝国。位于罗马帝国东方的雅典学园和亚历山大的博学园不久也停办了。这是因为,怀疑是研究的根本。而当时人们成了清一色的基督教徒,必须信仰基督教。
盐野七生 (2012-12-01). 罗马人的故事10:条条大路通罗马 (开放历史系列) (Kindle Locations 2586-2590). 中信出版社. Kindle Edition.
没有谁对谁错,╮(╯_╰)╭ 我只是赞同「怀疑是研究的根本」这句话
]]>The question is about the difference between serializability & linearizability. I checked my notes after meeting, it was 01/17/2014, which is more than 1.5 years now. I am really thankful to Gustavo’s mentoring!
Below is from my note, since I may not record everything correctly at that time, if you find anything wrong, please just point it out! Thanks in advance.
Assume a stack, pop() has 3 instructions inside, and push() has 4 instructions inside. e.g.
pop(): —> —> —>push(): —> —> —> —>
It would be best if we could consider them as this: (sequential consistency)
—>—>—> pop() —>—>—>—> push()
or
—>—>—>—> push() —>—>—> pop()
In this case there is now only 2 possibilities, either first push() then pop() or first pop() then pop(). It’s much easier.
If:
...push(4) —>—>—>—> push(5) —>—>—> pop(4)
Here, pop(4) means pop() with value 4 returned. So the pop(4) should be incorrect, cause apparently it should return value 5.
BUT Serializability says it’s OK to have pop(4). If this is acceptable, the whole execution is actually regarded as push(4), pop(4), push(5), which throws all the information about time!
While Linearizability won’t accept this. Linearizability respects the time information, if push(5) finishes before pop(4) starts, then they cannot be reordered. It has some kind of linearization point, think of it as the exact instruction that changes the state. If in the following case: ( star below is to the left of star above)
—>—>—>*—> —>*—>—>
where ‘*’ represents the linearization point, it is then equivalent as:
—>*—>—> —>—>—>*—>
since the order of linearization points is still maintained.
One good thing about Linearizability is that it is compositional. If A is linearizable and B is linearizable, then the composition of A and B is also linearizable. But for Serializability this is not the case. This property is very good because it allows modular checking!
]]>Show me the code:
1 |
|
上述代码的输出是这样的:
1 | Before push_back() yet another vector<int>: |
于是,在第一次back()存着的引用,last, 在push_back()之后神奇的变成invalid了!!
整个事情的起因是这样的:因为在C++中,往vector里添东西是会copy一份的。为了效率,我比较喜欢先添加进去,然后取得引用出来之后,再慢慢修改,比如说这样子:
1 | vector<vector<int> > ret; |
然而昨晚写的代码需要根据当前的最后一个vector
1 | auto& last = ret.back(); |
多么自然对不对!但是,这样运行的效果是,我上一个iteration里往last添加的东西,在执行完这几句之后,都!看!不!到!了!!
然后我对vector
我判断是re-allocation的缘故,原本返回的reference所指向的内存已经不再valid了。
首先,push_back()的文档是这么写的:
If a reallocation happens, all iterators, pointers and references related to the container are invalidated.
Otherwise, only the end iterator is invalidated, and all iterators, pointers and references to elements are guaranteed to keep referring to the same elements they were referring to before the call.
我测试过,不只是back(), front()也会有这个push_back()然后invalid的behavior. 不只是push_back(), 在insert()之后也会有这样的behavior.
而一旦我预先调用ret.reserve(5)以准备好足够的memory, 这个神奇的behavior就消失了!!
综上,我有足够把握声称:因为vector内部的re-allocation, 原本返回的reference可能会失效!
而对vector
说实话,C++没报错,这点让我有点意外的说..
解决方案1:如上一个section里所说,预先reserve()好足够的内存。
解决方案2:把原本的写法
1 | auto& last = ret.back(); |
改成:
1 | ret.push_back(vector<int>()); |
这样就没有问题了。
]]>很早以前便入了《罗马人的故事3:胜者的迷思》,已经忘了是哪个书单里看到加进来的了。7月11日去Taste of Chicago, 闲暇其间把3看完了,然后买了1,一路看到了5. 完全停不下来!而整个系列一共有15本。
第一部主要介绍罗马早期,王政-共和;第二部主要介绍与迦太基/汉尼拔之间的霸权斗争;第三部是成为地中海霸主之后对于体制内部矛盾的改革;第四部第五部是恺撒。
罗马国王不是神的替身,他是罗马共同体意志的代表,他要率领罗马共同体不断进步。虽然是终身制,却不世袭,还要通过选举产生。
这是最开始的王治时代,选一个国王出来。大约持续了200年吧,7代国王,每任都很持久!然后最后一任作死,大家就把他推翻了..
这是我对罗马早期的第一个印象。第二个印象是,那时候的民族/城邦真的是很小很小啊!罗马打北边的伊鲁特xx那个民族,把别人一个城市打下来了,平民派想要当做罗马城之外的第二个都城,但是距离罗马只有20km.. 可以想象,实在是太小了啊!
时间线:罗马从公元前7xx年建国,王治200年左右,公元前5xx年共和,公元前390年凯尔特人(高卢人)入侵国都占领7个月,之后罗马开始一步步成为霸主。
还有,参议院senate就来源于元老院这个词诶!
苏格拉底说过,祖国的法律即使不好也要遵守,为此他拒绝了让他逃亡国外的劝告,而被处以死刑。同是哲学家的亚里士多德则不愿殉法,早早就溜之大吉了。对于雅典市民苏格拉底来说,雅典是他的祖国。但是对于出生地不在雅典的亚里士多德来说,他没有义务为雅典的法律牺牲自己。
雅典真是太封闭了,也许是因为市民都有参政权利,因而不想分给外来人。罗马就好多了,兼容并蓄。雅典的”民主政治”也是直接民主,是依据数量来决定,而不是依据各人的知识技能加权。我反正不喜欢直接民主,觉得这样还不如精英寡头呢。
但是,建立了斯巴达体制的来库古深知,改革光靠嘴说是不够的,只有到了置之死地而后生的地步,改革才会成功,才会持久。 他废除了之前在斯巴达流通的金币和银币,决定以铁币作为流通货币。因为使用铁制货币,别国商人就不愿前来通商,于是,一切与艰苦朴素的生活无关的东西也就不会再进入斯巴达境内。而艰苦朴素的生活所需的东西在斯巴达境内可以做到自给自足。
…
但是,无论生活水平多么低下,只要大家都处于同样的水平,也就不会产生嫉妒,自然也没有富人和穷人之间的阶级斗争。斯巴达因此以没有窃贼而闻名。斯巴达也没有雅典摆脱不掉的权力斗争,因此得以在政治上保持了长久的稳定。
给斯巴达人跪了…. 强行苦行僧….
不,也许这就是人类的不同表现,即历史本身目标一致,但人类为实现目标的手段不尽相同。 为什么为实现目标而采用的手段会有如此不同呢?所谓的手段,我想大体可以分为以下两种:
- 第一是“民意优先”派。有此想法的人们认为主权在民,所以在反映国民意愿的同时,应该实现公共利益。古代希腊和罗马都没有主权在民的说法,但是作为城邦国家,它们的特点都是以市民为共同体的主要支柱。如何看待民意的反映是他们的重要课题。
- 第二是“公共利益优先”派。这部分人认为公共利益必须高于一切,他们同时认为民意的反映不一定有利于提高公共利益。也有人说,属于第一派的人们立足于性善论,而属于第二派的人们则立足于性恶论。
虽然我们不能说美利坚合众国的两大政党现在仍在沿用这个意思,但是仅看称谓,民主党和共和党都分别继承了上述两个传统。我想如果把民主党翻译成“民意优先党”,把共和党翻译成“公共利益优先党”,或许会更明白些。
这个理解democrat & republic的思路对我来说挺新颖的。
古代罗马人留给后世的真正遗产不是辽阔的帝国,也不是经过2000年以后依然挺立的遗迹,而是不论宗教和人种肤色,一律予以同化的开放性。
盐野七生 (2011-12-01). 罗马人的故事2:汉尼拔战记 (开放历史系列) (Kindle Locations 4484-4485). 中信出版社. Kindle Edition.
从即日起,希腊人彻底恢复自由。希腊各城邦对罗马不承担缴纳年贡和租税的义务。依据各自的法律,享有完全的自治。不承担向罗马提供军事基地的义务,罗马军队撤出全希腊。
罗马帮助希腊解除马其顿危机之后,不留一兵一卒,也不要求什么,像是做好事一样。在联想后来一次次希腊的反叛,真是.. 在第五本中恺撒说过这么一句话:
你们这帮人因反复自蹈死罪而为众人所知,又因为蒙祖先庇佑逃脱罪罚而闻名于世。
盐野七生 (2011-12-01). 罗马人的故事2:汉尼拔战记 (开放历史系列) (Kindle Locations 4547-4548). 中信出版社. Kindle Edition.
王子迪米特里厄斯曾作为人质被送往罗马,回到国内时成了彻头彻尾的亲罗马者,
第二本里我看的最有感触的就是那个年代的罗马共和国(战国末年、秦初),和现在的美国所相似的地方。怪不得看到过这样的说法,美国是在有意无意的模仿古罗马。同化异族,对失败者的包容,强烈的向心力。
盐野七生 (2011-12-01). 罗马人的故事2:汉尼拔战记 (开放历史系列) (Kindle Locations 4737-4740). 中信出版社. Kindle Edition.
但是,这种稳健的帝国主义路线也有缺陷,那就是“保护者”和“被保护者”必须想法一致。也就是说,只要出现下列情形,这种关系就无法成立:
- 保护者说:政治、外交、军事方面的自由可能会受到限制,但是,绝对保证秩序和安全。
- 被保护者反驳:自由,不然,死。
孰优孰劣,真的难说。但是自己做的选择就得自己走下去。
盐野七生 (2011-12-01). 罗马人的故事2:汉尼拔战记 (开放历史系列) (Kindle Locations 4842-4845). 中信出版社. Kindle Edition.
汉尼拔最好的弟子,同时也是最大的敌人西庇阿,拒绝葬在阿皮亚大道沿线的西庇阿祖祖辈辈的墓地里,原因是墓地在罗马境内。西庇阿留下遗言,直译过来是这样的:“不知感恩的祖国,你们有何资格拥有我的遗骨。”
这里的背景是,西庇阿这个布匿战争后期最大的功臣,在晚年遭人嫉妒,因为兄长500塔兰托(几千万)的资金问题而被弹劾。我也觉得太过了。书里有说,罗马人的一个性格特征就是好了伤疤忘了疼….
盐野七生 (2011-12-01). 罗马人的故事2:汉尼拔战记 (开放历史系列) (Kindle Locations 5050-5052). 中信出版社. Kindle Edition.
皮得纳会战的结果是,投入4.4万兵力的马其顿军队战死者达2.5万人,被俘6000人。相反,罗马军队的战死者人数不足100人。正像同时代的波利比乌斯写的那样,汉尼拔以后的罗马军队是高效而精巧的战争武器。
从这里开始,后边第三本书里也有各种例子,很多罗马敌军死伤成千上万,罗马自己只有几百人战损的数据,简直不敢相信。这是汉尼拔调教出来的啊。
在书的最后也有说到:
盐野七生 (2011-12-01). 罗马人的故事2:汉尼拔战记 (开放历史系列) (Kindle Locations 5340-5347). 中信出版社. Kindle Edition.
从战胜迦太基,成为西地中海霸主的“汉尼拔战争”结束算起,罗马完成全地中海霸权所用的 时间不足70年,就连波利比乌斯都对此惊叹不已。想必在当时,大多数人也有同感吧。
一切都源自汉尼拔。在跨越这130年岁月的本卷中,只用了16年时间的第二次布匿战争就占据了本卷三分之二的篇幅。回顾历史学家李维在其著作《罗马史》中用于“汉尼拔战争”的篇幅,不由得让我重新认识了这场 战争带给罗马人的影响之大。罗马人称霸地中海,包括灭亡迦太基,都是“汉尼拔战争”的余波。
以消灭罗马为终生夙愿的汉尼拔给了罗马变得比其他任何人、任何国家更加强大的力量。只能认为,正是汉尼拔,让罗马人在如此短的时间里,把整个地中海变成了“我们的海”。
What doesn’t kill you makes you stronger!
所谓无知大众,就是偏激地把一切出于政治目的(即使是很高尚的行为)的行为都视为被私利私欲所驱使的人种。
有意思
公元前80年接近年末的时候,在罗马的中心——罗马广场,按惯例召开了选举下一年度执政官的公民大会。在选出下一年度的两位执政官之后,独裁官苏拉登上了讲台,时年58岁的他在没有任何先兆的情况下,向公民们宣布辞去独裁官职务。
苏拉好帅啊,感觉起点那些穿越后改革政体的小说可以看看苏拉的事迹~
这场战斗的结果是,亚美尼亚方面死者达10万人以上,而卢库鲁斯指挥的罗马军却只有5人战死,不足百人受伤。卢库鲁斯取得了不逊于其师傅苏拉的骄人战绩。而与师傅相比,卢库鲁斯不止一次以少胜多,更加难能可贵。常胜将军卢库鲁斯大败亚美尼亚后继续东征,一直打到了里海。自亚历山大大帝以来,欧洲人率领军队踏足这个地方,这还是第一次。
我真的完全不能信好吗!!只有5个人战死,对面伤亡的10万人一动不动让你砍累死的吧?!
下边3段说的是恺撒与女人,越看越像个开了后宫的穿越者啊!!
盐野七生 (2012-03-01). 罗马人的故事4:恺撒时代(上) (开放历史系列) (Kindle Locations 1637-1642). 中信出版社. Kindle Edition.
如果借用某位作家的话,只有恺撒拥有让所有上流社会的贵妇人自愿列队等候他青睐的魅力。如恺撒的第一债权人克拉苏的妻子提多利娅,因为丈夫庞培赴东方指挥作战而独守空闺的慕琪娅,以及身为庞培副将必须同往东方的盖比尼乌斯的妻子罗利娅。光是留下记录及姓名者就已如此可观。虽然听起来很不可思议,但据史学家指出,元老院三分之一的议员之妻皆曾与恺撒私通。他的情人当中除了克娄巴特拉之外,最有名的当属塞维利娅。塞维利娅是后来暗杀恺撒的主谋者布鲁图的母亲,在她改嫁之前一直都是恺撒的情人。
盐野七生 (2012-03-01). 罗马人的故事4:恺撒时代(上) (开放历史系列) (Kindle Locations 1658-1661). 中信出版社. Kindle Edition.
不管怎么说,恺撒的确轻易赢得不少女人的芳心,史学家及研究者羡慕他的并不只是因为他深受女人的青睐,如果只是具有女人缘的话,那么角斗士或演员也能办到。他让许多杰出男人羡慕的地方在于他的情人当中没有一个怨恨他。具有女人缘固然是男人的梦想,但男人心底真正的愿望是如何避免喜欢自己的女人怨恨。
盐野七生 (2012-03-01). 罗马人的故事4:恺撒时代(上) (开放历史系列) (Kindle Locations 3030-3034). 中信出版社. Kindle Edition.
而恺撒从这个时期开始,就承担着把以前情人们的孩子培养成为武将的任务。恺撒属下担任军团长或大队长等将官职位的年轻人,他们的母亲多半是在恺撒的情人名册上。在写给元老院的报告书以及在《高卢战记》中,恺撒都清楚地记载部下的功绩。从前的情人将儿子托付给自己,而自己也让他们有所成就,恺撒会因此而感到愉悦。也许正因为恺撒没有亲生的儿子,才能让他像父亲一样照顾他们。
下边这段说的是恺撒的金钱观,他负债累累,却毫不在意。
盐野七生 (2012-03-01). 罗马人的故事4:恺撒时代(上) (开放历史系列) (Kindle Locations 3503-3506). 中信出版社. Kindle Edition.
他对金钱并不渴求,他并没有打算要将他人的钱据为己有,而只是单纯地没有区分他人与自己的金钱罢了。他的举动是以每个人都是为了帮助自己的观点为前提而行动的。他对金钱的超然态度往往也能够感染债权人,从而使债权人没有任何不安与担心。他的泰然自若令我惊叹,他就是那个有名的恺撒。
最后,下边这段说的是他的做事风格,阳谋!
盐野七生 (2012-03-01). 罗马人的故事4:恺撒时代(上) (开放历史系列) (Kindle Locations 1872-1874). 中信出版社. Kindle Edition.
恺撒这个男人,做一件事不会只有一个目的。也就是说,恺撒的特点是将私利与他利甚至公利密切结合在一起。因为他认为私利的追求与实现,要借他利乃至公利的运用才有可能完全实现。
处于这种状态下的人,通常有两种反应:一种人会努力收拾残局,挽回由于失败带来的不利形势;另一种人会将既有情况就置之不理,转而另觅蹊径继续努力,最后一举成功地挽回败局。恺撒就是第二种人的典型代表。
恺撒的做事风格与常人不同。
布鲁图的母亲塞维利娅,是恺撒一生挚爱的女子。这个女子的委托,恺撒从内心绝不会辜负。
多情的恺撒,怪不得能得到千古崇拜!
战争过后,恺撒送给罗马元老院的战报里,只写下了三个词:“我来,我见,我征服。” 从这句话及后来的“胜败在此一举”、“布鲁图,你也在啊”等名句来看,恺撒简直有做广告文案的才华。
哈哈哈哈哈
但是,面对这些一直支持庞培的雅典市民,恺撒还是情不自禁地讽刺了一句:“你们这帮人因反复自蹈死罪而为众人所知,又因为蒙祖先庇佑逃脱罪罚而闻名于世。”
那些经历了长期衰退的民族,在历史上也没有重振旗鼓的先例。如果东山再起,必须对国家构造、民族自身进行大规模的改造。
我把这两段放在一起,因为觉得它们很像,雅典曾经是地中海最繁荣的民族,现在沦为2流了,却又不甘心,却又没实力重回一流,所谓反复作死。对比来看,中华民族如果没有近代一百多年来的努力抗争以及大规模革新,应该也是再也无法重振旗鼓的了。
那天的凯旋仪式上,他们反复齐声高喊着一句话:“快藏好娇妻呀,罗马市民们,我们领来了秃瓢的淫棍。”虽然恺撒认为这样太过分,但12年来风餐露宿的士兵们这回并没把总司令的意见放在心上。因为决定凯旋仪式上齐唱的内容历来都是士兵们的特权,而这么做据说是为了让诸神不对威风的凯旋将军产生嫉妒之情。
这里说的秃瓢指的是恺撒,发际线呐哈哈哈
几乎在恺撒遗体被火焰吞噬的瞬间,天降瓢泼大雨,恺撒的骨灰被雨水冲刷殆尽。后来屋大维在平定内乱后曾建造了一座帝陵,而本应首位葬入帝陵的恺撒却因骨灰尽失而无法得葬。
恺撒遇刺之后,他的遗嘱公开,那些刺杀他的人这才发现原本自己也是在恺撒的安排计划之内的,这群忘恩负义之徒!看了真是不甘心,不过也正是恺撒壮年之死使得他千年之后仍然是一个话题人物。
此外,即便恺撒订立遗嘱时打算再过十几年才移交事业,他也在当时就已经决定将自己一手创立的帝国交托给当时年仅18岁的孩子,虽然这个孩子还没有任何功绩可言。仅凭这一点信任,就足以令屋大维感动终生。18岁时的这份感激,成为了支撑屋大维今后意志的源泉。
恺撒有识人之能,他在屋大维18岁的时候就已经看出这个人有足够的政治才能(潜力),却没有足够的战争才能,因为还找了一个有战争才能的同龄人辅佐他。而屋大维最终也继承了恺撒的政治遗志,恺撒看的实在是太准了!
此外被尊称为奥古斯都的罗马帝国首任皇帝屋大维,后来选定莉薇娅再婚带来的孩子提比略为自己的接班人,担任罗马帝国历史上第二位皇帝。
屋大维24岁时娶老婆,19岁,但是当时已经是别人的老婆,而且还怀孕了.. 屋大维毫不介意视如己出,最后还让其成为接班人,实在是…. 囧rz
恺撒一直与她保持着情人关系,也不公开承认两人所生孩子,其实是为了维护她王位的稳定。毕竟埃及王室存亡的关键一直都系于罗马之手,只要罗马愿意随时都能以武力制伏埃及。正是因此,恺撒才极力避免刺激到罗马人的神经。恺撒给予的保护和爱,克娄巴特拉完全没有体会到。
我一开始看到这段话的时候,觉得作者想太多了。但是后来看到埃及艳后克娄巴特拉和安东尼之间的各种作死,觉得恺撒看人实在是太准了.. 恺撒既然没有将他们的孩子作为继承人的打算,也就没有公开他们的关系,这样对孩子也是一个保护,最后这个孩子17岁的时候不也被屋大维杀了么。
议和的结果是亚美尼亚王国和安东尼所代表的罗马结成同盟关系,这对罗马民众而言本非坏事。但安东尼为了巩固两国关系而促成的另一件事——安东尼为自己和克娄巴特拉的儿子与亚美亚尼王国的公主定下婚约——却在罗马人中间掀起了轩然大波。在罗马人看来,安东尼所率领的由罗马公民组成的罗马军团,属国家公共财产,并不能为一己私欲滥用,因此安东尼在国内的声望一落千丈。同时克娄巴特拉的浅薄也将安东尼推上了舆论的风口浪尖。
这里是克娄巴特拉和安东尼作死.. 人怎么能这么作?!
直到此时,克娄巴特拉是否才真正开始理解恺撒所为的真意呢?——他不承认自己的亲生骨肉,对儿子、对克娄巴特拉都有好处。所以他既不承认,也没有在遗嘱中正式提及自己有这么一个儿子,正是他对克娄巴特拉的爱意之所在。 克娄巴特拉的所有子女当中,屋大维只杀了她和恺撒之子。她和安东尼所生的三个子女都平安无事。因为对屋大维而言,恺撒之子——即尤里乌斯·恺撒的继承人——只能有一个。
这里是他们的最终结局。在历史上,心狠手辣的屋大维应该才是多数吧,相比起来,宽容的恺撒真的是太耀眼、太与众不同了!
整个系列的2本都是关于恺撒的,说多不多,说少不少。看这套书之前,我对于恺撒的理解只有常识的那些,他似乎是个很屌的人,大家都很崇拜他。看完这套书之后,卧槽果然是啊!
恺撒童年/青年时期并没有非常耀眼,他是一个大器晚成的人物。少年时期因为马略和苏拉时代的动乱,他不得不避祸海外4年。之后一步步成为大祭司、成为执政官。
青年士气的恺撒其实我并不是很喜欢,虽然男人可能都会喜欢他的风流,据说与1/3元老院议员的妻子私通啊(而且女人们都没有怨言啊)。我主要是不喜欢他的金钱观,因为他是负债累累,却又毫不在意,但他有足够的人格魅力让借钱人能够继续借给他,相当于让他去投资..
恺撒真正崭露头角是出任高卢总督,7、8年的高卢战记战功累累!而且文采斐然,写出《高卢战记》。恺撒和苏拉一样,都看出了在布匿战争时期起了大作用的元老院体制,现在已经不符合时代要求了。不过苏拉是内部改革,想要把元老院继续下去。而恺撒是要换成帝制,因此元老院忌惮恺撒,在恺撒要结束高卢总督的时候想要解除他的兵权。最终恺撒度过卢比孔河,与庞培展开内战。恺撒的战争天赋在高卢期间已经已经展露无遗,现在更是在当世最强の2人中获胜。但恺撒对手下败将极为宽容,任其选择是效忠还是回到庞培身边。也可惜就是那些忘恩负义的人最终刺杀了恺撒,让人心里看着窝火、不甘。
恺撒有识人之能,这个从安东尼(认为其政治天赋不够,战争天赋足够)、屋大维(18岁就认定其有政治天赋,却没有足够战争天赋)等等很多例子都看得出来。他在担任终身独裁官的时候的各种改革举动,更是让人叹服,一片欣欣向荣的景象。
也正因为如此,在最高潮的时候戛然而止,被反恺撒党以及几个恺撒党的手下忘恩负义刺杀,使得恺撒的光辉形象永远停留在了最高点。后人无不嗟叹。这是历史最耀眼的一颗星之一!
不过,说实话,恺撒想要改革的帝制,对于罗马来说真的是更好的选择吗?这个问题我现在还回答不了,等我看完后边的贤君/昏君之后,再来评判吧。
]]>For details of this Museums on Us® program from BankOfAmerica, check here.
I’ve located all those museums up to 06/03/2015 in my customed google map.
Since google maps seems to allow 10 layers only, I divided museums according to regions instead of states. Those regions are from google search results, forgive me if I am wrong in any of them (and thanks for telling me :D).
11/30/2016 Update: I found that an official map website has been set up by BoA, finally!! Thus my old map becomes stale and useless.. 🙂
I’ve also made a map locating all national parks in US before (may not include all recreational area or things of the sort). Check that out as well if you are interested.
□
]]>Update 10/07/2015: Add descriptions of weak/strong fairness from paper The Temporal Logic of Actions.
课上介绍到Concurrent Testing的时候举了CHESS作为例子,slides见这里。
CHESS是一个测试/重现concurrency bugs的工具。这个concurrency bugs有时被称作heisenbugs, 意指测不准的谐音梗。我一直觉得谐音梗玩多了会显得LOW, 但这个梗用的真是棒!Heisenbugs指的是那种,时不时出现暴露一个bug, 但是一旦想要定位它,比如通过添加printf()等调试语句,bug就消失了.. ╮(╯_╰)╭
CHESS能够重现这些bug, 它相当于是个user mode scheduler, 把所有的interleaving都试一遍就知道哪些情况会有bug了.. 所以我感觉又是一个执行的越久,就能多测一点的工具。在没有全部验证过的时候,无法保证一定是没有错误。另外CHESS的主打就是concurrency bugs, 普通bugs不是它的发力点。还有,因为这是MSR做的东西,所以是支持Win32和.NET
关于CHESS的细节就不多写了,在这篇paper里。接下来主要是说一说CHESS中涉及到本文标题的那些东西。
CHESS就是每次跑一个新的scheduling, 然后在其间检测
等等。而CHESS Scheduler就是要遍历所有的可能,给出所有的scheduling去执行。在slides中看到CHESS甚至有考虑到relaxed memory model的non-determinacy, 碉堡了!虽然不知道细节..
每个thread内有很多个preemption point, 这些个preemption point之间就是一个个 “atomic block”. 然后CHESS在执行的时候从来都是单线程的,每次只执行一个thread, 到了一个preemption point的时候就停下来,让scheduler看看接下来是哪个thread了,从而模拟出多线程的效果(所以我更好奇他们这种模拟方式是怎么处理relaxed memory model的,不过没有认真看paper, let it go吧..)。也因此,说CHESS是一个user model scheduler.
根据作者们的观测,大部分的concurrency bug都能在2次preemption的情况下就出现,在只考虑2次preemption的情况下,复杂度就没有原本exponential那么吓人了!
CHESS在遇到loop的时候也是会unroll的,要unroll就得有个depth bound, 不然可能无穷无尽unroll下去。这样unroll会造成一些问题,其中一个就是无法找到livelock. 这里就涉及到livelock, fairness等一串概念了。
Deadlock想必每个人都听过,Livelock指的是类似的东西。类比地说,deadlock是每个人都无路可走,而livelock是并非无路可走、但是最终只是绕圈圈,没有实际进展。
Livelock对应的是一个 “liveness”的概念,liveness与safety相对应,safety property指的是don’t do anything bad, liveness property指的是do something good, 有progress!
// 我的14年下半年就一直在做和liveness相关的东西,但其实做的很痛苦.. 因为一直碰壁 >_<
要讨论liveness, 就需要有fairness, 即本篇的关键词。假如你无法保证整个scheduler的fairness, 有些thread可能永远执行不到,那谈论这个thread上的一些assertion是否迟早为true又有什么意义呢。
根据slides上的定义,Weak Fairness指的是:
A thread that remains enabled should eventually be executed.
根据我的理解(与猜测),有可能是先有了weak fairness对应的实现,再有了这样一个概念。普通的round-robin实现的就是weak fairness. 一个thread知道自己在round-robin中是一定会被执行到的,只要不出什么变动。
WEAK这个词我是这么理解的:
整个逻辑是如此的自洽,以至于我坚信是先有了真正round-robin的实现,发现了这个问题,才提出的weak fairness的概念..
相对应的,Strong Fairness指的是:
A thread that is enabled infinitely often is scheduled infinitely often.
定义很绕,但其实strong fairness就是去除了这种某个thread可能永远执行不到的情况。它的实现可以很简单,就是round-robin + priority. 一直执行不到的thread会增加优先级,从而下次它一被enabled, 就可以被执行到。
Update 10/07/2015: From TLA paper:
Weak fairness asserts that an operation must be executed if it remains possible to do so for a long enough time. “Long enough” means until the operation is executed, so weak fairness asserts that eventually the operation must either be executed or become impossible to execute—perhaps only briefly. A naive temporal logic translation is
1 | weak fairness: (◇ executed) ∨ (◇ impossible) |
Strong fairness asserts that the operation must be executed if it is often enough possible to do so. Interpreting “often enough to mean infinitely often, strong fairness asserts that either the operation is eventually executed, or its execution is not infinitely often possible. Not infinitely often possible is the same as eventually always impossible (because (7) implies ¬□◇ … ≡ ◇□¬ …), so we get
1 | strong fairness: (◇ executed) ∨ (◇□ impossible) |
These two temporal formulas assert fairness at “time zero”, but we want fairness to hold at all times. The correct formulas are therefore
1 | weak fairness: □((◇ executed) ∨ (◇ impossible)) |
Temporal logic reasoning, using either the axioms in Section 5.6 or the semantic definitions of ❑ and O, shows that these conditions are equivalent to
1 | weak fairness: (□◇ executed) ∨ (□◇ impossible) |
现在定义都说完了,回到这一章的最开始,说CHESS要unroll loop, 但是unroll会造成一些问题,如无法找到livelock. 那么CHESS是怎么处理的呢?这就说到了fair cycle的概念,在slides的第34页。
slides上非常的言简意赅:
- All cycles in correct programs are unfair.
- A fair cycle is a livelock.
这两句话我纠结了好久,最后是这么想通的:
怎样算是livelock呢?就是那种虽然看着有进展,但是实际上在原地踏步的。
怎样算是fair呢?就是有跳转到其它states去的,像slides里说的那种在 淡蓝色 “!done” states内部跳转的,这种算是unfair, 在correct programs中,cycles都应该是这种的。
但是在有livelock的program中,若看着是fair, 并跳转到其它states里去了,但是最终仍旧是一个cycle, 在原地踏步,这就是一个livelock!
所以,CHESS首先不会去unroll an unfair cycle (源paper里的说法是最多unroll 2次), 因为unroll出来也是探索过的state, 从而更加高效。
其次,CHESS会去detect fair cycle, 然后就可以找到livelocks.
就是这样,喵
之前在4/27, 我一时爽更新了hexo的版本,之前一直用的是2.x的版本,现在是3.x了,结果重新设置花了好一会儿,而且发现代码引用的格式都变了…. 似乎不再是等宽字符了的样子?
这周15 spring学期已经结束了,CS510 Software Engineering这门课程也已经结束了。我最开始上这门课的目的是为了多了解model checking的,也早就超额完成目标了,还写了好几篇博客存档,LLVM经验条也涨了一大大截!棒棒哒!
不过也留了好几个坑,abstraction interpretation还没有科普,还有symbolic execution & model checking的对比也还没有写,最后原本打算写的这门课的总结也没有写的欲望.. 暂时先let it be吧.. 慢慢有机会再填(真的会吗→_→)。快滚去research啊!!
]]>注:以下皆为一家之言,本人才疏学浅,如有错误,在所难免,敬请指正!
Update [06/23/2015]: 看了篇关于在relaxed memory model下的predicate abstraction之后补充了最后一个section “最后再说几句”。
// Predicate Abstraction被“发明”出来是做啥用的?它能解决什么问题?
首先,Predicate Abstraction也是Abstract Interpretation的一种,信息源看这里:
Predicate abstraction [61] can be used to reduce any static analysis on a finite abstract domain to boolean fixpoint computations as performed by a model-checker using a theorem prover to automatically derive the abstract transformers involved in the fixpoint definition. Parametric predicate abstraction is an extension to infinite abstract domains [20].
至于Abstract Interpretation是什么.. 说来话长啊!时隔一年半之后我终于写了一篇相关的博文…. 这里简单描述一下我的理解:
1 | abstract states <--> abstract states |
原本在concrete states之间做的操作,可能因为数目实在太多而顾不过来(intractable),但是如果能将一些concrete states map to abstract states, 然后在abstract state的级别进行对应的操作,那么整个东西就变的tractable了!
Model Checking就是要explore whole state space, 然后要嘛验证整个东西都是对的,要嘛返回一个反例说哪里会出错。至于Model Checking是什么.. 说来话长,它也在我的写作列表里了!
制约Model Checking实用性的是state explosion problem, 即如果要遍历所有concrete states, 可能直到宇宙尽头都做不完!所以Model Checking一般都是在abstract states上遍历complete state space的。
而Predicate Abstraction就是这样一种能够将concrete states变成abstract states的方法!当然,predicate abstraction不仅仅可以用在model checking上,但是我毕竟不是专精这个的,我看到的paper里是只说了model checking的。
// 那么真的有人应用Predicate Abstraction吗?
有的,根据课件上说,
都应用了Predicate Abstraction的技术。
在之后的文章里,我会结合着SLAM中的应用一起说,主要来自这篇paper - Automatic Predicate Abstraction of C Programs. 因为我要做个课上的presentation, 就是关于这篇paper的.. 我的slides在这里
一句话总结,那篇paper的主要贡献在于,它第一次把Predicate Abstraction真正应用到一个业界常用的语言中——C.
这篇paper发表于2001年(天哪我还在上四、五年级..)的PLDI, 所以下边都用PLDI’01指代
// 那么,Predicate Abstraction具体是怎么做的呢?
一句话概括:Predicate Abstraction能把original program变成一个boolean program.
那么这样好在哪里呢?原本要track x = 1? 2? 3? .. n? 这样的具体数值,现在只需要track x>0? 这样一个predicate, 概括能力点赞!更具体一点的说,原本对于一个32位的int, 变成bit-vector logic交给SAT solver的话,是track all 32 bits的,而对应的boolean program交给SAT solver的话只有一个bit!!
注:SAT Solver是什么:给定一个logic formula, 返回是否这个formula是satisfiable的,即找得到一组值使得整个formula为true.
注:Bit-vector logic是什么:在机器中,数值是有位数限制的,所以数学上成立的formula在遇到可能的overflow的时候也许就不成立了。Bit-vector logic就是考虑了位数限制的情况。
至于这俩更加具体的描述,应该在之后写到symbolic execution & model checking的时候会多写一点(吧)。
首先来看一个demo, 假设original program是这样的:
1 | int main() { |
经过Predicate Abstraction生成的boolean program可能会是这样的:
1 | void main() { |
看看前后代码的区别:
* p1: i = 0* p2: even(i)而如果给定的是其它的predicate, 那么生成可能就是其它的boolean program了
1
2
3
4
i = 0;
==>
p1 = TRUE;
p2 = TRUE;
1
2
3
4
5
if(*) {
assume(p)
} else {
assume(¬p)
}
这样的形式。不过这个小例子里没有这么做
生成的boolean program是原先的program的”abstraction”. 毕竟名字里就是这么叫的.. 所谓abstraction, 在PLDI’01 paper里是这么描述的:
BP(P,E) is guaranteed to be an abstraction of P in that the set of execution traces of BP(P,E) is a superset of the set of execution traces of P.
即只要在C program中可能的path/trace, 在新的abstraction中也一定是可能的,superset. 所以Predicate Abstraction是over-approximation.
和”Over-approximation”相对的叫做”under-approximation”. 对于这俩我的理解如下图所示:
1 | ------------- ← Over-approximation |
假设中间的那个圈包含了所有真正的concrete states. 那么over-approximation就是be more general, 多涵盖了一些额外的states; under-approximation就是只涵盖了其中的一部分states. 具体使用如下:
我的感觉是over-approximation更常见,毕竟涵盖的states多了,总体所需要的abstract state就少了,在abstract state上explore full state space就更容易了
那么问题来了,挖掘机,啊不,如何确定这样用来决定boolean variable的predicate呢?在确定predicate之后又要如何transform, 计算abstracted boolean program呢?
要说如何决定这样的predicate, 我就要说到大名鼎鼎的CEGAR了!我就直接用上课的课件上的这幅图好了:
解说:
下图是一个具体的实例,也是来自上课的课件. 只看左半边就好了。
里头那个淡蓝色的小点代表的是concrete state. 淡蓝色小点之间的箭头表示真正可能的transition. 黑色格子区分出来的是一个个abstract state, 可以看到每个abstract state基本都涵盖了几个concrete states. 黑色箭头代表着abstract domain下的transition.
黑色箭头是怎么确定的呢?这里是”existential approximation”, 即只要黑色方格内有一个concrete state能够跳转到另一个方格内,这俩黑色方格之间就能有一条黑色箭头。显然,这是over-approximation. 对应的under-approximation可以是要求方格内所有states都有到另一个方格的transition的话,才能有一个对应的黑色箭头。
这个把小点点变成黑色大格子的过程,就是一个把infinite state space变成finite state space的过程。所以从intractable变成tractable.
但是显然,这样是会有spurious counter-example的嘛,比如按照黑色箭头,是能够从最左下角跑到最右上角的,但是按照真正的蓝色小点,是没法的。所以在判断出这是一个spurious example之后,可以根据其中inconsistent的部分,把不同的states分的更精细,比如下边这样:(还是只看左半边)
变成更加精细的小格子之后,原本的spurious counter-example就消失了。
按照slides & PLDI’01 paper中的介绍,是有用到weakest precondition来生成新的赋值语句,生成abstract boolean program的
我来介绍背景知识,什么是weakest precondition (wp, 又简写作wlp, for weakest liberal precondition). 首先,需要介绍Hoare Logic / Hoare Triple.
1 | {P} |
这是一个Hoare Triple, P和Q都是predicate, 它们像是一个所有满足这个predicate条件的state集合。这个triple的意思是:
这里的 ⊨ 在PL的paper里会经常见到,表示semantically true. state ⊨ P 表示P is true on this state.
说到wp, “weakest”的含义在于:
1 | ∀ P, |
这几行的意思是,对于任何满足这个Hoare Triple的P来说,P总能推出wp(c, Q), 所以称作weakest precondition.
wp(c, Q)是所有可能的P的一个”总结/概括”。然后,wp(c, Q)是可以直接计算的,对于赋值语句
1 | x := e |
来说,它的wp是这样的:
1 | { Q[e/x] } x := e { Q } |
即,它的wp是把post-condition Q中的x替换成e. 这里的notation “e/x”, 是约定俗成,把它看成用e把x推走,会好记一点 XD
背景介绍完毕,那么这个wp在predicate abstraction中具体怎么应用呢?Since每一个predicate其实都可以作为post-condition / pre-condition:
1 | x := ctr; |
对于上边这4行代码,首先我们知道这俩assume不应该同时满足。这里predicates显然可以直接采用俩assume里的东西:
1 | bool b0 : y != i; |
所以,首先代码会变成这样:
1 | ? |
然后
1 | wp(y := ctr + 1, y != i) |
即只要 ctr + 1 != i, 在执行完 y := ctr + 1 这行语句之后,就一定会满足 y != i 的条件。于是我们可以把这里写成:
1 | ? |
因为这里如果是计算b1的话:
1 | wp(y := ctr + 1, x == i-1) |
仍旧不变,所以b1不需要在这里重新赋值
同理,可以计算出第一行应有的语句:
1 | b1 := b3;// b3 : ctr == i - 1 |
这是生成好的boolean program, 然后初始的条件只有b2 & b3两个了,现在再做model checking的话就只需要遍历 b2两种情况 * b3两种情况 了!比原本把int32所有值explore一遍的最坏情况是不是快了很多很多!
以下是那篇PLDI’01 paper的笔记,我在课上也做了个这篇paper的presentation.
这篇不是第一篇讲Predicate Abstraction的paper, 但是是第一篇将Predicate Abstraction用在model checking real software的paper. 所谓”real”是说像C这样的业界常用语言..
这篇paper主要给出的是C2BP这个工具,它的主要功能就是给定C program, 以及predicate set, 输出一个abstraction (boolean program).
This abstraction is represented as a boolean program BP(P,E), which is a program that has identical control structure to P but contains only boolean variables.
C2BP自己其实只是处理给定的predicates, 至于怎么自动生成/refine predicates, 就是作者们的另外一个工具NEWTON做的事情了
C2BP被用在了MSR的SLAM toolkit中,用于检测temporal safety properties of Windows NT device drivers.
他们声称C2BP is sound & precise. Soundness其实就是说在源program中可行的东西,在boolean program中也一定可以找到。至于preciseness, 似乎是用另外一个abstract interpretation的framework去描述的,paper里没有细说
至少在这篇paper里,C2BP只能用于single-thread.
在C2BP生成了一个boolean program之后,这个output就被作为另一个工具BEBOP的input, 去做model checking了。BEBOP是一个symbolic model checker, 专为boolean programs定制..
BEBOP performs interprocedural dataflow analysis using binary decision diagrams.
这是第一次应用到C上,所以肯定得处理一些C带来的额外的问题。以下是paper中列出来并且描述了的几个challenge:
说C中有些效果都很难确定,所以干脆就用一个 * 来表示non-deterministic的效果,如1
2
if (*) { assume(...) }
else { assume(...) }
根据paper里的描述,C2BP的大部分时间都耗在theorem proving的调用上了,所以他们想了几个优化来减少theorem prover的调用次数,如1. 假设一个formula已经能够imply φ了,那么包含这个formula的一个更大的formula也一定能够imply φ, 所以就不用再去算一遍大的formula了。这个有点像Separation logic里的frame rule呀2. 只有在boolean variable经过赋值后值会改变的情况下,才去真正更新3. 在不改变效力的情况下,用更少数目的boolean variables.4. 用一些syntactic heuristics.5. ......
Pointers 见下文
Procedures & Procedure Calls 见下文
为什么指针是个问题呢?回到之前的wp, 对于赋值语句来说,其wp rule是:
1 | { Q[e/x] } |
但是在有pointer的情况下,这rule就不一定正确了!!如:
1 | wp(x := 3, *p > 5) |
按照原本的rule, 计算结果应该还是 *p > 5, 因为x没有出现在predicate中。但是what if p是x的指针呢?!
paper里介绍的解决方案很直白,分类讨论:
1 | φ[x, e, y] = (&x = &y /\ φ[e/y]) |
就是当x和y地址相同的时候,那么就同时更新一下y; 若x和y地址不相同,那么就啥都不用动。
因为这个,C2BP也要求C program中不要有multiple dereferences (e.g. **p). 这个很好做到,多预处理一次就好了。
但是!在最坏情况下,这个wp的计算将有2^k syntactic disjuncts, 会是exponential的!!所以C2BP也采用了pointer analysis来缓解这个情况。当能够确定俩肯定不是alias的时候,就可以仍旧使用初始的assignment wp rule了。
函数调用在有指针存在的时候也是有问题的,因为可能函数内部通过指针修改了某些内容,那部分东西也应该被记录下来
paper中对于这部分的处理是modular的,可以一个函数一个函数来。执行2个pass, 第一次每个函数被abstract成一个procedure signature; 第二次对于每个函数,有了它调用的所有函数的signatures就足够做后边的事情了
A signature of a procedure R is: (R’ is its boolean program)
①是函数参数;②是函数返回值;③④按我的理解,是忽略了那些R’中涉及到local variables的部分,毕竟caller不需要关心这个。
有了这个signature之后,假设一个函数调用是”v = R(a1, .. aj)”这个样子的,所有可能被修改的boolean variable都要做相应的更新,比如v, 比如signature中可能会提到的某个global variable, 比如signature中可能会提到的对某个传进去的指针的取值,etc.
// 好吧我承认,对于函数这里也没有完全理解.. >_<
Standard/Traditional Predicate Abstraction只是考虑了sequential consistency的。在relaxed memory model是unsound的(很多东西加上relaxed memory model之后都有问题,╮(╯_╰)╭)
关于relaxed memory model是什么,呃.. 推荐看Shared Memory Consistency Models: A Tutorial这篇paper, 我也有打算写出我自己的理解/介绍,但是要填的坑太多了最近补不上 O.O
关于Predicate Abstraction在relaxed memory model下要怎么做,也许可以看这篇Predicate Abstraction for Relaxed Memory Models, 我也只看了这篇.. 引用里还有其它的。
就酱。
□
]]>KLEE的paper在这里OSDI’08, 这是最初始一篇
KLEE的官网在这里
KLEE的作者之一在哪里说到过(忘了原链接在哪儿了.. 相信我,有的)
At its core, KLEE is just an interpreter for LLVM bitcode.
我现在的理解是,KLEE是一个symbolic execution的工具,在source code编译而成的LLVM bytecode文件基础上,symbolic地跑一遍,跑各种path从而生成各种test case, 其间还可以顺便检查一些常见的错误出来。
KLEE的效果评估就需要用到Gcov了。首先需要介绍一个Code Coverage的概念,wiki上说,Code Coverage指的是衡量test suite测试了整个program代码的标准,e.g. 通过多少个sub-routine被调用过,多少行被调用过这样子
Gcov就是这么一个在gcc toolchain下的已经成熟的code coverage tool. wiki说明如下:
Gcov is a source code coverage analysis and statement-by-statement profiling tool. Gcov generates exact counts of the number of times each statement in a program is executed and annotates source code to add instrumentation.
据说,gcov生成的log文件,记录了source file内每一行执行了几次,而gcc toolchain下的另一个工具gprof给出的是执行时间信息,两个可以结合在一起用来profiling & tuning.
Gcov可以用来评估KLEE的coverage. 具体过程如下:
llvm-gcc/clang, 将source code编译成LLVM bytecode
KLEE在LLVM bytecode上生成一堆test cases
gcc, 将source code加上 - -coverage参数生成二进制文件(从而才能用于gcov)
klee-replay命令可以将上述GCC生成的binary file在所有生成的test cases上跑一遍。其间会生成.gcda文件记录coverage信息
gcov通过这些.gcda文件计算类似下边这些数据的信息
Lines executed:77.78% of 45 Branches executed:75.00% of 16 Taken at least once:75.00% of 16 Calls executed:64.71% of 17
这样,就算是评估了KLEE自动生成的test cases的coverage.
以下是上边那篇OSDI’08 paper的笔记,没有特别细致地看,若有错误在所难免,欢迎指正 :)
有很多引用这篇paper的papers, 但是它们的着眼点基本在于KLEE中用到的某一个技术,比如说怎么search执行下一步
KLEE [17] and EXE [19] can implement a DFS search with a configurable maximum depth for cyclic paths to prevent infinite loops.
// 注:这个EXE好像是KLEE同一批人做的
再比如说没有处理longjmp什么的:
A significant amount of previous work in forward symbolic execution does not directly address the symbolic jump problem [9] [17] ….
这些我就不摘录了,值得摘录的有下边这段,作者之一在他的另外一篇paper中的介绍,主要讲的是相对于EXE的改进:
KLEE [11] is a redesign of EXE, built on top of the LLVM [39] compiler infrastructure. Like EXE, it performs mixed concrete/symbolic execution, models memory with bit-level accuracy, employs a variety of constraint solving optimizations, and uses search heuristics to get high code coverage.
One of the key improvements of KLEE over EXE is its ability to store a much larger number of concurrent states, by exploiting sharing among states at the object-, rather than at the page-level as in EXE. Another important improvement is its ability to handle interactions with the outside environment — e.g., with data read from the file system or over the network — by providing models designed to explore all possible legal interactions with the outside world.
关于概括KLEE, 它自己这篇paper就说的不错:
We present a new symbolic execution tool, KLEE, capable of automatically generating tests that achieve high coverage on a diverse set of complex and environmentally-intensive programs.
然后说也可以用作一个bug-finding tool! 话说我看了The PhD Grind之后一直以为它只是一个自动找bug的工具..
文中列举了symbolic execution的主要两种问题:
- the exponential number of paths through code and
- the challenges in handling code that interacts with its surrounding environment, such as the operating system, the network, or the user.
从文中来看似乎KLEE主要有改进的是第二点,它把这种environment的影响也变成input那样的symbolic的东西,然后进一步执行,即为 - -sym-args & - -sym-files参数
文中讲到usage的时候也说了大致要传怎样的参数进去,像max-time, argc/argv这样的都是需要/可以指定的。此外,paper里讲的- -sym-args用法和现在官网上写的用法不一样呃….
KLEE在每次遇到branch predicate的时候,都会调用”constraint solver STP”, 这个就是一个之前上课刚说过的bit-vector logic decision procedure!!
KLEE makes no approximations: its constraints have perfect accuracy down to the level of a single bit. If KLEE reaches an assert and its constraint solver states the false branch of the assert cannot execute given the current path constraints, then it has proved that no value exists on the current path that could violate the assertion, modulo bugs in KLEE or non-determinism in the code.
这个STP的调用开销是大头,所以他们竭尽全力地去优化那些bit-vector logical formula.
Almost always, the cost of constraint solving dominates everything else — unsurprising, given that KLEE generates complicated queries for an NP-complete logic.
至于symbolic execution的描述,也是有存一份state, 从reg到memory好像都有,然后到岔路口的时候fork一下变成几份state分别执行下去。所以会占用很多空间,于是他们有用到copy-on-write.
关于自动找bug, 他们有那种dangerous operation的区分(比如*p, assertion), 然后在symbolic执行到那里的时候会特别注意check有没有什么可能造成bug的可能性
另外他们在state scheduling里提到,他们其中的一种scheduling策略是random path selection, 就是俩branch选谁先走概率一样,这样能够防止fork bombing! 这个我还真没想到诶!
至于他们的metric - coverage, 是用line coverage来计算的,说这个比较没有争议,但是没法展现KLEE’s thoroughness (all possible paths). 如果用一个path-based metric应该会有更漂亮的数据的说
□
]]>看完这本我就去学习!
这本书很薄,但是娓娓道来一气呵成,有理有据令人信服!看完只觉得哀其不幸怒其不争!
我们走了一些弯路
啊不,
我们走了很多弯路
不过学费总归是要交的,逃不掉的,一些错误早犯总比晚犯更好!
作者蒋廷黻,史学家,亦是外交官
在讲到虎门销烟的时候说:
在他们的私函中,他们承认禁烟的困难,但是在他们的奏章中,他们总是逢迎上峰的意旨,唱高调。这种不诚实的行为是中国士大夫阶级的大毛病之一。
书里对林则徐的评价是比较负面的,晚期保守士大夫的形象:
他让主持清议的士大夫睡在梦中,他让国家日趋衰弱,而不肯牺牲自己的名誉去与时人奋斗。林文忠(注:即林则徐)无疑是中国旧文化最好的产品。他尚以为自己的名誉比国事重要,别人更不必说了。士大夫阶级既不服输,他们当然不主张改革。
说实话这个观点我是第一次看见的.. 历史教科书里林则徐都是虎门销烟的英雄形象
书里谈到林则徐对后继上任的总督关于问策如何处理中英等外交关系的回复——「民心可用」:
道光的上谕和林则徐的回答都是士大夫阶级传统的高调和空谈。仅以民心对外人的炮火当然是自杀。民心固不可失,可是一般人民懂得什么国际关系?主政者应该负责指导舆论。如不指导,或指导不生效,这就是政治家的失败。
作者把鸦片战争后20年政府未尝思痛加以革新的原因,主要归于国人不服,因为处于主战派的林则徐没能和英军打上一仗因而觉得输的冤枉:
实则林文忠的被罢是他的终身大幸事,而中国国运的大不幸。林不去(注:指的是离开浙江),则必战,战则必败,败则他的声名或将与叶名琛相等。但林败则中国会速和,速和则损失可减少,且中国的维新或可提早二十年。鸦片战争以后中国毫无革新运动:主要原因在时人不明失败的理由。林自信能战,时人亦信其能战,而无主持军事的机会,何怪当时国人不服输!
书里说:
不平等条约的根源,一部分由于我们的无知,一部分由于我们的法制未达到近代文明的水准。
说
曾国藩是我国旧文化的代表人物、甚至于理想人物
这个观点我是听过的
他是孔孟的忠实信徒,他所选的官佐都是他的忠实同志,他是军队的主帅,同时也是兵士的导师。所以湘军是支有主义的军队。其实精神教育是曾国藩终身事业的基础,也是他在中国近代史上地位的特别。他的行政用人都首重主义。他觉得政治的改革必须先有精神的改革。前清末年的官吏,出自曾文正门下者,皆比较正派,足见其感化力之大。
说到他在剿灭太平天国之后为何依旧忠心清廷:
第三,他怕清政府的灭亡要引起长期的内乱。他是深知中国历史的,中国几千年来,每次换过朝代,总要经过长期的割据和内乱,然后天下得统一和太平。在闭关自守、无外人干涉的时代,内战虽给人民无穷的痛苦,尚不至于亡国。到了十九世纪,有帝国主义者环绕着,长期的内乱就能引起亡国之祸,曾国藩所以要维持清政府,最大的理由在此。
另外,书里提到,自湘军之前,国家是没有私军的,民国初期的军阀割据,那些私军便始于平发匪而起的湘军。这个点我也从来没有意识到过,对呀,唐末藩镇之后,宋朝开始中央政府对私军应该一直都特别警惕的,之后几朝继续加强中央集权之后就更不用说了,何以后来又出现了军阀了呢。
李鸿章在同治三年(1864年)已经看清中国与日本,孰强孰弱,要看哪一国变得快。日本明治维新运动的世界的历史的意义,他一下就看清了,并且大声疾呼要当时的人猛醒与努力。这一点尤足以表现李鸿章的伟大。第三,李鸿章认定改革要从培养人才下手,所以他要改革前清的科举制度。不但此也,他简直要改革士大夫的人生观。他要士大夫放弃章句小楷之积习,而把科学工程作为终身富贵的鸿鹄。
但是这在那时是不可能的实现的啊!
但是倘若当时的领袖人物更新,更要进一步地接受西洋文化,社会能容许他们吗?社会一定要给他们更大的阻碍。他们所行的那种不彻底的改革已遭一般人的反对,若再进一步,反对一定更大。
我联想到知乎上@冷哲说过的一个观点,曾让我耳目一新,说的是清廷为何落后保守而又不变革?原文
第二,中国当时的统治者是异族。有的事情,本族统治者可做,而异族不可做。这是因为异族统治者天然会受到汉族的怀疑。因此满清一代,总是(至少在表面上)极度尊崇中国传统文化,不敢越雷池半步。这也是为了减少汉族民众对其统治的质疑。这导致了,满清在面临文化激变的过程中会比汉族统治者更加保守,更不愿意改变。
所以根源还是在于整个社会在思想上还没痛下决心,彻底改革的阻力很大很大。书上直说了:
严格说来,民众的迷信是我民族近代接受西洋文化的大阻碍之一。
还有,
并且旧社会里,政界是才子唯一的出路,不像在近代文化社会里,有志之士除做官以外,可以经营工商业,可以行医,可以做新闻记者,大学教授,科学家,发明家,探险家,音乐家,美术家,工程师,且都名利两全,其所得往往还在大官之上。
所以活在现在幸运多了
假使我们是甲午到戊戌那个时代的人,眼看见我们的国家被小小的日本打败了,打败了以后又要割地赔款,我们还不激昂慷慨想要救国吗?又假使我们是那个时代的人,新知识新技术都没有,所能做的仅八股文章,所读过的书仅中国的经史,我们救国方案还不是离不开我们的经典,免不了做些空泛而动听的文章?假使正在这个时候,我们中间出了一个人提出一个伟大的方案,既合乎古训,又适宜时局,其文章是我们所佩服的,其论调正合乎我们的胃口,那我们还不拥护他吗?康有为就是这时代中的这样的人。
以前从没想过为啥康有为能「上达天听」,上边这段话是一个解释
西太后及想实行废立的亲贵,顽固的士大夫及顽固爱国志士,都与义和团打成一片,精诚团结去灭洋,以为灭了洋人,他们各派的公私目的都能达到。庚子年拳匪之乱是中国顽固势力的总动员。
这一次错误之后,大家就都知道了开历史的倒车是不行的
书里也将这作为第三次尝试
严格说来,拳匪运动可说是中国近代史上第三个救国救民族的方案,
书里把康有为的百日维新作为第二个方案,洋务运动是第一个。我有强烈的感觉,历史教科书上的太平天国没法救中国——洋务运动没法救中国——百日维新没法救中国——辛亥革命没法救中国——只有xxx的逻辑链,肯定是有参照这个的!
作者当过民国的外交官,他是信奉三民主义的:
孙中山先生的三民主义和革命方略无疑是中华民族复兴的路径之一,我们不可一误再误了。
我对铁拳无敌先生一开始是膜拜的,毕竟两党都以继承其政治遗产正统自居;后来在了解更多细节之后有些逆反心理;现在又觉得他实在是了不起,在当时的背景下能提出这样一个可行的方案!总不能因为不是完美方案就否定啊
书中说到辛亥革命:
辛亥革命打倒了清政府,这是革命唯一的成绩。清政府打倒了以后,我们固然扫除了一种民族复兴的障碍,但是等到我们要建设新国家的时候,我们又与民族内在的各种障碍对面了。
书里也说到了另一个我以前没想过的问题,为啥在1926年这个时间点北伐。俄国革命1917,传进来1919,中山先生最终决定借鉴经验1924
十三年(1924年)初中山先生召开全国代表大会于广州,彻底地改组国民党,并决定联俄容共。同时蒋介石从俄回国。中山先生就请他(注:蒋介石)创办黄埔军校。
时间线排下来就差不多到点了
说到为啥我们和曾经海上大国西班牙之间没啥交集:
西班牙也是十六世纪的大海权国,但是天主教皇在分派海外区域的时候,把中国划归葡萄牙去发展。所以中国与西班牙没有要紧的关系。
说到物竞天择的一些影响,这个「强者之责」的点从来没想过
]]>同时西洋人把达尔文的学说应用于民族之间:优胜劣败既然是天理,强者有助天淘汰弱者之责。
开始po读书笔记了,给这个荒芜的小博客一点生机 :D
陆陆续续看了两个月,终于看完了.. 最开始看这篇是想了解一下怎么问问题,因为课上时常有美国同学问的问题让我为之一震,「卧槽我咋没想到这一点!!」但是看完以后发现书和我预期的略微有些不一样….
书中很多东西其实或多或少都是见过的。一开始我是抱着促进学术的目的去看这本书的,最后觉得它对于社科类的学术、或者对于网上流传的谣言有更直接的效果。毕竟现在我涉及到的东西,由于Coq及其它theorem prover的存在,只要Coq验证过了,就足以相信它一定是对的。关键变成了确定定义的theorem是否切题是否合适。呃.. 跑题了..
以下是部分摘录和笔记,删减版,我知道无删减版的笔记是不会有人看的.. _ (删减版就会有么..)
书上是有critical thinking的定义的:
Consequently, critical thinking, as we will use the term, refers to the following:
- awareness of a set of interrelated critical questions;
- ability to ask and answer critical questions at appropriate times
- desire to actively use the critical questions.
不过我觉得其实这个定义蛮虚的.. 里头的”critical questions”似乎就依赖于每一章的标题那11条..
整本书结构很清晰,每章的标题合起来就是一个checklist, 照着这些一个个去想就大约做到critical thinking了(吧)
整本书14章,第一章introduction, 最后一章整合全部放了个大习题,另外第7点分了两章
书本首先描述了两种读书的方法,一种主动、一种被动。
被动的方法被描述为sponge approach, 像海绵一样都吸收进来
A second advantage of the sponge approach is that it is relatively passive. Rather than requiring strenuous mental effort, it tends to be rather quick and easy, especially when the material is presented in a clear and interesting fashion. The primary mental effort involves concentration and memory.
主动,似乎被称作panning-for-gold approach. 按照以前老师的说法,是带着问题去读,是一个和作者主动交流的过程,刚想到一个问题,作者在下一页就解答出来了,这种琴瑟相鸣(shen me gui)感觉很棒的!
The most important characteristic of the panning-for-gold approach is interactive involvement-a dialogue between the writer and the reader, or the speaker and the listener.
被动的方式比较省力,所以一不小心就会..
不过,当我只是刚刚开始了解某个领域的时候,很多东西我不了解,也只能够被动的去接受的吧(想起刚来时候看的那些paper, 完全看不懂..=.=)书里也说到了这一点:
To pan for intellectual gold, there must be something in your pan to evaluate. In addition, to evaluate arguments, we must possess knowledge, dependable opinions.
另外,很多时候,我其实都没有那么多时间/精力去深究某个东西到底对不对啊,那就只能把决定权托付给某个你相信的人了 ╮(╯_╰)╭
找出描述的问题&结论,这个应该不难的吧.. 我记得小学就有归纳「主要内容」和「中心思想」的练习了,现在这么一对比,这俩和「issues」&「conclusions」还真蛮像的诶!!
书中定义了两种issues, descriptive & prescriptive. 即「是什么」&「怎么做」。这俩术语我还是第一次见到
「是什么」:
Descriptive issues are those that raise questions about the accuracy of descriptions of the past, present, or future.
… Such issues are descriptive issues. They are commonly found in textbooks, magazines, the Internet, and television. Such issues reflect our curiosity about patterns or order in the world.
「怎么做」:
Prescriptive issues are those that raise questions about what we should do or what is right or wrong, good or bad.
至于一些重点的连词,像”consequently”, “indicates that”这样的我就不列举了
找论据,这个也没什么好说的啊,除了下边这个单词用法:
Reasons + Conclusion = Argument
这一章的重点在于找出那些含糊其词的地方,不然只是鸡同鸭讲。
举个栗子,比如”exercise very often”这样一个描述,对方或许想说的是「每天都有锻炼」,而我可能理解为「每周锻炼2-3次」就符合了。名不正则言不顺,言不顺则事不成(是这么用的么..)
怎么做呢:
we do this exercise, keep asking, ‘What does the author mean by that?” and pay particular attention to abstract terms.
不过我觉得这一点用不好的话,很容易变成钻牛角尖,所以只有当含糊定义影响推理的时候才一定需要正名!文中也是这么说的!
Resist the temptation to make note of the unclear meaning of any and all words. Only the ambiguity in the reasoning is crucial to critical thinkers.
在说到「定义」的时候,有提到
Meanings usually come in one of three forms: synonyms, examples, and what we will call “definition by specific criteria.”
For critical evaluation of most controversial issues, synonyms and examples are inadequate. They fail to tell you the specific properties that are crucial for an unambiguous understanding of the term.
这个应该早就是常识了的对吧
此外,文中在讲到”ambiguous”的时候,还披露了一个单词的用法,涨姿势!
Political language is often loaded and ambiguous. For example, welfare is often how we refer to governmental help to those we don’t like; when help from the government goes to groups we like, we call it a subsidy or an incentive.
这一章的大意是说,对方可能有一些预设的价值观倾向,就好比Liberal vs. Conservative. 说有时候不了解这些就没法充分理解对方为什么要说这些、这样说。
In all arguments, there will be certain ideas taken for granted by the writer. Typically, these ideas will not be stated. You will have to find them by reading between the lines. These ideas are important invisible links in the reasoning structure, the glue that holds the entire argument together. Until you supply these links, you cannot truly understand the argument.
怎么做呢?
One important means of determining value assumptions, then, is to ask the question, do the particular consequences or outcomes presented as reasons seem so desirable to the writer or speaker?”
但是我觉得光在文中看可能看不出来吧,也许需要去额外了解一番对方的背景?
什么是价值观?我也没深究过具体定义,书上是这么说的
Values, as we will use the term, are ideas that someone thinks are worthwhile.
Values are standards of conduct that we endorse and expect people to meet.
之后的5-7, 我都没咋记笔记了,因为觉得都是已经比较了解的内容了(是不是这个才是有意思的地方..)
传说中的Slippery Slope, Find Perfect Solution等其它著名错误在这里都有介绍
这一章针对的是这么一种情况:已经假定了一个逻辑链:A -> B. 然后在此基础之上做出了各种论断。但是其实可能有其它导致B的情况,于是专门针对A的措施就没有说服力了
一个事件可能有多个原因共同造成,所以:
So, the best answer experts can give to the talk show hosts’ question is “We don’t know the cause for such events, but we can speculate about possible causes that might have contributed to the event.”
这样其它的可能的成因就是”rival causes”. 下边是一个这样的”rival causes”的例子:
… Before they do, they should contemplate each of four potential explanations for the research findings.
- Explanation 1: X is a cause of Y. (Smoking does indeed kill the flu virus.)
- Explanation 2: Y is a cause of X. (Feeling healthy, or feeling the beginning of what might be the flu, causes people to smoke.)
- Explanation 3: X and Y are associated because of some third Z. (Smoking and being without the flu are both caused by related factors, such as frequent washing of the hands after smoking prevents the spread of the flu virus.)
- Explanation 4: X and Y each other … (People who do not usually catch the flu have a tendency to smoke, and the smoke may affect some potential illnesses.)
很多人容易犯的一个错误就是
Confusing “After this” with “Because of this”
As you might guess, political and business leaders are fond of using the Post argument, especially when it works in their favor.
For example, they tend to take credit for anything good that takes place after they assumed their leadership role and to place blame elsewhere for anything bad that happens.
另一个很多人容易犯的错误:
We tend to see the cause of other’s behavior as coming from within (their personal characteristics) rather than from without (situational forces.)
So, for example, when someone steals something from someone else, we are likely to view the stealing initially as a result of a tendency of the person to be immoral or to be inconsiderate.
这个就毋庸多言了吧,关于数据如何骗人,比如证明了另外一个其实无关的结论:
Communicators often deceive us when they use statistics that prove one thing but then claim to have proved something quite different. The statistics don’t prove what they seem to!
比如(故意)省略掉了一些东西,这个看下一章
Statistics often deceive us because they are incomplete.
此外,
When you see “average” values, always ask: “Does it matter whether it is the mean, the median, or the mode?”
我倒是第一次看到这几个都可以用average来表示呃.. 以前一直觉得average == mean
While critical thinkers are seeking the strength of autonomy, they cannot do so if they are making decisions on the basis of highly limited information.
我觉得所谓的”omitted information”就是那种补上之后会让说服力变弱的信息,对方有意/无意的没有说这些
其实我觉得这一章和之前说过的很多东西是类似的,比如rival causes那里,对方声称 A -> B, 但其实也有可能是 C -> B. 那么对方就有意/无意遗漏了对是否 C->B 的论证。而这一章的着重点在于,在这些信息缺失的时候做出判断,其实就是使用”xxx is true, if blabla”的套路,自己把遗漏的信息补上..
书中说这样的incomplete reasoning是不可避免的:
Incomplete reasoning is inevitable for several reasons.
- First, there is the limitation imposed by time and space. Arguments are incomplete because communicators do not have forever to organize them, nor do they have unlimited space or time in which to present their reasons.
- …… 好像一共列了4个
所以要适时止损:
It’s wise to seek additional information that would improve the support for your opinions, but at some point you must stop searching and make a decision, even when the most forceful answer you are willing to defend is a “yes, but. .
Very rarely will you have a situation in which only one conclusion can be reasonably inferred.
In an earlier chapter, we discussed the importance of rival causes. The point there was that there are different possible causal bases for a particular conclusion.
This chapter, however, focuses on the alternative conclusions that are all possible outcomes from a single set of reasons.
又举个栗子,这里所谓的possible different conclusion, 好比是和对方提出的conclusion在程度上有些许区别的东西,e.g. 对方说因为xxx, 我们要禁止xxx. 另一种可能的conclusion是,我们加强监管xxx (而非全面禁止)
我来试着类比阐述一下,通过前边讲的很多东西,我们能够证明 A -> B, 但是我们没法证明 B is best goal, 也许∃ C, A -> C /\ C is the best goal. 这一章的中心思想大约就是这个
文章里说:
While we have tremendous respect for logic and facts, we cannot exaggerate their worth as guides for conclusion formation. They take us only so far; then we have to go the rest of the way toward belief, the help that facts and logic have provided.
对付这种东西,书里给了一个思路,就是把问题转换成 “what should we do about xxx” 的形式,然后就可以很清楚的看出并非一定要执行对方提出的conclusion:
Reword the issue to “What should we do about Y?”
例子如下:
Should we close the bars downtown? The answer is a resounding yes! Since the bars opened, a dozen young college students have suffered from alcohol poisoning.
Once we change this question to, “What should we do about the number of college students suffering from alcohol poisoning?” a number of possible solutions come to mind, which help us formulate our conclusion to the issue.
□
]]>补上之前看的的一些
我心水的,摘抄如下
If you shed tears when you miss the sun, you also miss the stars.
Her wistful face haunts my dreams like the rain at night.
Once we dreamt that we were strangers. We wake up to find that we were dear to each other.
I sit at my window this morning where the world like a passer-by stops for a moment, nods to me and goes.
Man is a born child, his power is the power of growth.
You smiled and talked to me of nothing and I felt that for this I had been waiting long.
The sparrow is sorry for the peacock at the burden of its tail.
We read the world wrong and say that it deceives us.
The grass seeks her crowd in the earth. The tree seeks his solitude of the sky.
The Great walks with the Small without fear. The Middling keeps aloof.
“Who drives me forward like fate?” “The Myself striding on my back.”
我很喜欢这一段,当时看到的时候就想,这就是拉姆塞啊,他跑啊跑,只为追上那个曾经被寄予厚望的自己!
The bow whispers to the arrow before it speeds forth—“Your freedom is mine.”
The day of work is done. Hide my face in your arms, Mother. Let me dream.
我很喜欢这一段,要化了!
]]>// 工欲善其事必先利其器
离我们村最近的使领馆在芝加哥,首先在他们网站上看到 办理护照须知
我满足的是「普通护照换发」的情形,须知原文摘抄如下:(摘抄于08/04/2014)
二、普通护照换发(一)适用情形申请人具有中国国籍、持有中华人民共和国普通护照,且有下列情形之一者,可申请换发:1、护照有效期不足一年的;2、护照签证页即将用完的;3、护照上有携行儿童,需单独持用护照的;4、容貌变化较大的;5、中国驻美使领馆认可的其他情形。(二)所需材料1、如实、完整填写《中华人民共和国护照/旅行证/回国证明申请表》1份;2、近期(半年内)正面免冠彩色半身证件照片(光面相纸)4张。照片尺寸为48mmx33mm,头部宽21mm-24mm、长28mm-33mm,背景为白色或淡蓝色;3、护照原件及复印件(包括带照片资料页、曾办理过加注或延期页、来美签证相关页、最后一次离开中国的出境验讫章及入境美国的入境验讫章页);4、在美居或其他国家的居留证件原件和复印件;(三)申请方式申请人应根据在美居住地,按中国驻美使领馆领区划分,亲自到使领馆办理,不能邮寄申请或委托他人代办。(四)办证时间1、自受理申请之日起的15个工作日(三周时间)。2、因申请人身份需经国内有关机关核实确认,因此办证时间不能确定。(五)取证及收费1、申请人在取证单表明的日期,或在接到电话通知,或自行查询护照已办妥后,由本人或委托他人凭取证单原件交费并领取证件,也可申请回邮服务。2、普通护照换发收费35美元。仅接受现金支票(Money Order,Cashier's Check)和信用卡(Mastercard,Visa Card),不接受现金和个人支票。支票抬头请写:Chinese Embassy或Chinese Consulate General。3、申请证件回邮仅接受现金支票(Money Order,Cashier's Check),金额包括办证费和邮寄服务费5美元/信封(如两人使用同一信封回邮,只收取一份邮寄服务费),现金支票收款人为Chinese Embassy或Chinese Consulate General。4、护照办妥一年后未取证者,证件将被作废销毁,并将可能影响申请人下次证件申请。(六)注意事项换发新照后,原照将被注销并退还申请人。
以上是常规途径,然后我看到这个 关于我馆签发电子护照的通知,正好可以换一本「电子护照」!另外也可以网上预约了呢!原本需要下载表格自己填好的,现在直接在网上就可以填了,而且可以确定在预约的那一天一定能办完,确实方便很多!!点个赞
另外我还搜到一些以前其他人在芝加哥换护照的经历,不过都不算新,因为都没有用网上预约系统!
在网上预约的第一步「相关说明」里就提到了 照片的要求,还说大小在30k~80k之间..
我是自己照的护照照片,在lab的会议室里,放下投影仪的幕布,觉得这就是完美的背景啊!然后上传照片最后检测的时候说(是的,它会在线检测照片是否OK!!):
卧槽?!那我就不用投影仪的幕布了,直接改成以白板为背景,这样总行了吧!结果还是同样的反馈.. 看来问题出在lab偏黄偏暖的灯光上啊!于是我跟室友借了大单反,到lab外头的走廊上,以日光(非直射)下的白色墙壁为背景拍了一张,这次有进步,只剩下背景偏暗了..
啊啊啊,那我只好自己抠图换成白背景了啊!这里要吐槽一下美图秀秀,我在虚拟机里安装之后,它似乎是用像素作为基本单位,打开之后的软件是是1/2 * 1/2大小的,搞毛啊!!后来换成了光影魔术手,PS的话毕竟是盗版心里有些过意不去.. 花了一个多小时修了修抠出的图的边缘后上传,终于网站显示照片通过啦!
注:这只是电子版的照片,终究还是需要纸质的。我去了CVS打印照片,但是那边可以打印的尺寸有限,我用软件将照片排版成2行3列的,然后用4x6’’的大小打印就正好!!一共只花了0.34刀,之后就用剪刀自己剪吧.. 店员和我说没有裁纸刀,只有那种剪(美国)护照2x2的,我觉得是我没有表达清楚.. anyway..
然后就可以预约日期去现场办理了,最早可以预约3天后的,目测很空旷,没有一天是人满无法预约的。有3个时间段,早上2个下午1个,我就定了三天后的最后一个时间段,13:10-14:10(这里请注意时差..),说是能够保证当日办理完毕:
每天办证人员较多,具体办证时间与预约时间可能略有差别,我们将确保您在当天可以办理成功。
另外要带的东西有:
普通护照换发:申请人须携带下列材料亲自来馆申请:1、 打印的《中华人民共和国护照/旅行证/回国证明申请表》1份(包括申请人 声明页);2、 纸质照片2张(须与申请表中上传的照片一致);3、 护照原件及护照信息页(带照片及信息页)复印件;4、 在美合法居留原件及复印件。
在最后显示「预约结束」的页面,可以打印表格,上边列的第一项要求打印的xx表就从这儿打
纸质照片上边说过了
护照复印件,我把有字、有写过的页面都复印了一遍,不过她只拿走了其中几页.. (是哪几页我现在忘了)就全部复印下保险嘛
合法居留的证件的话我复印了签证& i20 & i94, i94好像是不需要的,不过为了保险就都复印一遍呗
这样就好了吗?不!还有回邮!我是懒得再跑去芝加哥一趟专门去取件,一去就要花一整天呢,所以去邮局拿一个priority mail express的信封,写好地址(忘了哪儿看的收件人和寄件人都写自己,至少加拿大签证寄还护照是这样的)带去给他们就好了。
关于交费,根据上方贴出来的规定,只是办证的话还可以用信用卡,但是要回邮就只能用现金支票(money order / cashier’s check)了。Chase的工作人员似乎对我要求40刀的cashier’s check表示不解,说不如拿money order吧,只要5刀手续费,cashier’s check要8刀呢。后来我查了下果然是因为money order有1000刀左右的上限,而cashier’s check的上限比这高多了.. 另外我在现场发现说邮局也可以买money order.
我按照计划,在12:50左右到达使领馆。注意,办签证/护照的使领馆的地址在 1 East Erie Street, Suite 500, Chicago, IL 60611, 和总使领馆的地址不一样。隔壁一栋楼的一楼商店玻璃外还贴着一张「中国使领馆从前边旋转门进」的说明。使领馆在五楼,不过走进旋转门、去坐电梯前得先在中间柜台处签个到..
到了使领馆之后先取号,像我这样的就取「A中国公民」的类别,B是visa, C是agent好像。我取到的号码是A32,窗口上显示的号码是A28, 所以还是挺快的。
因为我在网上预约都弄好了,所以把材料什么一交就好了,不过还不能走,在边上坐着等叫到名字去按指纹,毕竟是电子护照嘛。工作人员还问我网上预约的系统好用吗.. 我说挺好用的!后来才反应过来我忘了和她吐槽只是http没有https不够安全啊!
然后就OK了,8月14号办的,说9月8号左右会办好,然后寄出还需要两三天。
对于大部分同学来说,一切已经完结了.. 但是我不是…. 在走到Millennium Park的时候我接到使领馆的电话,还需要补充一些材料…. 呃 >_< 不过说可以直接寄过去不用人亲自来,那就好多了..
09/09/2014: 今天收到护照了,新护照很漂亮!
09/10/2014: 原本我以为,护照更新之后,之前办好的签证都作废了,但是我搜了下发现至少美国和加拿大的签证如果还在有效期内是可以继续用的,同时出示旧护照即可!开心~~
]]>名词定义:
机缘巧合之下,我发现有4个微信好友朋友圈拉黑了我.. >_< 不甘心的我,于是….于是决定测试一下微信内各种屏蔽/拉黑时看到的界面是啥样的 O.O
我自己没有拉黑任何人,这样单向的墙让我觉得不对等,伐开心!!在同样朋友圈拉黑他们之前,我得先确认下我看到的页面真的表示被朋友圈拉黑了,避免误伤!
Update 10/17/2014: 算了算了,朋友圈拉黑就拉黑吧,我也懒得拉回来了,不过心里还是有些不是滋味啊。
Update 11/24/2014: 其实当不再把微信当做“私密”社交app的时候、当点赞之交都不算的联系人越来越多的时候,被朋友圈拉黑什么的我已经不在意了啦。PS: 但是你主动加我还拉黑的话我还是不能忍的哦!
Update 01/27/2015: 知道这篇真的能帮到人,我很开心~ 士气max!
Update 08/09/2015: 补充了下关于停用朋友圈的说明。(一转眼已经过了一年多了呀)
Update 11/15/2015: 添加了双方互删好友(未拉黑)之后的描述。
正好我有一台从国内带来的破手机,ME525.. 两台Android手机上的微信版本都是5.3.1,在其他系统上的反馈应该完全一样吧,我相信大公司的实力
然后还需要一个新的微信帐号。在最新版本的微信中,已经无法通过QQ号注册了,只能通过手机,而我唯一的号码已经绑定在主微信号上了。按网上的教程去下载4.5及之前的版本也不行,下载到的apk也已经没有了用QQ号注册的选项了。
所幸,还有一个Facebook Connect的选项,注册一个fb帐号就容易多了嘛。
首先,被朋友圈拉黑后,我看到的界面是这样的,即使他在朋友圈中有发过照片,在相册一栏的缩略图仍然是空白的,点进相册中,原本显示他的状态的区域,现在被
-------- · --------
这样的点横线所取代,如下图所示:
BUT, 能否说出现这样的点横线时,就可以确认是因为我被屏蔽了呢?在不知道微信源代码的情况下,没人能给出确切答案。不过,我整理了好些个情境,应当足以尽可能的还原出各种不同情况以辅助判断了
以下都是我实测过的,不过没有图,就是懒的截,你来咬我吧 XD
我在对方的主页根本就看不到进入到朋友圈的入口
我在评论里是可以点击他的名字进入他的朋友圈的,这个时候看到的画面与被他朋友圈拉黑一样的,空空荡荡的点横线
但是由于对方没有历史状态,在他的个人详细信息页面是没有朋友圈的入口的
另外,这个时候他的朋友圈页面里,名字可能是用深蓝色显示的:从timeline里点进去是白色的,但是一旦从提醒里进入过我的状态的页面,再点进去他的主页,就变成深蓝色的字体了..
仍旧在对方主页看不到进入朋友圈的入口
在对方主页,可以看到朋友圈的入口了,但由于没有发表图片,这一栏的缩略图是空白,点进去后可以看到刚发的文字状态
注:由于是发表第一条状态,在刚发完的时候,我看对方的详细信息页面,仍旧没有朋友圈的入口,即使我在timeline里已经刷出来了。过一会就有了,目测这俩数据之间只是eventual consistent..
这是正常使用情境,没被朋友圈拉黑的话就一切正常,都看得到啦
当然就看不到这一张照片啦,我在timeline里、在他的主页里点进去都看不到了
另外经实测,如果对方发过的所有状态都是分组的(其中没有我),那么我看到他的界面和被朋友圈拉黑是一样的,相册缩略图为空白,点进去之后是空空荡荡的点横线。毕竟这种情况和被朋友圈拉黑没区别嘛..
这个时候我已经被「朋友圈拉黑」了,他最新的状态我已经看不到了。他之前发过的,曾出现在我的timeline里的那些状态,在刷新之后也会消失!之后我点进他的详细资料页面,已经是空白缩略图的相册了,点进去也是点横线分隔的空白了
刚才他发布的那张图片,就是添加我到黑名单的那一张,在timeline里仍旧看不到,但是点击到他的个人页面里就看得到了!其它之前timeline里看得到的状态也都恢复可见了
可以的,所以说朋友圈拉黑的操作是单向的嘛
微信快推出一个「双向拉黑」的功能呀!
可以的
// 谢谢@declanVox提醒
顾名思义嘛,是可以的
在短时间内(在删除完毕后马上刷新),和被朋友圈拉黑的界面是一样的,相册一栏的缩略图是空白,我依旧能够点击进入他的朋友圈,看到的也是那样的空空荡荡的点横线
但是过了一会儿后再看,对方的详细信息页面里,朋友圈的入口已经消失了!!
这就是为啥有网友说删除全部状态之后也是和被拉黑一样,他们等的不够久!╮(╯_╰)╭
经实测,对方停用朋友圈之后,我的timeline里曾经加载过的他的状态,刷新之后还在,还能点赞回复,点到他的主页里,也仍然能够看到朋友圈入口,点进去状态也都在…. 除此之外,通过其它app里的「分享至朋友圈」的选项,还是能够间接发状态的.. 所以这「停用」仅仅指的是关闭了用户自己的入口罢了。 =.=
在 设置->通用->功能 里可以选择停用朋友圈,微信会提示「停用该功能同时将清空历史数据」(注:每一个功能停用都会提示这句)。我记得在旧版本的微信里,是弹出对话框说「会删除历史数据」,我曾经在13年5月写毕设的时候闭关停用朋友圈.. 后来恢复后历史状态都还在。(注:我不保证在以后的版本中停用后重新启用也一定能恢复所有历史状态)
对方把我删除之后,我不会收到任何通知,并且就好像他把我朋友圈拉黑了一样,我看不到他的朋友圈了。但是由于我这里还显示他是我的好友,所以他(somehow)进入我的朋友圈还能看到我的状态,直到我也把他删除联系人或者朋友圈拉黑..
另外,两边都删了之后,如果还能somehow看到他的朋友圈,里头会说「非好友最多显示10张照片」(Only 10 posts of this user are visible)..
谢谢@半只西瓜 提出的情境。问题是这样的:
如果双方互相删除了微信,在以前对方点过赞的moment下面再回复一条的时候,对方看得见提醒吗?如果还是朋友的话肯定应该看得到,如果不是朋友了,不知道是不是还有消息提醒?谢谢。
经过测试,效果是这样的:
总结:都互删好友了,相忘于江湖吧。:)
我能够看到他的朋友圈,他看不到我的..
另外,说什么能看陌生人10张照片,即使这个设置开启了我怎么还是看不到啊??
对方会出现在 通讯录->新的朋友 里,但是我看不到他的朋友圈,两边互相都看不到.. 即使我现在修改为不需要验证还是不行..
对方仍旧可以给我发消息,但是我发过去的消息会提示「消息xxx已发出,但被对方拒收了」。这样的不对等实在是太虐了..
有趣的是,除了有被朋友圈拉黑的效果之外,我在点击进入他的朋友圈之后,会先看到「非好友最多显示10张照片」的字样,再换成一条横线….
另外,对方看我的详细信息页面也看不到相册那一栏了
在测试发照片分组可见的时候,我想到一种可能性,此好友的某一张照片不想让我看到,于是在发布那一条状态的时候在黑名单中添加了我,或许以为这是个临时的设置,之后就不再管了。他不知道这个行为是永久的,再也没有去解除
由此还存在另一种可能性,假设对方只发过一两张照片,并且设置的是分组可见,之后就再也没发过状态了,这样的情况下我所观测到的,就好像是我被他朋友圈拉黑了一样.. 这种可能性比较低的原因在于,分组发布是高阶技能,第一次发状态的人直接就使用的概率实在不大。另外这和被朋友圈拉黑也没有事实上的区别..
以上是我最美好的想象了..
其实也还存在一种可能性,是对方认不出我是谁,于是把我删除好友了,于是我就自动获得了被朋友圈拉黑的效果.. 我在微信上就不加不认识的人,所以这也是有可能的说
综上所述,我有92.12%的把握声(xia)称(shuo):
如果长时间保持「相册缩略图空白,点进之后只有一条点横线」的情况,那么你就是被他/她朋友圈拉黑了!
首先反省一下,有没有可能是自己作死从而被人朋友圈拉黑的呢?
嗯.. 这口锅,我不想背!!
平胸而论,拉黑他人是个人的自由,也许你的状态只给特定的人看(比如说男神女神, if any),这些都无可厚非,我都能理解。不过自由不是没有代价的
在我的价值观里,朋友之间应当是平等的,朋友圈的定位是私密/熟人社交,我开放了我的私人状态,却没有得到来自我所认为是朋友的人的对等的地位,也没有任何解释,我感觉到了一丝挫败感..(对,就是心好累!)
LZ冒着被说玻璃心的风险完成了以上情境测试:
我不是为了拉黑不拉黑,我就是认真!
]]>http://www.zhihu.com/question/19898152/answer/27792376
开心地答~
去年10月开始寄明信片,至今一共寄过3批共70人次,都是到一个新地方之后寄给各种同学和亲戚,越写越开心!还会一直写下去~
最初是10/22/2013,刚上初一的妹妹要求寄给她一张明信片,寄出之后想干脆多写几张给好基友们吧,便在微博和空间上发状态说「小伙伴们,留下地址就会收到明信片哦」,然后真的有好多小伙伴留下了地址,我就一封一封地写新学校的见闻,一个人在外的孤独感就这样被笔尖冲淡了不少!
我希望每一张明信片都是独一无二的,写的时候会想想有没有什么只有TA懂的梗、挑最适合的封面,所以每一次写还是挺花时间的,于是每每只有在到一个新地方之后才大放送。去年年底去旅游时、三周多前去“进修”时又寄了两次,到第三次时终于做到了每张明信片从封面开始就独一无二..!我还拍了张全家福作纪念,有些明信片真的好漂亮呢!!
对我来说,写明信片是和老伙伴们说说话的一个好机会,特别是很多初高中的同学,他们几乎只在空间出没,微信没加的话平时根本没有交集.. 寄明信片的机会是个多好的初始话题啊,联络联络感情什么的挺好的~
写明信片也可以认识新朋友,最近一次我就遇到了同样到处寄明信片的童鞋,瞬间就觉得亲近很多很聊得来啊!!于是也互相寄了明信片,虽然….虽然后来发现我把人名字给写错了……
大部分收信人,都是在我发布寄明信片的状态之后回复/点赞的小伙伴们,只有少数几次是主动寄的,大家你情我愿的,基本上都是正反馈.. 将心比心,我收到明信片的时候都是嘴角上扬着读完的,有人在远方念着你的感觉真的很温暖!!他们,应该也是的吧
一些吐槽 :)
我没有寄明信片给自己的习惯,倒是每次都有寄给爸妈,老妈是地理老师,所以常常挑封面是地图或者是标志性建筑的明信片寄回去,想着也许她上课给学生展示的时候用得到呢?!不过这应该是我脑补过度了..
以往爸妈对我的字的评价都是持悲观态度的,写明信片后竟然收到过评价「字体好萌」…. #我读书少你可不要骗我
就是酱紫
]]>http://www.zhihu.com/question/23140714/answer/26023273
今天边听欧冠决赛边打扫,一个人把旧屋子清理完了(顺便吐槽下不爱干净还没有责任感的前室友),这样退房的时候应该不会被罚款了吧.. >_<
上边的答案基本都是针对国内而言的,很多东西不知道英文叫啥于是在这里买不到啊啊啊!!当过小白鼠之后,我来给一份在Amazon或者Walmart直接能买到的清单(链接后头是我使用后的评星)
1.1 橡胶手套:手套是必须的,直接用手清理炉子上已经凝结成大块固体的油渍、水槽滤嘴等等实在是太恶心了!我是在Walmart买的,在卖厨房清洁用品的区域就找的到,Amazon上也有:Amazon.com: Playtex HandSaver Gloves: Large (Pack of 6): Health & Personal Care ★★★★★
1.2 抹布:搜“microfiber cloth”就找得到,觉得太脏了就直接扔掉换一条!我买的是Amazon.com - Quickie Original Microfiber Towel, 24-Pack ★★★★★ 感觉还不错
直接搜”oven cleaner”,于是买了这个Amazon.com : Citrusafe BBQ Grid and Grill Cleaner (23 oz) : Grill Parts : Patio, Lawn & Garden ★★★★★ 还有这个Amazon.com: Bar Keepers Friend Cooktop Cleaner 13-Ounce Bottle: Health & Personal Care ★★★
我租的房子是用煤气的那种炉子,没有抽油烟机。用Cooktop cleaner可以清除炉子顶部大部分烧菜后留下的乌黑油渍,但是有一部分(像铁锈一样)我再怎么用力也没法完全擦除..
Grill cleaner似乎更加针对烤箱里边、烧烤架这样的装备,我试过用它擦洗已经黑不溜秋的锅,好像没太大效果,但是用它擦拭炉子顶部似乎有加成,多除掉了一些油渍。另外我在擦拭炉子边上的柜子表面的污渍时喷一喷这个也有不错的效果,最意外的是用它擦冰箱表面这种地方的时候效果一级棒!!
另外,最高票的答案中那个垫油的纸有人知道英文叫啥吗??谢谢啦!!
买了这个拖把Amazon.com - Libman Nitty Gritty Roller Mop ★★★★ 和它配套的桶 Amazon.com - Libman Utility Bucket ★★★★★ 用着不错,就是roller mop的刷子部分比海绵短几厘米,所以墙角的地方刷不到…. 不知道设计师的蛋会不会疼?!
还特意买了Amazon.com - TECH Grout Cleaner ★ 清洗地板,但是没有感觉喷了之后有特别大的作用..
买了Amazon.com: Mrs. Meyer’s Clean Day Bathroom Cleaner, Lemon Verbena, 24 Ounce: Health & Personal Care ★★★★ 用来清洗厕所里的洗手池、马桶、浴缸等陶瓷表面都很好用!
但是马桶用久了之后里头沉淀下来的“尿黄色”污渍用这个bathroom cleaner清理不掉.. >_< 于是又搜关键字“toilet bowl”买了马桶刷Amazon.com: Rubbermaid Commercial FG631000 Toilet Bowl Brush with Plastic Handle, Polypropylene Fill, 1.13” Trim Length, 14.5” Length, White: Industrial & Scientific ★★★★ 和洁厕剂 Amazon.com: Lysol Cling Gel Toilet Bowl Cleaner, Country Scent, 24 Oz: Prime Pantry ★★ 洁厕剂有点效果,“尿黄色”淡了些.. 但是还是没有完全清除….
话说我在国内用过威猛先生,效果挺好的,但是好奇怪Amazon上反而完全搜不到威猛先生的洁厕剂?!
总结:说到底,平时保持干净才是最重要的!!
PS: 找个爱干净的室友也很重要!T_T
]]>I met this problem on a message on Wechat (only 4 options each), then I found a harder (maybe original) problem here:
1. The first question that have answer (b) is:(a) 2, (b) 3, (c) 4, (d) 5, (e) 62. The only continous questions that have the same answer are:(a) 2 & 3, (b) 3 & 4, (c) 4 & 5, (d) 5 & 6, (e) 6 & 73. The answer of this question is equal to the answer of which question?:(a) 1, (b) 2, (c) 4, (d) 7, (e) 64. How many questions have the answer as (a)?(a) 0, (b) 1, (c) 2, (d) 3, (e) 45. The answer of this question is equal to the answer of which question?:(a) 10, (b) 9, (c) 8, (d) 7, (e) 66. The number of answer of (a) is equal to the number of which answer?:(a) b, (b) c, (c) d, (d) e, (e) none of the above7. The difference between the answer of this question and next question is: (The difference between a & b is 1)(a) 4, (b) 3, (c) 2, (d) 1, (e) 08. How many answers are vowels (a,e)?(a) 2, (b) 3, (c) 4, (d) 5, (e) 69. The number of answers that is non-vowels (b,c,d) is?:(a) prime number, (b) X!, (c) x^2, (d)x^3 , (e) 5x10.The answer of this question is:(a) a, (b) b, (c) c, (d) d, (e) e
Interesting, huh!!
SPOILER ALERT
My solution and the official solution are listed below, do not “accidentally” see it if you want to give it a try!
I assume you have tried by yourself or you are just eager to know my thoughts, so here is what I have done:
Cut impossible options
(b) in 1, (a) in 2, (a) in 4, (d) in 8, (e) in 9 are impossible options, see why?
My first thought was to use 3 and 5 as the key to solution. In my opinion, there should NEVER be any ambiguity.
In other words, if one option is selected as the answer for a question, all other options must be FALSE!
In this way, through 3 and 5 we can eliminate many impossible permutations.
Whaaaaat? all failed?! Below is what I got this when assigning 3:E, 5:E
1. The first question that have answer (b) is: (c) 4 2. The only continous questions that have the same answer are: (d) 5 & 6 3. The answer of this question is equal to the answer of which question?: (e) 6 4. How many questions have the answer as (a)? (b) 1 5. The answer of this question is equal to the answer of which question?: (e) 6 6. The number of answer of (a) is equal to the number of which answer?: (e) none of the above 7. The difference between the answer of this question and next question is: (The difference between a & b is 1) (a) 4, (b) 3, (c) 2 8. How many answers are vowels (a,e)? (b) 3, (e) 6 9. The number of answers that is non-vowels (b,c,d) is?: (a) prime number => 7, (c) x^2 => 4 10. The answer of this question is: (b) b, (c) c, (d) d, (e) e
Here is that “solution”:
1. (c)2. (d)3. (e)4. (b)5. (e)6. (e) // till 6, we have the same answer7. (d) // but for 7, in my opinion, how can it be (d)?! // If so, 5 can also choose (d), AMBIGUITY arises!!8. (c)9. (b)10.(a)
In fact, my hypothesis that there should be no ambiguity may not be stable.
But I think everyone would agree that the problem will be better if there is indeed no ambiguity at all.
I am still glad that I have solved most (is ≥60% “most”?) of it!!
]]>System Preferences -> Trackpad -> 勾选Tap to click,一直用力压你也会心疼的吧
System Preferences -> Keyboard -> Modifier Keys,互换Caps Lock和Control,即可
System Preferences -> Keyboard -> Shortcuts -> All Shortcuts
在All Applications添加,Menu Title填 Zoom, Keyboard Shortcut自己定,我设置的是ctrl + command + m (m理解为最大化maximize)
System Preferences -> Desktop & Screen Saver -> Change picture: Every hour + Random order
我喜欢放在屏幕左边 && 自动隐藏,反正平时也都是通过alfred呼唤窗口,不需要鼠标移动到dock上去点击
System Preferences -> Security & Privacy -> Firewall,打开Firewall
System Preferences -> Keyboard -> Shortcuts -> Input Sources -> Select the previous input source,我只用拼音+英文两种输入法,因此选择previous就够了,我的快捷键是option + space,option最少用到了
我答应了搜狗的技术支持不说出去的~
System Preferences -> Sharing -> Internet Sharing,turn on即可,在Wi-Fi Options里可以设置密码。不过最新的air/pro好像都没有网线接口,所以需要thunderbolt的网线converter…. 也有usb口的网线converter,但那个好像速度上限比较低
System Preferences -> Users & Groups,把图片拖到头像上就可以设置新头像了
System Preferences -> App Store
System Preferences -> Dictation & Speech -> Text to Speech -> 勾选Speak selected text when the key is pressed,默认的Option + Esc就挺方便的
System Preferences -> Date & Time -> Clock -> Show Date
Account setting -> SSH Keys, 照着generating SSH Keys的步骤做
通过OH MY ZSH快速设置
一行命令,自动安装,其间会同时要求安装xcode-commandline tools,因为最新的xcode5好像没有选项让手动安装commandline tools了?
注:似乎需要在.zshrc下增加这么一行:
export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$PATH
因为brew安装的都在local/bin下边,这样才能优先使用brew安装的
然后按需安装:
不用说了吧
In fact, I don’t want it, either. It’s just a legacy project and those people are using outdated tools.
Previously, CVS was included in Xcode’s command line tools. But after upgrading to Mac OS X 10.9 Mavericks, or more specifically, after upgrading to Xcode 5.0, my shell says “cvs: command not found”.
According to the release notes of Xcode:
The CVS and RCS source control tools have been removed from Xcode 5. 11968433
I suppose that is why cvs is not found even if you have installed the Xcode command line tools.
I am using homebrew for package management and I know nothing about macports.
There is an issue related to this. However, the mentioned “epichub/homebrew-epicbrews” doesn’t provide a CVS that works for me. After I “cvs update”, it seems to be waiting for further inputs forever. I know little about CVS but this command did work previously.
Use this repository instead (also mentioned in the issue):
brew tap Homebrew/homebrew-dupesbrew install cvs
]]>Update History:
I do not suggest Sina ishare and BookFinder because they may not be legal.
Coursera, Udacity and other online courses websites are the savior for those who cannot physically access to top educational resources.
Strongly recommend using Mou to write in-class notes with Markdown (of course I mean mac here). Markdown is extremely simple (you may master it in 30 min?).
Create a repo on Github for your every project!
Branching is one of the key concepts in git. Here are some tricks but I never tried all of them.
For using the Internet wisely in some areas.
Add your events, courses, appointments, notifications, all those with a specific time to Google Calendar.
For those without a specific time (e.g. homework), I recommendend Omnifocus, Mindomo, Workflowy.
Want editing simultaneously with your team members?!
If Google Reader is still alive, it will be the title. Currently I am using Feedly. I strongly recommend the following rss sources:
If you are in CS-related major, you MUST master at least one of them.
For Vim:
For Emacs:
The documentation is the best teacher! Also, try this Asset Studio.
I strongly recommend learning Coq by reading through book Software Foundations. Luckily, it is availble online. I have made my solution repo private.. DIY!
This is what I am currently learning. Read book On a Method of Multiprogramming at least first 3 chapters for the Owicki-Gries Theory.
Also check the slides here and here
After that, learn Rely-Guarantee. // TODO
I haven’t tried Go yet, but this may help.
The CS503 OS course in Purdue is much much better than that in TJ. Another reason may be that I was only a sophomore when I took OS course in TJ thus it may not be that helpful without enough background.
Anyway, the Xinu code is extremely helpful for its simplicity to read (original code is available here). The textbook Operating System Design: the XINU Approach is GREAT! Tell me if you also want the 899-page slides.
For implementing a tiny OS on your own, you can also refer to this and this. Although I did not finish those two books either..
I started with Google’s Python Class. I reviewed using Codecademy. Do not forget to read the style guide for code and for doc.
]]>Windows 7 Pro x64; Ruby 2.0.0; Ruby Gems 2.0.3; Jekyll 1.0.3
By the –trace command in Jekyll, we can see the stack of the exception.
In this file:
"C:\Ruby200-x64\lib\ruby\gems\2.0.0\gems\jekyll-1.0.3\lib\jekyll\convertible.rb"
(the path on my computer), change the code in line 29 from:
def read_yaml(base, name) begin self.content = File.read(File.join(base, name)) ......end
to:
def read_yaml(base, name) begin self.content = File.read(File.join(base, name), :encoding => "UTF-8") ......end
DONE
]]>为毕设攒RP,不再拖延补上之前的加签过程..
之前某一天看见加航的廉价机票!果断下了手,帝都 -> 温哥华 -> 蒙特利尔 -> 芝加哥第二天仔细对比以后,发现不满足免签条件… O.O
免签条件的官方说明看这里
那就只好去办过境签了,幸好加拿大的过境签证不需要「签证受理费」http://www.vfs-canada.com.cn/chinese/visafees.aspx
不过你这个「申请递送费」250元是神马情况啊!!「加拿大签证申请中心」这名字怎么看也不像官方啊!
但是在加拿大政府的网站上确实是这么写的:
为了绕过这吸血一样的250元,我在加拿大政府网站上找到了「网上申请」的字样:
点击网页里的「确定您是否符合条件并在线申请」,按照里头的提示回答几个问题,最终就告诉我可以网申,给出了一个「personal checklist code」和一个详细的步骤说明
通过这个code在MyCIC里注册,上传要求的材料。按照要求,我需要提交(都是电子版):
和在VFS中看到的要求比好像少一点?
在MyCIC中提交之后就等消息了…
大约过了一周吧(?),邮箱收到MyCIC的提醒,说基本OK了,需要提交护照完成手续
在天朝,提交的方式是通过VFS……….
于是我最终还是要和「签证申请中心」打交道..
把要求补充提交护照的单子一起打印出来,为了省钱,我就肉身到VFS(上海)去提交了,也可以寄过去的似乎
到了VFS,终于还是要交钱的… 但是只需要200,省了50
提交护照之后,也和美帝签证一样不会提醒你啥时候好了,得自己到这里看
我过了两天就OK了,挺快的
5月4号在网上提交
5月9号收到通知去提交护照
5月13号去VFS人工提交护照
5月16号去取回护照
前后花了大约10天
end
注:在2013年11月,我用同样网申的方法拿了加拿大旅游多次签,有效期到护照过期日,有7年,好长呢
]]>http://www.zhihu.com/question/20840262/answer/16354233
只知道CS相关的课程
我目前在看 Udacity 上的 Web Development - How to Build A Blog,从最基础的HTML讲起,网站搭到GAE上,这是在给毕设做准备
Web Development Course Online
另外这俩都是我接下来想跟一跟的:
另外,一亩三分地的 Warald 大曾经列出过一份零基础入门CS的指南,其中Udacity的CS101 Introduction to Computer Science就被作为最最入门的建议
另外跑题一下,我是Coursera的重度用户,Udacity的视频不能像Coursera那样倍速播放让我很苦恼……
— 补充 —
Udacity的课程似乎都是 rolling 的,什么时候加入都可以,这点比较赞
— 03/26/2013 补充 —
原来Udacity也是可以调速度的…!这是youtube的功能,但是youtube得加入html5 trial之后默认使用html5播放才可以,Udacity真赞..
— 01/18/2014 补充 —
]]>SNS是公开的日记,也许有一天,会有一个人把你所有发过的状态、日志、照片都看一遍。然后发现你犯罪的证据!
为了复习,断人人、断微博!然后觉得离开SNS也没有那么难,何况我还有豆瓣、QQ、facebook、twitter众账号,还有小说,还有Game of Thrones!
刚断的前几天,我把可以发状态的念头记下来,到后来就懒得了…SNS有时候是唯一渠道=_–
小时候我把这理解为“自制力差”,长大后有个更专业的名词“拖延症”!总觉得时间还够,然后到最后偷工减料,与预期相去甚远!准备G,把自己拖到只剩2个月;准备T,把自己拖到只剩2周不到!实在是自作孽呃T_T
不过对于几分钟就能做完的事情,倒是很乐意动手,毕竟马上就能够体验到一件事情完成的快感!所以我觉得我还有救,一旦开始动手,刹不住啊!
怎么才能开始动手,这是我原本期望idoit能做到的事情……
考完G的一周,有幸看到了这篇文章,然后是这里。我问自己“What’s my true purpose in life?”,没有答案,白活了!青年节的晚上在图书馆,我憋了一个半小时,差不多憋到cry的地步了,应该算是找到而不是设定了自己的人生目标吧,最后缩成一句话:
To be enlightened && enlightening!
惭愧,是单词先蹦到我的脑子里的,怎么译回来还没想好=_= 脑子里又蹦出来“老吾老以及人之老”。
立贴为证,当然,不会切**的。
G经验资料分享 & T经验资料分享 见上几篇文章吧…
其实最初是想只写这俩的,但是我傲娇了… 之前想在BBS发G,去你妹的“不良内容”啊!再返身想想我到发攻略的境界了么?没有=_=,那就当是烈士感言吧!
]]>421G终于考完了,153+170+4.0,Verbal的成绩不是很理想,在做完上半场的时候,我还是信心满怀的…好诧异!好沮丧!
好好玩了1天,冷静之后想一想,复习的这么不科学,还能怪谁呢。既然考完了,经验不好说,至少有些教训可以吐槽的。 +_+
– by Andriy
六级 裸到第四次的时候过了600
T 大约10个月前裸99
没报XDF,在几个同学中最早考,一直独自准备,一切信息来自网络。也因此复习得很不科学,任务艰巨性估计不足!T_T
吐槽:模考肯定要做,但分数别看太重,做了2次模考,第一次660-760,第二次620-720,结果153,真是好狂野的落差呃…
决战前可能是比较激动,结果6点半就醒来了…不放心、遂起来过了一遍issue题目,在8点左右补了20多分钟的觉。之前的2周内日均睡眠不足7个小时,平时的日常锻炼几乎都停了!
考完一琢磨、特别是一个月后充分睡眠考完T后再反思,真是失策啊!!!下半场的第一个V的后期就开始感觉好疲惫了,而这个V正是难度猛增的开始!
到考前最后几天了,少睡挤出来的那点时间有用吗?!
中场休息的时候食物和水要带齐啊!T_T
根据日记:
一直到4.21,算上收集资料的时间,有10周大约2个半月,真正开始复习的时间为9周左右,好短好短啊![捂脸泪奔]
一定要留出足够的时间,一定要果断!!!(只要开始动手了就好了,尝试开始3分钟吧)
没报XDF,全部信息都来自于网上。谢谢网络!
注:开始时,以下所述的资源都是有我在115的链接可以下载的,后来115关闭外链分享之后就不好用了,原有的链接都失效了,不过这些资料都是在那些大的论坛上下的,个人准备反正要经历这一步,无所谓了。(2013/07/16)
都说OG最重要,Official Guide!
“新GRE考试备考指导_视频.zip”是从胡楠老师的阅读网络课堂里抽出来的,关于整个新G的介绍和准备。
俩epub文件据说是好东西!
PS: 没提到的要嘛没啥好说、要嘛根本就没有看…下同
据说单词是根本,70%考的都是单词,多少阅读句子填空因为一个词卡住了关键意思!不过背单词肯定是最枯燥的,王道当然是大量阅读中记忆。
Android上是有Merriam-Webster的,非常方便!
我是在线背单词的——扇贝,其现在的机制非常适合每天刷单词:今日单词如果没过就一直循环下去。这样只需要每天添加新list中的词。推荐单词看英文记忆,通过同反义词加深印象,效果好!
我不喜欢只抱着一本红宝书背,红宝书看到的单词都是在同一情境下,到一定遍数就没有意义了,新地方看到单词还是跪。即使没时间大量阅读,好歹多看几个不同的材料吧。
单词资料们
真的很简单很简单, 35分钟的时间完全没有压力!不过该看的还是要看…
官方给了2个pdf,math_review和math_conventions,这俩pdf还是很重要的,像里头有个quarter什么的概念咱以前就没上过。然后看看网络课堂完善+做题练习,再看看glossary。出征前复习一下glossary就够了吧。
官方分为Reading Comprehension, Text Completion, Sentence Equivalence。不过我觉得SE和TC差不多,然后RC里边有偶尔有一题据说是以前的Logic。一般都是分块复习的,除了那本Verbal_Workout。
其实我根本没有专门复习Logic…他们也说中国人不愁这个…
看了网络课堂,然后看了几个说明技巧的pdf,就有点自己的领悟了(找对应,感情_色彩什么的!英语就是总分结构,后边找概念根据就近原则在前头找就OK的!)
复习过程中有一段时间没有做题目,然后某一次做填空10个错了7个,惊悚!于是重新看了一遍TC的综述资料,然后正确率就上去了。看来不能断啊!
TC/SE资料:
看了网络课堂,看了剖析、脉络的讲解,看了《长难句》,然后就是做36套练手+总结了。
我的弱点在于长文章的原文回溯,一旦找不到就好费时间啊啊啊!一般费时间都是因为在某几题耗太久了!后期和考试时候时间倒是不紧张。
阅读资料们:
因为准备的时间短,只是题库刷掉了,没有例子T_T,对于AW也就没有多少发言权…
我只把题库里每一题都想了提纲,根本就没有准备例子啊啊啊啊啊
整理了错误模板,关于错误模板,一开始我把它想成是描述错误的句式了,不过后来觉得应该是描述错误的思路,比如说先brief description,然后作者原意,然后缺少什么东西,然后造成了什么结果……
然后就是整理了每一道题的提纲!
付出不一定有成比例的回报(喂,你才付出多少!T_T),不过如果GT都闯过来了,将来还有啥好怕的呢?!
最后再次用血的教训嘶吼:准备要趁早!
祝大家都有好成绩!O_O
]]>起初规划复习时间为5月6日 → 5月20日,实际不到两周。Oh,我的行动力、我的拖延症+_+
哦,最终是103=27+28+24+24,阅读和写作比一年前还降了 =.= 不过听力和口语有提高是预料之中的,很开心~
– by Andriy
4.21G → 5.20T
二战,11年6月一战半裸99
未报过XDF
要我说,考前最后几天就千万不要想着多复习一点而少睡一点,而且考试那天早上就不要再看资料了吧!
首先,OG真的太简单了!了解题型、看作文的高分低分范文、看出题的思路,其他就找TPO去吧!
还没有TPO的时候,巴郎、Delta什么的还是很盛行的,不过TPO可是ETS的亲儿子呢!
1战时,只做了TPO的1和2。2战也没有全部做完。如果时间充足还是都做了吧,得分析归纳总结,而且有人说只做一遍是不够的…
在我自己做的时候,一直想知道当时间不够,该选哪些来做?听力有人给出了难度表,不一定准,毕竟因人而异。
关于阅读难度:1、2肯定是入门级别的,然后听无老师的教诲做了8与11,说是与真正考试难度相仿,可做完我觉得肯定还没到实战的难度。网上有人说16、19什么的最难,不过我没什么感觉,可能他们是一下生词太多了吧。反倒是做12的时候时间不够+错了很多,事后分析应该是
注:和GRE的经验贴一样,原本我把资源放在115上,后来它关闭外链分享了就不方便了,反正我的资料也基本都是大论坛上下的呢,无所谓啦~
因为考了G再考的T,单词不是什么大问题。
挑了单词量最多的《王玉梅》,大致刷了一遍,把不熟悉的词摘出来,然后单词复习就只看了那600多个不熟悉的词。
话说一战的时候我看了《无老师TOEFL词汇红宝书》,里边的词似乎都是从TPO里出来的,二战到最后没有时间再看它了…
非常非常推荐按照题目看文章!和G不一样,T的出题顺序和考点在文中出现的顺序是一致的,再加上T的每一题都会指出在文中对应的段落,不这么做简直是自虐啊!
考了G就真心不觉得T的阅读算什么,如果长难句有困扰就看这本《GRE&GMAT阅读难句教程》!
关于最后一题6选2文章主旨,我的经验:分两种:
对于1,我觉得根据题目看了一遍全文、题目做到最后一题,就会对文章有大致印象了,毕竟之前题目会一题都不考重点么!一般至少2个是可以这么排除掉的(当然有时间最好还是定位回原文吧…)。
对于2,那些只描述只在某一段中出现的某个细节的选项,一般是错的。
据说标准方法是根据每段的主题句。
听力临时抱佛脚肯定是没有用的啦!话说我从11年3月左右开始听podcast,虽然都只是泛听,浪费了大好时光,但是还是有很大的提高的!精听强烈推荐SSS(Scientific American 60 Second Science),听完就会觉得T的听力怎么这么慢啊!Android上推荐用Beyondpod,iOS上有苹果官方的Podcast,电脑上定然就用iTunes了吧。
关于做笔记:也许有人能听一遍就把该有的细节都记住了,反正我是不行的。因此我倾向于要做笔记,不过一切以听为主,千万不要为了写一句话而把下一句话给漏听了!
没记到也无所谓,考场上亢奋状态的记忆力经常让记笔记成为只求心安。还有一些记笔记的小技巧,比如说对话就画一条竖线跟短信一左一右的效果一样。
有人说听多了会有直觉哪里是出题点,反正我是没到境界..
我想我应该没有多少发言权T_T。自言自语也翻来覆去就是那么几个词,没什么提高的!6题里最令人心慌慌的也就是task1和task2,后头的3456考听力+笔记…(所以有人说得听力者的天下啊)
真正复习有一周左右的时间,把task1的往年考题放到一起,自己一个个准备一遍。几十道题掐着表来一遍,怎么也会有点感觉了吧!拿别人写好的段子来背是没有用的,背起来费力又容易忘,不过不知道怎么说的时候瞄一瞄还是OK的吧。
推荐看一位考119的同学的经验之口语部分。
资料里的《American Accent Training》很有意思,虽然我只跟着念了一天就因为时间不足只好中断了…还有《2011年口语真经3》很推荐!
还是因为考过G,作文压力不是很大,话说考场上的独立作文就因为太放松了,没时间检查…[抠鼻]
看了张红岩的《十天搞定TOEFL作文》,虽然看书的时候连10天不够了,但我觉得文中的14条“效率-方便-经济-耐久-安全-空间 && 健康-乐趣-成就-性格-感情-交流-经验-他人”很有用!从此不再无从破题,从这么些方面去找立场,so easy!当然这个是保底的,实在不知道怎么写了再用上。
我把OG里给的那些题目,一题一页在word里摆开,发现正好184页!这应该就是著名的185题库了,不过不知道我在哪里分页分错了…分好题目之后我就没有像准备G的时候一样每题列个提纲了,首先考试的题目不一定在这185里,其次哪有那个时间啊!=_=
另外推荐“iBT高分作文(完美重排版).pdf”,首先它制作的好!其次185题每一题都有范文!
关于加试,看这里,然后应该就够了吧…
印象中一战的时候好像遇到了阅读的加试,不过考了什么就根本不记得印象了。二战遇到了听力加试:霸王花,ragtime,鸟类迁徙!
一战我连什么是机经都不知道。但是二战中机经的作用!!!
表格里是拼盘,就是可能抽出题目来组合成一套的那些机经,下边一栏的套题是一整套,这是小马放出来的。机经只看口语12和独立作文就够了,也没那么多时间把全部看完,而且阅读和听力的机经,即使看了该不会的还是不会。
小马说这次考拼盘的可能性比较大,但我套题还是看了,蓝色是实际考题,瞧这命中!
上外居然不允许换草稿纸![抓狂]
而且位置不大,我正好在最中间,坐的好挤!
话说一战的时候不怎么清楚加试的事情,早早进入考场后,点下一步下一步于是就开始计时了!然后看到没几个人已经开始了,心里就有点慌,听力什么的都是耗到最后5秒再继续。然后遇到了阅读加试…等我做完正好大约有一半人中场休息了。
二战遇到了听力加试,这次每个section是有意耗完10分钟再Next,于是仍旧结束的比较晚。当我休息完重新进入考场的时候,休息时间还有3分钟,而左边的同学正好在讲口语task1——是关于spend money,在我磨磨蹭蹭还等在口语部分的介绍的时候,左边的同学讲了task2——是关于fashion clothes!^_^
所以关于听题目是可行的!至于会不会德行有亏…我是这么想的:首先他/她自己的分数并不会因此降低;而且听到了该不会还是不会…也许是守恒,我在task2居然还有磕磕绊绊的情况,脑子不清楚啊=_=
平时积累是王道啊!
求人品!O_O
]]>如果不知道“杨鹏17天搞定GRE单词”的话自行搜索去吧
这程序还是存在bug的…比如说红宝书是52个list的时候,不管那么多了,我要开始背单词了!
#include <iostream>#include <vector>#include <algorithm>using namespace std; //红宝书一共有51个listconst int LIST_AMOUNT = 51;//速度按每天3个新list来计算,快慢可以调整const int LISTS_PER_DAY = 3;//学一轮要几天const int DAYS_PER_PASS = LIST_AMOUNT / LISTS_PER_DAY;int main(){ //预计将花在这几轮单词上的总天数 int total_days = DAYS_PER_PASS + 31; //学习新lists,每天得学第几个片段 vector<int> new_list_indices(DAYS_PER_PASS); for (int i=0;i<DAYS_PER_PASS;i++) { new_list_indices[i] = i; } //复习lists,每天要复习哪几个片段 vector<vector<int>> todos(total_days); for (int i=0;i<DAYS_PER_PASS;i++) { int index = new_list_indices[i]; //当天复习 todos[i].push_back(index); //1天后 todos[i+1].push_back(index); //2天后 todos[i+2].push_back(index); //4天后 todos[i+4].push_back(index); //7天后 todos[i+7].push_back(index); //15天后 todos[i+15].push_back(index); //30天后 todos[i+30].push_back(index); } for (int i=0;i<total_days;i++) { //先排下序,从小到大 sort(todos[i].begin(), todos[i].end()); cout << "D" << i+1 << ": " << endl; if (i < DAYS_PER_PASS) { cout << " NEW : " << new_list_indices[i] * LISTS_PER_DAY + 1 << "-" << (new_list_indices[i]+1) * LISTS_PER_DAY << endl; } if (!todos[i].empty()) { cout << " REVIEW : "; for (vector<int>::iterator it=todos[i].begin();it!=todos[i].end();it++) { cout << *it * LISTS_PER_DAY + 1 << "-" << (*it+1) * LISTS_PER_DAY << " "; } cout << endl; } cout << endl; } return 0;}
现在让我写应该会用Python去写吧… (2013/07/16)
]]>香港和新加坡都有好些公交车是不报站的,心里非常没底,总觉得要坐过了!
香港和新加坡都是靠左行驶的,所以一开始我看见车上左边座位没人总会心下一惊,无人驾驶?!
香港的公车按上车站算钱,好贵好贵!想到帝都好像是一两块钱随便坐T_T
香港的公交车都是双层的,新加坡只有比较多人的线路才是双层的,看着瘦瘦高高长长的公交车在香港窄小的街道里穿行,很难不对巴士司机心生敬仰!
即使人多地窄,香港路况也很少堵,想到国内加塞乱挤的情况,会自卑的!
原本我只知道”菲佣”,这次还接触到来自印尼的,也才大约21 22岁,可已经有了孩子、离婚两年了… 用英语都很难交流呃…
香港迪斯尼的感觉从上地铁迪斯尼专线就开始了。想要感觉到自己老了吗,快来迪斯尼吧!
在香港买东西,感觉如果单位是人民币好像我也可以接受,于是一乘以汇率,果然便宜!新加坡币数额比较小,花的时候心里没什么感觉,但一换算成人民币,好痛……
因为“XXXX丢失案”接触到香港皇家警察,没想到第一次报警还是在香港… 印象还好,虽然最终东西没有找回来。
去新加坡的飞机上前排坐了几个学生,其中有个也许是华裔,但说的都是英语,对他有了莫名的偏见了。
新加坡好热!去吃饭,店里都穿的是拖鞋… 当然,是比较大众的店啦
新加坡遍地都是iPhone,这里4S卖S$1100,而政府似乎有规定月薪低于S$1700的都会补助到1700。
香港的电梯左行右立,保持的很好;在上海我经常坐的几条线里,只在娄山关路站下来看到过自动排成左行右立的,而那里是许多领事馆所在的地方,不知道有没有联系;新加坡只写着”keep left”,但我不知道它要表达”keep standing left”还是”keep left clean”,于是有些人站左边有些人站右边,但大部分人是站左边的。
新加坡地铁这条线的广播说“lean on the train doors”,那条线贴在门上的标语却是“lean against”。
香港和新加坡的地铁上都是不准吃喝的,前几天还有个“港铁骂战”么,可是我在新加坡的地铁站连垃圾桶都没有找到。而且,这里地铁站没有厕所吗?
上海地铁“换乘”的说法,我在大一听的还是interchange,不知道大二的什么时候改成transfer了,然后香港和新加坡都用的是interchange。
我突然明白为什么手机上home键按了半秒才会有反应了!不过为什么在旅游的时候我会想起这个呢… (妈蛋!现在完全不记得当时想到什么了啊!!#费马附身.. 06/15/2014)
已经习惯了进个城都要1个半小时多,于是觉得香港好小,新加坡也好小… 或许是因为我没有去它们的郊区逛逛?
新加坡有看到养的好好的足球场,大场小场都有,而且都有人在踢!
新加坡经常可以见到修路建房子的工地,感觉有些诧异。
新加坡有个地方叫Little India,可是为啥我才走两步就走完了呢… Tiny?
新加坡地理上是东7区,但好像采用的是东8区的计时,晚上7点天还亮的很,这里的夜间动物园7:30才开…
在新加坡看到好些日本韩国来集体旅游的小学生们,虽然不知道他们学到了什么,不过咱咋就没几个集体出国旅游的假期呢!!!
新加坡的路上也有摩托车,不过都是开的比小轿车还快,这里摩托车可以上高速,据说很多马来人每天就是这么去上班的。
在新加坡感觉反而比在香港没有语言代沟… 新加坡听到看到的反而更多是普通话和简体。
路漫漫,夜漫漫
]]>恕我学艺不精,正好今儿考试考到这个问题了,结果只好凭本能作答。
原本写个代码测试一下就知道了,但手边没有环境,也从没专门写过数据库应用,惭愧T_T
然后google了好久,没看见哪里有明说的,但是我看到了下边这两个问题:
问题一:TSQL make trigger fail silently
问题二:Trigger Failure Cancels calling transaction
由这俩问题的提问可以推断,transaction在这种情况下是要rollback的吧,这也是比较符合常理的理解。只能推断到这里了…
]]>我说的「问号表达式」指的是形如
a ? b : c
的语句..
今儿写东西的时候遇到一个未知的错误,我在sysout里使用了问号表达式,做了判断,但判断似乎没有用,仍然访问了空指针
table.setText(2, 1, "- [复查日期: + record.getReexamineDate() == null ? "无" : DateTimeUtil.parseDate(record.getReexamineDate()) + "]");
于是我就很纳闷了,怎么可能呢,不是判断了吗,我换成显式的if else语句,OK了,就是这里的问号表达式的问题了!
测试代码:
System.out.println(record.getReexamineDate() == null ? "无" : DateTimeUtil.parseDate(record.getReexamineDate()));
只打印这个也是正常的,对整个问号表达式加上括号,结果也是正常的,看来就是优先级的问题了!
再说C++,我想试试C++下有没有这样的情况,于是代码:
cout << p == NULL ? "1" : p->pCh;
运行时就崩了啊~~~
看来这样写在Java下可以,在C++下不可以…是Java的toString()的缘故?
毫无疑问,C++下这样的代码肯定也是不行的了:
cout << "haha" << p == NULL ? "1" : p->pCh;
看来像这样的代码都还是加上一个()比较保险吧,毕竟问号表达式是好几个token组成的,并没有像()那样拥有更高的优先级。
我猜像下边的代码,是先”a”然后p == null,然后 (“a” + p==null),然后才是?
System.out.println("a" + p == null ? "1" : p.str);
]]>有点想当下个学期新生们的C助教;觉得自己基础不太稳想从头复习一遍;再就是感受下自己一年多的进步~
于是重写了下当时的大项目,也是我的代码入门之作
在ubuntu 11.04下,先下载了eclipse CDT,发现有新版本indigo!然后居然没有安JRE,又安了JRE。
在eclipse里,新建C project,想把.h和.c分开放,于是和src同级新建了一个source folder(只是folder的好像不合适,.h文件的图标都灰掉了),然而在.c中一下子找不到.h,最终写成这样是可以的 #include “./../header/xxx”
接下来想要使用SVN,先在eclipse里安装SVN插件:http://subclipse.tigris.org/update,然后在google code里新建托管项目,看这里,但是生成密码的时候一直被重置(F*CK GFW),使用以下办法解决:在/etc/hosts 里添加66.249.89.99code.google.com,于是就可以生成密码了!然后在eclipse里边右键项目->team->share。
嘿嘿~ https://andriy-c-final-project-rework.googlecode.com/svn/trunk/
注:后来我都用git了…这个也被我转移到github上了… (2013/07/16)
.h里边不能有常量定义,可以extern一下,然后在一个.c里边具体定义,我记得linux的源码也是这么用的,有个特别的.h用来声明常量们。不过#define倒是可以,#define不是C的东西,是编译器的东西!
puts()函数会自动加上\n,蛮高级的…
char nextOp = 0;while (getchar() == '-' && (nextOp = getchar()) != 'q'){ while (getchar() != '\n') { continue; //there may be a '\n' when return is pressed, ignore it! } //}
这段代码可以接受-x这样形式的输入,-q退出,主要是里边的那个while循环!没有它的话是肯定会报错的,因为有缓冲输入,回车之后flush出来,因此getchar()仍然拿得到那个’\n’,需要把那个\n处理掉,免得影响。(是这样么?)
原来#include “../……”就可以了,不用”./../……”
使用了static xxxxx(),这样的函数声明表示此函数不会供外部调用,就好像private一样,而且eclipse也会在没调用到这个函数的时候给你一个warning,蛮有用的!
使用fgets()和fputs(),之前使用的一直是gets()和puts(),这不好的原因是没有输入个数限制,不安全。而且可以使用stdin和stdout作为文件,不错~
遇到只有C99才能在for loop里边直接定义变量的问题,啊!!!早就习惯直接for(int i=0……)了!于是在项目属性->c/c++ build->settings->GCC C compiler->Miscellaneous的other flags里边添上-std=c99,可以了!
由于-c, -s, -u, -d的输入格式完全一样,使用了函数指针~
在自己的showErrorInput(const char*)函数里边,传入错误说明,就可以针对不同错误说不同的话了。
今天完成了所有的control logic,和一年半前相比,完成的很轻松啊~
晚上又遇到了载入文件找不到路径的问题,这次,先用”w”模式来一下,发现就在项目目录下和src及res文件夹同级的位置,于是./res/*.txt就OK了
把之前的control Logic优化了下,分成了几个小函数,这样便于理解。话说自从在java里头充分分出函数以让每个函数都不太大,这好像归于面向对象的风格哦。
发现C里边的struct定义必须要struct xxx xxx,C++就可以直接XXX XXX了。
这次重做,决定和之前的结构有些不同,之前是一个二维的大链表,现在想表头读入以后,就固定了,于是是一个一维的数据链表,每一个元素内有一个数据数组,这个数组的内容由表头确定。采用链表,indexing采用数组好了。
在识别 float(4)这样的字符串的时候纠结了一段时间,后边干脆就只认()之间没有空格的情形,如果( 4)什么都报错,此外,如果在float和(4)之间有空格,那么经过我的处理,在”float”得到的length字符串会是””,于是判断如果strlen()==0则再fscanf()一遍,不为0就不用再从文件读入了,直接用就好了。
完成了create.txt中一个TableHeader的读入。
算了下,已经1225行代码了~
暂时就写成这样子…… 前前后后写了5天,每天2个小时到3个小时。
遥想当年写C项目是在期末、其他考试都结束了以后,写了3天2夜,除了吃饭都在code,最后写了个2400多行的cpp,deadline前的6个小时左右突破了困扰很久的一个难点,真的好激动哦!那是第一次写这么多的代码,于是就喜欢上了这专业^_^,下学期可以转专业也没转了……不过现在看那cpp,杂乱不堪啊!!!而且四处粘贴代码(我已经深深体会到这样的弊端了!)
重写,真的觉得自己进步了好多,不过大部分是在编程技巧上和工具使用上的,思维方式呢?我也不知道!
写到上周五15号左右就暂停了,毕竟这个是课余,得先把老师那个项目完成!加了个油哦~
]]>使用GWT & GAE for Java,需要在数据库中存进去一个Date,表示存储的时刻,在根据用户选择的时间选择对应的数据。
设计的是用户粗略的根据日期来选择范围,时分秒都不考虑。用了DatePicker和几个TextBox的组合,没有用DateBox,因为觉得DateBox对于选取略久以前的时间就不够方便了。DatePicker返回的时间时分秒是默认的,12:00:00(PS:我觉得设成这个时间,对于任何一个时区都可以保证DAY_OF_MONTH一致)
但是调试的时候才发现这么做有个问题!TimeZone!存进去一个Date date = new Date()。在本地的时候TimeZone一般会根据系统设置而自动设好,比如GMT+8,而在GWT/GAE这里,可以在查看数据库知道,全部存成UTC、0时区!用户选择的时间又是东八区的时间,于是会有误差,找不准数据。
所以需要GregorianCalendar来确定时区!
此外还需要展示最初始数据的时间和最后的时间,而GregorianCalendar在GWT的client端又用不了,所以我就放到了server端,client通过发RPC拿回展示时间的String。
server端,要通过Date生成GregorianCalendar,我没有看到直接通过Date作为参数的构造函数,所以就用了GregorianCalendar(int year, int month, int day, int hour, intminute, int second)
在本地JUnit测试的时候也一如预想,使用setTimeZone(TimeZone.getTimeZone(“GMT+8”))。之后再calendar.get()就可以拿到对应时区的时间(PS:在Calendar中setTimeZone()对于其内部存着的long型数据是没有影响的,只是在get()的时候会算上偏移量而已)。但是!在GWT上运行的时候却就是没有作用,setTimeZone(),然后却没有变成新时区的时间!具体原因我还不知道。
正好测试setTimeZone对long型millitime的影响的时候有了灵感,直接calendar.setTimeInMillis(date.getTime())!这样setTimeZone()什么的也有反应了!具体原因我还是不知道…
这里说的蛮好“treatall dates as milliseconds since epoch in GMT timezone”,要用的时候自己按不同时区解析下就好了。
几天之后,经过尝试,发现:在client端要显示时间的话,直接用GWT给的DateTimeFormat,只要getFormat(“yyyy年MM月dd日 HH:mm:ss”)这样去自己定义就可以了,打印出来的结果是“2011年07月22日 21:53:39”
但是DateTimeFormat只是显示的好用,我要比较还是的自己在server端Calendar来比啊
PS:DateTimeFormat只能在client端使用,在server和shared端使用都会报 java.lang.ExceptionInInitializerError 的Exception,用JUnit一试就知道了
java.lang.ExceptionInInitializerError at com.google.gwt.i18n.client.DateTimeFormat.getDefaultDateTimeFormatInfo(DateTimeFormat.java:839) at com.google.gwt.i18n.client.DateTimeFormat.getFormat(DateTimeFormat.java:519) at com.google.gwt.i18n.client.DateTimeFormat.getFullDateFormat(DateTimeFormat.java:669) at edu.tongji.sc.PHR.shared.TestDate.test(TestDate.java:12) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)Caused by: java.lang.UnsupportedOperationException: ERROR: GWT.create() is only usable in client code! It cannot be called, for example, from server code. If you are running a unit test, check that your test case extends GWTTestCase and that GWT.create() is not called from within an initializer or constructor. at com.google.gwt.core.client.GWT.create(GWT.java:92) at com.google.gwt.i18n.client.LocaleInfo.<clinit>(LocaleInfo.java:36) ... 26 more
]]>光阴似箭,日月如梭!我喜欢在总结前加上这俩词,工整对仗,琅琅上口,再附上一句“时间像白驹过隙,一转眼____”,就能在800字的作文中占去快3行!
2010年跌宕起伏,其实哪一年又不是呢,每一年的剧本,都是最好的编剧也创作不出来的!
2010年的一大创新是写日记!当时近现代史要写论文,我写了蒋经国上海打虎的题材,这位太子爷的传记中诸多资料都标明来自他的日记。一想“我以后要是NB了,别人要给我写传记没第一手资料这哪行啊!干脆我也写日记吧!”。想当年老师苦口婆心地规劝大家写日记,漏了介绍这么一个好处,事倍功半呀。
10年1月是大一上期末,keyword——C大项目!从上机考试结束到deadline的那3天,每天早上8点起,晚上断电睡,除了吃饭就是写。在最后一天的晚上实现了难点功能并全部完成之后,内心的狂喜亢奋无以言表!我突然就爱上软件了!
…..
于是我就潜心学习了,大一下的课比大一上多了好多,选课时想着“我只有逼着才努力学”,于是就选了N多课。果然,汇编崩了!汇编答辩前5天开始看书,前2天做项目,最后拿了个良,说实话,我不值一个良。此外值得大书特书的是体育,羽毛球+游泳+跑步+“8 minutes”=优!
开始分专业方向了,先问自己“哪条路想走?”“哪条路适合走”。结果是一问三不知..
当时对刚知道的DARPA倾心不已!可是没找到中国的DARPA在哪儿?
我立下的宏愿是“我的成果可以让绝大多数人都享受到”。于是大机就被我否定了,然后何牛对嵌入式的宣传“相对更难、门槛高难淘汰”把我吸住了!
暑假,突然迸发了看小说的热情,高中语文老师说过每一本小说都是一个世界,人生是短暂的,读小说可以帮助我们体验各种人生。当然她指的应该是经典小说,而我私自泛化了这个概念。就这样,浑浑噩噩的过了暑假,制定的计划也没几个完成了的。重中之重的C++大项目也是在返校军训后才完成,不过这个“致敬”LF2的项目最终非常助长自信心!
大二上基本分了三个片段,从开学到国庆,还处于暑假的状态。很早便想旅游,遂定下决心国庆出游!老爸愣是不放心我单独出门,于是和老孙共2人,苏州杭州千岛湖,单人花了1200多,住青年旅舍,吃了好几次沙县小吃!回来之后有了四处旅行的梦想!
第二个阶段是国庆到生日,这一段的关键词是学业。一个接一个的任务,Android, Apple两个竞赛+各种科目小作业,虽然Android的后来没做。拿到了奖学金,很兴奋!不过这一段时间养成了一个不好的习惯,上课不爱听讲。老师讲的慢我就会觉得是浪费时间!网络和数据库除外,因为金伟祖语速快&穆斌讲英语,一走神就听不懂了。如今看中文和非英语视频都是倍速播放的了。当然我知道这样不好… 最后,我升官了~
第三段是生日以后,办了网银,于是订杂志,买书,充值VIP,原来花钱方便以后人果然会变的大手大脚的…… 之前抱有这样的观点 “作业是做不完的”,所以总是拖到deadline之前再动手,这样真不好!
最后,我变得文艺了呢……
乾卦之初九——潜龙勿用,2010应该是就是这么厚积的一年吧,略充实,略平淡!亦成年,从此!
]]>昨儿去交大闵行校区参加了个Computing, People, and the Physical World. Computing in the 21st Century的学术研讨会,听上去很NB的样子!7个演讲的大牛中,3个拿过图灵奖!
第一次出现在这种高水平的场合,可惜没有全程笔记~~ 现在无法回忆起全部具体细节了,只能期望在某些情境之时能在脑海中浮现吧..
前一天晚上收到确认邮件的时候很意外,因外当时的口吻是后边报名的基本没票了.. 可是早上我们坐的那辆车坐了一半都不到.. 但是会场倒是似乎坐满了
我们比较早到会场,于是果断坐在了同济软院位置的第一排的正中,总第四排、正中位置!前面一排是复旦附中的女生们,再前面就是reserved了,所以距离很近啊!可惜没一个好用的相机啊啊啊!
7点20分前后到菁菁堂,9点才正式开始演讲。第一个Rick Rashid是Microsoft的全球高级副总裁,介绍的当然是Microsoft的东东,我只记得他讲了Microsoft Research的重要性、介绍了一些Microsoft Research出来的前沿炫丽成果,不过还是很耀眼的。
话说Rick Rashid曾是DARPA的人啊,中国有类似DARPA的机构么,还招人不….
第二个Barbara Liskov是08年图灵奖,而且据说是美国第一个计算机方面的女PhD,而且后面的David Culler和Satyanarayanan都在演讲中表达了对她的敬意!(他俩曾经听过她的课)可Barbara讲的都是她自己过去的经历,研究领域从Programming Language到Programming Methodology再到如今还在做的Distributed Computing,从中展开她的主题”The power of Abstraction”。
(注:什么,她当时讲过PL?! 2013/07/16)
可是我更想听的是她对未来的趋势的理解啊…记得在上午的观众提问中,有人问她你为啥在那个时候从此领域转到彼领域呢?她回答“because I realized that ‘the era of distributed computing has come’”,和没说一样…
我也向着投影出来的互动手机号码发送了短信,提问“下阶段(如果有的话),会研究哪个领域呢?”可是问题石沉大海..
第三位David Culler介绍的网络,一开始我觉得他讲的很入门,正好和正在学的《计算机网络》相印证,可是后来我还是睡着了…. 他描绘的是一个万物皆连在网络之中的情景,还介绍了个TinyOS,虽然当时我不知道那是个啥.. 而且似乎这位牛有负责些IPV6的事宜。
号外:中午和炘哥逛了下闵行校区,我觉着吧,有一个数字可以很恰当地形容他!大家都知道的。
下午迟到了.. 规定是1:45开始,我两点才到 =.=
Chuck Thacker是09年的图灵奖,他的演讲题目是”Improving the Future by Examining the Past”,我觉得讲的蛮有意思的,至少对我而言。他介绍了些在几十年前应用的技术,并阐释了如果放在现在那些技术并不一定是首选。虽然讲得很好,可我现在想的起只有个Virtual Memory和一个Network的例子,2/6啊……
Mahadev Satyanarayanan讲的是Mobile Computing,这位名字很长的大牛发型也很帅。(似乎所有牛牛们都是白头…必然?)我一开始以为他要讲嵌入式,他一开始也确实是这么做的,给了一幅图预测Mobile将超过PC啥的,可是后来还是主要往Computing上讲了,毕竟主题是这个嘛… Mobile Computing的Freedom(anything, anytime, anywhere)、Cloud Computing的Simplicity。再后来…再后来我就闭上了眼睛,缺乏午睡啊……
洪小文是唯一一个用中文的,他说的是From Ubiquitous Computing to Ubiquitous Harmony。我回来一查才发现Ubiquitous Computing就是大名鼎鼎的普适计算… 身为微软亚洲研究院的老大,当然要介绍一些微软的新东西了,请了3个小弟上来做demo,一个画图搜索、一个人立方、一个翻译词典,其间甚至显示了马英九和徐静蕾之间的联系…当然微软亚洲研究院所展示的那些成果基本都是满堂彩的。
最后一位出场的压轴人物John Hopcroft是86年的图灵奖,讲的是Computing and the Future。他先讲了些自己的例子说明Computing在生活中的应用可以让生活如此美好XX。在那之后…在那之后他就开始使用数学公式了!接下来发生了什么我是不咋清楚的了…
下午的观众提问有人问Science和Engineering的区别,洪小文说的回答大致是两者是密切相关不可分离的,正如在engineering的时候用到science的精神。而且往往是Engineering用Science方法,在Engineering中往往又会出现Science问题。我也觉得他们密不可分、相辅相成。
甜姐还是下午第一个提问的同学,说的是水立方的实用性,就比如对于咱平民百姓而言不咋实用,及与SNS的对比?(我回来试了一下,对我自己人立方,结果就俩人…而且…)洪小文的回答是“SNS交友用的是你自己的隐私数据(当然是你同意使用的)人立方靠的是网络上网页的数据,还是有很大区别的”。
这说到隐私的问题,我倒是压根没想到过…不过我的理解是这是Microsoft Research Asia做出来的东西,研究院讲的就是创意,至于实用性啥的不是主要关心范畴,那是公司的事情,当年法拉第电磁感应的时候也不清楚它将来会有这么大的重要性。
原本的主要目的就是来感受气氛、开拓视野、顺便沾沾灵气啥的。结果练习英语听力倒是成为了一个意料之外的收获。今儿之后就是对自己的听力充满信心!也许是他们为了照顾学生听众们故意放慢了语速?
说到Computing,其实我觉得这个范围可以很宽广,一切都是数据,区别的只是对数据的理解方式,那么对数据的处理就可以说是Computing吗?电脑就是Computer。这会上的Computing应该是狭义的定义吧。
洪小文说“之前的XXX说硬件上面要配软件,我说在软件之前要配个人”,他的讲题也是关于技术对生活的促进方面的,我们所见略同啊哈哈,将技术应用于生活,能活的更好是我发下的宏愿!
关于对现场青年学生们的建议,某牛说“Passion…”、某牛说“ask simple questions”,是在上午问的,还有个Rick的答案忘了…
也许是听众们都是学生,各位大牛讲的都不是特别深,正在学的OS、计算机网络、嵌入式都可以得到或多或少的佐证,对境界提升有很大帮助!而且还领了一个包,与之相比,翘一天课算个啥……
[大笑]
]]>