阅读时光

img_0268.JPG

是的,最近在读书。在度过繁忙一学期,又经历了紧张的考试之后,总算有时间看点儿闲书。虽然有小学期的课程压着,但毕竟轻松很多。我是一个酷爱读书的人,尤其是长篇小说,各种各样的小说,沉浸在小说家为你构造的虚拟世界中简直太美妙了。

从初中开始就一直保留着读“闲书”的习惯,一直到大学二年级阅读量才出现明显的下降。促使这一事件发生的主要原因是我总结大学第一年的生活时发现最主要的成绩居然是读了六十多本小说...所以我打定主意从那以后到图书馆尽量不借闲书。然后就是一堆一堆计算机书往宿舍抱(这类书基本都很厚),虽然没有几本真正看完的,但在帮助我建立起对计算机科学的整体印象上还是起了很大帮助的。这段时间的闲书阅读基本上集中在杂志上:《科幻世界》、《新周刊》、《萌芽》、《Newton 科学世界》、《走近科学》、《奥秘》等等。

聊聊最近买的这几本书吧。主题是科幻类:阿西莫夫的基地三部曲:《基地》、《基地与帝国》、《第二基地》,刘慈欣的《三体Ⅱ:黑暗森林》。我很爱看科幻小说,尤其是儒勒·凡尔纳的小说读过非常多,从妇孺皆知的《海底两万里》、《环游世界八十天》、《神秘岛》、《格兰特船长的儿女》到《沙皇的邮件》、《气球上的五星期》、《征服者罗比尔》,貌似还有本他儿子假托他出的书,怎么说也得有十几本。里面的“鹦鹉螺号”、“信天翁号”、“地球大炮”等机器形象,都能让人看过后难以忘记,不敢相信这是一个 19 世纪的作家写的书。

我是从高中开始看《科幻世界》杂志的,我自己的感觉像是一步一步地看着中国科幻从落后走向繁荣。王晋康、刘慈欣(大刘)、何宏伟(何夕)、韩松、郭威(星河)、柳文扬(07年因脑瘤去世),赵磊(七月,现在南大生科的研究生哦,就是小百合上的 SoulKnight),看着这些世纪之交崛起的科幻小说家的名头越来越响亮真是件让人开心的事情。这些作家的科幻小说中不再是完全对西方科幻的照搬和模仿,融入了许多中国元素,看到时倍感亲切。我想《科幻世界》的主编的感触应该比我更深刻,所以他在《中国科幻基石丛书》的前言中写道:

仍然有人经常问及中国科幻与美国科幻的差距,但现在的答案已与十年前不同。在很多作品上,这种比较已经变成人家的牛排之于我们的土豆牛肉。差距是明显的——更准确地说,应该是“差别”——却已经无法再为它们排个名次。

刘慈欣的《三体》和《三体Ⅱ》,也被编入《中国科幻基石丛书》系列中。读这本《三体Ⅱ:黑暗森林》时,我仿佛又回到了当初在《科幻世界》上看到《三体》连载时的感觉,都已经连载好几期了,作者的意图仍然难以摸透,下一期的内容总是自己预想的有万里之别。从科幻小说必须有的想象力方面来看,这两本书绝对是值得一读的,但这次真正打动我的,并不是想象力,而是其中的一段心理描写:主人公罗辑创造自己梦中女孩的心理活动。看到这一段我就想,我应该在豆瓣上给它五星!

阿西莫夫的《基地系列》是被称为科幻史诗的作品,《基地三部曲》则是这个系列中最关键的三册。对它的介绍我就不再赘述,豆瓣上能找到很多。我想说的是,这本书对我来说,并没有太大的震撼(也许我不该读前言,或者对它的期望太高了),但并不是说我不认为它是一套好看的科幻小说,所以我在豆瓣上仍然给它五星。

我在上一篇日志中就提到了《一个数学家的辩白》,这是哈代写的一本小书,C.P. 斯诺给它写的前言几乎和内容差不多长。虽然翻译有些晦涩,还是能大致领略到作者的意思。站在我们这个时代的视角上看这篇六十多年前的文章,发现他的很多论据都无法成立(我在《当数学遇上计算机:数论与密码学》说的就是一个例子),所以再去审视他的论证和思想,在某些地方就会觉得有些固执可笑。但是从中可以看到一个追求纯粹真理的人对数学的偏爱与维护,就像每个人在做一些事前总要给自己些理由或者信念,拥有这些才不至于在孤独的前行中感觉到灰心寂寞。

我原以为《丑陋的中国人》是一本书(这里书的意思是一个整体),后来才发现它原来是本杂文集。柏杨先生去世的时候,自己曾因为没有看过他对国民性的批判文章感到很惶恐,所以特地买来准备拜读一番。如果让一个“一方面,另一方面”的人来看,柏杨先生的批判的确并不是像推理逻辑那样完美地无懈可击。幸好我不是那样的人,从某种意义上来讲,一个人如果老是说“一方面,另一方面”,自然永立于不败之地,因而从信息论的角度来看,我们可以认为他说的话信息量为零。起沉疴还需下猛药,对于麻木的人来说真的需要警示之钟在头顶轰鸣!

Math in CS: 数论和公钥密码学

1940年,英国数学家哈代在他的一本小书《一个数学家的辩白》(A Mathematician's Apology)中说:“如果有用的知识是这样的知识(我们暂时同意这样说):它大概会在现在或相对不远的未来,为人类在物质上的享受方面作出贡献,因而,它是否在单纯的智力上满足人们乃是无关紧要的,那么,大量更高级的数学就是无用的。现代几何和代数、数论、集合论和函数论、相对论、量子力学——没有一种比其它的更经得住这种检验,也没有真正的数学家的生涯可以在这个基础上被证明是有价值的。”但是我们会看到,哈代这个断定在当时“不远的未来”几乎被一一证明是错误的,数论就是其中一个。

在 1970 年代以前,人们所知道的密码学都是对称密码学,就是在加密和解密过程中需要使用同一个密钥。在那个时代,一些密码算法已经能保证足够的安全性,比如数据加密标准 DES。但是人类的需求是很难完全得到满足的,他们为每次密钥交换的复杂度而苦恼,比如在战时如果密码本被敌方获得,就必须重新向无线电收发员分发密码本,这个工作量和代价是相当大的;还有一个需求就是数字签名,能不能用加密实现对数字文件的签名,像手写的签名一样,确保该文件出自谁人之手?

上述问题,就是 Whitfield Diffie 和 Martin Hellman 1976 年在他们那篇划时代的论文《密码学的新方向》(New Directions in Cryptography)中提出的,他们也给出了其中一个问题的解决办法,那就是 Deffie-Hellman 密钥交换算法(后来被改为 Deffie-Hellman-Merkle 密钥交换算法,里面还有一段小故事。)。但是 DH 没做完的功课,仅仅在一年后就被 RSA 解决了,那就是 Ron Rivest, Adi Shamir, 和 Leonard Adleman 的 "A Method for Obtaining Digital Signatures and Public-Key Cryptosystems"。RSA 的加密和解密使用的是不同的密钥,即公钥和私钥,你可以将你的公钥扔到世界上任何一个位置,我用你的公钥加密一段信息,除了你用自己的私钥解密,没有别的人能从中得到原始消息。就相当于你把打开了的箱子扔的满世界都是,但箱子一旦锁上,就只有你能再打开。

RSA 算法自其诞生之日起就成为被广泛接受且被实现的通用公钥算法,但是 RSA 算法还带来一个另外的意义,那就是:数论知识从未像现在这样被广泛地使用着。RSA 程序的普及率要远远大于 Windows,因为每台 Windows 上都装配着 RSA 算法程序,但 RSA 并不仅仅装配 Windows。每当你登录邮箱、网上银行、聊天软件、安全终端,你都在使用着数论带来的好处。而且相比之前密码学的字母替换和置换,混淆和扩散,DH 和 RSA 使用的东西更有资格说自己是数学。

大概也是由于其基于数学的简洁性,RSA 和 DH 算法描述要比 DES, AES 简练许多,我在这篇小文中都能写完。

RSA

RSA 用到了数论中的三个基本定理:费马小定理、欧拉定理和中国剩余定理(几乎处处都在),和一个古典难题:大整数分解问题。如果你是数学系的学生,对这些概念一定不会陌生。

费马小定理:若 p 是素数,a 是正整数且不能被 p 整除,则: ap-1 = 1(mod p)。或者另一种形式:ap=a(mod p),这种形式不要求 a 与 p 互素。

欧拉定理:对任意互素的 a 和 n,有 aΦ(n) = 1(mod n)。其中,Φ(n)是欧拉函数,即小于 n 且与 n 互素的正整数的个数。

大整数分解问题:将两个整数乘起来是简单的,但是将一个整数分解为几个整数的乘积是困难的,尤其是当这个数比较大的时候。迄今为止没有有效的算法来解决这个问题,甚至我们连这个问题的计算复杂度量级是多少都不知道。

那么 RSA 算法是什么样的呢?

密钥的产生:
1. 选择两个素数 p 和 q.
2. 计算 n = p*q.
3. 计算 Φ(n) = (p-1)(q-1) (这是欧拉函数的性质)
4. 选择 e<Φ(n) 并使得其与 Φ(n) 互素。
5. 确定 d<Φ(n) 并使得 d*e = 1(mod Φ(n))。
6. 这时候,私钥就是{d, n},公钥就是{e, n}。
加密算法:
假设 M 是明文(M<n),那么密文就是 C = Memod n。(为什么明文是数字?在计算机科学里任何数据最终表示都是数字。)
解密算法:
假设 C 是密文,那么明文就是 M = Cd mod n。

我们来证明一下算法是否正确,由于 Cd = Me*d = Mk*Φ(n)+1 (mod n)。

如果 M 和 n 是互素的,显然直接由欧拉定理我们就能得到:
Cd = Mk*Φ(n)*M1 = M (mod n) = M
说明算法是正确的;
如果 M 和 n 不互素,由于 n 是两个素数 p 和 q 的乘积且 M<n,那么 M 要么是 p 的倍数,要么是 q 的倍数,由 e*d = 1(mod Φ(n)) = 1(mod (p-1)(q-1)) 我们可得:
e*d = 1(mod (p-1)) 且 e*d = 1(mod (q-1))
则 e*d 可以写成: e*d = k*(p-1)+1, e*d = h*(p-1)+1
由费马小定理,我们有:Me*d = Mk*(p-1)+1 = M(mod p) 和 Me*d = Mh*(q-1)+1 = M(mod q)。
由于 p 和 q 均为素数,且 p, q 均整除 Me*d-M,所以我们有:
Cd = Me*d = M (mod p*q) = M (mod n) = M

从上面我们可以看到 RSA 算法实现了加密和解密使用不同密钥,而且证明了这个算法的正确性。但 RSA 算法要想实用,光有正确性还不够,最重要的一点是安全性,即从公钥{e, n}无法推导出私钥{d, n}。在 RSA 算法中我们可以看到,关键要知道 Φ(n),知道了 Φ(n),使用欧几里德算法就能求出 e 的逆元,就得到了用户的私钥{d, n}。要求出 Φ(n),就必须知道 p,q,但 p,q 是不公开的,仅仅知道 p,q 的乘积 n 去求 p,q,根据大整数分解古典难题,当 n 比较大时其分解在计算上是不可行的。这就保证了 RSA 算法的安全性。

而且 RSA 算法是可逆的,所以它就有能力同时实现加密和签名的功能。由于公钥是公开的,每个人都可以用你的公钥加密一段信息发给我,而私钥是保密的,所以只有你能看到别人用你的公钥加密的消息;而也因为可逆性,如果你用私钥解密一段明文(实际是加密),所有人都可以用你的公钥加密它来得到明文(实际是解密),因为私钥只有你一个人知道,这个消息只有可能是你发出的,就相当于你对这段明文做了一个签名。

DH 密钥交换算法

DH 密钥交换算法较 RSA 算法更为简单,它也是基于数论中的一个古典难题:离散对数问题。

离散对数问题:若 p 是素数,p 已知,考虑方程 y = gx mod p,给定 g,x 求 y 是简单的,但给定 y,g 求 x,即求 x = logg,py mod p,在计算上是不可行的。

DH 密钥交换算法的描述如下:
已知公开的素数 p 和 p 的本原根 α
1. 用户 A 选择秘密的 Xa<p,计算 Ya = αXa mod p,将其发送给 B。
2. 用户 B 选择秘密的 Xb<p,计算 Yb = αXb mod p,将其发送给 A。
3. A 和 B 分别计算 Ka = (Yb)Xa mod p 和 Kb = (Ya)Xb mod p,就同时得到了共享的密钥 K=Ka=Kb,然后就可以用 K 进行加密传输了。

DH 密钥交换算法的优点在于:双方在通信前不需要知道任何共享的密钥,而是通过公开的 p 和 α 协商出一个密钥来进行加密通信。

先看一下算法的正确性,Ka = Kb 是否成立:
Ka = (Yb)Xa = (αXb)Xa = αXa*Xb (mod p)
Kb = (Ya)Xb = (αXa)Xb = αXa*Xb (mod p)
Bingo! Ka 和 Kb 是相同的。

再来看一下算法的安全性,就是能否从公开的信息推导出 K 来:
由于密钥是 K = αXa*Xb,那么攻击者必须知道 Xa 和 Xb 才能得到共享的密钥 K,而公开的信息只有 Ya 和 Yb,由离散对数问题,从 Ya,Yb 求出 Xa,Xb 在计算上是不可行的,就保证了算法的安全性。

从上面两个算法我们可以看出,数论在公钥密码学中的重要地位,恐怕哈代当时怎么也想不到三十多年后人人都在使用他所认为在实际生活中毫无用处的数论吧!

北京欢迎你 MV

不要笑我啊,我真的今天才听到这首歌,起因还是别人说这个歌 MV 里有好多北京的景点。很喜欢!

虽然我一向不提倡强制访问者听歌,这次要破例一下,把它放在博客的侧栏最下方了,还是强制播放。谁要是不爽的话,在 2008 年 8 月 24 日之前访问我的博客首页时请启用禁止 flash 插件(单篇日志页不受影响)。

YouTube:

优酷:

北京欢迎你

词:林夕 曲:小柯 制作:陈少琪 小柯 余秉翰

片头:日出、捏面人、挂风筝、刷年画、太极拳、太庙

迎接另一个晨曦 带来全新空气——陈天佳(正阳门箭楼上,背景为正阳门城楼)

气息改变情味不变 茶香飘满情谊——刘欢(鸟巢)

我家大门常打开 开放怀抱等你——那英(德胜门箭楼,2008年4月13日)

拥抱过就有了默契 你会爱上这里——孙燕姿(北海公园白塔,2008年4月2日)

不管远近都是客人请不用客气——孙悦(普渡寺,2008年4月7日)

相约好了在一起 我们欢迎你——王力宏(中华世纪坛、书法,2008年3月20日)

我家种着万年青 开放每段传奇——韩红(北京大学未名湖畔博雅塔)

为传统的土壤播种 为你留下回忆——周华健(太庙,2008年4月8日)

陌生熟悉都是客人请不用拘礼——梁咏琪(国子监琉璃牌坊)

第几次来没关系 有太多话题——羽泉(皮影戏)

北京欢迎你 为你开天辟地——成龙(八达岭长城,2008年4月3日)

流动中的魅力充满着朝气——任贤齐(琉璃厂北京画店、折扇)

北京欢迎你 在太阳下分享呼吸——蔡依林(奥林匹克水上公园)

在黄土地刷新成绩——孙楠(国家大剧院)

我家大门常打开 开怀容纳天地——周笔畅(水立方)

岁月绽放青春笑容 迎接这个日期——韦唯(糊风筝)

天大地大都是朋友请不用客气——黄晓明(奥林匹克水上公园,2008年4月13日)

画意诗情带笑意 只为等待你——韩庚(画京剧脸谱)

北京欢迎你 像音乐感动你——汪峰(古观象台)

让我们都加油去超越自己——莫文蔚(社稷坛(中山公园)五色土)

北京欢迎你 有梦想谁都了不起——谭晶(四合院模型)

有勇气就会有奇迹——陈奕迅(天坛坛门)

北京欢迎你 为你开天辟地——阎维文(五棵松体育馆)

流动中的魅力充满着朝气——戴玉强(北京孔庙大成门)

北京欢迎你 在太阳下分享呼吸——王霞 李双松(什刹海荷花市场)

在黄土地刷新成绩——廖昌永(首都博物馆)

北京欢迎你 像音乐感动你——林依轮(茶道)

让我们都加油去超越自己——张娜拉(鼓楼上,背景为钟楼)

北京欢迎你 有梦想谁都了不起——林俊杰(湖广会馆大戏楼)

有勇气就会有奇迹——阿杜(湖广会馆大戏楼)

京剧:北京欢迎你,啊啊啊霍霍霍哈哈哈

我家大门常打开 开放怀抱等你——容祖儿(故宫)

拥抱过就有了默契 你会爱上这里——李宇春(火锅)

不管远近都是客人请不用客气——黄大炜(拨浪鼓)

相约好了在一起 我们欢迎你——陈坤(福到)

北京欢迎你 为你开天辟地——谢霆锋(故宫)

流动中的魅力充满着朝气——韩磊

北京欢迎你 在太阳下分享呼吸——徐若瑄(世贸天阶,2008年4月7日)

在黄土地刷新成绩——费翔

片中:长城、天安门、天坛祈年殿、九龙壁、故宫三大殿、抖空竹、长嘴壶茶艺、北京烤鸭、拉面、首都机场、北京城铁、立交桥、体育场馆

我家大门常打开 开怀容纳天地——汤灿(刺绣)

岁月绽放青春笑容 迎接这个日期——林志玲(故宫午门) 张梓琳(包饺子)

天大地大都是朋友请不用客气——张靓颖(剪纸)

画意诗情带笑意 只为等待你——许茹芸(浇花) 伍思凯 (瓷器)

北京欢迎你 像音乐感动你——杨坤(画桌前) 范玮琪(中央电视塔)

让我们都加油去超越自己——游鸿明 腾格尔 黄大炜 满文军 纪敏佳(老北京四合院)周晓欧(书法)

北京欢迎你 有梦想谁都了不起——沙宝亮(瓷器)

有勇气就会有奇迹——金海心 何润东(中央电视塔)

北京欢迎你 为你开天辟地——飞儿(北海公园五龙亭) 庞龙

流动中的魅力充满着朝气——李玉刚(国家体育馆)吴克群(老北京四合院)

北京欢迎你 在太阳下分享呼吸——5566(白塔寺) 胡彦斌 (老北京四合院)

在黄土地刷新成绩——刀郎(老北京四合院)

北京欢迎你 像音乐感动你——纪敏佳 屠洪刚 吴彤(老北京四合院)

让我们都加油去超越自己——郭容 刘耕宏(老北京四合院)

北京欢迎你 有梦想谁都了不起——金莎 苏醒 韦嘉(老北京四合院)

有勇气就会有奇迹——付丽珊 黄征 房祖名(老北京四合院)

北京欢迎你 有梦想谁都了不起——全体群唱

有勇气就会有奇迹——全体群唱

北京欢迎你 有梦想谁都了不起——全体群唱

有勇气就会有奇迹——全体群唱

GUCAS IP 网关登录客户端版本1.2 发布

CASNET 是中科院内部 IP 控制网关登录客户端,支持 Linux 和 Windows 双系统。此软件完全使用 Python 语言写成,同时拥有命令行和图形界面,使用简单,安装方便,实乃中国科学院 IP 网关用户居家旅行必备之良品 :)。

CASNET 的官方主页:http://share.solrex.org/casnet

软件特性

  1. 同时支持 Linux 和 Windows 操作系统!
  2. 提供各种格式的安装包,方便安装过程。
  3. 客户端同时具有命令行和图形界面,满足不同用户需要。
  4. 可设置选项多,可保存用户设置,登录简单快捷。
  5. 纯 Python 编程,修改简单,扩展性强。
  6. 开放源代码,确保程序无后门。

最新版本 1.2-1(2008年6月7日发布) 更新

  1. 增加 Windows XP 系统支持。
  2. 解决了一些 BUG.

如何选择合适自己的安装包

if 您是 Linux 用户并且拥有 Python 和 PyGtk? 支持(一般的 Linux 发行版都有):
  if 您使用 RedHat系列的 Linux 系统(Fedora, RHEL, CentOS,...):
    请下载 casnet-1.2-1.i386.rpm
  elif 您使用 Debian 系列的 Linux 系统(Debian, Ubuntu,...):
    请下载 casnet-1.2-1_i386.deb
  else:
    请下载 casnet-1.2-1_i386.tar.gz
elif 您是 Windows 用户:
  if 您是 Python 开发者并确信您 Windows 系统里已经安装 Python 和 PyGtk:
    请下载 casnet-1.2-1_win32_Pygtk_Installed.zip
  else:
    请下载 casnet-1.2-1_win32.zip

薄弱的算法基础

这几日复习累时,翻出来 MIT 的《算法导论》课程录像来看,发现一个非常沮丧的事实:我对算法知道的真少。

仅仅看了 3 节课,就听到了几个我不懂的东西。比如计算递归算法复杂度的 master method,计算 Fibonacci 数列的复杂度为 θ(lg(n)) 的算法,计算矩阵相乘的复杂度为 θ(nlog2(7)) 的 Strassen 算法。这些东西我以前都没听说过,真是孤陋寡闻啊!

那本《算法导论》大概在我的书架上已经摆了两年了,两年我仅仅看了六七十页。我太懒是最主要的原因,但还有一个原因是从头开始看激发不了兴趣,前面讲的一些算法都是数据结构书上看过的东西,不是很有吸引力,看着看着就觉得索然无味,扔一边了。

不过我也从来没自诩过算法好,逛 BBS 时我主要在电脑技术版转,在其它的版都敢指手画脚一番,唯有在算法版老老实实潜水。计算机科学就是这样,知识层次不如别人,那就根本插不上话。这也是我极少在 pongba 兄的 TopLanguage 讨论组发言的一个原因,因为里面我感兴趣的话题主要是算法相关,而算法问题我又插不上嘴,只好默默潜水。

我的算法知识,大概仅限于我现在都不知道扔哪儿的一本《数据结构》书了。不是科班出身,也没正儿八经听过算法课,所以现在就有系统地学习算法知识的打算了,把存在电脑里好久的算法导论视频翻了出来。Charles Leiserson 讲的很不错,单就趣味性来说,《算法导论》的课程录像可比书要有意思多了。我想在最近的这段时间里,我应该至少能把录像看完。

另外,我在博客分类里添加了 Algorithm 一项,我将看看,在过一段日子后,我对算法的使用和理解能力能否有一些提高。

中国联通05-07年会计报表分析

最近在考试,顾不上写博客。最近做了一个对中国联通报表分析的作业,正好碰上中国电信行业重组,这个话题还蛮热门的。因为是选修课作业,做的也挺简单,贴出来大家看着玩吧。

注:这仅仅是中国科学院研究生院开设的一门公共选修课《会计报表分析》的课程报告,作者并非专业会计师,也非会计专业学生,不能保证报告中数据的精确性,故所做数据分析仅供参考,请不要在严谨的场合引用。否则,由此而引发后果和责任自负。

中国联合通信股份有限公司 2005年-2007年 会计报表分析

金山公司花巨资为 WPS Office 从 Design Science 引进了公式编辑器

提起 Design Science 公司大家可能并不熟悉,但是说到 M$ Office 里的公式编辑器和 MathType,大概大家就不会觉得陌生了。对,公式编辑器和 MathType 都是 Design Science 公司的产品。

这不是一则新闻,不过也不旧,这件事发生在 2008 年 5 月 8 日,金山公司对外宣布金山公司巨资购买公式编辑器 回馈WPS 用户。Design Science 也在网页上显著位置(高于微软)将金山公司列为战略合作伙伴

自从半年前放弃盗版的 M$ Office 投入到 WPS Office 永久免费的个人版阵营之后,我不断地发现 WPS Office 的优点(当然了,其最大的优点是免费)。WPS Office 能对 Office 文档格式(.doc, .ppt, .xsl)相当完美的兼容,与 OpenOffice 那种兼容不是一个数量级的。我最喜欢的还有一个功能:直接导出 pdf 格式文档。但是其缺乏公式编辑器也让我很苦恼,就在前几天,在完成一门课程作业时(中国的老师怎么那么喜欢用 Word 文档留作业且作为提交格式啊?),我不得不到一个在线的 TeX 网站去生成要用到的公式图片,再下载了插入到 WPS 文档中。

今天我到金山的网站去下载更新的 WPS 的时候(我讨厌自动更新),忽然在一个角落里发现了 WPS 添加公式编辑器的新闻,这个消息让我很振奋。这个功能将大大地提高 WPS Office 的易用性,而且可以促使更多人有理由放弃盗版的 M$ Office。我将其记录在我的博客里,也希望看到的人能够(至少尝试一下)迁移到 WPS Office 平台上工作,为减少中国被国外诟病的软件侵权行为出一分力。(我女朋友现在就一直使用 WPS,因为当初我骗她说这是精简版的 Office ^_^,我室友也在我的强烈呼吁下部分转移到了 WPS Office 平台。)

其实我应该算是 WPS 的老用户了,在 1998 年,我刚开始接触电脑的时候,学会用电脑打字使用的就是 WPS,当时记忆深刻的就是它的崩溃频率,基本上一上午至少要崩溃两次,辛辛苦苦打的东西唰就全变成乱码了。不过 WPS 也在发展,它曾两度(2001年和2007年)荣获国家科技进步二等奖,大概是国产软件获得的国家级最高奖项了吧。金山公司2007年8月份做出了将个人版免费发布的决定,我认为这个决定将为中国办公软件的正版化做出不可磨灭的贡献。

南京大学106岁生日

今天是南京大学的 106 周年校庆纪念日,虽然我已经离开了南大,还是要写一篇小文祝福我的母校。

翻出了去年的旧文,我发现我仍然应该强调这句话:

我不会感谢的是南大的校领导南大的后勤集团,这些人里大部分是垃圾。可能他们也有他们的无奈,但我认为,他们不配。或许我应该感谢的一点是,他们教会了我这个世界上哪里都有黑暗,包括纯洁的校园。

在国家共度时艰之时,南京大学网络中心利欲熏心的领导推出了 BRAS 网络收费服务,高额的收费标准引起整个南京大学学生的反弹,一时间小百合 BBS上全是对学校收费政策的控诉与反对,而同期其它大学 BBS 十大话题大部分与地震灾难救援有关,与小百合的一两条形成了鲜明的对比。真的很让人痛心,好像南京大学的学生漠视地震灾区的情况一样,我深深地为南京大学的后勤集团感到羞耻!

稍微感到欣慰的是,校方在学生的压力下总算暂停 BRAS 网络收费服务推行,这种情况在其它学校是不多见的,这说明学校领导对学生的意见还有些尊重的姿态。

我不在乎我的母校是不是什么国际一流大学,也不在乎她的排名有多高。我真正在乎的,是我的母校能成为一座“好”大学,这座大学能够尊重每一位学生和老师,尽自己的力量为教学、科研和学生的生活提供便利,为社会、为国家尽她培养优秀人才的义务,等她的学生毕业了,会在她的每一个校庆日穿上印着南京大学的 T 恤,无愧地告诉周围的人:“嗨,我是一名南大人!”

地震

上千名学生压倒在倒塌的校舍里,都江堰,德阳...为什么塌了那么多学校?

我觉得,如果某个乡镇学校垮塌而政府机构没事,这个乡镇的领导都应该撤职查办!

====================我的地@震记忆===================

2008年5月12日下午两点四十多分,我忽然接到郑州大学的好朋友的短信,内容只有两个字:“地@震”。我还以为是开玩笑,也没回,继续在电脑前写我的代码。

三点多将近四点的样子,我收到我妹的短信,说:“哥,郑州地@震了。楼都在晃,我往家电话也没人接,不知道咱妈咋样。”我看到消息立马拿起电话就往家里拨,拨着才想起来我妈应该在学校,家里没人。于是赶紧边上网查消息,边发消息问我妹震得厉害不。看到是四川汶川发生的地@震才稍微松了口气,家里应该影响不大。我妹说正在宿舍的时候感觉到晃,赶紧出来了,到街上走了一圈,发现两边的高楼在摇晃,挺好玩的。我一看就知道应该没啥事了。然后给女友打了个电话,问她在南京有没有感觉到,她说也没有感觉到地@震。

因为我妈老花眼,没有手机。五点多等我妈下班回家,我才往家里打了个电话,问我妈家里有没有事。我妈说她当时在教室里改学生的作业,忽然感觉到一阵头晕,还以为自己身体出问题,一帮小孩子在教室里也没啥反应,等她歇会儿回到办公室的时候才听到别的老师讨论说地@震了。

当时看到网上说震级有 7.8 级的时候真把我吓了一跳,虽然当时没有报导的数字,我就想不知道该有多少家庭遭祸了。这两天一回到宿舍就在关注抗震救灾的状况,很高兴能看到新闻频道都在不间断的报导最新情况。

亲人是自己的亲人,同胞是自己的同胞,祖国是自己的祖国!无论有多少抱怨,当灾难降临到自己的亲人、同胞和祖国的头上时,我们总是最牵肠挂肚。

天佑我中华!

笔记本磁盘高频加载/卸载循环问题

注意:本人非硬件专家,下面我仅仅阐述遇到的问题,解决方法,以及我的一些猜想。要仔细的了解这个 BUG,请阅读 Ubuntu Bug 列表的 BUG 59695:High frequency of load/unload cycles on some hard disks may shorten lifetime

我的笔记本是 DELL Latitude D630,从一开始使用我就发现 D630 的硬盘在正常使用中会经常发出“咯吱、咯吱”的响声(不是光驱,比光驱的咯吱声音要小得多),虽然我在 BIOS 里设置了硬盘模式为 Quiet。我一直认为这是正常现象,读取硬盘总会发出声响的。去年我曾经注意到 Ubuntu 的一个硬盘操作 BUG 引起了广泛的关注,但是在新闻中只提到了在电池模式下出现的问题,我也就没有仔细去浏览,而且我想随着 Ubuntu 升级,这个 BUG 应该被早已 fix。

但是今天我被一个事实给吓到了:我一直习以为常的“咯吱、咯吱”声居然是系统 BUG!而且这个 BUG 同样存在于 Windows 和 Linux 。

令我信服这一点的是,在我应用了 Ubuntu Bug 列表中提供的解决方案后,Ubuntu 下的硬盘“咯吱、咯吱”声消失了,而 Windows XP 下仍然会发出这种声音。

重要评论 by 徐宥:windows 没有专门的笔记本版, 电源管理的策略都是沿用桌面的. 如果节能设置为一直打开, 是没有问题的.

简单的来说,这个 BUG 讲述的是笔记本电脑的电源管理的一个问题:笔记本为了保持低功耗,采用了一个方法,就是在不使用硬盘的时候,将硬盘磁头 park 起来;需要使用的时候,再 unpark 磁头。而在实际使用中,这个节电策略被滥用了,导致过于频繁的 park/unpark 磁头,造成磁盘寿命变短,而且会带来磁盘“咯吱、咯吱”的噪声。这是很多笔记本电脑硬盘使用时间不超过一年的一个原因。

一些文章中介绍,一般磁盘设计承受的加载循环计数最多为 600,000 次,而当超过 300,000 次的时候磁盘的响应速度就会变慢,所以平均每小时的加载循环次数应该在 15 次左右,这样才能保证大约 4 年不关机的使用寿命。而我正常使用 7 个月的 D630 平均每小时加载循环次数为 76 次,是设计次数的 5 倍!!

有一个工具可以用来检测笔记本电脑硬盘的加载循环计数 smartmontools,这是开源软件,有 Linux 和 Windows 版本,在 Ubuntu 下可以直接 apt-get。Ubuntu 下用 sudo smartctl -a /dev/sda 命令,Windows 命令行下用类似的命令,可以打印出磁盘的检测信息,主要关注下面两行:
9 Power_On_Hours 0x0032 099 099 000 Old_age Always - 1647
193 Load_Cycle_Count 0x0032 037 037 000 Old_age Always - 126354

Power_On_Hours 就是硬盘使用的总时间,Load_Cycle_Count 就是加载循环计数,二者相除,就能得到每小时加载循环次数,比如我的就是 126354/1647 = 76 次,5倍于设计水平,看了真让我感到恐怖。

Ubuntu 下推荐的解决方案有一个,我简化了一下,将下面的内容保存成一个脚本文件 fix_hdd.sh,用 sudo sh fix_hdd.sh 运行,然后重启即可:
cat > 99-hdd-spin-fix.sh << EOF #!/bin/sh hdparm -B 255 /dev/sda EOF chmod a+x 99-hdd-spin-fix.sh cp 99-hdd-spin-fix.sh /etc/acpi/suspend.d/ cp 99-hdd-spin-fix.sh /etc/acpi/resume.d/ cp 99-hdd-spin-fix.sh /etc/acpi/start.d/ 使用这个解决方案后,我发现在 Ubuntu 下我的 D630 磁盘不会发出频繁的“咯吱”声了,用 smartctl 检测发现 Load_Cycle_Count 增加的非常慢,问题应该是解决了。然后我重启到 Windows XP 下,发现仍有“咯吱”声,用 smartctl 测试了一下,在 20 分钟内大约有 18 个加载循环,和 76 次每小时的平均计数差不多,说明 windows 下也存在这个问题。 这就有点儿让我想不通了,Linux 下出现问题很容易理解,硬件厂商对 Linux 的支持本来就弱,为什么 Windows 下也会有这个问题?我想这些硬盘厂商在出品之前肯定对硬盘在各种情况下的表现进行过很多次测试,Windows 下的测试应该是最重要的一个吧。难道是故意的?

GUCAS IP 网关 Linux 登录客户端版本 1.1 发布

CAS NET 是中科院内部 IP 控制网关的 Linux 登录客户端,此软件完全使用 Python 语言写成,同时支持命令行和图形界面,使用简单,安装方便,实乃中国科学院 Linux 使用者居家旅行必备之良品 :)。

官方主页

软件特性

  1. 同时提供源代码, .deb 和 .rpm 安装包,方便安装过程。
  2. 客户端同时具有命令行和图形界面,满足不同用户需要。
  3. 可设置选项多,可保存用户设置,登录简单快捷。
  4. 纯 Python 编程,修改简单,扩展性强,可移植到不同操作系统平台。
  5. 开放源代码,确保程序无后门。

最新版本 1.1-1(2008年5月9日发布) 更新

  1. 添加了窗口关闭按钮,关闭时最小化到 System Notification Area。
  2. 添加了 Status Icon 的右键菜单。
  3. 用户登录时自动强制退出在其它 IP 的连线。

Google Code

受到某同学的提醒,今天我把我的两个小项目中科院IP网关登录客户端《使用开源软件-自己动手写操作系统》源代码转移到了 Google Code 上。

CAS NET 本身就是遵从 GPL 协议的,所以我就将所有内容都转移到了 Google Code,原有的官方主页也设置了301永久重定向到 Google Code 页。

《使用开源软件-自己动手写操作系统》的电子书内容是遵从的 CC 协议,所以并没有将电子书的 TeX 源码放到 Google Code 上,只是将书中示例程序的源代码放了上去。原有的官方主页还保留,主要用做发布所有源码(TeX+Demo)用。虽然最近比较忙,第三章还是写了一部分,大概月底能发布第三章吧(不敢保证,因为期末考快到了!)。不像博客,写书总得需要大块的时间,而我能挤出来的时间确实不多。唉,我也想早点儿把它完成。

最近在申请两个公司的暑期实习生,微软和IBM。个人比较喜欢 IBM CRL 那个 Security 的职位,只是,现在由不得咱们挑啊!

Google Reader 发布共享新功能

[本博讯 2008年5月5日] Google Reader 发布了新的共享功能:Notes、Share bookmarklet 和可修改的共享页面主题。

Notes 和 Share With Note

Notes 功能和 Twitter 或者饭否有点儿相似,在侧栏原有的 Your Shared items 被替换成了一个 Your stuff,Shared items 和 Notes 成为其子项目:

Left Reader

点击 Notes 进去后,用户可以输入一些简短的句子,如下图所示,这些句子将被共享给 Google 的好友,而且可以在用户的共享阅读页面可见。

Google Reader Notes

有趣的是,Google Reader 在共享某个订阅条目的时候,也可以添加自己的备注:

Share with note

Share bookmarklet

用户可以将一个书签按钮添加到浏览器的收藏夹中,当看到有趣的页面时,点击该书签就可以共享给 Google 的好友。

Note Bookmark

可修改的共享页面主题

原有的 Google Reader 共享页面只有一个主题,现在 Google Reader 组提供了更多的主题供用户使用,看看我的共享页面效果

Google Reader Shared Page Theme

Therapy

上次说到洗牙,多位朋友在 Blog 和 Space 里表示关心,非常感谢,所以这里来点儿后续报导,免得大家挂念。

大家都说洗牙好,这一点在我身上充分得到了证实。将近三年的牙龈出血,简单的洗了次牙,真的好了。从洗完牙的第二天开始,刷牙和吃苹果的时候就再也没见流血了,效果可谓是立竿见影。所以,我非常推荐有长期牙龈出血病史同志尝试去洗下牙!

一个病遇到良医或者庸医,结果可能完全不一样。我还有个例子,大概从到北京实习开始,由于饮食和休息的不规律,嘴里经常有口腔溃疡,一般还比较厉害。刚开始用贴片,但是老没有效果,后来使用西瓜霜粉剂,虽然效果也不是很明显,但是粉剂洒上去之后,起码没那么疼了。今年春节,于洁妹子给我抓了六剂中药,回家让我妈熬了,每天一剂。这还是我第一次吃汤药,真苦啊!那句俗话:“良药苦口利于病!”又应到我身上了。从春节到现在三个月了吧,虽然还是出现了两次口腔溃疡,但都是在萌芽期就消失了,和我以前一疼四五天那种溃疡完全不可同日而语。

我以前对中药充满了不信任,现在看来,一些西药很难根治的慢性病,尝试一下中药疗法也无妨。我现在最大的愿望是:谁能(用亲身经历)告诉我鼻炎有什么有效的疗法啊?

=================== 我是跑题的分割线 ====================

昨天看到有同学在博客里贴出来余光中的《听听那冷雨》,忽然发现,自己好久没有读过这样美丽的中文了。这匆匆的生活啊!

于是下午跑去第三极书局,买了两本《左手的掌纹》和《荷塘月色》回来。一进书店,我就忍不住想买书,看惯了影印版计算机书那动辄六七十的售价,文学书显得好便宜啊!虽然挑了好几本书,理科生的思维还是占了上风,把名单记下来,只拿最便宜的两本去付帐。肯定有人奇怪,为什么?因为我觉得越贵的书在网店打大折扣的可能性越大,所以当然要在网店买喽!这就是一个穷学生的购书理念,不买盗版书,但一定要捡最便宜的地方买。

回来上网一查,果然不出我所料,《左手的掌纹》和《荷塘月色》在网店很少能打到八折以下的,但是我看中的另外两本书,在卓越-亚马逊的价格都是六折以下,比第三极要便宜许多,又免费送货,立马订购了。

在第三极,我也向服务员询问了一下柏杨先生的《丑陋的中国人》,答曰近日此书十分火爆,问询者比比皆是,但书店备书无多,业已脱销,正加紧配货。而我常去的两家网店也是暂无存货,只好等有机会再读了。柏杨先生生于河南开封,要说起来,我们还算是老乡呢。

走到中关村广场的时候,特地留意了一下,家乐福门口附近站了六七个警察和工作人员,很慵懒地走来走去,看来局势还是很平稳的。

二零零八年五一

上个月我居然发了 15 篇 blog,平均两天一篇,如此密集的发文,回顾一下真的堪比我当初郁闷那段日子了。只是遇到的几个小问题都比较有意思,就忍不住找点空闲时间写了下来。

读研究生以来发的能归到生活类的文章越来越少,大部分应该归功于我的女友。现在感情稳定,学习么乏善可陈,生活么千篇一律,无非是看看书,码码程序,逛逛网络。不过 xixi 是从来不看我的技术类博客的,用她的话说:“你那技术博客主题我不看都知道,总结起来就是三个:Linux 好;Ubuntu 好;Google 好!” 我仔细想了想,貌似说的挺靠谱。

这个五一节没有去南京看 xixi,主要是由于假期太短,作业太多,再说 xixi 也说六月份到北京来玩,那就少回去一趟吧。

案头的书越堆越多,看起来都没个头的,不知道何时能迅速解决掉一两本让我缓口气。

昨天晚上,蒙白银兄盛邀,和曹磊兄、蒋斌兄在北大家园餐厅小聚,与席者就国内外大事、研究生培养、各校食堂状况深入交换了意见,席间其乐融融,令曹磊兄乐不思蜀,不仅逃掉了两节课,还差点错过交作业的时间。这充分说明了在全民迎奥运的新形势下,各校研究生均表现出积极向上、团结一致,为了饭局,克服艰难险阻、不怕牺牲、勇往直前的可贵精神。这种精神非常值得我们大家共同学习,有饭局要聚,没有饭局制造饭局也要聚!

从安全的角度理解——为什么要使用 Google 的服务?

我很喜欢 Google 的一些服务 Gmail, Reader, Documents等等,而且我也一直大力倡导周围的人使用 Google 的服务。在我看到一些人仍在使用 163, sina 的信箱,抓虾的在线订阅器的时候,我不禁为他们通信的安全性担心。为什么使用 Google 的服务?一个很重要的原因是:因为它更安全。

目录:

1. 得到抓虾用户名密码的例子
2. 嗅探和可嗅探网络
3. 为什么 Google 更安全?
4. 为什么 163, sina, 抓虾 不安全?
5. 如何使用 Google 提供的安全服务?
6. 使用 Google 提供的安全服务的额外好处

1. 得到抓虾用户名密码的例子

首先,来看一个截图,看看国内某著名在线订阅器网站抓虾网对用户密码的保护有多脆弱:

Wireshark_Zhuaxia

请大家注意截图的最下方,能否看到这一行字:
email=solrex%40gmail.com&password=testtest&persistentCookie=true
solrex@gmail.com 是我在抓虾的注册帐号,而后面的 password 大家应该知道是什么东西吧!(不用试我的帐户,我的密码已经改了。)

有人会好奇这张截图怎么得到的,其实这是我在自己的电脑上用 Wireshark(一款著名的网络数据包分析软件,其前身是 Ethereal) 对通过我网卡的到抓虾网数据包进行监控的截图。Wireshark 实际上就是一款嗅探器,它能记录经过指定网络接口的所有数据包并进行分析。

2. 嗅探和可嗅探网络

为了解释如何才能得到上面的数据包,首先要介绍一下网络嗅探的原理:

嗅探,是一种黑客的窃听手段,一般是指使用嗅探器对数据流的数据截获。由以太网的知识我们知道,在以太网的冲突域中,每台主机的网卡都能接触到所有的数据包,如果数据包的目的地址是自己,网卡就接收数据包,并将包的内容向上层传递;如果数据包的目的地址不是自己,就将该包丢弃。那么如果网卡接收所有的数据包并对其进行分析呢?这就是所谓的“混杂模式”,将网卡设置为混杂模式后,就可以接收所有包,进而对同一网络中的其它主机的通信内容进行监听,这就是 Wireshark 进行嗅探的原理。

需要说明的一点是,在当前的网络下,直接进行嗅探并没有那么容易。上面所说的情况,只在以太网的冲突域中才能实现,而当前交换机的广泛使用,将冲突域限制到交换机和主机两点之间,除了自己没有其它主机,当然也无法直接对其它主机的通信内容进行监听。如果在交换网络下达到嗅探的目的,必须通过其它办法,比如 ARP 欺骗,这超出了本文的讨论范围,就不予介绍了。

虽然在交换网络下无法对其它主机进行直接嗅探,但是我们无法保证在我们的数据包经过的防火墙或者网关时候不会被监听。就比如在实验室的网络环境下,实验室的管理员在网络出口的防火墙处对数据包进行分析是易如反掌的事情。

所以我们总结一下,用户通信的数据包被监听可能发生在几种情形下:一、共享网络,网络用户通过集线器连接到网络;二、交换网络的结点不可信任,比如公司网络的出口防火墙管理员不可信;三、缺乏安全机制的无线网络,比如学校为学生提供的无线网络连接(用 WEP 加密传输的网络可以认为是缺乏安全机制);四、有ARP欺骗的交换网络。

由于很多网站的登录 session 是使用的 http 协议,在此协议下,用户名和密码都是通过明文传输的(抓虾和 sina 就是一个例子),所以当用户处在上述的网络环境下时,很有可能数据包被别人监听到。而数据包一旦被监听和分析,得到用户的信息易如反掌,南京大学小百合 BBS 最近的一篇文章:你还敢在教室中享受无线吗? ,就是一个很生动的例子。

3. 为什么 Google 更安全?

首先,因为 Google 采用了 https 协议来处理用户登录请求。https(Hypertext Transfer Protocol over Secure Socket Layer) 协议是指加强安全的 http 协议,正如它名字所示,它采用 SSL 来保证数据的加密传输。举个很有证明力的事实,如果你有任何一个银行的网上银行帐号,请打开你的网银登录窗口,查看上面的地址栏内容开头是不是:https://xxx.xxx.com/xxxx 。没有任何一家银行采用 http 协议处理网银登录请求,这说明了什么?http 协议不安全。

其次,因为 Google 使用可选的 https 协议来提供内容传输服务。虽然 Google 在其任何服务的登录请求处理中都是使用 https 协议,但是在认证完用户之后,和 Google 服务器的连接就转回到了 http 协议。这样虽然 Google 的用户名和密码不能被窃听到了,可服务的内容,比如 Gmail 邮件的邮件内容就会被恶意用户窃听到。那么如何使整个通信的内容都受到保护呢,就需要使用 Google 提供的可选 https 服务,只需要在你的浏览器地址栏内容的最前面 http:// 换成 https:// 即可。

4. 为什么 163, sina, 抓虾 不安全?

sina 和 抓虾 没有提供任何的帐户信息和内容的安全传输功能,所以在课堂上演示嗅探器工作方式的时候,演示者一般都会首先拿 sina 开刀,原因很简单,它是个大网站。

163 呢,比前面两个好一点儿,它提供了可选的帐户信息的加密传输功能,就是在登录 163 信箱的时候,在登录框下面有一个“增强安全性”的选项,如果勾选了增强安全性选项,163 就会用 https 来处理用户的登录请求。但是 163 仍然没有提供对用户内容的加密传输功能,即 163 的所有邮件在网络上都是明文传输

5. 如何使用 Google 提供的安全服务?

如果用户希望自己的帐户信息和传输内容都受到保护的话,那么就应该使用 Google 提供的 https 连接登录 Google 服务。比如Gmail 的 https 入口是:https://mail.google.com/ ,Google Reader 的 https 入口是:https://www.google.com/reader/ 。在 Google 其它的服务中,用户也可以简单地通过将地址栏的 http:// 换成 https:// 来选择使用安全传输。

6. 使用 Google 提供的安全服务的额外好处

使用安全的加密传输能保证自己传输的信息不被别人获取,这是显而易见的好处,但是使用 Google 的安全服务还有一点额外好处:避免自己的网络访问被关键词过滤。

有过访问敏感站点经验的同志可能都知道,如果网页中包含某些关键词,连接往往会被重置。就比如用户使用 Google Reader 订阅了某个激进的博客的RSS FEED,如果使用传统的 http 连接,当文章中包含敏感关键词时,Google Reader 就会与服务器断开连接。如果使用加密传输的话,传输内容就避免了被关键词过滤,就不会发生类似连接被重置的情况。

用 Google Reader 生成 Blogroll(侧栏链接列表) 和博客推介广告

我一直认为 Google Reader 是最好的在线博客阅读器,但是它的功能不仅仅是博客阅读器,下面介绍 Google Reader 还能为 Bogger 做的两个小功能。

一、用 Google Reader 生成 Blogroll(侧栏链接列表)

相信很多 blogger 都比较头疼于如何设置 blogroll:用博客程序自带的吧,不一定好看(尤其是Wordpress 自带的);自己写 HTML 吧,太费劲,尤其在添加/删除链接时,很麻烦s。那看看我用 Google Reader 生成的 blogroll 吧(也可直接到我博客主页查看效果):

Blogroll Demo by Google Reader

还是挺漂亮的吧,怎么生成的呢?其实方法很简单,如果你使用 Google Reader 来管理自己的博客订阅,只需要把你要链接的朋友的博客订阅放在一个 folder 里,比如我的就是 BlogRoll, 然后到 Settings->Tags 设置里,将 BlogRoll 这个 tag 的权限设置为 public 即可,如下图所示:

Blogroll Setting in Google Reader

看到 BlogRoll 那一行最后一个链接没?“add a blogroll to your site”,下面的操作我就不说了吧。(注意,需要博客程序支持添加 JavaScript源码,MSN Space和新浪一流恐怕没办法。)

这样做好之后,当你想在 blogroll 里添加/删除一个朋友的链接时,就可以直接在 Google Reader 里对 BlogRoll 文件夹添加/移除订阅即可。别忘了 Google Reader 也支持修改链接的名字哦!

二、用 Google Reader 生成博客推介广告

有自己的个人网站也是一件很麻烦的事情,不知道个人主页里应该写什么内容,咱不是什么牛人,也没什么可写嘛。如果页面挺空,就可以把自己的最新博客文章链接放上去啊,至少要在自己的个人主页上推广一下自己的博客嘛。看看我在一些页面上放的“博客推介广告”:

Blog AD By Google Reader

其实这是一个小 trick,Google Reader 不是支持将订阅内容共享出来嘛(就是上面那张图里的“add a clip to your site”),那么我当然可以只共享自己的博客内容喽。将自己的博客订阅单独放在一个 folder 里,然后“add a clip to your site”,^_^。

这样每次你一更新自己的博客,个人主页的链接就跟着更新了,当然了,也可以在某些支持 js 脚本的网站上做签名档...

三、(你不是学数学的吧,不是只有两个功能吗?)顺便推广一下 Firefox

知道上面的几个截图怎么生成的吗?没有使用任何其它程序,只用了 Firefox 的一个插件:Screen Grab ,功能强大吧!

Ubuntu 8.04 长期支持桌面版本 Linux 发布

[本博讯,北京时间2008年4月24日19点] Canonical 公司发布了最新的开源 Linux 操作系统发行版:Ubuntu8.04 LTS(长期支持)桌面版,Canonical 也同时发布了 Ubuntu 8.04 长期支持服务器版。

Ubuntu(音:oo-BOON-too[u:'bu:ntu:]) 8.04 LTS(Hardy Heron) 是 Canonical 公司自 Ubuntu 6.06 LTS 以来发行的第二个长期支持版本,它将提供对桌面版 3 年,服务器版 5 年的长期升级和服务支持。Linux Foundation 2007 年的调查结果显示,Ubuntu Linux 已经成长为桌面市场的后起之秀,占据了 Linux 桌面版本的头把交椅。同样,这次 Ubuntu 8.04 将以更完善的硬件支持,更漂亮的用户界面,更新更多的软件包选择,更方便的用户交互掀起一场 Linux 桌面系统的大革命。

Ubuntu 8.04 的完整下载地址列表:http://www.ubuntu.com/getubuntu/downloadmirrors

Ubuntu 8.04 的系统安装指导,常用程序安装,桌面效果截图,可以在这里找到。

如果你是新手也没有关系,一个小软件 Wubi 允许你在 Windows 下像安装应用程序一样轻松安装 Ubuntu Linux

另外,中国北京的清北DIY俱乐部目前宣布向全国提供免费 Ubuntu 光盘派送,每人可免费申请一套Ubuntu 8.04系统光盘(1DVD+1CD),详情见http://quickbest.com.cn/discuz/thread-26153-1-1.html

PS: 秀一个别人做的 Ubuntu Sticker:

Image

为什么 Gtalk 不支持视频聊天?

这是一个网友问我的问题,当时我的回答是:大概 Jabber 协议不支持吧,这个问题你应该去问 Google。但是当我搜索了一下 Gtalk 的帮助和网络上的内容后,居然没有发现这个问题的解答(可能是我搜索技术不到家),这就变成了一个有趣的问题。

为什么 Gtalk 不支持视频聊天?在咨询了 Wikipedia 之后,我发现我的回答基本是对的,因为 Gtalk 使用的聊天协议不支持。

Gtalk 使用的通信协议叫做 Jabber,因特网工程工作小组(IETF)已经将 Jabber 的核心 XML 串流协定以 XMPP(Extensible Messaging and Presence Protocol) 之名,正式列为认可的即时通讯及 Presence 技术。而 XMPP 的技术规格已被出版为 RFC 3920RFC 3921。所以在一般的讨论中,我们不区分 Jabber 和 XMPP。

从上面的介绍中我们也可以看出,XMPP 的技术是基于可扩展标记语言(XML)的,所以呢它有它的很多优点,比如:分布式(想像一下用电子邮件聊天),可扩展(XML命名空间的特性),弹性佳(可用在不同领域,比如网络监控,游戏),多样性(Jabber协议的公开性使你不必被一款聊天软件绑架),安全(利用已有的SASL及TLS技术)。

但是也正因为 XML,XMPP 协议有一些缺点,正是这些缺点给 Gtalk 带来了限制。

缺点一:Scalability(规模可伸缩度?)--> Gtalk 不支持群组聊天(Group Chat)。

XMPP 的可伸缩度不好,当进行多用户聊天或者提供发布/订阅服务时,XMPP 会带来很多 overhead(网络开销),这样会大大降低整个系统的通信效率。一些组织正在通过添加协议扩展来解决这个问题,就比如 2007 年 6 月 Google 在 Gtalk Gadget(像我们通常在Gmail窗口中看到那个)中加入了 Group Chat 功能,但是直到现在桌面版 Gtalk 仍然不支持 Group Chat。

缺点二:No binary data(无法传输二进制数据)--> Gtalk 不支持视频聊天。

XMPP 协议的数据包通常是被编码成一个长 XML 文档,限制了它直接传输原始二进制数据流的能力,所以使用 XMMP 协议的聊天工具的文件传输一般使用其它协议,比如 HTTP 来实现,如果实在无法避免用 XMMP 协议传输文件等,它一般使用 Email 中常用的 base64编码。

但既然这样,为什么 Gtalk 支持语音聊天呢?这就要说到另一个协议,XMMP 的扩展协议 Jingle,这是一个还没有被 XMPP标准正式采纳的扩展,而 Gtalk 采用的 Jingle 协议和已提交的草案也有所不同。Jingle 协议使得 Gtalk 支持 p2p 的多媒体互动,比如语音聊天功能。

那既然有多媒体功能扩展,为什么 Gtalk 现在不支持视频聊天呢?我不相信 Google 的工程师没有尝试添加视频聊天功能,可能的原因我猜想是视频聊天的性能达不到。猜想的依据是什么呢?Gtalk API 文档,Google 说:In the future, we plan to support SIP signaling as well. 如果 Jingle 能完美支持视频聊天,大概没有需要去支持另外一个类似的多媒体协议吧。

所以呢,我们可以看到虽然 Gtalk 的当前版本有内存泄露 BUG,而一年多来(2007年1月5日发布Gtalk 1.0.0.104) Google 仍然没有发布新版本,这说明 Gtalk 项目组的精力被其它更重要的东西占用了,这个东西会不会是对 Gtalk 视频和群组聊天的支持呢?我们拭目以待。

喜欢玩新软件的朋友可以尝试一下这个:Google Talk Labs Edition,里面有一些好玩的新功能!

重要评论:作者可能对xmpp还不是很了解,文章有很多的臆想,有些不太对。xmpp协议是个总称,它包括核心协议,扩展协议等(xep)等,事实上核心协议只规定了很小很基本的一些功能,大量的功能都是在xep中规定的。而xep在逐步完善中,其中的很多功能处于实验阶段,google可能是嫌麻烦,每一次协议更新都要修改软件,索性等协议功能稳定了再去实现。xmpp协议里面是有群组聊天的,叫muc,但google只实现了它的一个子集,叫 groupchat,而没有完整实现muc。视频聊天和音频聊天本质上是一样的。google可能就是再等xep中关于jingle部分协议的稳定以后再实现。而你看到的这句话:“In the future, we plan to support SIP signaling as well.”在google talk刚推出的时候就已有了。而且那个时候它还说会推出各个操作系统平台的版本。而如今呢?所以事情的发展是会变化的。还有google那时候说要支持 sip,并不是xmpp功能有什么问题,而是想使im用户能够统一起来,互联互通。因为sip和xmpp都是被ietf接受的标准协议。