2003年12月3日星期三

升级邮件过滤系统

将原来的 amavis-perl-11 升级为 amavisd-new, 除了保持原有的杀毒功能, 还可以配合使用 SpamAssassin 可以比较有效的过滤垃圾邮件.

我采用的是 amavisd-new + sendmail-dual 模式.

基本步骤记录如下:

  1. 升级 sendmail 到 8.12.10, 这个很简单, 需要的是 devtools/Site/site.config.m4 配置文件.
  2. 根据 amavisd 的说明书, 安装所需的 perl 模块.
  3. 建立 amavis 用户和组, 建立 /var/amavis, /var/virusmail 将他们的用户和组都设为 amavis, 权限为 750 和 700.
  4. 建立 /var/spool/mqueue-rx 目录, 将用户和组设为 smmsp, 权限为 770.
  5. 将 sendmail-rx.mc 和 sendmail-tx.mc 复制到 sendmail 安装目录下的 cf/cf 目录中, 运行 sh Build sendmail-rx.cf 和 sh Build sendmail-tx.cf, 然后将生成的 cf 文件(以及作为备份的 mc 文件)复制到 /etc/mail 目录下, 最后将 sendmail-tx.cf 文件链接为 sendmail.cf 文件.
  6. 复制 amavisd 文件到 /usr/sbin 目录, 将 amavisd.conf 复制到 /etc 目录中, 并修改其中的域名设置.
  7. 复制 local.cf 文件到 /etc/mail/spamassassin 目录中, 运行 sa-learn --rebuild -D, 然后将 /root/.spamassassin 目录下的文件复制到 /var/amavis/.spamassassin 目录下, 注意修改文件用户和组为 amavis.
  8. 复制启动教本 sendmail 和 amavisd 到 /etc/init.d 目录中, 并在 /etc/rc3.d 中加入链接 S81amavisd 指向 ../init.d/amavisd.
  9. 在 /etc/aliases 中加入一行 spamalert: xxxx@xxx.xx.xx 指向真正管理员的邮件地址.
  10. 使用脚本依次启动 sendmail 和 amavisd.

2003年11月21日星期五

Matlab 6.5的一个小问题

今天终于把Matlab 6.5在某些机器上无法运行的原因找出来了,罪魁祸首就是Java。Matlab自带的jre是1.3版本的,在一些机器上会出错,导致Matlab无法启动。将Matlab目录下的sys\java\jre\win32子目录下的jre更换为最新的1.4.2版就可以解决问题。

MathType 5.0的一个小bug

MathType 5.0在中文Office中使用时有一个小bug,就是如果公式中一行上出现两个以上带尖帽(Hat)的字符时,会产生乱码,出现中文字符。在MathType编辑器中正常,但是回到Office中就不正常了。升级到5.2以后解决问题。

2003年10月4日星期六

Haplotype Blocks in the Human Genome

This website provides summary of the SNP coverage of each of the 51 regions, and access to the raw genotype data in linkage file format for all genotype data utilized in this study.
http://www-genome.wi.mit.edu/mpg/hapmap/hapstruc.html

2003年9月19日星期五

in silico

In silico 是生物信息学的新名词,它是相对应于 in vivo (在活的有机体内) 与 in vitro (在试管中,在生物体外) 而产生的新名词,它强调使用电脑来解决生物学上的问题。

2003年8月29日星期五

OpenWebMail 升级(1.70-2.10)

  1. 备份 cgi-bin/openwebmail/etc/openwebmail.conf 和 cgi-bin/openwebmail/etc/sites.conf/ 目录下的配置文件。
  2. 删除原来的 cgi-bin/openwebmail 和 html/openwebmail 目录。
  3. 解压缩 openwebmail-2.10.tgz 文件到临时目录 tmp,将 tmp/cgi-bin/openwebmail 目录拷贝至 cgi-bin 目录下,将 tmp/data/openwebmail 拷贝至 html 目录下。
  4. 修改 cgi-bin/openwebmail/auth_unix.pl 文件,设置 $unix_passwdfile_encrypted 为 '/etc/shadow', $unix_passwdmkdb 为 'none'。
  5. 拷贝备份的 openwebmail.conf 到 cgi-bin/openwebmail/etc/ 目录,拷贝备份的 sites.conf 目录下的配置文件到 cgi-bin/openwebmail/etc/sites.conf/ 目录下。
  6. 修改 cgi-bin/openwebmail/etc/ 及其子目录中的文件的组用户为 mail,并且设置 cgi-bin/openwebmail/etc/sessions 目录为组用户可写。
  7. 执行 cgi-bin/openwebmail/openwebmail-tool.pl --init
  8. 根据上一步的提示对配置文件进行修改。
  9. 如果要关闭 WebDisk,在配置文件中设置 enable_webdisk 为 no,如果要关闭 SSH terminal,在配置文件中设置 enable_sshterm 为 no。设置 default_msgformat 为 text。
  10. 采用了新的 Quota 系统,一些选项已经无效:

reimplement the quota system in openwebmail

  • all modules (webmail, webcal, webdisk) share same set of quota settings.
  • different quota systems can be used in openwebmail by loading them as module.Two quota modules are available now:
    quota_unixfix.pl and quota_du.pl
  • old quota options were removed, including:folderquota, folderusage_thresold, cutfolders_ifoverquota, webdisk_quota
  • new quota options were added, including:quota_module, quota_limit, quota_threshold, delmail_ifquotahit, delfile_ifquotahit

2003年8月23日星期六

关于我的个人Blog

我上网也算比较早了,97年开始接触互联网的,也可以算是一个老网虫了。最早只是用的 SUN 工作站,所以只能看看 email,用 Telnet 上上 BBS。记得那时的水木清华还没有几千人在线的规模,曙光站的人气也还不错,在这两个 BBS 上学了很多东西。上网这么多年,但就是一直没有做一个自己的主页,是不是有点奇怪呢。其实也试着做过几个主页,但都是虎头蛇尾。主要的原因有两个,一是没有便于管理和更新的网站模式,二是找不到足够的网页内容。我的要求一向又比较高,于是就作罢了。后来就把主要精力放到了 ctex.org 的建设上面,直到不久前发现网络上出现了一股 blog 的风潮。什么是 blog ?相信每个人对这个都会有自己的看法。在我看来 blog 就是一种个人主页。例如现在的这个 Movable Type 就和我心目中理想的个人主页管理系统很接近。

空中楼阁这个名字其实来源于我的网名 aloft,因为 aloft 可以解释为 air loft。当然 aloft 这个名字原意并不是如此。aloft 是英文里的一个副词,意思是“高处;往高处”。最早是在曙光和水木清华 BBS 上注册帐号时,根据我的中文名字“凌云”在汉英字典里找了一下同义词,就选中了这个名字。现在看来这个名字还选的不错,在网络上还没有遇到同名的。还有一个好处就是在 BBS 上看用户列表的时候,是以用户名的英文字母排序的,所以我的名字很容易找到,呵呵。空中楼阁的意思是“悬于半空之中的楼台”,而这里是我在互联网上的家,一个虚拟的家,互联网不就是悬于空中的吗。空中楼阁还有另外一个意思,比喻虚构的事物或不现实的理论、方案等。每个人心中都会有很多理想或者幻想,也许它们是不现实的,但都是宝贵的、美好的。这里是我的家,我心灵的家……

欢迎到我的空中楼阁来做客!

2003年8月20日星期三

服务器升级维护

今天升级了一下服务器。先把 MySQL 升级到了 3.23.56。然后打算升级 PHP 时发现需要先升级 Apache,于是把 Apache 升级到了 2.0.47,再把 PHP 升级到了 4.3.2,把 Resin 升级到了 2.1.10。大部分服务都还正常,就是主页的 PostNuke 不工作了,也不报告错误,只是页面空白。怀疑是 PostNuke 版本太旧,不支持新版的 Apache 或者 PHP。到 PostNuke 主页上看了一下,果然是因为 PHP 新版本修改了一些缺省参数造成的。最后干脆把 PostNuke 也升级到了最新的 0.726,一切正常。

此外,把 PHP 的 GD 等图像支持功能打开了,这样以后装 IPB 的时候就可以支持防注册机的安全码认证了。

2003年8月15日星期五

我的空中楼阁

原来《我的空中楼阁》还是中学语文课本里的一篇散文。这是今天通过搜索引擎发现的。呵呵,留个纪念吧。


《我的空中楼阁》
作者:李乐薇
高中语文第三册

  山如眉黛,小屋恰似眉梢的痣一点。
  十分清新,十分自然,我的小屋玲珑地立于山脊一个柔和的角度上。
  世界上有很多已经很美的东西,还需要一些点缀,山也是。小屋的出现,点破了山的寂寞,好比一望无际的水面飘过一片风帆,辽阔无边的天空掠过一只飞雁,是单纯的底色上一点灵动的色彩,是山川美景中的一点生气,一点情调。
  小屋点缀了山,什么来点缀小屋呢?那是树!
  山上有一片纯绿色的无花树;花是美丽的,树的美丽也不逊于花。花好比人的面庞,树好比人的姿态。树的美在于姿势的清健或挺拔、苗条和婀娜,在于活力,在于精神!
  有了这许多树,小屋就有了许多特点。树总是轻轻摇动着。树的动,显出小屋的静;树的高大,显出小屋的小巧;而小屋别致出色,乃是由于满山皆树,为小屋布置了一个美妙的绿的背景。
  小屋后面有一棵高过屋顶的大树,细而密的枝叶伸展在小屋的上面,美而浓的树荫把小屋笼罩起来。这棵树使小屋给予人另一种印象,使小屋显得含蓄而有风度。
  换个角度,近看改为远观,小屋却又变换位置,出现在另一些树的上面,这个角度是远远地站在山下看。首先看到的是小屋前面的树,那些树把小屋遮掩了,只在树与树之间露出一些建筑的线条,一角活泼翘起的屋檐,一排整齐的图案式的屋瓦。一片蓝,那是墙;一片白,那是窗。我的小屋在树与树之间若隐若现,凌空而起,姿态翩然。本质上,它是一幢房屋;形势上,却象鸟一样,蝶一样,憩于枝头,轻灵而自由!
  小屋之小,是受了土地的限制。论“领土”,只有限的一点。在有限的土地上,房屋比土地小,花园比房屋小,花园中的路又比花园小,这条小路是我袖珍型的花园大道。和“领土”相对的是“领空”,论“领空”却又是无限的,足以举目千里,足以俯仰天地,左顾有山外青山,右盼有绿野阡陌。适于心灵散步,眼睛旅行,也就是古人说的游目骋怀。这个无限的“领空”,是我开放性的院子。
  有形的围墙围住一些花,有紫藤、月季、喇叭花、圣诞红之类。天地相连的那一道弧线,是另一重无形的围墙,也围住一些花,那些花有朵状有片状,有红,有白,有绚烂,也有飘落。也许那是上帝玩赏的牡丹或芍药,我们叫它云或霞。空气在山上特别清新,清新的空气使我觉得呼吸的是香!
  光线以明亮为好,小屋的光线是明亮的,因为屋虽小,窗很多。例外的只有破晓或入暮,那时山上只有一片微光,一片柔静,一片宁谧。小屋在山的怀抱中,犹如在花蕊中一般,慢慢地花蕊绽开了一些,好象群山的退了一些。山是不动的,那是光线加强了,是早晨来到了山中。当花瓣微微收拢,那就是夜晚来临了。小屋的光线既高于科学的时间性,也高于浪漫的文学性。
  山上的环境是独立的,安静的。身在笑屋享受着人间的清福,享受着充足的睡眠,以及一天一个美梦。
  出入的环境要道,是一条类似苏花公路的山路,一边傍山,一边面临稻浪起伏的绿海和那高高的山坡。山路和山坡不便于行车,然而便于我行走。我出外,小屋是我快乐的起点;我归来,小屋是我幸福的终站。往返于快乐与幸福之间,哪儿还有不好走的路呢?我只觉得出外时身轻如飞,山路自动地后退;归来时带几分雀跃的心情,一跳一跳就跳过了那些山坡。我替山坡起了个名字,叫幸福的阶梯,山路被我唤做空中走廊!
  我把一切应用的东西当做艺术,我在生活中的第一件艺术品-------就是小屋。白天它是清晰的,夜晚它是朦胧的。每个夜幕深重的晚上,山下亮起灿烂的万家灯火,山上闪出疏落的灯光。山下的灯把黑暗照亮了,山上的灯把黑暗照淡了,淡如烟,淡如雾,山也虚无,树也缥缈。小屋迷于雾失楼台的情景中,它不再是清晰的小屋,而是烟雾之中、星点之下、月影之侧的空中楼阁!
  这座空中楼阁占了地利,可以省去许多室内设计和其他的装饰。
  虽不养鸟,每天早晨有鸟语盈耳。
  无需挂画,门外有幅巨画——名叫自然。

2003年8月13日星期三

Blaster 病毒

这两天 Blaster 病毒闹的好凶,办公室里好几台电脑都中招了。下午系里的技术员专门过来帮助杀毒、安装补丁。微软的漏洞真实层出不穷啊,而且越来越严重了。还是 Linux 好!

关于该漏洞的说明在 http://www.microsoft.com/technet/security/bulletin/MS03-026.asp

该病毒运行时会不停地利用IP扫描技术寻找网络上系统为Win2K或XP的计算机,找到后就利用DCOM RPC缓冲区漏洞攻击该系统,一旦攻击成功,病毒体将会被传送到对方计算机中进行感染,使系统操作异常、不停重启、甚至导致系统崩溃。另外,该病毒还会对微软的一个升级网站进行拒绝服务攻击,导致该网站堵塞,使用户无法通过该网站升级系统。在8月16日以后,该病毒还会使被攻击的系统丧失更新该漏洞补丁的能力。

蠕虫中可以找到如下字符串:“Billy Gates why do you make this possible? Stop making money and fix your software”(比尔·盖茨,你为什么要使这种攻击成为可能?不要再挣更多的钱了,好好修正你发行的软件吧。)

2003年8月8日星期五

用 MT 管理静态页面

继续一边学习一边优化 MT 的模版。在网络上找到了几篇关于用 MT 管理静态页面的文章:Doing your whole site with MTBeyond the Blog。根据 Brad Choate 提供的方法,今天把所有相对固定的一些内容放到一个新开的 blog 单元,这样做的好处有:可以使用不同风格的模版来生成和管理静态页面,可以指定这些静态网页的路径名,而不是使用一串数字,这些静态页面不会被编入到 archive 目录里。

新的 blog 单元的 site path 和 archive path 都设置为主 blog 的 site path,这样两个 blog 的文件汇集在一个目录里。至于 blog 之间的通讯问题,我将公共内容的部分(包括导航条、右边的目录列表等)都放到了一个主 blog 的 mainframe.php 文件里,所有其他的页面都通过 PHP 的 include 命令来装入这个文件。这样就可以保证右边的目录列表永远是最新的。

其中机制其实很简单的,就是同时使用两个 blog 来管理同一个目录。一个是正常的 blog,自动生成各种分类和按月或者周存放的archive。另一个用来管理静态页面,这个不使用那些archive方式(删掉各种索引页和分类、时间archive的模版)。这个 blog 只是利用 MT 的web界面在线修改静态文件内容,避免了修改再上传的麻烦。第二个 blog 的分类则可以用来决定静态文件的具体路径,这需要使用一些 MT 模版的命令。此外就是需要简单的知道一点 PHP 语言。

中国警察的个人主页

无意中发现一个中国警察的个人主页中国法网--琴剑阁,真没想到中国的警察也能做出真么好的主页,而且已经引起了海外同行的关注。看来我们的各行各业都在与时俱进啊。更重要的是,通过这些网站让世界上更多的人了解中国。

2003年8月7日星期四

如何提高网站在Google中的排名

今天看到一篇关于如何提高网站在Google中的排名的文章,全面分析了 Google 的搜索排名机制。看来作者很是做了一番研究的,如果你对自己网站的排名感兴趣,不妨按照文章里的建议认真修改你的网页。我是懒得去一个个照做了,不过以后做网站的时候就会考虑这些因素了。

文章中还有很多链接都很有趣,比如有一个反对 Google 的网站就很有意思。还有关于 Google 搜索算法的说明,我比较感兴趣,不过没有那么多时间去研究了。有时间还是把手头的工作做完吧,赶快把 ctex.sty 发布出来先。

2003年7月28日星期一

在主页上显示 MathML 数学公式

能够在主页上显示漂亮的数学公式是一个很诱人的想法。MT-plugins.org 上面有一个 itex2MML 的插件,利用 itex2MML 可以把 itex (LaTeX 的一个子集)转换为 MathML。itex2MML 是开发来配合 Mozilla 使用的,而 Mozilla 是目前唯一能够直接解释 MathML 语句的浏览器。而 IE 需要装一个插件 MathPlayer 才能正确解释 MathML 语句。

为了让 itex2MML 生成的 MathML 语句能够在 MathPlayer 下面正常工作,我修改了 itex2MML 的源码。其实就是把 itex2MML 生成的所有标签都改为在一个名字空间里,这样才能让 IE 去启动 MathPlayer。详细的说,就是把 itex2MML 的源码中的 itex2MML.y 文件里的所有 < 都改为 <m: (文件开头的两个 #include 语句中的不能改),把所有的 </ 都改为 </m: 。然后用 make 编译得到 itex2MML 可执行文件,放到 /usr/local/bin 目录下(参考 itex2MML 插件的安装说明)。

最后需要修改 MT 的模版,每个模版需要改两个地方,一个是开头的 <html> 标签里面要加上
xmlns:m="http://www.w3.org/1998/Math/MathML"
其次在 <body> 标签之前加上
<OBJECT ID=MathPlayer CLASSID="clsid:32F66A20-7614-11D4-BD11-00104BD3F987"></OBJECT><?IMPORT NAMESPACE="m" IMPLEMENTATION="#MathPlayer"?>
重新生成 MT 的所有文件就可以了。

测试一下今晚的成果先 :)

后记:因为上面针对 MT 模版的修改会导致产生的文件不符合 XHTML 的校验,所以我去掉了这部分代码。因此现在你无法看到具体的效果,但是你查看网页的源文件仍然可以看到产生的 MathML 代码。

此外,我还找到了另外一种使得现有浏览器支持 MathML 的方法,就是在网页的头部加上 XSL (XML Stylesheet Language)的信息:

同时把网页保存为 .xml 文件。由于 IE 会因安全问题而拒绝使用远程的 XSL,你需要把 mathml.xslpmathml.xslctop.xslpmathmlcss.xsl 文件下载下来,保存到你的服务器上面,然后把上面语句中的
http://www.w3.org/Math/XSL/
改为你的服务器的相应地址。具体问题可以参考这篇文章

这种方法除了可以用于上面修改过的 itex2MML,也支持使用原来的 itex2MML 产生的页面,也就是不使用名字空间的 MathML 语言标签。

2003年7月26日星期六

增加 MT 编辑区的按钮

直接输入 HTML 代码总是比较麻烦的事情,MT 的编辑区提供了几个按钮,方便了一些常用的格式输入,但功能还是太少了。在网络上找到了几个解决办法。

htmlArea 是一个所见即所得的解决方案,而且是免费的,安装也很简单。你可以参考这里(英文),如果你不懂英文的话,可以看这里(中文)。花点时间看看 htmlArea 的说明文件和例子,你可以很容易的定制 htmlArea 的工具条。

htmlArea 提供了很不错的功能,我安装试用了一下,很好用。但是又把它卸掉了。也许是用惯了 LaTeX 的原因吧,我对所见即所得的东西都有点抵触,因为你不知道它把你的文字变成了什么样子,而且这种所见即所得和 Word 还有不同,你在浏览器上看到的最后效果很可能和你在 htmlArea 里的不同。此外,我想我的页面会以简洁明了为主,不会用到太多的复杂效果,用 htmlArea 就是大材小用了 :)

最后还是装了QinYu制作的增加文字编辑区的功能按钮。简单够用,和 MT 原来的风格融为一体,很好!

2003年7月25日星期五

终于改完模版了

最初想直接从网络上找一个合适的模版,可是很让我失望。虽然 BlogSkins.com 可以找到很多 MT 的 skin,但是很难找到满意的。于是参考我比较喜欢 billgrady.com 的界面自己修改了一个有自己特色的模版。发现其实修改模版很简单,当然你需要有一点 html 和 css 的知识,而我正好有那么一点点,足够了 :)

我的空中楼阁

花了两天,终于把自己的 blog 建立起来了。虽然很早就见过 blog 这个词,可是一直不知道是什么意思。前天为了给 ctex.org 找一个合适的 cms (content management system) 到了 opensourcecms.com 网站终于知道了 blog 是 weblog 的简写,也是 cms 的一种,多用于个人主页的建设。然后到 google.com 搜了一下,才知道这东西竟然在今年成为网络的一大热门!还有个中文名字叫“博客”,呵呵,有趣。但是我不喜欢这个名字。

我发现很多东西到了中国人手上总能来个大变样,blog 也不例外。我觉得 blog 应该是比较个人的东西,这是它和 bbs 以及公共网站的不同之处。blog 可以是个人的流水日记,心情记录或者知识笔记等等,而不应该仅仅为了发表而发表,还要借此来吵做。我最讨厌吵做了。

刚开始在 opensourcecms.com 上没有看到 MT,于是在 b2 和 Nucleus 之间做了一下比较。相对喜欢 b2 简洁的风格和易用的界面,但是它的功能和整体结构都输给了 Nucleus。于是就安装了一个 Nucleus 来试用。安装倒是很简单,可是遇到了一个奇怪的问题,就是无法生成 cookie,每换一个页面都要重新登录。在官方论坛上找了一个晚上尝试了各种方法也没有解决。据说这个问题会莫名其妙的消失,但我不可能慢慢等它哪一天变好,于是决定放弃。又到 google 搜索了一下,发现很多人推崇 MT。于是就有了现在这个 blog。

MT 的安装也不麻烦,但是它需要很多的 Perl 模块。还好我的服务器上就有 CPAN 的镜象,装起来还算快。网络上可以找到中文化的 MT,但是我决定不采用,就用官方的好了,因为汉化主要是管理界面,直接看英文反而更能理解原文的意思。

为了支持中文,要对配置文件做一些修改,主要是设置 mt.cfg 文件的两个地方:

NoHTMLEntities 1
PublishCharset UTF-8

如果你想用其他的编码,例如 GB2312 就把 UTF-8 改为 GB2312。使用 UTF-8 的原因是看到了QinYu朋友的一个建议,我觉得很有道理,Unicode 是未来互联网的趋势,不如趁早做起。

修改了一下界面,不过还是用的官方网站提供的样式 Plain Jane。等有时间了再慢慢修改出自己的特色来吧,还要学 css 先 :)