月度归档:2007年12月

我的2008

生活一团乱麻,事业停滞不前,我的2008该向何处去?

“行动”:不要再停留在空谈和幻想中,踏踏实实地做些事情,如果没有人愿意一起前行,那就自己来。
“效率”:培养好的工作和生活的习惯,从有限的时间中尽量能多做一些自己想做的事情,而不要怨天尤人。
“健康”:过一种健康的生活,关注自己的身体,关注家庭的幸福,关注他人的需求。

编程是关于同一时间只做一件事的艺术

看《修改代码的艺术》,这句话感触颇深。里面的场景就是我经常的行为,写着写着看到这里想重构一下,就顺手改起来,而把当前的事情抛在一边,特别是我又是个特别觉得编程就像写小说,是科学和艺术完美结合的人,看到一些代码味道不好,就忍不住想改得漂亮些。其实很多东西自己也是有体会的,但平时的工作中总是不能自觉地主动地去做。比如“测试驱动开发”,知道是个好东西,但总是养不成先写测试的习惯。增加特性和重构的两顶帽子,也知道这样是最有效率的,但总是增加特性的时候经常顺手就重构一些代码。习惯很重要,好习惯需要自己主动地去培养。

谁好

笑笑继续她不知从哪里来的聪明,从小问她爸爸妈妈谁好,她就避而不答。今天又问"爸爸妈妈谁好?"笑笑说"宝宝好"。"宝宝妈妈谁好?""爸爸好","宝宝爸爸谁好?""妈妈好","爷爷奶奶谁好?""姥姥好","爷爷姥姥谁好""奶奶好""奶奶姥姥谁好?""爷爷好"她答得异常顺溜,一次错误也没犯。。

没钱了

最近花钱如流水,买电买煤气买药交养路费交网费交托费,爸爸对妈妈说:"唉,没钱了没钱了"。笑笑在一旁听见了,说:"让我摸摸爸爸口袋里有钱没有。"然后就把手伸到爸爸口袋里,然后空着手出来说:"真的没钱了呀"…

pyMSNt 和 MSNShell不兼容的问题

最早用国外的一些Jabber的MSN Gateway(比如jaim.net 和anywise.com上的),从MSN发送消息发现消息总会丢失,或者提示“无法将以下消息发送给所有接收者:”但发送消息给MSN客户端却总是能成功。但jabbernet.dk上MSN Gateway的就一直都没问题。后来自己安装了pyMSNt,发现也出现挂不上去的问题,开始总以为是pyMSNt的安装或者配置哪里不对。一个朋友又说总是在家里能挂上,在单位就总是出问题。总结了各种现象,才发现,是MSNShell和pyMSNt不兼容的问题。卸载了MSNShell,不管连哪个都很正常了。而msn.jabbernet.dk不是pyMSNt的,(它有个msnnew.jabbernet.dk好象是pyMSNt的)所以一直没有问题。

问题是这样发生的:在一般情况下协议里都是一个空行来隔开消息头和消息体的。而对于没有消息体的消息来说,消息头结束后要跟两个回车换行,也即下面必须要有个空行的。
根据http://msnpiki.msnfanatic.com/index.php/MSNP8:Payload_Commands

“It’s possible for messages to have no body. If you just end a message with the two newlines at the end of the header, it will have an empty body. ”

但是如果你安装了MSNShell, 并且开启了”加密聊天”模式后,MSNShell会在发送正常的消息前,进行握手(看看对方是不是也支持加密),发送如下的信息
MSG test@msn.com ming 165
MIME-Version: 1.0
Content-Type: text/x-bobo
sv: 4.2.28.32
mv: 8.1.178.0
state: ssShellHandShake1
bobo1: 1658134426017880279626016817.6426387281559877623017753
问题就在于,MSNShell的这条信息也是没有消息体的,但是在消息头后面只有一个回车换行。虽然前面的MSG后面跟的playload size是正确的。但pyMSNt的做法是在读完一行,发现是消息头之后,并不立刻判断其长度是否已经满足,而总是去读下一行,直到读到一个空行后再判断,如果size还不够再转到读消息体的函数里判断长度。这就造成了pyMSNt把下一条正式消息
MSG test@msn.com ming 130
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
X-MMS-IM-Format: FN=%E5%AE%8B%E4%BD%93; EF=; CO=0; CS=86; PF=2
的第一行也当成是本消息的内容了,然后丢弃,然后造成把MIME-Version一行当作下一条命令的开始,然后造成Invalid Command 异常。

弄清楚原因,简单改造一下pyMSNt,问题就解决了。圣诞之夜,孩子睡了,独自在屏幕前。不过解决了这个问题,感觉还挺爽….

我出生为啥哭

今天晚上洗澡的时候,笑笑拍拍自己的肚子对爸爸说:肚子上拉一刀,就把你生出来了。爸爸立刻晕倒,说:谁教你的呀。笑笑说:赵阿姨。也不知道是真是假。妈妈接着问:那你是怎么生出来的呀?笑笑说:我变得小小的,到妈妈肚子里,妈妈就把我生出来了。爸爸正在感慨,现在这小孩,怎么这么早就啥都明白了。笑笑下一句话更加惊世骇俗:看到你不刷牙,不洗澡,我就哭了。妈妈哭笑不得得说:原来你是看着妈妈不刷牙,不洗澡,你才哭的呀… 然后还是不服气,接着问笑笑:你看到谁不刷牙,不洗澡啊?笑笑指着妈妈,然后一脸坏笑地又指向爸爸…

几个妈妈

现在在幼儿园玩得越来越好,回来居然说"赵妈妈"、"张妈妈"的,其实都是她幼儿园里的老师。

今天下午接她回来的时候,又再说"赵妈妈",爸爸就问:"你有几个妈妈啊?",笑笑就开始指头一点一点的说:"一个、两个、三个、四个、五个、六个…."(她一向如此,问她几个的时候,又没有具体可指的东西的时候,就数开去了….)。爸爸说:"那都叫什么名字啊",笑笑说:"赵妈妈"、"张妈妈"… 然后就说不出来了。爸爸说:"还有耿妈妈吧?",笑笑就笑,居然把亲妈给忘了….

在家玩了一会儿,妈妈到地铁站了,说出去吃饭吧,爸爸就开着车带着笑笑去接妈妈。笑笑问:"妈妈在哪里啊",爸爸说:"在车站呢,我们去接她"。笑笑坐在后面挺老实的,突然说:"我想妈妈了。"爸爸问:"你想哪个妈妈啊?"笑笑说:"就是那个最漂亮的妈妈。"爸爸问:"哪个是最漂亮的妈妈啊?"笑笑好象被问烦了,带着不耐烦的口气说:"就是那个在车站的妈妈嘛"。。。。