博客

黑质三部曲

最近在看《黑质三部曲》,又或者叫《黑暗物质三部曲》

第一本读的时候觉得挺不错;第二本读到一半就理解到为什么人们将其和《指环王》相提并论——我甚至觉得其中的精灵比魔戒的隐喻更加深刻;第三本刚刚开始看,好像又开始探讨起基督教来,真是期待把它看完啊......

不过最近两天的课余生活打算尝试一下 webpy 的 session 支持,看来完成该心愿得是下周的事情了

PS: 现在更新 blog 少了,对于即将奔四的人来说,每天仰卧起坐比 blog 更重要

Topic: 文化

大连之行(1)


View Larger Map

中午入住盛兴酒店
然后步行到罗斯福附近的708车站
然后坐车去中山广场,拍了一堆照片
然后步行去码头,经过港湾广场
回来的时候直接从码头做 708,在青泥洼桥(其实就是大连火车站)下车,在韩国服装城兜了一圈
继续 708 回到罗斯福,晚饭,然后在金钱柜 K 歌
10:30 回宾馆上网 blog...

Topic: 生活

Milter 协议(2)

先贴一段 twisted 框架下实现 Milter 协议解析的核心函数 :)

  1. class MilterServer(Protocol):
  2.     def init_dataReceived(self):
  3.         self.lastdata = ""
  4.         self.len = 0
  5.  
  6.     def __init__(self):
  7.         self.init_dataReceived()
  8.  
  9.     # 注意:实践中发现一次 recv 中包括了两个完整的 packet; 而且理论上存在
  10.     # 一个 packet 需要两次 recv 才能取出来的可能
  11.     def dataReceived(self, data):
  12.         if len(data): print len(data)
  13.         if self.lastdata != "":
  14.             data = self.lastdata + data
  15.         if self.len != 0:
  16.             if self.len <= len(data):
  17.                 next = data[self.len:]
  18.                 self.proc(data[:self.len])
  19.                 self.init_dataReceived()
  20.                 if len(next) > 0:
  21.                     self.dataReceived(next)
  22.             else: #继续等待输入
  23.                 self.lastdata = data
  24.         else:
  25.             if len(data) < 4:
  26.                 self.lastdata = data
  27.             else:
  28.                 self.len = struct.unpack(">i", data[:4])[0]
  29.                 self.lastdata = data[4:]
  30.                 print self.len, len(self.lastdata)
  31.                 self.dataReceived("")
  32.  
  33.     def proc(self, data):
  34.         ...
  35.         ...

上述代码在线上曾短时间的跑了跑,协议解析的逻辑部分应该是没有问题滴(稳妥起见,目前我们实际用的还是 libmilter 的 python binding)

实现 Milter Server 需要注意的一个事情就是:和 SMTP 一样,是要能支持在一次
connection 中完成多次 transaction 的!!还有 abort 命令,实际上就是一次 RSET 请求。

由于相当然的以为 eom (EndOfMessage) 事件后会话就应该结束了,结果碰到了问题怎么也想不出头绪,绕了一个多星期的弯路才找到程序的毛病所在。

另外在 Postfix 实现里面,自定义的 replymsg 的格式要求严格遵循 RFC,格式是:
"%s %s %s" % (code, Enhanced-Status-Code, msg)
E-S-C 的第一个数字要和 code 的第一个数字保持一致,见 postfix 源代码 milter8.c 里 SMFIR_REPLYCODE 的处理

仔细阅读了一下 sendmail 的 Milter Technical Overview,原来在 DATA 阶段,MTA 是需要把信件整个接受下来以后,再依次发给各个 Milter 的,而且是给一个 Milter 完整的传送完一个 message 后,再接着向下一个 Milter 发送。以前一直理解有误,觉得应该是 on-the-fly 的把数据依次传递给 Milter,这样效率最高.

今日发现之:分布式版本控制

今天发现目前开源界除了 cvs、svn、svk、git(知道 svk 和 git 的人现在恐怕也不多吧) 外,一下子又冒出 MercurialBazaarmonotone 等一大票源码控制系统...

git、svk、mercurial、bazaar、monotone 等新秀都是 distributed version control system虽然俺还没有具体了解 distributed 是个什么概念,但猜测是允许开发人员在把代码提交到远程服务器之前,可以在本地不断的 check in 来管理正在开发中的代码,确实是非常非常的有用。

linux kernel 已经开始使用 git,而 Mozilla 决定转向 mercurial ...

如果你在考虑是否把项目从 cvs 转到 svn 的话,那么这里强烈建议也评估一下这些更 IN 的东东.

Topic: 技术

自问自答

问:你认为“江钻股份”股价多少比较正常?

答:25 左右,所以如果 20 买的话,它的上涨潜力还是很大的。

问:你认为中国目前股市如何?

答:还不错,虚假不错也是不错。

问:那这么说 25 的“江钻股份”应该也是有上涨潜力的?只不过没有 20 的上涨潜力大而已。

答:好像确实是这样。

问:能赚就行,你还非要赚得最保险赚到最多啊?!该买时就买嘛!!!

答:[沮丧的]一个星期不到,25 涨到 31 了,呜呜~~

生在江汉钻头厂,长在江汉钻头厂,上大学某一年,我厂改制变成“江钻股份”

Topic: 搞笑 生活

长虹 CHD29366

这次买的家电三大件,只有电视是国产品牌。买冰箱是为了要一个自动除霜,好像非对开门的机型只有日系有该功能,最后买了松下(东芝比较贵,现在其家电产品好像是专门面对高端人群的),连带着洗衣机也买了松下。

买电视是一件挺麻烦的事情,正如对非 IT 人士来说买电脑是件水很深的事情一样,买电视也有同样的问题——价格区间从几百到过万,知名国外品牌和国内品牌并存,CRT、LCD、PDP,还有什么量子芯、v12、双倍速、高清、FULL HD、720p/1080i/1080p...等名词并不比什么酷睿、速龙、双核、64位更让人摸不着头脑

所以在买电视之前老老实实的去 jd-bbs.com 和小熊在线的家电论坛去潜了好长时间的水。然后得出一个结论,在中国的大部分信号源还没有切换到 16:9 的数字信号之前,咱们还是老老实实的看 4:3 CRT 吧。

然后上国美和大中,记了一下各个主流 29' CRT 的型号,然后再回论坛继续潜水。学习到现在虽然短管 CRT 是主流产品,而且也省空间,看起来也比较新潮,但短管的技术要求也高,容易造成四角的聚焦不良。后来到现场看一款短管果然如此,在某个地方的显示都是弯曲的。于是最后还是选了如今卖场已经不多见的长管彩电——长虹的 CHD29366。没怎么讲价,1900 拿下

增加俺买长虹信心的也包括 jd-bbs.com 上的长虹专题,长虹的人也认为现在 29366 足以满足一般消费者的需求,而且理论上应该比稍微高端一些的 29300 更可靠一些(因为用的元件少)

最后说说我的使用感受:
1. 看电视节目的表现不错,虽然论坛上有部分人群觉得数字高清不如以前的模拟电视效果,但可能是我看电脑屏幕的时间太长了吧,反正是感觉比以前我家老的 LG 21' 强一些。而且看电视距离比较远(2米),确实有所谓的油画感,但完全可以接受。
2. 上淘宝买了根 VGA 线,以及 3.5mm 接头转莲花头的音频线,现在就可以拿笔记本当 DVD 用了,hoho,而且可以坐在沙发上舒舒服服的看 rmvb、avi 了
3. 买来后没有做任何的色彩,形状的调整,可能北京的这批货在出厂前已经调的很不错了吧。左右有轻微的桶形失真,但不注意是发现不了的,不影响使用。
4. 论坛有人反映声音小,至少我的这台还正常吧

5. 有两路 AV 输入、一个 PC/VGA,一路分量端子;但没有 HDMI,也没有 S 端子。反正对我来问题不大

Topic: 生活

FT 中文网的邮件列表服务不错

亲爱的会员:您好!

    感谢您曾经注册为FT中文网的会员。然而,在过去的两个月内,我们发现您
很少从您订阅的《今日焦点》或是《周五文摘》邮件中进入FT中文网的文章页面
进行浏览。不知道是因为繁忙的工作使您无暇阅读,还是 我们的邮件内容不够吸
引您?还是您更习惯通过自己登陆首页去浏览而不是通过邮件的标题进入文章页
面?

    虽然目前我们暂时中止了为您发送邮件,但我们希望给您善意的提醒:如果
您希望继续保留《今日焦点》邮件的订阅服务或是改为订阅 《周五文摘》,只需
点击以下按钮,我们将会重新为您发送,并在今后为您提供更多精彩的内容与丰
富多彩的会员活动。而如果您不再需要任何邮件服务,而是习惯直接通过登陆FT
中文网浏览文章,您可以直接点击以下的退订按钮,从此,我们将不再为您发送
邮件。

   在您不常登陆FT中文网的这段时间,我们增加了不少新的内容与功能:由FT
中文网经济评论员陈旭敏撰写的专栏《第一时间解读》及《财富管理》专题,
涵盖了当今经济社会中诸多热点问题,引起了读者的强烈反响;根据读者点击
量排列的十大热门文章中,与中国股市密切相关的文章内容精辟、眼光独到;
近期,我们还开设了名为"FT中文网博客"的栏目,邀请众多读者加盟。在功能
方面,我们增设了RSS功能,以便您随时定制个性化内容,把FT中文网变成完全
符合您口味的权威财经资讯源。

    我们期待您尽快回到FT中文网!

    P.S如果您有任何技术上或其它方面的疑问与意见,烦请您写信至foo@bar,
我们将立刻为您解决。

所以请放心订阅 FT 中文网的列表吧

火炬手一定要选出来?

看到选拔火炬手的新闻,气就不打一处来。

选选选,现在的中国太功利了,什么都选。难道当火炬手一定要有些才艺,一定要是一个不普通的普通人?

对于这种健康人都可以胜任的角色,我看用买彩票抽奖的方式抽出来比较公平。要让最普通的普通人能够亲身参与奥运才符合体育运动的宗旨吧。

举行这种选秀活动是为了挣钱的目的我还好接受些。如果中国奥委会或者相关的机构或者社会觉得非这样不能找出几个举着火炬跑两步的人,我看这个国家就完蛋了。

顺便说一句,如果统计到我的话,我一定是那5.1%中的一个。

Topic: 社会 运动

Authentication War(续)

继 Yahoo 发布 BBAuth 将近一年之后(Authentication War),Windows Live ID Web Authentication SDK 也发布

和一年前相比,现在 Google Data API 可以说是全面开花,不再仅限于 Calendar 了

命运真是奇妙,去年我还在感叹没有机会在 CERNET 里面部署一套认证库,现在竟然又坐在了一个可能实现该服务的位置上。:)

不过 SOHU Passport 暂时的任务还是在内部打通,攘外必先安内。

不晓得网易和新浪有没有类似的计划。

Topic: 技术
订阅 RSS - 博客 | BT的花