今天这篇文章我很久之前就想写了,但是不太敢写。时至今日毕业已将近两年,下定决心还是写出来,不然时间久了难免淡忘。虽然题目是个问句,但其实个人早就有结论了。更准确的题目应该是:哪些因素决定了一个人的大学四年会怎样度过。我的结论是这样的:
30%自身 + 30%专业 + 30%室友 + 10%偶然因素
这里的百分数其实不用深究,它只是大概反映了每一个因素在我看来有多大影响。没有列上去的,也未必就没有影响。分条来说一说。
自身
进了大学靠自己,这是大家都知道的道理,但这里说的“自身”其实并不单单指“个人努力的意愿”。这里的自身实际上说的是一个人的属性,就是你是什么样的人。个人感觉,进入高中,人的各种特点变得逐渐稳定,进入大学则基本固定。回想起来,周边熟悉的同学基本也是如此,大一什么样,大四什么样。那么人有哪些特质呢?太多了,但对大学生活来说,影响最大的还是两个东西:兴趣、智商。大学无疑是一生中最自由的阶段,摆脱了高中成天刷题的日子,又还没有进入必须要为生活挣钱乃至养家糊口的阶段,有大把时间可以做自己想做的事。除了上课和完成作业,你做什么完全看自己的兴趣。至于智商,它会影响你做的每一件事,并且不光是做这件事本身,还包括对事情的计划。想把课程学好,智商也是必不可少的。我就属于智商捉急的那一类,基本从来没有在课堂上完全弄懂老师讲的内容,考试又想不出题目的做法,非常悲惨。当然还有很多别的因素,比如是否愿意和人接触决定了你的交际面,是否够帅/漂亮/有钱影响你是否能找到男/女朋友,总之自身属性是大学四年真正的决定性因素。
专业
专业太重要了。如果你有转专业的想法,那就果断转。在不适合自己的专业里呆着,会让人痛不欲生。这方面我依然是反面教材。高考选专业,谁 TM 知道哪个专业干嘛啊,所以就听父母的了。我从来不责怪他们,正是因为我自己没有在高中找到方向,才把选择权丢给了他们。大学里的大部分时间我都过得不爽,因为学的东西不感兴趣,也学不懂。直到大二下学期,一个很偶然的机会,我才意识到自己更喜欢计算机,从此就踏上了成为码农这条路。我无数次地想,如果一开始我就去了计算机系,现在到底过着怎样的生活。
前面说到兴趣是很重要的自身属性,如果专业能符合兴趣,那是最好不过的事了。我认识的转专业的人,有从电子去生物的,有从计算机去学医的,有从精密仪器去自动化的,之后全都过得很开心,因为他们终于可以享受学习了。但中国的大学有一个矛盾,除了浙大,别的学校都不可能让你先呆一年再选专业,但是不了解一个专业,又怎么知道自己感不感兴趣呢?所以要么在高中就明确方向,要么去浙大,要么出国,否则在专业选择上后悔的可能性极大。
室友
这是一个让我不知道该从何说起的话题。什么才是好的室友,个人有个人的标准,所以这个问题并不好讨论。不过我相信所有上过大学的人都会认同室友对自己的影响有多大。如果你拥有了你心目中的“好室友”,请感谢上天。
偶然因素
我曾经是学校推理协会的会长。我们这个协会是怎么成立的呢?某一天,同学 A 和同学 B 在学校书店相遇了。当时,那个书店有专门的一个书架放推理小说,而他们发现对方也在看推理小说,就聊了起来。这两人的相遇是学校推理协会成立的契机,之后他们找到了一些志同道合的人,成立了协会,而我则是第一时间加入的会员。之后我逐渐做到了会长,把学习之外的大部分时间都奉献给了协会。So,如果他们当时擦肩而过了,会怎么样呢?也许,我们学校到今天都没有推理协会,也许有,但是我肯定不会是其中一员,更不会成为会长。如果我没有加入协会,那么我又会去做些什么呢?谁都不知道。蝴蝶效应是真实存在的,这也是生活有意思的地方。
曾经在多个项目中使用 mongodb,但是最近从头开始安装并启动居然遇到了不少问题。在此记录一下:
环境:Ubuntu 12.04 64bit
版本:mongodb 3.0.2
首先,按照官方教程安装 mongodb。在这个教程中,注意到有一句话
The MongoDB instance stores its data files in /var/lib/mongodb and its log files in /var/log/mongodb by default, and runs using the mongodb user account. You can specify alternate log and data file directories in /etc/mongod.conf.
恩,看来意思是我们可以通过改 /etc/mongod.conf
这个配置文件来设置 data 存放路径。
打开这个文件看看,的确是有这些配置。
# Note: if you run mongodb as a non-root user (recommended) you may
# need to create and set permissions for this directory manually,
# e.g., if the parent directory isn't mutable by the mongodb user.
dbpath=/var/lib/mongodb
#where to log
logpath=/var/log/mongodb/mongod.log
这里假设要用以下命令(称为命令1)启动 mongodb ,指定 wiredTiger 作为存储引擎并标示副本集:
mongod --storageEngine wiredTiger --replSet fbt # 称为命令1
首先我们非常天真地直接执行上面那行命令:
2015-04-23T14:55:16.152+0800 I STORAGE [initandlisten] exception in initAndListen: 29 Data directory /data/db not found., terminating
2015-04-23T14:55:16.152+0800 I CONTROL [initandlisten] dbexit: rc: 100
Oops,似乎不行,说 /data/db
不存在。这里就是很坑爹的地方了:虽然 mongod.conf
指定了 dbpath
,但是实际上这个配置文件没有起作用!而 mongodb 本身认为 /data/db
才是默认路径。毫无疑问,文档在这方面没有写清楚,因此也有别人被坑过。(后来发现,通过 sudo service mongod start
方式启动会默认使用该配置文件)要想让配置生效,必须手动指定配置文件路径,即:
mongod --storageEngine wiredTiger --replSet fbt -f /etc/mongod.conf
不过这里不打算用这种方式。既然没有 /data/db
这个路径,创建一个不就好了?
sudo mkdir -p /data/db
继续执行命令1,继续报错
2015-04-23T15:17:49.274+0800 E NETWORK [initandlisten] Failed to unlink socket file /tmp/mongodb-27017.sock errno:1 Operation not permitted
2015-04-23T15:17:49.274+0800 I - [initandlisten] Fatal Assertion 28578
2015-04-23T15:17:49.274+0800 I - [initandlisten]
***aborting after fassert() failure
既然它删不掉 /tmp/mongodb-27017.sock
,那我手动删。删完之后再次执行命令1:
2015-04-23T15:19:44.972+0800 I STORAGE [initandlisten] exception in initAndListen: 98 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
2015-04-23T15:19:44.972+0800 I CONTROL [initandlisten] dbexit: rc: 100
这个是可以预期的权限问题,因为我们是拿 sudo
创建的 /data/db
文件夹,而执行的时候没有用 sudo
。万能的 stackoverflow 告诉我们要这样做:
sudo chown -R `id -u` /data/db
执行之后当前用户就可以在 /data/db
创建文件了。再次执行命令1
fbt@ebs-39239:~/mongodb$ mongod --storageEngine wiredTiger --replSet fbt
2015-04-23T15:29:38.158+0800 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=1G,session_max=20000,eviction=(threads_max=4),statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2015-04-23T15:29:38.264+0800 I CONTROL [initandlisten] MongoDB starting : pid=30024 port=27017 dbpath=/data/db 64-bit host=ebs-39239
2015-04-23T15:29:38.265+0800 I CONTROL [initandlisten]
2015-04-23T15:29:38.265+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2015-04-23T15:29:38.265+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2015-04-23T15:29:38.265+0800 I CONTROL [initandlisten]
2015-04-23T15:29:38.265+0800 I CONTROL [initandlisten] db version v3.0.2
2015-04-23T15:29:38.265+0800 I CONTROL [initandlisten] git version: 6201872043ecbbc0a4cc169b5482dcf385fc464f
2015-04-23T15:29:38.265+0800 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.1 14 Mar 2012
2015-04-23T15:29:38.265+0800 I CONTROL [initandlisten] build info: Linux ip-10-111-179-219 3.2.0-36-virtual #57-Ubuntu SMP Tue Jan 8 22:04:49 UTC 2013 x86_64 BOOST_LIB_VERSION=1_49
2015-04-23T15:29:38.265+0800 I CONTROL [initandlisten] allocator: tcmalloc
2015-04-23T15:29:38.265+0800 I CONTROL [initandlisten] options: { replication: { replSet: "fbt" }, storage: { engine: "wiredTiger" } }
2015-04-23T15:29:38.334+0800 I REPL [initandlisten] Did not find local replica set configuration document at startup; NoMatchingDocument Did not find replica set configuration document in local.system.replset
2015-04-23T15:29:38.351+0800 I NETWORK [initandlisten] waiting for connections on port 27017
这次终于 OK 了。
如果直接执行,最好是单独开一个 screen。如果不想开 screen,则应当加上 --fork
参数把 mongod放到后台去。我采取开 screen 的方式。退出 screen,执行 ps aux | grep mongo
观察 mongod 是否成功启动:
fbt 29783 0.0 0.0 29476 1676 ? Ss 14:47 0:00 SCREEN -S mongodb
fbt 30042 3.7 1.7 209004 35496 pts/1 Sl+ 15:31 0:00 mongod --storageEngine wiredTiger --replSet fbt
fbt 30059 0.0 0.0 11700 944 pts/0 S+ 15:31 0:00 grep --color=auto mongo
可以看到,mongod 已经按照之前给的参数在运行了。
谋划已久的一篇文章,忙里偷闲终于能写出来。其实还有好多想写的东西,但是时间不允许。总之先把这篇写了。
要说的是三部漫画里面的几个我认为十分经典的镜头。
首先是《Girl Friends》21话。这一话讲述真理和男朋友分手然后和亚希表白。
我太喜欢最后亚希心理活动的那个描写了,如果要在看过的漫画里选出最佳心理描写,那就是这个了。
心脏砰砰跳的声音,比包厢里的音乐还要大声。
我那时心想,一定是因为我的麦克风开着。
某一次和别人聊天,我把这句话贴过去,说特别好,然后被鄙视说看得太少。聊天的这个人没看过《Girl Friends》,不过这句话仅看文字,也确实非常平淡。那么下面就分析一下到底好在哪。首先是描写有现场感,在画面的基础上,添加了声音的信息,从而让人很容易想象出KTV包间中听到真理表白从而心脏砰砰跳的亚希。最妙的地方在于,这里的心理活动虽然是第一人称的形式,但内容又是以第三人称的方式来叙述的,表达的意思是:你看,虽然我的心脏在砰砰跳,但是我还是很冷静的哦,而且,并不是因为我的心脏跳得太厉害所以声音大,而是因为麦克风开着,对,就是因为麦克风开着导致的。无法压抑激动的亚希,必须以这种方式来强行让自己不要被突如其来的惊喜冲昏头脑,如果只说第一句“心脏砰砰跳的声音,比包厢里的音乐还要大声”,也表达出了亚希很激动这层意思,但是如果没有后面那句,表达效果和深度都差了一大截。森永老师也确实是个天才,什么叫细腻,这就叫细腻。
第二个要说的是水上悟志的小众名作《惑星公主蜥蜴骑士》,不过其实直译的话应该翻作《行星的五月雨》。这部漫画是我看过的所有漫画中,我认为最燃的,没有之一。
本来想分析图的,但是算了,放个属于燃点之一的图吧。
以及之前写的一个短评:
最终战vs亚尼姆斯为何篇幅不够?
看完最终战我还以为漫画是被编辑要求在几话内结束导致剧情被腰斩,但仔细想想不是。为什么打亚尼姆斯草草收场,因为作者心中的最终战是骑士 vs 公主,打亚尼姆斯只不过是个前奏。前奏不能比正片更出彩,否则就不对了。为了放大最后五月雨把手放到夕日手上那一下的燃度/催泪度,必须让对战亚尼姆斯不要太显眼,这就导致了和最强 BOSS 的战斗看起来不太够劲。这是我觉得本作唯一遗憾的地方。
本作一开始感觉比较无聊,但是看了几卷之后就开始停不下来了。水上悟志是个对漫画节奏感有相当好把握的作者。比如他正在连载的的《战国妖狐》,就完美解决了大战之后要怎么从高潮收场的问题:他直接把主角换了。前一半故事里还是反派的人物,在大战之后变成主角,而之前的主角变成反派,而且这个转变还非常自然,并且也没有让故事的节奏突然变慢进入一个索然无味的状态。大战之后故事节奏处理不好的例子实在太多了,比如《东京食尸鬼》就是个失败的典型。当然也有像巨人那种每集都是爆点的漫画,不过大部分漫画节奏都还是有张有弛的,而水上悟志就是节奏掌控的专家。还有一点,水上悟志发便当从不会拖泥带水,不过他发便当的人,也不是随随便便就死的,一般是为了让另外一个人物成长。
说回本作,我觉得百度百科的评价很好“有燃有泪”,看进去的话,本作有不少地方是相当催泪的。我建议在找漫画补的人去看《惑星公主蜥蜴骑士》,这是一部可以让人燃到哭,感动到哭的作品。
最后说最近看完的《Touch》,我想对这部漫画不需要任何介绍。
这张图来自《Touch》第二卷:
这个图说的是浅仓南和上杉和也在餐馆吃(约)饭(会),达也和一个喜欢和也的女生从餐馆旁边走过去。和也和达也互相注意到了,但是两个女生都没发现,然后兄弟二人分别把两个女生的注意力转移开让她们没有发现另一边。看到这里,我就认定《Touch》一定是名作了,虽然之前我也知道。这张图什么意思?达也那边很好解释,因为此时他认为浅仓南是喜欢和也的,所以不想让那个女生去打扰他们。比较复杂的是和也这边,有两种解释:1. 他知道浅仓南喜欢达也,所以不想让她发现达也和另外一个女生走在一起; 2. 在 1 的基础上,和也认为,如果浅仓南发现了,就会很明显地表露出不满,这样会打破自己的希望因为虽然他知道南更喜欢哥哥一些,但是一直没有放弃追求南。另外如果南表露出态度,也会让南比较尴尬,因为她本身是想维持现状的。不管和也的举动要如何解释,这一幕都是相当神的,兄弟两个替对方着想的心情,通过这一幕完美体现了出来。
最后就是漫画史上最经典的表白场景之一:
这个没什么好说的,就是搁在这。
之前我一直不理解为什么浅仓南是国民女神。下面这段话摘自帖子浅仓南在日漫女主角中处于一个什么样的地位?
浅仓南是日本国民偶像。
TOUCH的漫画销量破亿,日本的销量破亿作品总共12部;TOUCH的平均每卷销量380万,仅次于海贼王,略高于灌篮和龙珠,日本的平均每卷销量400万级作品只此4部。
上次动画和特摄男女主角BEST50,浅仓南女性角色票数第一,十岁到六十岁年龄段都是票数前十;十年前朝日电视台全国调查人气动漫角色TOP100,浅仓南总票数第七,女性角色票数还是第一。只要投票面向大众,不局限于低年龄段的死宅,浅仓南轻松秒杀时下那些当红女性角色。
还有些高亮回复:
最喜欢的女主不容玷污
浅仓南给安达充刻画的完美,完美到让人对和也这种输家感到残忍。
很多上虎扑的都把赤木晴子当做心中的女神,但是说实话,仅仅对比人物的话,浅仓南估计能把晴子爆成龙珠中的那巴。
又比如
我会意淫千千万万个女角色,但是其中永远不会有她。
为什么漫画千千万万女性角色中会有这样一个特殊存在呢,只有看了《Touch》才能体会。
P.S. 宾治简直犯规!和也你死得好惨!