2007-06-29

Firefox的Smart Keywords功能

Firefox有个叫做Smart Keywords的功能很 方便,但很少人用到。用户在一个搜索网面页内的搜索框内右击鼠标,就会出现一个add a keyword for this search选项。点击后就会弹出一个添加到Bookmarks的对话框,填入在Bookmarks中显示的名字,并选择一个关键字。如常常查找学校内的 电话号码,每次都需打开页面http://www.uni-trier.de/uni/telefon.html,在输入名字。现在我为这个查找定义了一个关键字,fon,这样我只需在浏览器地址栏里输入 fon searchitem。这样返回的页面就是要查找的结果。

Zope目录下的默认文件

当URL不是以一个文件结束,而是以一个目录结束时,Zope会寻找该目录下的默认文件。这个文件不是像在Apache下的index.htm/index.html,而是一个ID为index_html的文件。如果这个文件不存在,访问以目录结尾的URL就会得到一个错误提示:
Resource not found
Sorry, the requested resource does not exist.
Check the URL and try again.
Resource: Folder instance at 2a9b97c210

Zope下调用external method

Michael为WBB写了web service,Thomas想在Zope下调用WBB的web service。安装完SOAPpy模块之后,写了一个小的测试脚本,放在了$INSTANCE/Extension目录下。在Zope中创建一个external method时, Module Name为这个脚本的名字,但不包含.py,Function Name为脚本中定义的函数名。

这个脚本能在命令行下执行,可是在Zope中调用总是得到错误提示:

Error Type: ImportError
Error Value: No module named SOAPProxy

在网上google了一下,没有立刻找到解决办法。想了一下,应该是Zope的执行环境和在命令行下的执行环境不同造成的。浏览了一下Zope的配置文件zope.conf,发现里面有个名为path的指令,默认值为

$INSTANCE/lib/python

由于SOAPpy安装在/usr/lib/python2.4/site-packages目录下,自然Zope就找不到它了。添加下面的语句后:

path $INSTANCE/lib/python:/usr/lib/python2.4/site-packages

问题就解决了。

用${}过滤变量

${}用于过滤变量的值有时候非常方便,不过每次用都记不住,只好写个例子在此供翻查:(提醒一下,别与命令替换操作符 $(command) 搞混了!另外在XSLT中可以用{$var}来得到一个变量的值)

假设 FNAME="/home/jia/tmp/test.1.sh"

那么有:

${FNAME}
显示变量的全部。

/home/jia/tmp/test.1.sh

${FNAME##/*/}
比对变量開端﹐如果以 /*/ 开头的話﹐砍掉最長的部份。

test.1.sh

${FNAME#/*/}
比对变量开端﹐如果以 /*/ 开头的話﹐砍掉最短的部份。

jia/tmp/test.1.sh

${FNAME%.*}
比对变量末端﹐如果以 .* 結尾﹐砍掉最短的部份。

/home/jia/tmp/test.1

${FNAME%%.*}
比对变量末端﹐如果以 .* 結尾﹐砍掉最长的部份。

/home/jia/tmp/test

${FNAME/sh/bash}
如果在变量中找到 sh ﹐將第一个 sh 替换为 bash。

/home/jia/tmp/test.1.bash

${FNAME//sh/bash}
如果在变量中找到 sh ﹐將全部 sh 替换为 bash。

/home/jia/tmp/test.1.bash

简单总结:

# 比对变量的的开始部分

% 比对变量的结束部分

一个符号表示去掉最短的部分,两个符号表示去掉最长的部分。

developerWorks 中国时事通讯

我已经有好几个星期没有收到IBM 每周一次的developerWorks的newsletter了,以为是我的订阅出了问题。今天有空上IBM的developerWorks 中国时事通讯网页一看,上面列出的newsletter也只到第303期(2007年4月24日)。看来不是我没有收到中文newsletter,而是IBM本身没有撰写。浏览网页时发现,页面上提供2004年和2005年的打包下载。这倒是很方便,省得我在Outlook里整理了。既然收不到中文的newsletter了,那以后就只能阅读英文的developerWorks Newsletter: Weekly Edition.

Ubuntu 7.04下的know_hosts

Ubuntu 7.04下的位于~/.ssh/的文件know_hosts与原来的版本和其他的GNU/Linux发行版本有所不同了。以前的版本能够看出一台远程主机对应的钥值。每一行为一个主机的标识值,分别是:
主机名 IP地址 钥匙类型 钥值
如:
urts96,136.199.199.96 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAwZMisKXEF2poSc WEujP+YLWKl53p80SpOVyp/h3UVxeAVHkLP0s1NkiW5mRlN4prUpxK5UuZ7yd5u9uc/2qMvK 38S2hC4P/aYki7rM8L+fHQPnjiLe+J0j/UfSvUjjPyOeXuSokWWHN8aatvlJQavvZOC36Hd8 In/NtwpzganJc=
当一台server重新装操作系统有新的钥匙值之后,从原来保存有旧的钥匙值的主机上登录这台server时,就会得到警告提示:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
dd:c4:44:74:80:f7:6b:99:4d:f1:c4:cd:df:65:3a:73.
Please contact your system administrator.
Add correct host key in /home/jiad4701/.ssh/known_hosts to get rid of this message.
Offending key in /home/jiad4701/.ssh/known_hosts:9
RSA host key for germa93 has changed and you have requested strict checking.
Host key verification failed.
lost connection
以前我的解决办法是在客户端的know_hosts文件中删除server对应的钥值。可是如果你的客户端是Ubuntu 7.04,你不能从这个文件中分辨出你要登录的server的钥值在第几行,只能全部删除文件里面的内容。

为Ubuntu添加ACL

apt-get install acl安装完之后,修改/etc/fstab文件,在需要acl支持的分区上添加acl,如:

原来的一行为:
UUID=e6d069bc-4bcd-4e4d-9730-f66473118a7f / ext3 defaults,errors=remount-ro 0 1

添加acl支持后变为:
UUID=e6d069bc-4bcd-4e4d-9730-f66473118a7f / ext3 defaults,acl,errors=remount-ro 0 1

要使acl生效还必须重新加载文件系统:
jia@germa93:~$sudo mount -o remount /

2007-06-15

设置notepad的默认字体

在windows XP 下修改注册表的[HKEY_CURRENT_USER\Software\Microsoft\Notepad]键下的lfFaceName,将其值改为 “Microsoft YaHei”。如果操作系统中在区域设置中把不支持Unicode程序使用的语言设为中文,则须将lfFaceName的值改为“微软雅黑”。

2007-06-14

本Blog第一帖!

8月底就要离开大学了,以后就不能再使用学校的各种网络资源了。所以对原来在系里服务器上用wordpress架设的Blog也不得不考虑搬家了。再加上最近系里的web服务器总是出问题,有时候想查找一下以前写的东西,却不能访问。这更让人有了搬家之意。

早先在wordpress.com也申请了一个账户,本想从系里服务器上的blog导出到wordpress.com上。可是,以前导入的post里很多都出现了乱码。blog的管理功能不提供批量删除Post的功能,又无法接触数据库,一个个去删又太麻烦,于是只好作罢。刚好使用google docs时看到可以在线撰写,然后发送到一定blog服务提供商。这让我想起了2年前申请的在blogger申请的账户。