ibmtc maillist

今天发现thunderbird的速度实在太慢了,仔细看看,点了hit信箱的时候,一直提示在build index。建索引都用了这么久,不是算法烂就是信件多了。果然,单hit的文件夹中就有1k多封信(thunderbird提示有40k封,这个应该是一个bug,一年不会有这么多信的,估计是overflow了)

这么多信还只是大四开始用thunderbird的时候起的,没有算上大二、大三的时候的信。 这些信中大部分都是ibmtc的邮件列表,大约有800封吧(实际上可能比这个数字还要多,有一些讨论相关问题的信件不是用maillist发的)。从校园创新大赛开始的,到现在的R-day,算来也有近一年了。这个maillist也是我亲手建起来的,所以还是有一点感情的。

但是信件实在是太多了,所以只能开始删除一些比较水的mail。要看水不水,只能查看这些信的内容,很有意思,我发现,这里就是一个大杂烩。有比较轻松的,像谁发现了什么好玩或者有趣的东西,就发给大家共享这份快乐;还有比较正式的,像是开会、打扫卫生的通知等。

按照时间的顺序,不难看出俱乐部在这一年的发展:新人培训 -> 校园创新大赛 -> 科技创新 -> FoOTOo、SF项目的开展 -> 嵌入式比赛、Fblog -> 第二界开源软件竞赛 -> R-Day -> …,当然中间夹杂着solit的《七暴奇缘》“项目”、小光的征友,还有学院新主页的讨论等等。

无论是轻松还是正经,都看得出大家在交流,在沟通,在做某一件事情,这对于一个被所谓的本科教育毒害的本科生,那是多么的重要。在这里,不和杨老伯讨论本科教育的得失,毒害一词也许有些不恰当,但是我无法想出一个更能表达我意思的词了,所以权且使用它吧。

和一个在ir的同学谈到cliff,他感慨cliff真的是一个好老师。我也由此意,只是话不是从我口中说出来的,区别仅限与此。由于本篇的title不是“论cliff为什么是一位好老师”,所以我们就不往下面讨论了。用数学老师的话说,就是显然得证。

谈到邮件列表,我发现它真的有点像BBS了,大家现在似乎没有上bbs.cs的习惯了,因为大家都把maillist当成了论坛,什么主题都有,但是主要的还是正在作项目的同学。记得当时做创新大赛的时候,我们做了一个统计,发信最多的是cliff,下来就是我了。而现在,我已经习惯潜水了,似乎只是在看大家在做什么。正所谓“铁打的论坛,流水的人”,放到这里也不错。

我想,如果 ibmtc 能够一直存活下去、发展起来,那么邮件列表[ibmtc]就应该一直保存在服务器上,到十年、二十年后,没有人能够整理出当年自己写的代码或是文档,但是我们还是能够看到自己在这里发的邮件、灌的水,回忆当年的岁月;还能告诉自己的孩子:你老爸当年就在那个长年不见mm的地方做了这么多做了那么多让mm们仰慕的事情,还有,看到那几封cliff的“祝大家春节快乐”、“祝大家儿童节快乐”没有,恩,水就是这么灌的,懂不?那是多么有意义的一件事情!

/*
* 大家现在要想看看maillist上的内容,可以登录http://mail.cs.hit.edu.cn:8080/。
* 如果你是ibmtcer,用户名ibmtc,密码你知道。不过现在怎么有这么多列表? @@
*/

Firefox2试用

Firefox2放出来了,不过只是Beta1的。忍不住了,先用一下。

感觉不错,有很多细节的地方改进了不少,像搜索引擎、Addon和tab等。

突然发现一个很cool的地方,在输入textarea的时候(像google翻译的那个文本框),FF可以进行单词检查!对一些拼写错误的单词提出建议,实在是太帅了!(很奇怪的是,Firefox这个单词却不在Firefox的词典中!)

其他的好东东还需要去探索。

由于只是beta1,所以还有很多bug,像在xiaonei回复的时候会down掉。不过相信这些bug都会在release的时候修正的。Firefox2 Beta1可以在这里 下载到。
Always Firefox !

Best View with

cool xgl

有人说,Windows Vista还没出,就已经被OSX和Xgl鄙视了。

今天看了XGL(X over OpenGL)的demo,果然是相当的cool。3D效果很帅的说,明天就去下一个玩玩。

关于xgl更多的内容,参见Novell的Demo页面

 True transparency and shadow

 Movie cube

又是技术

不知从何说起,不知如何说出来,总之现在心情比较糟糕。
很早就有预感了,不过心里还是不好受,第二天胡子拉碴,眼睛里还有红血丝,一副落魄杨。被她发现了,不过没告诉她为什么。因为我祈祷但愿这一切不是真的。不过要来的总是回来的。人躲不过命运,就如人躲不过死神。
一刹那,似乎有一种受骗的感觉,但是还是强作笑颜,甚至还很绅士地和人家打了招呼,吃了饭。免得所有人都尴尬,不过说实话,这顿饭真的很难下咽,西瓜也索然无味。煞风景的是,这时候食堂还放着我最喜欢的童话,那又是一个故事了,只是结局同样不好,这难道是上天对我的一种讽刺吗?
只是想将剩下的事情快点做完,早点逃离这该死的环境。可是做事的时候总是胡思乱想,越做越烦。完全不像平时那么冷静,不是代码的问题,再恶心的程序我也调过,再长的时间我也花过,但是这次不同。真想将键盘一推,大吼一声:丫的,老子不做了!
可是不能,答应的事情是不能反悔的,再难也要做。不知道能不能称之为苯、傻,还是诚、信。
可惜,我没有时间想这些问题,还有事情要做,那就做下去。忘记刚才的一切,就当一切都没有发生过,就当是在电视上的一出悲戏。
晚上,很晚,还是睡不着。听听ipod,以前这样都可以进入梦乡的,今天却失败了。好久没有失眠了,滋味真不好受。知道她还在通宵,发个短信,让她注意身体别着凉。
我不期待什么,直接关机了。我甚至希望她的手机像以前那样,总是收不到我的短信。
受到刘墉的影响太深了,我觉得爱是一种付出,一种豁达,当你知道她不和你在一起会更幸福的时候,我宁愿当面祝福她,然后到一个角落里面发泄。
自然,我不会哭泣,我已经忘了如何哭了。也许小时候的眼泪流得太多,都哭干了,现在想哭也哭不出来了。我习惯了到很远很远的地方,去做别人和自己都无法理解的事情。
我想做一个善良的人,我不觉得自己有多高尚,只是性格使然。我不想骗别人,却免不了总是被别人骗,而且被骗得心甘情愿。

一遍又一遍的听奶茶的《一辈子的孤单》,很好听,也很动人。难道这首歌就是对这段记忆的总结?还是对四年生活的一个尾声?

为自由而技术

为自由而技术。
很早就想说一下这个问题,但是没有找到合适的时间,毕竟这是一个游离于social和tech之间的话题。即使是计算机专业的人,99%也不会理解这个的观点。不过对于资深的自由社区的人来说,这又的确太浅显了,不值一提。所以本文我就不放在blog上了,一般浪费他们的时间。

那么我们首先将其作为一个疑问的命题:为何而技术?

即使很了解我的人,也会误解我学技术的原因。他们会认为是为了鄙视或反鄙视。我坚信,在科学和技术的社区中,每一个人都是平等的, 区别只是闻道有先后,术业有专攻。没有人可以用任何原因鄙视其他人。也许言语中他们会对一些不自己寻找答案的新人有些offensive,但是很多情况下都是有一种怒其不争的感觉。

那么为何而技术,为钱吗 ?我已经看到了很多人投入无数的精力在一些为大家造福的项目中去。且不说全世界的自由爱好者投入的Gnu/Linux项目,就说工大的,远的有ark、gaea,近的有sf。尽管很多人有不理解,例如,前一阵子有人抱怨gaea上都是D版的音乐,还有人发现gaea上有广告就不满了,却不知gaea在背后的付出。这些项目都是免费提供的,广告只不过是为了使这个东西能够继续做下去的一种手段。就像Mozilla 的online store也卖衣服一样。但是他们的目的绝对不是为了钱!如果只为了钱,世界上不会只有Gates。

当然有人说,没有钱,你拿什么吃饭,开发那些东西?我的观点是没有钱当然不行,太多钱也不会不好。Enough money is enough。钱多了,那不过是一个数字,与你看BT时的下载速度没什么区别。Gates不是还捐出很多美金作慈善吗?

抛开对金钱的追求,我们可以单纯为技术而技术,可是问题是你能像大师们几十年如一日地钻研某一个问题吗?我是不能。所以我们需要有一点能够支持自己的东西。那就是信仰,还有自由。

在中国,政治上的自由还为时尚早,幸好,我们还能在技术上追求一种自由。不受压迫,没有垄断,每一个人都要帮助有困难的人,每一个人都为别人编写有用的软件,每一个人都将自己的代码公开,供别人研究学习重用。

听起来有点像共产主义,这也是为什么我的Tshirt上的字样为:M$ is for capitalist running Windows,而我们做的就是在虚拟的网络中建立一个开放、自由的社区 ,甚至是一个社会。这也是FooToo现在在做的事情。

我很喜欢这句话:In a world without doors or walls, there is no need for Gates or Windows.是啊,如果世界上没有这么多隔离彼此的门和墙,没有这么多的不自由,我们能够互相交流,为什么还需要Gates和Windows呢?

遗憾的是,还有这么多人不理解什么叫自由,以及在它之上的自由软件。希望本文能够能使你有一个感兴的认识。自由软件(Free software) 不同于商用软件、共享软件(shareware)或者免费软件(freeware)。免费软件虽然免费,但是源码是不公开的,它的free只是在金钱上的free。而自由软件则不同,RMS说过,You can think it as in a free(自由) speech, not as in a free(免费) beer。这是英语的一个trick,倒也说明了自由软件的本质:除了免费之外,更重要的是自由。你可以自由地参考自由软件的思想、源码,获得发布版本,甚至将它的源码放入你自己的软件中!我想说的是,如果你不想支持天文数字价格的正版 ,那么除了盗版之外,你还有一个选择——自由软件。

我不会对自由软件和自由运动讲得更多,可能上述的内容也已经太多了,就此打住。

当你对技术的理解超越人性的傲慢和卑夷,超越了金钱和物质,超越了技术本身,达到了一种对自由的信仰,一种对自由的追求,那么你就能理解为什么华莱士会高呼Freedom、为什么会有GNU/Linux、为什么我花一上午写这篇文章。

msn的会话监控

前几天研究了一下msn的协议,应该说比QQ的那个协议好看得多。现在来看看如何对msn的一个会话进行监控。

我们假设的场景为用户Bob想建立两个对话,对话Session1中Bob与Dave和George说hello,对话Session2中Bob与Frank说test。OK, here we go。
msn用户在新建一个会话之前,首先需要向服务器连接到一个SB服务器(Switchboard),每一个会话对应一个SB ,SB是用于控制整个会话的服务器端,它会存储一些必要的信息,例如参加会话的人员、地址等,并且转发数据。在这一步,用户向NS服务器(Notification Server)发送一个询问,NS服务器返回一个SB的地址。之后,用户就可以连接SB服务器新建一个会话了。

具体如下所示:
>>> XFR 15 SBrn
<<< XFR 15 SB 207.46.108.37:1863 CKI 17262740.1050826919.32308rn

以上就说明NS服务器返回了SB地址为207.46.108.37:1863。如果我们在监视客户端和NS服务器的时候发现有服务器向客户端发送XFR的信息的时候,我们就能知道SB的信息。

接下来,用户获知SB1服务器地址后,会连结SB1,它会发送cal Dave请求和cal George请求,于是SB1返回两个cal session号,session号就是整个Session1的标记。我们可以通过这个session号来判断是否是同一个会话。最后通过joi邀请Dave和George进入会话。

例如:

>>> CAL 8 dave@passport.comrn
<<< CAL 8 RINGING 17342299rn
<<< JOI dave@passport.com Davern

>>> CAL 10 ed@passport.comrn
<<< CAL 10 RINGING 17342299rn

<<< JOI george@passport.com Georgern

上面说明了我们邀请了Dave和George进入我们的会话1

OK,一个会话已经建立,用户需要再建立一个Session2用于和Frank通信。它需要一个新的SB服务器。于是,它重新向NS服务器发送XFR请求,获得一个新的SB2服务器。当这一步完成后,重复上面的工作,对SB2发送cal Frank请求,获得Session2的session号。

两个会话已经建立,接下来就是发送信息了。发送的时候,由于每一个会话对应一个连接,即对应一个SB服务器,所以只需向相应的SB服务器发送消息即可,而无需指定相应的接收方地址。

>>> MSG 4 N 133rn
MIME-Version: 1.0rn
Content-Type: text/plain; charset=UTF-8rn
X-MMS-IM-Format: FN=Arial; EF=I; CO=0; CS=0; PF=22rn
rn
Hello.

上面的Hello 就是我们发送的内容,这样Dave和George都能接收到如下的消息:

<<< MSG bob@passport.com Bob 133rn
MIME-Version: 1.0rn
Content-Type: text/plain; charset=UTF-8rn

X-MMS-IM-Format: FN=Lucida%20Sans%20Unicode; EF=B; CO=ff0000; CS=0; PF=22rn

rn
Hello.

真正对我们有用的是MSG后面的发送者,以及每一个新行后面的内容就是我们要获取的信息。

最后,当一个Dave想离开会话1,可以发送bye:

<<< BYE dave@passport.comrn

当一个会话超过15分钟没有反应的时候,那就是超时了,监控应该停止,不然资源可能会被消耗光的。
先总结一下 ,监控一个会话,首先要从XFR开始,获得SB服务器地址,然后全程监视用户和SB服务器的通信,获得有用的信息。

msn的协议

今天看了看msn的协议分析,还是挺有意思的,有一点启发。

msn的协议都是基于文本形式的,很像http协议,所以很好理解(当然是指字面上的,机制还是有点复杂)。

第一部分是登陆,登陆首先要与服务器协商协议类型,有点像socks代理的协商,等确定一个双方都可接受的协议后,客户端开始进行认证。当认证成功之后,开始下载各种信息,例如用户资料,好友信息,好友状态等等。

第二部分是用户状态的确定,服务器每隔一段时间发送一个挑战字符串(Challenge), 用户需要正确回答,否则会被认为掉线被踢的。

第三部分是信息的发送,msn协议对于聊天的设计是采用了会话(Session) 的形式,你可以要求很多人加入一个会话。但是很有意思,用户在发送信息的时候,并没有给出需要发送的用户或者会话号,只是简单的给出了信息的格式和内容;而在信息的接收的时候,有发送人的信息。

后来我仔细的想了一想,后者没有矛盾,因为在一个会话中,你接收信息的时候 ,如果数据包中没有发送人,那么你就分不清到底是这个会话中的哪个人发送的。但是至于前者,我怎么都想不明白,因为如果你开了两个会话,那么你到底发给哪个会话呢?

后来,我仔细的看了一看,原来每一个会话都是一个新的连接(这是废话),所以本地端口不同,但是奇怪的是,连接远端的服务器的IP不同,而端口相同。例如,有三个会话,发送三个消息分别到:207.46.26.72:1863 ,207.46.26.144:1863,65.54.228.41:1863。你可以查一下这些IP,发现都是美国微软的,这就是说,那是一个机群,每一个会话对应一个NS服务器。

我看了看捕到的数据报,原来新建一个会话的时候,用户首先要获取一个NS服务器(XFR),一般每次服务器返回不同的NS服务器地址。这样的话,每一个会话都对应一个不同的NS服务器。NS服务器上存储了每次会话中的用户信息,所以每次用户向NS发送消息,NS服务器就能将消息中继到其他的用户那里。

基本上原理搞清楚了,不过有一个事实很明显,用户需要与100个人同时单独对话,那么他同时需要100台NS服务器。我只能说,M$还真TM的有钱!当时我做GoSafe的时候可只有一台localhost作服务器,sigh…

在此,也感谢在测试中被我骚扰的 雪雪、岳峰、海洋和liushi ,还有和我一起被QQ协议郁闷的大为同志 🙂

msn 协议的更多内容参见这里

开放还是限制

本来做技术,做学问,就是应该抱着一种开放的态度。浙大的校训就是海纳百川,有容乃大。有着这种气魄,才能纳百家之言,集天下之大成。

自古,技术的进步总是能造福人类,而我们这些做技术的人,也无时不刻不想将技术发扬岗大,做得更好。

可惜的是,技术是被人使用的,但是人是有善恶之分的,也许根本无所谓善和恶,只是观念不同。技术本身如水一般,纯净无色无味无臭,但是一旦加入人这种东西,很容易就变了。

网络本来是用于不同地方的人们互联信息的,大大方便了人们的生活,但是后来的Craker(我不叫Hacker,因为我觉得Hacker是值得尊敬的,他们是为了技术而技术,而Craker是为了利益而技术的) ,在网络上作恶,于是不得不出现了防火墙、密码、认证以及信息安全和我。引出这么多东西的,无非就是人性中的邪恶,而更可怕的是如果一个国家、一个政府…
二战如果希特勒掌握了核武器,那全世界必定又是一场浩劫;而现在美国的高科技,使得美军开飞机杀人就像是在玩电脑游戏一样;换成中国呢,又是一番景象。

当每次提起自己的实验室,说是国家重点实验室,一脸自豪的样子。不过真的想想发家史,恐怕就很难心平气和了。现在中国富翁的致富基本上都是作恶的,富得越快,孽做得越多,想想山西的煤矿,广东的女工,马家沟工地的农民工那些苦简直就是不算什么了。毕竟这个世界google这种make money without doing evil的公司太少了。

如果说当时我们帮着江core屏蔽法X功还情有可原的话,那么屏蔽其他的关键词就说不过去了。在外人开来,我们就像一群帮凶喽罗(希望实验室的老师和师兄不要介意) 。扪心自问,中国现在的教化未开,我们有没有责任?

现在紫丁香也是如此,在我看来更加不耻。以前屏蔽党不希望看到的关键字,而现在更甚了。前几天讨论树国校长的是非问题,在BBS上引起了极大的争论。昨天去sysop看看,“王树国”也已经成为了关键词,下指示居然是学校的有关部门。李敖说北大孬,工大呢,我想他是不屑说了吧。

再好的技术,再开放的论坛,如果管事的都此版专横落后愚昧不化,总会走下坡路的。中国的科技在汉朝已经相当先进了,当时蔡伦的造纸术让中国灿烂的文化得以保存,汉武帝使人求得冶金术,大败匈奴。但是到了后来,明清却独尊所谓的朱程礼教,将其他的一切科技均视为奇技淫术,才造成了我们把火药放到鞭炮,英国人把火药放到枪炮里的不同结果。

都知道中国现在比上世纪好不少,但是现状还是不忍的让人揪心,尤其在工大这种地方,尤其郁闷,只能发发牢骚。
有人说胡core是一个改革派,也许是吧,中国的路还有很长,希望这个过程快一点。就像马家沟工地的建设,直到总有一天会完工,但是总是希望快点结束。有时候晚上不小心掉在沟里,还忍不住上BBS骂树国几句一样。