读《当我谈跑步时我谈些什么》有感

从来都不会想到,村上会是一个生活极其规律,几十年如一日坚持跑步训练,长期参与世界各地的马拉松比赛,甚至是铁人三项比赛的人。

在看完这本书并了解到这一点后,我又很难想象这样一个人居然是《挪威的森林》的作者。

其实,村上在书中某一章详细的回忆了当初是如何开始跑步的。他跑步的初衷不能说不简单,就是保持身体健康,以能写出更多更好的小说来:

打算作为小说家度过今后漫长的人生,就必须找到一个既能维持体力,又可将体重保持得恰到好处的方法。

是的,这就是他跑步几十年最原始的动力。娓娓道来,平淡如水。

重新开始跑步

大三那年,跑了整整一年步,风雨无阻。五年后,我再度下了这个决心。

巧得很,正当我下完决心后,发现自己手里捧着一本村上春树的《当我谈跑步时我谈些什么》。当然这只是一种主观的说法,到底是在看这本书书的时候下了决心还是在看书之前已经下了决心,我自己也搞不清了。

跑步其实不仅仅是跑步这项运动。跑步意味着生活的一切都开始逐渐规律化,平静化,意味着对自己的掌控。

用 git 做本地备份

得益于强大的 git 以及 github、bitbucket 之类的外围产品,我们可以很方便的将自己本地的文件推到远端,除了可以完成它原本程序员之间协同工作的功能外,还可以单纯的将 git 作为本地备份工具来使用。

假设 A 目录是你的工作目录,这里面的文件经常变动,所以你想使用 git 来管理,但又不想推到远端,只想在本地保存。最简单的做法就是在工作目录下执行 git init、git add、git commit 等一系列操作。但这里有一个小问题,假如该目录是一个公用目录或其他原因,导致该目录有可能被直接删除掉,这样即使是 git 也无力回天了。

进一步想一下,这里有两种做法:

  1. 在另外一个目录 B 下做一个该工作目录的克隆,每次工作目录提交后,在 B 下面执行 git pull 来同步。这样比较麻烦的一点是每次都要切换目录 pull。

  2. 在另外一个目录下新建一个裸仓库。执行 git init –bare,然后在 A 目录下将这个新建的裸仓库添加到上游 upstream。这样每次在工作目录 A 下 commit 后,再执行一个 push 就可以了。

ngx.var.arg 与 ngx.req.get_uri_args 的区别

ngx.var.arg_xxngx.req.get_uri_args["xx"] 两者都是为了获取请求 uri 中的参数,例如对于 url:

http://pureage.info?strider=1  

为了获取输入参数 strider,以下两种方法都可以:

local strider = ngx.var.arg_strider
local strider = ngx.req.get_uri_args["strider"]

差别在于,当请求 uri 中有多个同名参数时,ngx.var.arg_xx 的做法是取第一个出现的值,ngx.req_get_uri_args["xx"] 的做法是返回一个 table,该 table 里存放了该参数的所有值,例如,当请求 uri 为:

http://pureage.info?strider=1&strider=2&strider=3&strider=4  

此时,ngx.var.arg_strider 的值为“1”,而 ngx.req.get_uri_args["strider"] 的值为 table ["1", "2", "3", "4"]。因此,ngx.req.get_uri_args 属于ngx.var.arg_ 的增强。

电影,其实是一件非常私人的东西

看电影,就像其他一切需要调动内心体验的行为,都是非常私人化的,这是无数次教训得出的宝贵经验。它告诉我,自己的看法,不要指望其他任何人能认同。

很多次沮丧的发现,自己给身边的人倾心推荐的电影,他们看完都表示没有什么感觉。有一个经验是,如果电影看到一半,对方萌萌的抬起头,弱弱的问道,这个电影到底是讲什么的啊?这个时候最聪明的做法是赶紧换别的活动,不要抱有任何也许后面的剧情会让他/她大为震撼的幻想。

刚开始的时候是心情是很不愉快的,明明这个电影我已经看了三遍了,恨不得次次都有泪点,为啥在您这就一无是处呢?后来,我逐渐领悟到,问题在我,而不在别人。