2007-12-22

程序随笔 - 1

这个礼拜最费神的事是写出一个基于内部开发包进行用户验证的Linux-PAM module,有挑战性的活儿都让老外给做了,咱也就是用一下人家的API而已,说到PAM,这或许是我来公司后做的第一件比较需要用脑子的工作。

遇到一些诡异的问题,毕竟一个module和一个``hello world'' program还是有些区别的,主要区别在于运行时环境。一筹莫展之际老外给了个简单却中肯的解决办法,让俺咬牙切齿狠拍脑袋追问自己为啥就没想出来。上周末向libxr的作者发了第二个补丁,也是相当nice的一个伙计,接受了我的patch,然后指出patch里的小问题。

我一直认为程序设计是个令人头疼的问题,特别是它到了一定的规模,并且需要分工合作的时候。程序需要高精确性,不然一个小bug或许就会让它崩溃,但程序员的思维却不会总是很严密,所以程序里总有bug;程序实际上是程序员自己的思想表达,程序员之间需要沟通以避免误解,但有时候这种沟通会很难。

对于C程序员来说,valgrindsplint可谓是必备利器。如果它俩没有对你优美的作品没有任何抱怨,那么,恭喜你,大道有成了!个人而言,我倾向于增量开发,一个简单的实现后便把测试代码写好。用svn或者hg把这些代码管理好,在check-in之前确保valgrind不会抱怨内存泄露。然而这些在某些时候也只是理想而已,因为最无奈的或许便是程序员多数都有很紧的schedule,一级一级的Boss盯着,搞不好还要Matrix,混口饭吃的确不容易。
  1. Design最重要 -- 它决定了你以后工作在天堂还是在地狱;
  2. 搞清一些潜在的假设,并且一定要写下来,多数情况下这些假设会变得不成立;
  3. 增加新的代码新的功能之前,确保自己检查了所有的假设,考虑了尽可能多的影响;
此文作为第一篇程序随笔。想来以前还教过《C程序设计》,其实没有任何``设计''可言。

2007-12-15

AR

一直以来都想写出两道程序,写完一篇文章,看完一本书。

第一道程序实际上是个写程序的程序,来源于这样一个思想:
1. 用gccxml把C/C++翻译成XML
2. 用ssax库把XML再转换成SXML
3. 用Scheme处理SXML,得到任何想要的东西
有什么用呢?其实就是个code generator,比较有趣。

第二道来自刚工作时培训的一个练习,和FUSE相关。我想做个自己的桌面搜索,轻量级,但是可以自定义一些规则,等等。虽然无论如何其实我更喜欢find/grep,因为对硬盘上神不知鬼不觉地多出一些索引文件感到不舒服。

想写完的一篇文章当然是关于Scheme,推荐了经理去买``The Little Schemer'',不知道有没有戏。这和一直想看完的那本SICP有较大相关系数。有时候想,算了吧,写东西其实很耗时间。然而又一想,这个过程又何尝不是一种梳理,而且自己知道和能恰当的表达出来完全是两个境界。

无论如何,这些都还没完成,可能是没有压力。实习的时候在老东家学到一个常用词:AR,意思大概就是``Action Required''。如果经理给你一个AR,那就意味着在某个deadline之前必须得把某件事给办了,有强制色彩。该给自己点AR了,不过又出了另外一个问题:监督与被监督者都是同一个实体。

2007-12-11

Peace

从2004年4月28号写第一篇blog以来,这是第411篇,且不包括只保留在本机的那些。这样算来我一直保持着每周两篇的频率,感觉活得很踏实,因为回望过去我知道自己都做了些什么。成长中的变化伴随着喜怒哀乐,留在黑纸白字之间,触手可及。

这两天心情异常平静。我从来都很感谢那些带给我困难的人,因为他们让我知道这世间的诸多真实,让我免于自我陶醉。百折不挠,因而才能百炼成金。北宋张载有言:``艰难困苦,玉汝于成。''小学语文书就讲过:``少壮不努力,老大徒伤悲。''如此简单的道理。

嗯,那就坚持吧。``衣带渐宽终不悔,为伊销得人憔悴。''此第二境也。

2007-12-09

立志

抛开Linux-PAM,决定写篇blog结束这个周末。

若说``三十而立'',我还有差不多五年时间了。立什么呢?立志,立身,立人。在理想和现实之间,伸出去的腿该如何继续坚定地踩向前去?生活中的感动常给我温暖和动力,还以微笑的同时我知道自己的责任,但却只能放在心里,默默努力。

有句苏格兰民谚:``男孩的意向是风的意向,少年的神往是悠长的神往。''无须多言,唯有心者知之。珍惜拥有的生活,创造更美丽的生活。

平常心

``风吹草动命途乱了我不乱,交出了平常心再随缘。''

又是一个晴朗的周末,心情也开始晴朗起来。有所追求,有所执著,为自己,也为所爱的人。今天中午不下厨,转而做小白鼠。

09:00 PM
me:奶牛,起床吧。有点追求好不好,时间都被睡掉了
奶牛:嗯,起床,看书

12:00 PM
奶牛:小狼你饿不饿
me:心里温暖就不饿了
奶牛:我kao,精神粮食还真丰富,饿的话有麦片

昨天八号,四号线来回都是看着列车绝尘而去,苦等了一刻钟。

2007-12-07

折腾

上午看见gtalk上鹏总签名档:活着就要折腾;

下午三时左右,鄢总签名档:活着为了折腾?

想起近况,不由手痒,煽风点火的改了自己的签名档:人不折腾枉少年。

2007-12-04

Blog之旅

冬天冷得缩手缩脚,于是打算爬上床早点睡觉。心血来潮看了看sina邮箱,居然有一封电邮是生日祝福,来自Linux伊甸园,虽然很早很早便是注册用户,却也很久很久未去踩点了。意念之下,便又去那个论坛看了看,还好密码没忘掉,顺便把自动开通的博客更新了一把。

掐指算了算,从2004年至今共有4个blog,除了3和4之外,其它都已经歇业了。
  1. spymac, http://royalfern.spymac.com/blog/
  2. bokee, http://brainstorming.bokee.com/
  3. blogger, http://live4thee.blogspot.com/
  4. blogger, http://royalfern.blogspot.com/
读研后教育网上国外网络比较麻烦,于是把1换成了2;后来发现2的英文留言比较烂于是转向了3和4.比较苦闷的是blogspot在GFW的封杀之列,于是不想用tor,也懒得找国外代理的朋友们只能用google reader订阅了。

我对blog站点的要求比较简单:
  1. 必须有良好的firefox支持;
  2. 广告越少越好,页面越炫越不好;
  3. 不要让我发现有文字过滤。
其实我还在yahoo和刚刚的linuxeden占了两个坑,以备不时之需吧。另外本机有LaTeX版本的备份,放在cvs仓库里,敲个make就会生成一份pdf文档。

2007-12-02

无题

随着公司的搬家,我已经沦为班车男。闹铃时间从七点调整到七点零五分,到七点十分,再到下个礼拜计划的七点一刻。相比较而言,我更乐于压榨出每一分一秒用于睡懒觉,却对什么时候入睡没有太多的控制。似乎感受不到冬天的严寒,小时候厚厚的冰雪再也无迹可寻,只剩下风,在无助地吼叫。

每个周末都有活多或少的事情,再也不像单身汉那样自由。我想我是幸运的,也是明智的。幸运的是,以我的生活习惯和性格特点,基本上只能靠天上掉下个林妹妹来拯救我;明智的是,我知道要把握现在,而不太会有``围城''心态。踏踏实实的活着,我更需要一些坚持。

曾经的理想依旧在心中闪耀。Linux内核方面的知识我差不多已经忘得一干二净。这方面,我愧于面对心中的上帝。凡人之所以为凡人,很大程度上在于缺少坚定不移的决心和毫不迟疑的勇气。``十年磨一剑'',这是决心;``敢上九天揽月'',这是勇气。

大风卷水,林木为摧。适苦欲死,招憩不来。百岁如流,富贵冷灰。
大道日丧,若为雄才。壮士拂剑,浩然弥哀。萧萧落叶,漏雨苍苔。

《二十四诗品》之十九,悲慨
读书,若有所感,得七绝:
俗事纷繁为若何,独对秋风悲作歌。
大道难求苦铸剑,不学孤雁吟萧瑟。