Wednesday, February 12, 2014

人生又向圆满迈进了一步

今天北卡下了一场大雪,也许是三年以来最大的一次降雪。老婆千叮咛、万嘱咐叫我尽量早点回家避免雪里开车的复杂情况。可我还是当作耳旁风,总感觉就是把车开慢点就行了,不需要什么特别注意的地方。

一路上都还好,虽然雪都把地面给铺满了,但右拐上Davis Drive之后,明显觉得车轮有打滑的现象。也没在意太多,因为快到家了,就在到家前的最后一个红绿灯前,我看到红灯,就开始踩刹车,但是踩得不够狠也不够早,应该是我低估了大雪对刹车距离的影响,结果怎么也刹不住,撞上了前面也在等红灯的那辆车的尾巴,好像是把他的车bumper上的一个什么零件给撞脱线的样子。

给对方车主(也是个中国人)我的保险卡信息之后,查看自己的车,发现hood明显被撞得关不严了,有条大缝,然后想伸手进去打开hood也打不开。也就是说,自己的破车损伤也不小。

唉,2014年2月12日的这场大雪啊,不过雪景是挺美的。


Tuesday, January 14, 2014

孤独感与人类文化创造

赵鑫珊、周玉明
《读者文摘》总第58期,1986年1月

在茫茫无限的宇宙中
地球是孤独的;
生活在地球上的人
难免不感染上孤独症
——题记

  毋庸讳言,也用不着回避,你和我,还有他(她),或多或少都有某种孤独感。这是现代人的孤独感。当然,每个人所体验到的孤独在性质上,在时间长短上 (有的是骤然爆发,也有呈阶段性和周期性),以及在深度和广度上,则是各各殊异,颇不相同。什么样的人,体验到什么样的孤独,这恰如什么样人,会投下什么 样的身影。

  对于人类文化创造来说,孤独感并不是一件坏事。也许,人才在教室、课堂上培养,天才则在孤独感中自己成长。因为孤独感会使人处于一种自我发现的紧迫状态。闻名于世、陷入千百万观众和崇拜者的重重包围中的意大利电影名星索非娅·罗兰居然也会感到孤独,而且还喜欢寂寞。她说:“在寂寞中,我正视自己的真实 感情,正视我真实的自己。我品尝新思想,修正旧错误。我在寂寞中犹如置身在装有不失真的镜子的房屋里。”这位艺术家认为,形单影只,常给她以同自己灵魂坦率对话和真诚交往的绝好机会。孤寂是她的灵魂的过滤器,它使罗兰恢复了青春,也滋养了她的内心世界。所以她说:“我孤独时,我从不孤独。我和我的思维作伴,我和我的书本作伴。”

  粗略地考察人的孤独感,大致可分成两类:外在的孤独感和内在的孤独感。

  幼而无父曰孤,老而无子曰独。此外,中年不幸丧妻,遗孀凄凉度日,老处女的落寞心境,以及多年漂泊在异乡外地的天涯倦客,私生子的孤苦无告,或某种原因被人类社会遗弃、与人类社会隔绝的人(如鲁宾逊),他们所感受到的孤独,则属于外在孤独感。这是一种机缘性的、具体的、浮在表层上的心理意识。只要外界环境一变好,这种孤独感便会烟消云散。如鲁宾逊一回到英国文明社会,或某老汉喜得贵子,老处女邂逅奇遇一位钟情的男子,春风一夜之间,竟成为一朵欢娱嫌夜短的夏日迟开的玫瑰。

  内在的孤独感则是一种最深层次上的心里意识。它常常是朦胧的,莫可名状和说不太清的。正因为说不太清,所以具有一种根本的、永恒的、无法驱散的哲学性质。在佛学上如果有“根本烦恼”一说,那末,内在孤独感便是地球人与生俱来的“根本的孤独感”。即便是身处车如流水马如龙和灯红酒绿的人群之中,在生日晚会上,在伉俪缱绻之情的蜜月旅行或在儿女绕膝的天伦之乐中,这种“根本的孤独感”也丝毫不会散去。陷于狂热观众和读者包围之中的艺术家们往往是最孤独的。 这包围,宛如重囚累梏,自己的一切都在众目睽睽之下,被淹没了,找不到自己了。的确,人世间还有什么比“丧失了自身”更为孤寂的呢?

  并不是所有的人都会有根本的孤独感。大凡有根本孤独感的人,思想感情多为较深沉者。因为他们有独特的见解和独特的个性,不为当时社会和同时代人所容, 在任何场合下他们都有与众不同的表现和格局,故内心常有一种难以排遣的孤独。当他们一旦陶醉在科学、艺术和哲学创作中,他们方才感到实实在在的平安和满足。他们的作品原是写给未来世纪的人看的,所以不为同时代人理解,横遭守旧者和庸人们的攻击。比如司汤达活着时,声名并不显赫,但他预言要等到1880年左右才会有人欣赏他;贝多芬的许多作品更具有超越时空的性质,他自己也很清楚,他的几部钢琴奏鸣曲是为未来世纪的听众而创作的。

  在人类少数天才人物,包括伟大政治家身上,根本的孤独感几乎是一种不治之症。这种孤独感伴随着一种根本的惆怅和忧郁。企图抗衡和摆脱这种孤独感,便成了人类从事文化创造的一种最顽强的定力的内驱力。如凡·高作画,既不为名,也不为利,他之所以要拼着一条性命去画,仅仅是为了排遣内心深处一种说不太清的根本的孤独感。爱因斯坦的一生也患有根本的孤独症。在《我的世界观》一文中,他坦率地作了自我解剖:
  “我对社会正义和社会责任的强烈感觉,同我显然的对别人和社会直接接触的淡漠,两者总是形成古怪的对照。我实在是一个‘孤独的旅客’,我未曾全心全意地属于我的国家,我的家庭,我的朋友,甚至我最接近的亲人;在所有这些关系面前,我总是感觉到有一定距离并且需要保持孤独——而这种感受正与年俱增。”

  爱因斯坦终生对物理学、艺术和哲学的真挚的爱,全然是企图对这种孤独感的永恒摆脱和最勇敢的回击。

  唐诗宋词中那些堪称为千古绝唱者,正是因为它们陈述了一种俯仰千古悠悠的根本孤独感才成为不朽诗篇。伟大艺术家们的气质,多半有哲理沉思的成分。他们总是从个人、具体的孤境(外在的孤独感)出发,上升到普遍的、哲学意义上的地球人的根本孤境。陈子昂的《登幽州台歌》便是一例:
  “前不见古人,后不见来者;念天地之悠悠,独怆然而涕下。”

  陈子昂的“独”,正是一种典型的宇宙中的地球人的根本孤独感。(其实,贝多芬和莫扎特的晚期作品,还有舒伯特的《未完成交响曲》,柴可夫斯基的《悲怆交响曲》,以及凡·高的绘画,都是这种孤独感的深沉、优美表述。)这是人类处在茫茫宇宙中的孤寂感。因为它带有永恒性,涉及到人类的根本处境,故具有一种哲理的深度。

  艺术创造的动力之一乃是在吾生有涯之中追求一种理想的、超越时空的永恒。自然科学家刻意录求自然界的永恒法则,亦在驱散内心一团根本的孤独感。在本质上,宗教信仰,男女之间的真挚之爱,也是企图改变或缓和、减轻人的这一孤境。文化创造者们为了排遣自身的孤独感而进行的创造,留下了一笔精神遗产竟会使今天千百万读者感受到温暖,驱散千百万个寂寞,真是不可思议!

  在多艰而短暂的人生中,能时时体验到根本孤独感并寻找到一条解救方法和出路的人,自会感到一种悲壮的奇美。也许,恰恰是这种人才会对人类怀有一种博爱之心和同情之心。

  浅薄的快活和廉价的感官享受,远不如处在根本的孤境中并力图去冲决它来得幸福。这是搏斗的、不断超越自己、超越时空局限的高贵幸福。

  也只有这样,我们才能理解如下这句人生哲学格言的涵义:
  “缺少了寂寞,就不可能有真正的幸福。”

johny注:这篇文章是我上初中时读过的,非常喜欢,以至于到现在我还记得。不知道这篇文章是两位作者的译作还是原创。如果是原创,真是太有才了。

Sunday, April 14, 2013

上阵父子兵

去年和猴子一起打CS,挺快活的,但怕伤他的眼睛(游戏画面运动很厉害,我打了半个钟头后眼睛都要过一段时间才能恢复过来),最后还是把游戏删除了。贴些截图留念。

猴子(poop)列匪徒第一名

猴子(qwerty)列警察第一名

猴子(qwerty)还是警察第一名

猴子(gangnam style)列警察第一名

猴子(188,我是88)列匪徒第一名

爸爸(pee)列警察第一名

贝贝(poop)和爸爸(It is a good day to die.)分列匪徒组和警察组第一名

嗯,还是两个第一名。

贴几张近照

说是近照,也是半年以前从Lexington, Kentucky回来之后怕的了。是小区举办活动的时候,在Club House周围照的。




Thursday, October 18, 2012

Interview Question at LSSiData

There is a huge database listing of around 100 million records, which is divided into some 200 plain text files, with the record in csv format.

Given 5000 telephone numbers, how to retrieve the records matching those telephone numbers?

Brute-force is what comes up first:
Read the csv files one line at a time (each record is a line in the csv file), and get its telephone number field. Then compare the field with the given telephone number. If there is a match, print the record into that file. Otherwise, discard it.

Shortcoming: Need 5000 passes of the 100 million records, which is a performance nightmare.

How to improve the performance? Hash-table is the answer:
Organize the 5000 telephone numbers into a hash-table (hash the telephone numbers into a table, which is actually an array of keys computed from hashing the telephone numbers). Then, as we examine the record and find a match to the given telephone number, we just append the record to the linked list associated with the hash key. This way, we need only to iterate/traverse the 100 million records for once.

For details of hash-table, please refer to Section 2.9 and 3.3 of "The Practice of Programming" by Brian Kernighan and Rob Pike.

Thursday, March 8, 2012

整理一下旧照片

2011年4月6日在NC Raleigh附近的State Park里面教会租了个烧烤棚搞活动,和大地的小儿子照的照片,猴子也凑上来作鬼脸。

肉乎乎的,真可爱啊。



2011年4月11日前后在Atlanta教会活动接待家庭照的照片,这是接待家庭的儿子。

我左边的就是这次接待我们的兄弟,名叫岳望军,非常感谢他们的接待。

Wednesday, February 29, 2012

二月份的最后一天

今天比较开心,因为独立解决了一个有关OpenLDAP的问题,使得ssl/tls connection中certificate的选项LDAP_OPT_X_TLS_REQUIRE_CERT对于每个connection/binding单独有效,而不是设置后覆盖整个process的life span,很费了一番时间在网上搜索,最后在这里找到答案:http://www.mailinglistarchive.com/postfix-users@postfix.org/msg57688.html

看来我平时在网上寻找资源时练就的搜索工夫没有白费啊,在工作中也能得到应用,嘿嘿。

贴张贝贝的照片,这是贝贝在Lexmark Building 082前面的草坪上和我踢球间隙的抓拍:

Saturday, January 21, 2012

兔年盘点

总体来说,这过去的一年还不错,虽然说在家呆了近一年,可也享受和老婆、儿子在一起的时光,享受平淡的幸福。

这期间,我还完成了《围棋死活辞典》(上册,赵治勋编著)的SGF第二版的录入,比起第一版要精细了很多,认真研读的话,是涨棋的好帮手。

还上了很多读书论坛,下载了不少好书,也结识到不少书友,虽然说这么多书不知道哪一天才能静下心来慢慢读。但这种“我有、我可以”的感觉着实不错。而且和书友的交流也是让人愉悦的。

最重要的是,在接近年末的时候找到了一份工作,终于有收入啦。可能是飞扬围棋论坛上面棋友的祝福起了作用吧。年初的时候完成《围棋死活辞典》的录入并发布在飞扬论坛上时,谈到没有工作,所以有时间来完成这份繁琐的任务。很多棋友就祝我在兔年找到一份工作,没想到还真的应验了,百感交集。

小宝在Lexington和爸爸补过生日

Thursday, December 29, 2011

平淡的幸福

幸福是什么?真是个不好回答的问题,或许每个人根据自己的感受都有不同的答案吧。

老婆和孩子大老远地从北卡一路开车到我这里陪我过圣诞和新年,我很高兴。但是很奇怪,并没有欣喜若狂的感觉,是我太冷漠了吗?不知道。

但是今天下班回家的路上,一个人孤独地走在冷风中,想着如果程锦和贝贝没来,我回到家仍旧面对的是四面冰冷的墙,想着滋味都不好受。但是现在老婆孩子在这里,想到她们,心里就起了一点暖意,吹到身上的冷风也不那么难以忍受了。

也许幸福就是这样,拥有的时候平淡如水,并不会让你如癫似狂;但失去它的时候,你会感到莫名的痛苦。

Saturday, November 19, 2011

贝贝和蒲公英


蒲公英的英文单词是dandelion,很冷僻的一个词,以前从来没见过。

爸爸妈妈的照片



都是贝贝拍的,儿子是个好帮手啊。

Tuesday, November 15, 2011

double free is dangerous

Today, a double free of a pointer caused a crash in the program, which is hard to detect. One of my colleagues helped me pin down the problem and fixed it.

As we all know, if a block memory is allocated through malloc() or new(), we must remember to free() or delete() the pointer (pointing to the memory block allocated) later. And it is perfectly legal in C/C++ to free/delete a null pointer. So we usually don't bother to check whether the pointer is null before freeing it. And fewer programmers will set the pointer to null after the memory is freed.

Yet, this is a bad practice. Consider the following scenario:
---
char *p = (char *)malloc(1024);
... //some string operations involving p
free(p);
free(p);
---
Definitely, it will cause a core dump. Here is the reason: After the first free(), the memory pointed to by p is deallocated and reclaimed by the system. But p is not set to null yet. In this case, it is called a dangling pointer. What is points to is undetermined and unknown. When the second free() is run on the dangling pointer, the system is tring to free a block of memory not in use any more! The best result you can expect is a core dump.

The solution is simple. Just set the pointer to null after it is freed. Usually, we wrap it up in a macro.
---
#define SAFE_FREE(p)        if ((p) != NULL) do {free((p)); (p) = NULL;} while (0)
---
It is a common practice to wrap up multiple statements of a macro into a do {...} while (0) loop, with no terminating semicolon.This allows the macro to be used like a single statement in any location, such as the body of an if statement, while still allowing a semicolon to be placed after the macro invocation without creating a null statement.

References:
http://stackoverflow.com/questions/2468853/freeing-memory-twice
http://en.wikibooks.org/wiki/C_Programming/Common_practices

Monday, November 14, 2011

大楼前面

押犯人回来照相,犯人老大不高兴。

猴癞子

好像猴子还是不太乐意

猴子就是不配合,妈妈的。

在爸爸的工作间

正在玩MechQuest

张牙舞爪的猴子

带猴子在工作楼的一楼大厅照相

叫猴子骑上去,猴子不敢,唉。

猴子爱妈妈


爸爸爱猴子

怎么说也不敢骑上去,我们扶着也不行。

爸爸妈妈相亲相爱

Thursday, November 10, 2011

Torture

早上给猴子和猴妈打电话,问猴子想不想爸爸,猴妈说猴子不想,原因是“爸爸太爱我了,总是亲我,torture我”(猴子的原话),一笑。

真想这个可爱的猴子啊。在这以前,可以说没有一天跟我分开过。

下面这两张照片,是在从北卡到肯州的路上拍的,估计是在田纳西境内的某个加油站。



Saturday, November 5, 2011

童趣两则

1. 贝贝在玩笔记本电脑的时候,我过去把头靠着贝贝,问他:“贝贝,你离开爸爸,会难过吗?”,贝贝回答:“Easy过”,见我脸色迷惘,又补充说:“容易过”。

2. 给贝贝在YouTube上面找了一个U.S. Marine Corps的一次Combat Patrol的实拍录像,可是录像里面只见士兵们打枪,并没有见到他们的阿富汗对手。然后又见这些士兵们没完没了地说着什么,我和贝贝都没听明白,贝贝问他们为什么只talk不fight,我很赞同:“These sons of bitches should stop talking.” 猴子问:“What does bitch means?” 我回答:“female dog”,贝贝继续追问:“But there is no dog in the battle field.” 这下我彻底傻了。

昨晚可真不应该

为了一点小事向猴子发火,把猴子给骂哭了。猴子一开始还忍着,明明想哭,却强作无事,妈妈逗猴子说“你哭、你哭”的时候还强作笑脸。忘记是什么原因了,突然忍不住了,小嘴一咧,哭得好伤心。这点挺像我的。遇到伤心事,我小时候也会尽量忍住泪水,但到最后(经常是见到父母后)仍然会情不自禁地哭泣。

猴子一哭,弄得我心里也挺不痛快。还是要自我检讨一下,其实猴子也没做什么大的错事,就是我在与奶奶用skype聊天的时候,用脚在摇笔记本下面的桌子。当时我正好在和奶奶谈到工作的事情,猴子这么一搞,弄得我没控制住自己的情绪。以前比这大得多的事情我都能容忍,为什么这次不能?事后回想,还是把工作中的浮躁情绪带到家里了,并发泄到猴子身上了。实在是不应该,尤其是过几天猴子和猴妈就要离开猴爸了,疼还来不及,怎么能对孩子发火?尤其是因无关痛痒的事情,更是觉得自己无可理喻。

有的时候,真的很厌恶自己,觉得自己像是一坨屎。

Thursday, November 3, 2011

不知道为啥

在北卡的时候,虽然没有工作,但我心里一点也不痛苦(不知道是不是算没心没肺),感觉过得还是很快乐。快乐地带猴子、快乐地上网、快乐地读自己喜欢的书,过得很充实,从来也不会觉得无聊。虽然程锦偶尔发点脾气(因为我某件事做错了,老婆并不是不讲道理的人),也是过眼烟云,并不会放在心上很久。

但是不知为何,现在有工作了,却感到内心很软弱,也分不清楚是出于对工作的畏难情绪导致的,还是对即将离开的老婆孩子依依不舍,也许两者兼而有之吧。

人真是个奇怪的动物,有时候很坚强,另些时候又无比脆弱,真是矛盾的对立统一体。

喜欢读战争小说的我,对从战场上的老兵最珍惜家庭感到不解。总觉得经过了战争这个壮丽残酷的过程的人,怎么会对平淡的家庭生活那么感兴趣,那么看重?现在,我些许有点感悟。虽然我和一名战场上的老兵不可同日而语,但对于和亲人短暂的分别都感到难以忍受,就更不用说老兵了。士兵在战场上,每时每刻都有可能被流弹打死,对亲情的感觉就更为强烈,也必然更为珍惜。可能这也是电影Gladiator里面罗马皇帝Marcus Aurelius在大战结束之后问Maximus(Russel Crowe)想要什么样的奖赏,得到的回答却是“Home”。

陆游有句诗是这样的:“死去原知万事空,但悲不见九州同(下略)”。我的感想是:“死去原知万事空,但悲不见妻与子”。过于沉重了,其实也不到那个程度,只是感觉心里难受。

第二天上班,还是难受

不舒服的感觉很强烈。我在新加坡工作的时候还有免费Milo以及Nestle Coffee喝,到这里屁的饮料都没有,只有自来水,操!

工作方面,还在摸索code的过程中,还是有些艰难,可能是许久没有写code的缘故导致的,要努力啊。

下午雷哥给我打了个电话问我的情况,说着说着鼻子就有些发酸,又想哭了。想念朋友的关怀,害怕即将失去的的老婆孩子热炕头。

今天中午,我的Recruiter Marc带我去Aerotek补办一些手续,中途问我是否喜欢Lexington,为了不扫他的兴致,我违心地说喜欢。其实还是咱北卡的农村好啊,一点都不喜欢Lexington,虽然它是个城市。