Note: 删除git库中的文件

库中有个临时文件,当时不小心push上去的。想要删掉,本地文件夹里看不到这个文件。

程序猿啊羊一语点破。ls -a查看隐藏文件。果然找到。

git commit前先git status,查看状态。

git rm .mutipl<TAB> ——删除

git add -A是添加所有文件。

git rm之后再git status 查看状态,然后commit/push同步上去。

因为太懒,git commit后面没有写 -m。跳进了nano编辑器。

nano编辑器,第一行是标题,第二行空掉,第三行写正文。ctrl+o写入文件。

在nano中下面一排是命令,^代表ctrl。

万人如海一身藏

这一周过得非常辛苦。周五晚上所有事情都顺利或者不顺利地解决。周围人在讨论上哪喝酒的问题。我突然很想一个人到Boxing Cat去,叫一份蒜蓉蛋黄酱蘸薯条,坐在三三两两喝啤酒的老外中间,一根一根吃到七八点,乘已经空荡荡的公交车回去,穿越并不十分拥挤但流光溢彩的淮海路、西藏路等等,坐在窗边,手托着腮,一路看过去,夜风和霓虹还有路人。

不过我没有。我想起程序猿啊黄很久以前就给我推荐过的愚园路上的一家肉桂卷。我穿着短袖背着包,穿过熙熙攘攘穿风衣的周五晚上的人群和冷风,从会德丰走到愚园路上。肉桂卷小小的门面被一家小酒吧挟裹,木门半掩。我小心翼翼推门进去,肉桂味道扑面而来。里面还有一个顾客。我问,还有肉桂卷吗?柜台后面的美国男人绽放大大的笑容,用很好听的口音说中文,还剩最后一个。

男人麻利地为前面的顾客装好所有的肉桂卷,剩下那个加热后用盘子装给我。我坐在小店外面的白色桌前吃肉桂卷。我对肉桂味道非常挑剔。自己手作花式咖啡的时候常常会撒肉桂,但只撒一些些,稍多一点就觉排斥。市面上的肉桂面包,我很少去吃,因为肉桂味道扑鼻,令我退避三舍。

webwxgetmsgimg (24)

然而他家的肉桂卷并不。肉桂味道浓郁芬芳,我却无法拒绝。吃得满手肉桂焦糖,一边走在路上,一边极有耐性地一根一根舔手指。肉桂香味令人欲罢不能。

走到南京西路上,刚好舔完所有手指。南京西路上的法桐已经亮起很别致的彩灯,像挂在树上的亮晶晶花朵。波特曼依旧是大幅精致得体的广告遮盖。灯光照在熙熙攘攘的带笑的人群脸上,忽明忽暗。

我一直很喜欢南京西路。优雅得体的精致,不露声色的昂贵,而最多的并非购物消费的人群,而是勤勤恳恳出没于高耸写字楼的小白领。规规矩矩地穿着正装,胸前挂着吊牌。中午挽着手一起出来找午饭吃。这里寸土寸金,却容得下并不中产的小白领吃一顿尚可的午饭。

也有各地的游客,站在静安寺对面拍静安寺。“愿祈佛手双垂下,摩得人心一样平”。静安寺的金顶镶嵌在这个上海最顶级的商业圈中间,到夜晚和周围的商场一样,金碧辉煌。旁边就是久光商场巨幅奢侈品广告。大概就是,惟有王城最堪隐,万人如海一身藏。

我沿着南京西路,慢慢走到南京西路地铁站去,路边是综合租界留下的老建筑,安安静静地卖着奢侈品。马路对面是恒隆、中信泰富、伊势丹。

有白发老妇人穿着碎花布衫坐在凯司令店面旁边卖白兰花。夜风中顿有香气隐现。香气令我想起,四年前我从恒隆广场走下来,心情复杂地在同一个老妇人那里买了一朵白兰花别在襟前。

卖白兰花的老妇人在上海极常见,你总能在人流量大的地铁口譬如静安寺或者人民广场的来福士底下看到,女孩子来买,她们就把茉莉花苞做成的手串戴在女孩子手上。有段时间朋友圈里在转喜欢上海的几个原因。最后一个原因是,女孩子问老妇人为什么这么大年纪还在卖花。老妇人笑道,今生卖花,来世漂亮。

那则帖子例数了上海的多少好,最后这个“今生卖花来世漂亮”一时传为佳话。帖子里的种种好处,我都知道,随处可见的二十四小时便利店,快捷的城际交通,当天可到的快递,可以让我在凌晨四点撒丫子乱跑的良好治安,随处可以挖掘到的来自世界各地的美食。虽然常年下雨的坏天气和糟糕的空气质量有时候会令我瞬间忘掉前面列举的所有好然后想卷铺盖逃跑,但不得不承认,就算我未必会在上海久居,几年后可能还是会离开,但也还是深切喜欢这座城市的。

回到那朵白兰花。四年前买的那朵白兰花,到底没有给我带来好运。我有时候会想,如果那是结果不一样,现在会是怎样?上海于我,会是怎样的面貌?

 

翻译二则

images

一、

以前看到过一段话,号称是福楼拜的——

人的一生中,最光辉的一天并非功成名就那天,而是从悲叹与绝望中产生对人生的挑战,以勇敢迈向意志的那天。

这句话令我很受震动,几乎受骗。但作为一个有语言洁癖的语言工作者,对“以勇敢迈向意志”这个短语,我如鲠在喉。福楼拜的书我只读过李健吾翻译的包法利夫人,对其用词习惯并不熟悉,但也深信福楼拜本人、李健吾,都不会把一个短语写成这样。

写成哪样?“以勇敢迈向意志”,这个短语粗看似干练漂亮,细想却完全不合逻辑——勇敢固然可以是方法,但意志绝对不是结果。这是人们常犯的一种错误,贪恋辞藻堆砌,怠于下功夫细究。

并不是说这句话不好,除了这个短语的语法错误,我很喜欢这句话。但这个短语终究露出破绽,我想了半天,先扔到谷歌里去搜。

中文搜索结果很多,但无一具体指向是福楼拜具体哪部作品,当然不可能是福楼拜自己在朋友圈里发骚,也不可能是某次电视演讲。于是心里有九成把握是伪托。

为确认,又搜英文结果,这个很简单,在中文搜索结果中找到有英文版本的,截取关键词扔到谷歌里搜。

人们热爱鲜美鸡汤的习惯并非只有中国的朋友圈。你看不到国外的facebook,twitter,也可以看看linkedin,上面老外转发鸡汤不比中国人少。所以我很轻松就搜到了这句话的英文版本——

The most glorious moments in your life are not the so-called days of success, but rather those days when out of dejection and despair you feel rise in you a challenge to life, and the promise of future accomplishments.

无一例外地,网站上的这条quotation,都注明是Flaubert所写。但也无一例外地,没有哪个能够指出是出自福楼拜的哪部作品,哪怕是第三者在著作中的引述。

接下来,求助于法国朋友,找出这句话的法语版本。很快我就收到了这句话在网上流传的法语版本——

Les moments les plus glorieux de votre vie ne sont pas les jours dits de succès. Mais plutôt ces jours où de l’abattement et du désespoir vous sentez monter en vous un défi à la vie, et la promesse de futures réalisations.

把这段话截取关键词扔到google.fr里去搜,一边也拜托朋友帮我寻找出处。果然都是只存在于转载的quotation collection里。我又把关键词连同Flaubert一起扔到谷歌里搜索——Google 的文库是很强大的,但也没有搜到任何有这句话的Flaubert的作品。

Generally speaking,这是伪托。

我并不纠结于它是伪托。只是不爽于这句话的语法错误。

二、

很多人都喜欢这句话,“心如猛虎嗅蔷薇。”

这句话典雅,含义隽永,画面特别美。语言也美,几乎看不出是翻译。它的原文是——

In me the tiger sniffs the rose.

这真不是伪托。这是英国诗人近现代英国诗人SIegfried Sassoon在其诗《In me past present future meet》中的诗句。

In me, past, present, future meet

To hold long chiding conference.

My lusts usurp the present tense

And strangle Reason in his seat.

My loves leap through the future’s fence

To dance with dream-enfranchised feet.

In me the cave-man clasps the seer,

And garlanded Apollo goes

Chanting to Abraham’s deaf ear.

In me the tiger sniffs the rose.

Look in my heart, kind friends, and tremble,

Since there your elements assemble.

将其翻译成“心有猛虎嗅蔷薇”的,是余光中。不过原文并没有那么条达,在散文《猛虎与蔷薇中》,余光中说“勉强翻译”为“我心里有猛虎在细嗅蔷薇”。先撇开作者光环不说,这么翻译是不是顿时逼格大减?

但我要说的是,原诗并不如余光中先生在《猛虎与蔷薇》中所说“不朽”。如果你把“in me the tiger sniffs the rose”扔到谷歌里去搜(我的代理服务器在UK),第一条结果就是中文网站的。不仅如此,整个第一页,中文搜索结果几乎占据了一半。再往下拉几页更甚。

同样的,如果你在维基百科中搜本诗作者Siegfried Sassoon,短短两段的中文条目,有一段是在介绍“猛虎嗅蔷薇”,而英文页面,你看不到这句话,也看不到这句话的出处,那首《In me past present future meet》。

只能猜测这首诗可能在萨松的众多作品中,在西方真的非常不出名。而这极典雅美好的意象,却深受中国人的欢迎。这是很有趣的呢。

值得一提的是,无论是四字格的“心有猛虎,细嗅蔷薇”,还是七字格的“心有猛虎嗅蔷薇”,这些恐怕是旁人的修改,听起来都要比余光中先生的“我心里有猛虎在细嗅蔷薇”要好听得多啊……(一滴汗)

困成狗

连续好多天的过敏症终于在双休日平息。周日我戴着口罩从浦东跑到宝山,发现良民证没带,再从宝山跑回浦东拿良民证,然后又跑到宝山,结果发现并不需要良民证。我跑去一个川菜小面馆,给自己点了很多好吃的。结果把自己辣得够呛。本来因为过敏症不停打喷嚏流鼻涕,就已经把嘴巴鼻子周围的皮肤蹭破了。吃完辣的可好,火上浇油。

周一我为了几张证明在外环狼奔豕突,从世纪大道跑到康桥,再从康桥回世纪大道,再从世纪大道跑回康桥,再从康桥跑到市内……

疲力尽但依旧目光炯炯。我去肇嘉浜路买了程序猿啊黄推荐的“肚子里有料”包子铺的奶黄包和肉包,然后又回静安寺。

到晚上困倦轰然袭来。早晨起床跑步像踩在棉花上。左脚踝隐痛令人不安。

整个一天都保持了这种困倦的状态,想念舒适的小床。咖啡也救不了。

口鼻附近的上皮组织纷纷脱落。

Note: Return and Print

I was learning Return statement.

The example is below:

def maximum(x,y):

if x > y:

return x

elif x == y

return ‘The numbers are equal’

else:

return y

 

print maximum(2,3)

————

The output is:

3

I was wondering if there’s any difference between return and print. So I modified a little. I replaced return with print.

The out put turned out to be:

3

None.

What happened? Je sais pas.

Then I continued reading. I saw a “return None” and i realized that there must be something to do with the None above.

But I have no clue.

诗词

我有个很贱的毛病,就是喜欢在文科生面前摆弄浅薄的理工科知识,喜欢在理工科生面前炫耀本来就应该有的文学修养。譬如微信上Karlan同学一旦写错什么字,我往往嘲笑半天还意犹未尽。或者偶有所感,念两句诗遣怀,对方还没回应我就立刻哈哈大笑说不懂了吧别费劲了文盲。这种小人得志心态贱兮兮的,我居然乐此不疲。追根究底,其实也就是自卑而已——正因如此所以Karlan同学对此很宽容。换成路人我可能早被揍吐血了。

大概同时也因为,我们都觉得诗词挺好的。

无论是半吊子的文科生我,还是血统纯正优良不带一丝杂质写篇不带错别字的博客都够呛的理科生Karlan同学,我们都有一点共识,就是脑子里装着一些诗词真的挺好的。

到底怎么个好法?我说不上来。只是晨起在江边跑步,天还未亮,江上有黑漆漆的货轮,只点一盏灯,几乎要隐没到对岸的灯火里去,骤然鸣笛一声,余音回荡久久不绝。江水在脚底击拍,蛐蛐在江边灌木丛里哼歌,天顶一枚皓月在云隙穿行,胸中激荡,就忍不住脱口而出,星垂平野阔,月涌大江流。那一刻万籁阒寂,天地间仿佛只剩一人。

以诗遣怀是再自然不过的事,心中翻涌往事的时候,古人似乎已经把精雕细琢鬼斧神工的字句准备好摆在你面前,韵律优美,每个字都准确无误击中你。即便是背不了几首诗的Karlan,看到好诗,也会忍不住多念几遍。

我一直不讨厌郭沫若的一个很大原因恐怕就是初中时候读了他早期的一些诗,《女神》、《炉中煤》、《凤凰涅槃》等等,分外喜欢《女神》。分明是现代诗,民国时期的白话风格,却有种说不出的古意——不是中国的古,倒更像希腊古典神话。“我们新鲜,我们净朗,我们华美,我们芬芳!”初中时候并不很懂诗歌在当时历史大背景下的含义,只为那节奏韵律,和漂亮词语堆砌的场景感动。长大后了解了近现代文学的背景,再去想那些词,于是又有了新的感悟。

大学时候,我有两位风格迥异的女老师。先秦文学的王莹老师,是一个干练的女性,行事风格都带着左传的利落简洁。我尤爱听她讲诗经,她念诗经豳风七月的时候我最痴迷。《七月》本身是诗经中我最喜欢的一首诗——如实地叙述却暗藏史诗般的宏大,极具镜头感,一气呵成,如江河奔涌不停歇——而她是我见过的最能把这首诗念出我心中对这首诗所存的感觉的人。记忆里她的诗经课是先秦的亚麻色——木质的讲台,窗外的秋光,微卷的书页。

还有近现代文学的洪雁老师。洪雁老师的端庄沉静气质总让我想起《大奥》中饰演阿江与的高岛礼子,但又温柔许多。她对我去上她的课经常急匆匆从第一排桌子上一跃而过从来都是报以宽容微笑。老实说我对近现代文学一直没什么兴趣,总觉得枯燥无聊,痴男怨女抗争礼教,哪有先秦文学风雅,哪有唐宋诗词华美。但她读冯至的《我的寂寞是一条长蛇》,念题目的时候我就呆了。真好听啊,那么温柔安静,像河水涓涓流淌,像推门出去蓦然发现积雪数尺,有梅暗香。

当然,大多诗词都是小时候背的。当时并不知晓背诗的意义,但也没有当作是苦差。它有点像一个ssh key放在我的服务器里。那些诗词放在我的童年里,并没有什么意义,等到长大了,合适的场景触发,就好比私钥对上公钥,瞬间一切清明豁朗。原来如此!

(这种感觉有点类似于我对佛教的归依感。小时候很多时间在寺庙里度过,基督教堂也去,但没有在寺庙里呆的时间多。对菩萨的脸孔、唱经的声音,袈裟的身影,都熟悉得不能再熟悉。当时不以为意。长大后变成一个痛苦的无神论者。虽然不信教,但偶然听见大悲咒,或者瞥见地藏王菩萨的画像,还是会从心底悠悠传来一声太息,那一瞬间心无比安宁。)

这种好处,不是我们常说的“有用”,它到底有没有用?能吃还是能喝?我估计没用,但我愿意用那些“有用”的东西来换吗?不愿意。

现实的中国家长大约也并不知道到底为什么要“背唐诗”。如果小时候我没有这项活动,大概也会有别的什么填补,好像也不是什么了不得的事。好比外国小孩不背唐诗,照样也活得好好的。不能以诗遣怀,大概也有别的办法,喝喝酒跳跳舞什么的……

有次和麦扣去上博,面对一幅狂草的字,精通汉语的麦扣也不知道那是什么。我指着那幅字一字一字地“念”给麦扣听。麦扣惊讶于我能认得这么龙飞凤舞的书法,我仰头狂笑了半天,指给他看那幅字旁边有个不起眼的小纸条上面印着“杜甫《春望》”。

就算是这样我还是很惊讶,你并不认识这些字,但你能背下来。麦扣同学若有所思地说,我遇到几乎每个中国人,都或多或少像你这样会完整地背诵古诗词。这在英语母语的人中间不可想象。

我想象了一下,表示确实无法想象每个说英语的人都会背莎士比亚的十四行诗。

我对说英语的世界当然不如对说汉语的世界这么了解,我确信古诗词这个生态位就算在其他语言里不存在,也会有别的东西替代。但是终究觉得,如果投胎能选择,还是选择会汉语比较好。因为有古诗词啊。这并非意气之言,我并不是一个patriot(爱国者)。唯一能激发我一点爱国之心的,或者说身为中国人自豪之情的,恐怕就是这些古诗词了。

但我并不觉得因此强迫小孩做自己不喜欢做的事就有了道理。诗歌都是富有美感的东西,如果带上了强迫色彩,就变成了暴力和伤害,也就谈不上什么美。“你长大就懂了”这种话本身就是一种教育上的懒惰和无能。如果你希望他去做这件事,那就让他现在就懂。所以孩子如果不能理解背诵古诗词的美好,要么不要强迫,要么就让他慢慢理解。

我也不觉得如果小时候我是在被逼迫的情况下吞下那么多古诗词,我还能像现在那样喜欢它们。这些诗词和人的欢喜一样,都是敏感的自由的精灵,你稍露些拘禁的心思,它们就倏忽飞走,再不是你看到的那个唐诗宋词。

while的loop

非常基本,但这是很值得我记住的一课。问题其实很简单,只是脑子没有转过来。而且我不确定的是到底是一时没捅破窗户纸,还是一直没有这种sense。后者就比较糟糕了——但我记得我如今做的很多事都是为了打破这种成见。

照书撸了段程序却不知道怎么执行的。按照自己的理解把程序改了改,居然效果一样。郁闷的是还是不知道怎么执行的。

啊羊和啊黄都提供了非常耐心的指导。啊羊让我把代码放到gist里去,告诉我赋值的概念,啊黄则告诉我python是一条一条执行程序的。两人都不约而同地在微信里说:头脑模拟执行。

我当时的回答是,I have no idea what you are talking about.

但想通了就很简单了。真开心。

btw,gist是个好东西。可以放代码片段。

cathysia@mancinism:~$ python
Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>> length=5
>>> breadth=2
>>> area=length*breadth
>>> print ‘Area is’, area;print ‘Perimeter is’, 2*(length+breadth)
Area is 10
Perimeter is 14
>>>
cathysia@mancinism:~$ vim
cathysia@mancinism:~$ if.py
if.py: command not found
cathysia@mancinism:~$ python if.py
File “if.py”, line 3
if guess == number
^
SyntaxError: invalid syntax
cathysia@mancinism:~$ vim
cathysia@mancinism:~$ python if.py
File “if.py”, line 5
print ‘Congratulations, you guessed it.’
^
IndentationError: expected an indented block
cathysia@mancinism:~$ vim
cathysia@mancinism:~$ python if.py
File “if.py”, line 8
elif guess < number
^
SyntaxError: invalid syntax
cathysia@mancinism:~$ vim
cathysia@mancinism:~$ python if.py
Enter an integer:40
No, it is a litle higher than that
cathysia@mancinism:~$ 50
50: command not found
cathysia@mancinism:~$ python if.py
Enter an integer:60
No, it is a little lower than that
Done
cathysia@mancinism:~$ python if.py
Enter an integer:42
Congratulations, you guessed it.
(but you do not win any prizes!)
cathysia@mancinism:~$ vim
cathysia@mancinism:~$ python if.py
Enter an integer:42
Congratulations, you guessed it.
(but you do not win any prizes!)
Done
cathysia@mancinism:~$ python if.py24
python: can’t open file ‘if.py24’: [Errno 2] No such file or directory
cathysia@mancinism:~$ python if.py
Enter an integer:24
No, it is a litle higher than that
Done
cathysia@mancinism:~$ python if.py
Enter an integer:43
No, it is a little lower than that
Done
cathysia@mancinism:~$ vim
cathysia@mancinism:~$ python while.py
Enter an integer : 23
No, it is a little higher than that.
Enter an integer : 295
The while loop is over.
Enter an integer : 42
Congratulations, you guessed it.
Traceback (most recent call last):
File “while.py”, line 8, in <module>
running=faulse
NameError: name ‘faulse’ is not defined
cathysia@mancinism:~$ vim
cathysia@mancinism:~$ while.py
while.py: command not found
cathysia@mancinism:~$ python while.py
Enter an integer : 42
Congratulations, you guessed it.
Done
cathysia@mancinism:~$ vim
cathysia@mancinism:~$ python while.py
Enter an integer : 24
No, it is a little higher than that.
Enter an integer : 43
The while loop is over.
Enter an integer : 42
Congratulations, you guessed it.
Done
cathysia@mancinism:~$ vim
cathysia@mancinism:~$ python while.py
Enter an integer : 24
No, it is a little higher than that.
Enter an integer : 43
Enter an integer : 42
Congratulations, you guessed it.
The while loop is over.
Done
cathysia@mancinism:~$ vim
cathysia@mancinism:~$ python while.py
Enter an integer : 24
No, it is a little higher than that.
Enter an integer : 43
Enter an integer : 42
Congratulations, you guessed it.
The while loop is over.
Done
cathysia@mancinism:~$ vim
cathysia@mancinism:~$ python while.py
Enter an integer : 24
No, it is a little higher than that.
Enter an integer : 43
No, it is a alittle lower thant that.
Enter an integer : 42
Congratulations, you guessed it.
The while loop is over.
Done
cathysia@mancinism:~$ vim
cathysia@mancinism:~$

NOte 03oct15

cathysia@mancinism:~$ python
Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>> print “What’s your name?”
What’s your name?
>>> print ‘What\’s your name’
What’s your name
>>> print “\\”What’s your name\\” I asked.”
File “<stdin>”, line 1
print “\\”What’s your name\\” I asked.”
^
SyntaxError: invalid syntax
>>> print ‘What\”s your name’
What”s your name
>>> print ‘This is the first line
File “<stdin>”, line 1
print ‘This is the first line
^
SyntaxError: EOL while scanning string literal
>>> print ‘This is the first line\nThis is the second line’
This is the first line
This is the second line
>>> Print ‘This is the first line. \
… This is the second line.’
File “<stdin>”, line 2
This is the second line.’
^
SyntaxError: invalid syntax
>>> Print ‘This is the first line. \ This is the second line.’
File “<stdin>”, line 1
Print ‘This is the first line. \ This is the second line.’
^
SyntaxError: invalid syntax
>>> print “THis is the first line. \ This is the second line.”
THis is the first line. \ This is the second line.
>>> print “This is the first line.\This is the second line.”
This is the first line.\This is the second line.
>>> r”Newlines are indicated by \n”
‘Newlines are indicated by \\n’
>>> print r”Newlines are indicated by\n”
Newlines are indicated by\n
>>>