2015年总结

今年过得很快乐。

翻了一下豆瓣,大约看了170部左右的电影,80本书,30来盘游戏。

这些数字带来我的回忆有很多,比如,今年完结的饥饿游戏,给我带来的从字里行间的故事到荧幕上的满足;GTA V里面的兄弟情义,和欺骗;月亮与六便士的理想主义;最后生还者讲述的酣畅淋漓的故事;火之鸟,火星救援,基地,重力眩晕……这一年有数不清美好的体验。

有朋友回国了,感觉像是失踪很久的人突然出现。也有朋友出国了。有些以前熟人,成了很好的朋友。也有很好的朋友,欺骗了我。谈过一段恋爱,分了。其实现在想一想这些,都算是某种体验吧。

我觉得周围的环境,对人的影响很大。比如,我以前觉得在网络游戏上付费很蠢,也觉得能在网上看的电影,没必要去电影院看。但是现在,我兼职来的钱基本上都花在了够买游戏和电影票上。周五的晚上能和朋友去一起看个电影,实在太美了。又比如,以前觉得很多事情离自己比较遥远,但是周围不少人,就在你身边,就在做这些事的时候,你就会觉得自己也可以。

今年最大的感受是,大学就要结束了。是六月份大二就有这个感觉了,因为选大三上的课,发现学分已经差不多了,要毕业了的感觉。今天尤为强烈,考完了测试,好像基本上没有什么考试了(通宵复习的日子终于结束了啊)。但是好像并没有学到什么东西,不知道别的学校怎样,但是我们学校教学很差。老师拿几年前的PPT在讲台上讲,学生听一听(和看视频没什么区别),考前复习,考试,忘掉。我觉得这种教育有很大嗯问题。算了,就不谈这个了。在这里认识了不少喜欢计算机的人,也有几个对我很都有帮助的老师,享受到了这里的图书资源,算是一种安慰吧。

提一点,我觉得我们学校的学生素质特别差。学校有个电影院,每周放映一部电影,效果还可以,票价二十。但是观众(基本都是本校学生)素质实在是太差了,玩手机的(很夸张,一边玩,一边问旁边的人剧情),抖腿的(连排椅子),讲话的,甚至磕瓜子的。比社会上的电影院都差了很多倍。超市里有很多有关防盗的刺眼的标语,今天买早餐的时候,老板还在跟一个售货员说怎么防小偷。作弊就不提了,非常严重。

还是说我吧。我觉得自己在这一年有点进步:英语和写作水平比以前好一些了,容忍傻逼的能力强了一点(不足以容忍电影院的傻逼),对鸡汤的抵抗能力页强了,哈哈,好棒。对了,夏天实习的时候学了Python,非常爽!有点后悔没早一点去学。当你有了一把锤子,你眼中所有的问题都会变成钉子。我图形学、图像处理什么的作业,都是用Python写的,现在想解决什么问题,第一个想到的也是Python。Python是一门简单易写的脚本语言,用来作工具非常方便。

也没什么好说了,主要是有很多事情不方便说。说出来的,我写的也很模糊,估计只有知情的几个人知道我在说什么,明年的计划有一大堆,也不写了,自己在心里加油吧。

唉有点乱,熬了几个夜复习,写不好。有人看到这里的,权当厕所读物吧。

希望2016年也过的和今年一样开心!

 

 

道德绑架

2008年汶川地震,我在博文中学读初中。5月12号,那是一个再平静不过的中午,起床之后班主任告诉我们这个消息。当时我不清楚这事影响有多大,但是全班的气氛让人感到很不自在。好像自己应该表现得悲伤,又不知道该如何表现。

随后学校发动了捐款。班上有个小姑娘捐了512,班主任立即对她进行了表扬,鼓励我们多捐一些。我当时寄宿,两个星期的生活费在120左右,对这种灾难不敏感,也不想捐款。但是负责收钱的同学收到我这里,我看名单上很多人捐了几十,就捐了50.后来,新的一期校刊上贴了一份名单,我高兴地在上面发现了我的名字(超过了50的上面都有),还和别人吹嘘了一番。

说起这件事,是因为刚刚看了南方公园S19E05(B站),里面Randy去一家超市购物:

售货员问:要不要为饥饿的儿童捐款。

Randy说,算了。

售货员又问,真的不要为饥饿的儿童捐款吗?

Randy说,不了。

售货员说:你买了XX元的啤酒和XX元的披萨,如果您确认不要捐款,请点击“不为饥饿的儿童捐款”。

Randy按下。

售货员说,这是您的啤酒和披萨, 还有“我不要为饥饿的儿童捐款”,一共是XX元。

我对初中捐款事件依然记忆犹新,因为越长大,越对自己当时违心和不纯洁的动机愧疚。当时听人说,这种捐款和以后的发展有关,好学生要多捐一点,以后有好处。从此我对这种事情有了很不好的印象,仿佛这种事情都是要说出来,要比。我没有针对捐512的同学的意思,甚至她也是受害者,这样公布出来,难免有作秀之嫌。我想要指责的是学校和班主任的做法,表扬捐款多的同学,收款时公开记在一张纸上谁都可以看,在校刊上公布数字。实在不明智。

人们会潜意识地将这种事情,和品格联系在一起。比如你学习好,成绩好,品德好。那么品德好要从哪方面表现出来呢?其实这是无法量化的,但是要评优的时候「品德」必须作为一个重要的参考方面,于是对学生毫不了解的领导,评选的时候自然会看这种事情吧!如果你是个好学生,那么你肯定不会不捐款。即使你家里没钱,日子过的艰难,但是有灾区的群众比你更苦,你是个好同学,一定会舍己为人,拿钱给更需要的人。捐款多的人,必定担当得起更大的责任。

2013年我高中毕业,假期很长,在一家店打工。有次店里开会,提到在某分店有位员工出车祸,号召大家捐款,帮助一下自己的同事。当时的我刚完成高考,挣得钱自己花,买手机还是问家里要钱(惭愧),没有任何负担。打工的想法,其实是不想呆在家里,太闲,还要被父母管着。而且说实话,我们做推销的工作,我倒觉得钱不难挣,说几句话,买个货就有的提成(因为压力太小)。所以多捐一点吧。然后有同事告诉我,你不能捐这么多,主管才捐了XX,你不能比他多。

这里也没有指责同事或是店的意思,我想社会上一定有类似的潜规则。甚至,大家心有灵犀,也还算好的。

更让人无法接受的,是来自网络的暴力。大家互不认识,对自己说的话不负责任,可以方便看到别人的留言,也容易带节奏。阅兵的时候范玮琪的微博下面一片谩骂,被朋友赚到我的时间线上的时候,我还看的一头雾水。知乎上有人出来说,这样的情况屡见不鲜了:某某事件某明星不捐被骂,某某事件某明星不表示被骂,某富豪不捐款被骂,赵薇什么都没发,竟然也被骂了。

不捐款有人骂,捐也有人骂。最近扎克伯格喜得一女,宣布捐出自己和妻子持有的股份,致力于「开发人类潜能,促进平等实现」。我负责了翻译了他的一封公开信,我的看法是,他的捐款是为了让自己的女儿生活在一个更好的世界里——不将钱捐给治疗病人的人,而是给那些研究疾病的人,希望根治更多的疾病。我非常赞同他的做法,爱自己爱的人。然而还是有人骂了,新闻下面的评论说,一个外国人,给中国捐过多少?光说捐,到时候捐不捐还不一定呢!捐那么多还不是避税!

也有一些人,助长了这种风气。以前有个选秀节目,获胜的选手当即宣布捐出所有奖金。这也是情商低的一种表现吧。有道是「赐失之矣。自今以往,鲁人不赎人矣。取其金则无损于行,不取其金则不复赎人矣。」

互联网给了人们(当然,中国没有)自由,也带来了暴力。素质不一的人可以随意发表声音。97年经济危机的时候,有人一辈子攒了60w交了首付,一夜之间,房子只值60w,人们就说李嘉诚:你那么有钱,别要他们的房贷了。可笑。这种绑架的野蛮,算是互联网将这种「你弱你有理,你富就要捐」的声音带到公众场合的一个严峻问题了吧。

我觉得谁都对这种情况无能为力,在知乎嘲笑微博上这些人,他们还是在微薄的评论里收到很多“赞”,我们的朋友圈还是充斥着不转不是中国人,公众人物还是无法低调地做点什么不受评论。

我希望自己能做到的,就是谨慎地对别人道德谴责吧。即使做不到,也要至少不将这些想法说出来。自己做事,别人的评价也看清一点。

 

崔佛·菲利普

这一个周得了感冒,但是在GTAV中的总游戏时间还是达到了30小时。这款游戏太吸引人了,开始之后睡觉做梦都是游戏情节,无法不一口气打完。

初中的时候,和晖他们一起玩了《罪恶都市》,之后打过GTA3,圣安地列斯等等GTA。这次GTAV一出,万众瞩目。我自己的感受是,除了GTAV中无微不至的细节之外,和以往不同的,是这部作品讲述了一个情节紧凑,引人入胜的故事。角色不再是一个呆板,听别的人说话,受玩家操作的人物,而是个性鲜明,自己的台词很多,有血有肉的主人公。这也是吸引人舍不得放下手柄的原因吧!

最成功的角色,莫过于崔佛·菲利普了。崔佛有一个悲惨的童年(按照他自己的说法)。看起来像是有「反社会」的倾向,比如变态的行为,对陌生人必定出言不逊,变装等。但我认为,老崔不是个变态杀人魔,他只关心自己亲近的人,对自己的敌人毫不留情。

TrevorPhilips_Desenho

自己抢了飞车党老大的女人,还杀了人家,一不做二不休去血洗了整个飞车党。尼欧兄弟抢了自己的生意,就去烧了他全家。但是,崔对小罗,韦德,布莱德甚至迈克,一直是拿兄弟对待。崔相信小罗,把自己的公司全部交给他管理;对于有点弱智的韦德,一直不离不弃。游戏开始的抢劫失败之后,崔佛一直想着将布莱德从狱中救出来;对于麦克,重新见面之后这么长时间,老崔才开始怀疑他……

所以,老崔是个仗义的人,希望得到关爱,在送派翠莎回家的时候竟然哭了出来。但是又做事严谨,绝对不留隐患,杀人也毫不留情。相比于麦克,游戏开始的抢劫事件麦克就想不杀保安,抢劫珠宝店的时候放过了交通警察,对自己女儿不怀好意的主持人,麦克也没让老崔杀他。考虑到麦克叛徒的背景,我觉得这系列行为不能算作「善」,妇人之任。善良就不会背叛兄弟,为了家庭算不得理由。

所以在游戏最后的选择中,我选择杀了麦克,我不相信9年前做出这种事情的人会变好。小富跟老崔提杀麦克的时候,老崔很生气,坚决不干。那时我就想,如果是麦克,绝对会同意杀老崔的。果然,追杀麦克的时候,麦克就说不如我和你联手去杀崔佛。

无论如何要保护自己爱的人,不相干的人,及时有威胁到自己人的隐患,就要杀掉。这就是崔佛。

 

人人都应该懂点TCP

Julia Evans的博客很受欢迎,网页简单漂亮,行文流畅清晰。最近lispython推荐了一篇文章,我翻译了一下,讲的是TCP中的一个坑。也推荐关注一下Julia的博客。


 

即使你的工作也许不需要对TCP了如指掌,也不需要去了解具体的TCP/IP实例。你也应该懂一些基本的TCP知识,本文会告诉你为什么。

我以前在Recurse Center工作的时候,曾经用Python写过一个TCP栈(还写了一篇博文 用Python实现TCP栈可以学到什么)。这是很有意思的一课,也基本上是我对TCP的所有了解了。

一年之后,工作上遇到了困难。有同事在Slack上问到:“嘿,我向NSQ推消息总是会有40ms的延迟,不知道为什么。”这个问题我思来想去,过了一个周,还是毫无头绪。

这里解释一下: NSQ是一个用来发消息的队列。发送方式是向localhost发出一个HTTP请求,这个动作不可能花费40ms,一定是出了错。但是NSQ不具备很高的CPU优先级,也没有占用大量内存,所以问题不是出在垃圾回收那边。

后来,我想起来一周之前读过的一篇文章——我们是如何在每一个POST请求上省出200ms的(In search of performance – how we shaved 200ms off every POST request)。这篇文章讨论了一开始每一个POST都会多花200ms的原因,多少有些诡异。下面是这篇文章中的内容。

ACK延迟和TCP_NODELAY

Ruby的 Bet::HTTP 将POST请求分成两个TCP包——一个header,一个body.curl,相比之下,将它们组合成一个倒是更加合适。不过更糟的是,Net:HTTP没有给它打开的TCP socket设置TCP_NODELAY,所以发送第一个包之后,要等到确认才会发送第二个。归根结底,这是Nagle算法导致的。

连接的另一端,HAProxy要选择用何种方式确认这两个包。在1.4.18(正式我们使用的版本),它使用的是TCP延时确认,延时确认在Nagle算法中表现很糟糕,导致请求在这个地方暂停了,直至超时。

我来总结一下这段话:

  • TCP是将你要发送的数据打包的算法
  • 他们的HTTP需要用两个小包发送POST请求

整个过程就像下面这样:

  • application:嗨!给你第一个包
  • HAProxy:嘘……我们要等第二个包
  • HAProxy:对了,我们要给他个确认,不过没什么大不了的,等会再说
  • application:嘘……我们等到第一个包的确认再发第二个,也许网络堵车了,再等一会
  • HAProxy:烦死了,我们发第一个包的确认吧
  • application:收到确认,发第二个包!!!!
  • HAProxy:搞定!

这段时间内,HAProxy和application都在消极地等待,直到超过200ms。application等待是因为Nagle算法,HAProxy等待是因为延迟ACK。

据我所知,延迟的ACK在所有Linux系统都是默认打开的。所以这不是特例,只要你发送的数据多于一个TCP包,你也会碰上这种事。

终于搞定了我们的问题

读了这篇文章之后,觉得没什么了不起的。但是在我们的神秘40ms挣扎了许久,我想起来这篇文章。

我想:这可能是我的问题吗?可能吗??可能吗?!我给团队发了一封邮件说“可能是我疯了,不过,有可能是TCP的问题。”

于是我将TCP_NODELAY打开,然后——BOOM!

所有的40ms延迟统统消失了,这个世界完美了。我真TM是个天才!

ACK延迟应该完全关闭吗

提一个小插曲,我在HN上看到了这条评论

真正的问题处在ACK延迟上。200ms延时设定是糟糕的主意,1985年在伯克利搞BSD的那帮人,根本不理解这个问题。ACK延迟是赌应用层一定会在200ms之内收到回复。虽然几乎每次都输,但是ACK延迟依然在用。

他在评论中讨论了ACK是成本很低的,这中做法所导致的问题比它解决的问题要严重的多。

如果你不懂TCP,就搞不定这个问题

以前我总认为TCP是相当底层的东西,我永远不需要去了解它。虽然差不多是这样,但是实际生活中,你依然可能遇见和TCP算法相关的bug,这时候懂一些TCP的知识就至关重要了。(本文也可以引申为,系统调用,操作系统这些都很重要,这个道理适用于很多东西)

ACK延时/TCP_NODELAY很糟糕——它可能对任何写HTTP 请求代码的人造成影响。但是你不必成为系统编程方面的天才,懂一点TCP就帮我搞定了这个问题,也让我意识到,出现这个问题我也有责任。我也在用strace,strace万岁!

 

饥饿游戏 完结感想

即使赢了战争,却失去了你,又能如何呢?

我和饥饿游戏

《饥饿游戏》这个故事对我来说有着特别的意义。读这部书的时候正是高二,是刚刚爱上读书的那段时间。那时候应该读过了《百年孤独》《三体》这些。吃完饭就去一中的那个小书店翻一翻。看到一本《嘲笑鸟》,张杰培告诉我这本书很好的。可是这本是3,辗转之后终于在亚马逊一家店发现可以买。买来之后,一口气读完了,想了很多。可以说,这本书教会我怎样去思考,给了我一种价值观。我后来一共买了三套,其中毕业之后送给一个女性朋友一套。给马推荐了之后,这货每节课自习都在看书。

谷阿莫是一个电影播主,会在fb,微博,优酷等po一些X分钟看完XX这种片子。有一次在X分钟看完饥饿游戏的视频下面跟着一些类似「这电影完全看不懂」「原来不止我一个人看不懂」「幸亏没去电影院看」这种评论,我指出了视频中所存在的错误,几分钟的视频不能讲清楚整个故事,鼓励他们去读原著。结果却召开了「读过原著装逼吗」之类的站队式的谩骂。我发现人们真会为自己偷懒找理由。

好了,打完了广告,再来谈谈这部作品改拍的电影。我非常喜欢这四部电影,让很多人有机会看到这个故事,让我能在荧幕上看到自己读书时脑海中的影像,让我再一次思考凯特尼斯所为的意义。

自由与平等

自法国大革命之后,自由、平等、博爱这种观念成了被反复赞颂的东西。但是,自由与平等,本身就是相对的。斯诺总统建立了一个区域职能分明的世界,按区负责农业,矿业等等,人们的劳动供给统治阶级的生活。可以说,这种规划是效率极高的,我认为,如果人们世代按照这种规划生活,那么必定对于自己的工作越来越精,对于社会总体来说,是积极的。

但是,人不愿这样被压迫活着。处在下层社会的人总要去反抗。

那么,反抗有意义吗?

存在正义的战争吗?我认为不。电影比原著直白,告诉了这几年我一看到饥饿游戏就会想起的问题:凯特尼斯为什么要杀科恩?

凯特尼斯是一颗重要的政治棋子,科恩拿她来鼓动反抗军,斯诺想要通过打击她来打击反抗军。斯诺是坏的吗?科恩是正义的一方?在电影中,科恩明确的表现出,她关心的不是凯特尼斯,而是嘲笑鸟所带来的政治力量,在最后为了激起所有人的反抗,也为了赢得自己的民心,她选择轰炸平民和儿童。胜利之后,提议对一区统治者的人们进行一场饥饿游戏。

所以正义的战争是不存在的。但是正义一词可以赢得「道德」上的高地,正义,不过是一种战术而已。这场战争只是下层的人受够了上层的统治,被科恩这样有野心的人夺取政权,煽动的一场想要重新政治洗牌的战争。

16300000209541125611517106940

举个例子,我们现在的生活是自由,平等的吗?我们见过在网络上一些地区的人们惊心动魄的挨饿的图片,来号召大家节约粮食。然而,我们即使节约了粮食,也是到不了他们嘴里去的。这种宣传的错误在于:造成饥饿的原因不是粮食不足,而是分配问题。这个社会需要有的人住别墅,有的人在挨饿。

你爱的人就是你的世界

凯特尼斯为什么要杀科恩?很简单,因为她杀了自己的妹妹普里姆。

凯特尼斯的父亲死于矿难之后,母亲撂下了所有的事情,普里姆几乎是她在这个世界上的一切了。所以抽中了她妹妹的名字的时候,她毫不犹豫地喊 I volunteer ! 所以无论在什么地方,总是想到的家人过的好不好。在最后经历了这一切,回到了家,和当初走出家门那么像,母亲躺在沙发上一蹶不振,一只猫趴在厨房,唯独失去了自己的妹妹,凯特尼斯大哭。

p2277148103

凯特尼斯在露露死后,愿意哀悼来反抗饥饿游戏让他们自相残杀;里格姐妹;哑巴胖子在哥哥死后痛苦……这些都告诉我们,你爱的人,才是你的世界。

普鲁塔什·海文斯比是最厉害的人物,他料到了科恩死亡,能成为饥饿游戏的设计者,料到斯诺总统最后会失败及时投靠了科恩,最后竟然还能站在新任总统的身旁。黑米奇嘲笑他们说「哼,他们还说这场游戏没有赢家呢!」这种聪明的人最终笑到了最后。

然而这和我们的生活,有什么关系呢?影片中说出了这样的话:人们总是愚蠢和自大,悲剧总是在重演,可能最终会被自己的愚蠢和傲慢毁灭。是的,一届又一届统治的更替,受伤的总是无辜的人们。只要自己爱的人过的好,何必去关心不相干的人如何呢。最幸福的生活,莫不是「柴门闻犬吠,风雪夜归人」吧。

演员

大表姐,当然是最大的看点了!

其他饥饿游戏3下的惊喜还有——

The_Hunger_Games_Mockingjay_40652

T-bag!唉虽然是个配角,一出场就被毒死了 TT

权利的游戏中的「高庭玫瑰」玛格丽·提利尔!

p2270854424

权利的游戏中的——布蕾妮骑士!

p2276858784

还有这酒鬼,竟然是《真探》里面的小马!哈哈好巧,刚看完就在这你碰见你,不过你头发这么长我差点没认出来,哈哈哈哈哈。

唉豆瓣才6.7分真心疼,其实真挺好看的。