2006-12-25

2007 Microsoft Office suites

Office 2007可谓版本繁多,除了Basic 2007(仅提供给OEM厂商),Home and Student 2007(149$),Standard 2007(399$),Small Business 2007(449$),Professional 2007(499$)和Ultimate 2007(679$)外,还有针对企业的Enterprise 2007,其中Enterprise 2007包括Professional Plus 2007 和 Groove 2007 以及 OneNote 2007。

Office Enterprise 2007 is the most complete Microsoft toolset provided for people who must collaborate with others and work with information efficiently, regardless of location or network status. Office Enterprise 2007 builds on the strengths of Microsoft Office Professional Plus 2007 with the addition of Microsoft Office Groove 2007 and Microsoft Office OneNote 2007, enabling people to collaborate and create, manage, and use information more efficiently, so they can deliver better results faster.

2006-12-22

在linux下安装cost

在ubuntu 6.10下安装tcl的一个工具包cost,在configure时报错:

checking for tclConfig.sh... Not found.

找遍整个电脑都没有这个文件。后来google了一下才知道,原来要安装了tcl8.4-dev这个包才能有这个文件
/usr/lib/tcl8.4/tclConfig.sh
执行 apt-get install tcl8.4-dev 之后再安装就没有问题了。

2006-12-16

开始使用windows vista了

在gepc183上装上windows vista Business了,Intel 3.O GHz 双核CPU,1G的DDR内存,就是显卡差些,是Intel G945主板自带的。安装很简单,不到一个小时就完成了。vista下已经没有boot.ini了,另外配置也大多写在xml文件里,不再是各式各样的txt文件了。连日志文件都用xml文件。

现在正在看MCSA/MCSE的Exam 70-270的Training Kit,学到一些以前不知道的东西。只是不知道是不是现在考"Installing , Configurring and Administering Microsoft Windows XP Prosessional"会不会有些过时了,因为Vista都推出来了,win xp被淘汰只是迟早的事了。

10 Things You Need to Know about Deploying Windows Vista

Tools You Need; Tools to Forget

Here’s a rundown of the tools you’ll be using when you roll out Windows Vista, followed by a list of the tools you can retire for good once Windows Vista arrives.

USE THESE:

  • SYSPREP This is the updated version, modified for Windows Vista.
  • SETUP A new installation tool for Windows Vista, replaces WINNT and WINNT32.
  • IMAGEX The new command-line tool for creating WIM images.
  • Windows System Image Manager A tool for creating and modifying unattend.xml files.
  • PEIMG The tool for customizing Windows PE 2.0 images.
  • Windows Deployment Services The new version of RIS, which adds the ability to deploy Windows Vista and Windows XP images, as well as Windows PE 2.0 boot images.
  • PNPUTIL This is the new tool for adding and removing drivers from the Windows Vista driver store.
  • PKGMGR Also new, this Windows Vista tool is used for servicing the operating system.
  • OCSETUP This replaces SYSOCMGR and is used for installing Windows components.
  • BCDEDIT A new Windows Vista tool for editing boot configuration data.
  • Application Compatibility Toolkit 5.0 This updated tool lets you assess whether your applications are compatible with Windows Vista.
  • User State Migration Tool 3.0 An updated tool for capturing and restoring user state, supports Windows XP and Windows Vista, as well as all versions of Office including 2007.
  • BitLocker The full-volume drive encryption capability included in Windows Vista Enterprise and Ultimate editions.

FORGET THESE:

  • Remote Installation Services RIS has been replaced by Windows Deployment Services (WDS) but still offers legacy support on Windows Server 2003; RIPREP and RISETUP are not possible with Windows Vista.
  • Setup Manager/Notepad Use Windows System Image Manager instead for editing unattended setup configuration files.
  • WINNT.EXE and WINNT32.EXE Use SETUP instead.
  • SYSOCMGR Replaced by OCSETUP, PKGMGR.
  • MS-DOS Boot Floppies Forget them. Use Windows PE!

2006-12-07

参加MLP的Seminar

昨天参加了由MLP组织的一个关于如何准备申请材料和参加面试以及如何应对Assessment-Center的活动。参加的人并不多12个,规模到很像一个实际参加Assessment-Center的人数。大家虽然没有作自我介绍,但是还是看得出连同我在内有4,5位外国人,不过其他几位显然来自东欧和俄罗斯国家。虽然在此之前已经阅读过相关的材料,但是前面的理论部分还是很有价值的,因为它比较有条理的列出了一些原则和通常的做法。其中提到一条,申请者要多创造机会和对方的负责人有直接的联系,比如面试之前打电话,或者申请材料寄出去最迟3周后还没有收到回复,应该直接打电话给对方,千万不要不好意思,放不开。另外若对方电话里回答一周后再给回复,此时抓住机会在电话里尽可能和对方约好,若一周后没有收到回复,再次打电话给对方。虽然就业形势不好,申请者也不应该过于谨慎,带着一种类似“乞讨”等待企业施舍的心态去参加面试。申请者和企业双方都满意才是最佳的结果。(这一点对于条件比较好的申请者应该更有用)后来的Assessment-Center实战感觉比较差,在智力题测试中不及来自东欧(猜测),小组讨论更不及几位德国同学(后来聊天才知道,两位都是学法律的,已经通过第二次国家考试了)。

活动结束后对自己在Assessment-Center中的表现实在是不满意。这对于在大公司申请非常不利,因为Assessment-Center在大企业里已经是一种常见的筛选申请者的方法。在智力题测试时,题目是主持者口头念出来的,总感觉不能跟上,没能弄清题目的描述,就仅仅听清问题,问题就结束了。听力还是不够好,另外注意力集中不够!

2006-11-29

参观马克思故居

参观马克思故居不是一两次了,今天却是因为受一个朋友之托为浙江工会的一个代表团参观马克思故居博物馆做一下翻译,因为专程来接待代表团的是马克思故居博物馆的负责人。故居博物馆对外开放时间是从上午10点开始,可是因为是负责人出面,德方特例答应早上8点就开放让大家参观,馆长亲自来讲解。约好8点,我7点59分到达门口时就看见一位很精神的女士站在故居门口。我猜十有八九她就是来接待代表团的负责人。上前打个招呼之后,相互认识了一下,这正是马克思故居博物馆的负责人Bouvier女士。。这时候客人还没有到,我本想掏出手机问一下代表团什么时候到,Bouvier女士却礼貌地说,让我们稍等几分钟吧,现在是交通高峰,有可能稍微会晚一些。还好,过了一两分钟代表团就过来了。简短欢迎之后,Bouvier女士就带着大家开始参观。参观过程中中方代表团负责人说起Bouvier女士三年前曾去过中国杭州,参加过“马克思主义研究在中国”的研讨会,还做过报告,还特地夸Bouvier女士的报告很成功,反响很好。我就这么如实的翻成德文,Bouvier女士只是笑而不答,然后悄悄地给我说,“大部分人都睡着了或在读报纸”。当时感觉就好像自己说谎被拆穿了一样,心里真是哭笑不得,为那些参加马克思主义研究的学者或官员们感到羞耻。通过Bouvier女士的讲解,个人感觉这位Bouvier女士的水平是很高的,说话优雅,很吸引人(参观结束后,Bouvier女士给我的名片证实了这一点,头衔是Prof. Dr.)。我想她做的报告还不至于让人昏昏欲睡。真希望国内类似的研讨会,培训活动还是少些好,省些银子给西部的学校好不好,即使是搞研讨会,也请真正感兴趣的人来参加,别请那些会上睡觉,结束后就知道领取一个红色证书然后合影拍照的同志。

2006-11-13

使用latex

早就听说过Latex的大名,阅读过关于它的几篇文章。可是以前都没有真正动手用它来写过东西。现在写论文轮到它了,试用之后觉得这套系统果然强大,让人喜欢。

从这里开始:

参考资料:

2006-11-03

几十个大学生让法兰克福火车站瘫痪

这周三(11月1日)今天几十名大学生为了反对Hessen州对大学生征收学费的政策,在火车站示威游行以示抗议。警察严阵以待,不敢大意。法兰克福火车站上面有24个站台,警察在站台内的铁轨上发现了学生放置的东西后来担心学生在列车启动时作出极端行动(卧轨),把所有的站台都给封了,所有的火车既不能进站,也不能出站。这样,火车站就因为这些学生而瘫痪了。我当时凑过去问一名警察,这样的局面还会维持多长时间时,那名警察说,他也不知道,只是根据德国的法律,公民在游行批准后能持续24小时。我的天,24小时,岂不是要在法兰克福呆上一天!我想,也许这就是民主需要付出的代价吧。很少赶上,这点代价还是值得的!

2006-10-16

nu02表现异常

nu02是Neue Universal获奖那台Dell电脑。最近这几天却问题不断,经常不能正常连接学校的文件服务器,不能播放音乐,不能打印等等。今天下午花了不少时间,却没有解决问题。问题主要出现在不少服务表现异常,如Arbeitsstattionsdienst,Windows-Firewall,Windows Media等类型为自动启动的服务不知道什么原因总是被自动关闭了,日志纪录的事件ID为7034和7031。后来联系URT的Herr Baltes使用windows xp的恢复功能恢复至出现问题前的状态,但是问题仍然没有解决。估计硬盘上应该有恶意程序导致了服务不能被启动,用最新的McAfee 8.0 patch 13扫描整个硬盘也没有发现病毒。后来Herr Baltes联系了微软的位于Karlruhe的Kompetenzzentrum,报告了我们遇到的问题。对方寄来一network report tool,运行完后,生成了一个cab报告文件。Herr Baltes把报告文件寄给他们,看那些微软专家分析完怎么解决问题。

2006-10-12

修改svnserve.conf文件

修改svnserve.conf文件时要注意,每行前面不能留有空格,否则会被视为格式不正确。

2006-10-11

Prototype-based JavaScript

这几天系统的学习了一下Javascript。以前对Javascript面向对象的特点没什么体会,经过这两天的学习慢慢有了些认识,对于文献中经常提到的Prototype概念也多少有了些理解。这个概念对理解Javascript中的继承还是很重要的。

下面是来自Core JavaScript 1.5 Guide的一个简单例子,可以看看如何继承在Javascript重视如何实现的。

       Employee
       |         |
       |         |
       |         |
Manager     WorkBee
                   |    |
                   |    |
    SalesPerson     Engineer

function Employee () {
this.name = ""
this.dept = "general"
}

function Manager () {
this.reports = [];
}
Manager.prototype = new Employee;

function WorkerBee () {
this.projects = [];
}
WorkerBee.prototype = new Employee;

function SalesPerson () {
this.dept = "sales"
this.quota = 100;
}
SalesPerson.prototype = new WorkerBee;

function Engineer () {
this.dept = "engineering"
this.machine = ""
}
Engineer.prototype = new WorkerBee;

2006-10-09

10.09 - 10.20 Herbstferien

10月9日到10月20日为中小学生的秋假,提醒一下自己:乘坐公共汽车又得看假期的时刻表了!!

通过重启系统来重新激活外接硬盘

我办公室的电脑上接了一个350GB的外接硬盘,做备份数据用。因此使用的时候并不多,没用的时候是处于没有激活的状态。以前我一直不知道当硬盘处于不活动的状态时,如果我在家想读取外接硬盘的数据,怎样才能激活它。今天偶然远程重新启动了一下电脑,发现外接硬盘马上又被识别出来了。这倒是解决了我以前的那个问题。

2006-10-02

风扇电源接口类型

2pin:直流电的正负极,一般红线为正,黑线为负,只可以通过调速面板来控制风扇速度。

3pin:增加的一条线为转速的控制线,一般为黄色,有了这根线的风扇可以让BIOS芯片读出风扇转速,并且通过软件进行调速。

4pin:在3pin的基础上增加了测温探头,能够读出当前散热器的温度,一般有这根线的风扇都有智能温控功能。

2006-09-30

认识wget的另外几个选项

控制下载文件的总量。当流量有限制时,这是一个很好的选项。
-Q quota
--quota=quota

Specify download quota for automatic retrievals. The value can be specified in bytes (default), kilobytes (with k suffix), or megabytes (with m suffix).

Note that quota will never affect downloading a single file. So if you specify
wget -Q10k ftp://wuarchive.wustl.edu/ls-lR.gz
all of the ls-lR.gz will be downloaded.
The same goes even when several URLs are specified on the command-line. However, quota is respected when retrieving either recursively, or from an input file. Thus you may safely type wget -Q2m -i sites---download will be aborted when the quota is exceeded.

Setting quota to 0 or to inf unlimits the download quota.

控制文件下载类型和文件所属域名
-A acclist --accept acclist
-R rejlist --reject rejlist
Specify comma-separated lists of file name suffixes or patterns to accept or reject.
You want to download all the GIFs from a directory on an HTTP server.  You tried wget http://www.server.com/dir/*.gif, but that didn't work because HTTP retrieval does not support globbing.  In that case, use:
wget -r -l1 --no-parent -A.gif http://www.server.com/dir/

-A.gif means to download only the GIF files, -A "*.gif" would have worked too.
-D domain-list
--domains=domain-list
Set domains to be followed. domain-list is a comma-separated list of domains. Note that it does not turn on -H.

--exclude-domains domain-list
Specify the domains that are not to be followed.

指定文件下载后保存的目录
-P

2006-09-24

Evolution启动出错

今天启动Evolution 2.6时发现启动出错,无法读取配置文件,错误提示为:
Error: An error ocurred while loading or saving configuration information for Nautilus. Some of your configuration settings may not work properly。

点击OK之后,又出现提示:
Adding client to server's list failed, CORBA error: IDL:omg.org/CORBA/COMM_FAILURE:1.0

察看/var/log/messages日志文档,发现纪录:
Sep 24 18:48:33 localhost gconfd (jiad4701-24732): Failed to get lock for daemon, exiting: Failed to lock '/tmp/gconfd-jiad4701/lock/ior': probably another process has the lock, or your operating system has NFS file locking misconfigured (Resource temporarily unavailable)
于是把ior文件改名后再启动evolution就没有问题了。
jiad4701@gepc188:/tmp/gconfd-jiad4701/lock$ mv ior ior.bak
不知道这个问题的症结在哪儿。

2006-09-23

删除HTML标记

删除HTML文件里的标记,看似一个简单的文本替换,但是关键是如何写匹配的正则表达式。


像下面这样的命令是不能完成的。
$ sed -e 's/< .*>//g' myfile.html


因为当 sed 试图在行中匹配规则表达式时,它要在行中查找最长的匹配


解决办法是,不输入“'< ' 字符后面跟有一些字符并以 '>' 字符结束”的规则表达式,而只需输入一个“'< ' 字符后面跟有任意数量非 '>' 字符并以 '>' 字符结束”的规则表达式。这将与最短、而不是最长的可能性匹配。新命令应该是:


$ sed -e 's/< [^>]*>//g' myfile.html

2006-09-20

有关德国2006年的数字

德国的联邦统计局和分别位于曼海姆和柏林的两家研究调查机构共同发布了Datenreport 2006,收集整理了关于德国2006年的各种统计数据。联邦统计局的网页提供PDF文件全文下载

2006-09-19

Evolution的一个小问题

在使用Evolution 2.6.1时有时会得探出对话框,提示一个错误:
"Error while Expunging folder.
Error storing `~/.evolution/mail/local/Inbox (mbox)': Summary and folder mismatch,even after a sync."

解决办法是删除“~/.evolution/mail/local/Inbox.ev-summary”文件。

这应该是Evolution的一个Bug, http://bugzilla.gnome.org/show_bug.cgi?id=213072 。

在Ubuntu下安装zope 2.9.2

安装很简单,执行命令:

sudo apt-get install zope2.9

zope会被安装在/usr/lib/zope2.9/目录下。

执行/usr/lib/zope2.9/bin/mkzopeinstance.py可以创建一个zope instance。启动如果使用/ets/init.d/zope2.9脚本,总会报告找不到zope instance,无法启动。不过使用$instance/bin/zopectl脚本启动没有问题,只不过默认得端口不再是8080,而是9673。不知道在Ubuntu下安装这个版本,为什么默认端口会被改掉,8080端口保留给什么程序用呢。

2006-09-16

Outlook 2007 下修复pst文件

前段时间使用Outlook 2007程序不时死掉,因此暂时放到了一边。今天在网上看到微软发布了Office 2007 Beta 2 Technical Refresh,便去下载了一个升级文件,office2007b2tr-kb000000-fullfile-en-us.exe,个头不小,赶上Office 2003 professional的安装文件了,共507M。安装这个文件时间也花去了好几分钟时间,并且安装完成之后要求重启。重启之后打开Outlook 2007,发现外观上有了一些细微的改变,简单的整理了一下2006年的邮件,删除和移动了一些不重要的邮件,关闭Outlook 2007。没想到再打开这个程序时,就报错,说我的Outlook.pst不是一个personal folders file,Outlook无法打开。这下可坏了,我的重要邮件和联系人都在这个文件里,虽然有备份,可是是一个月前的。在网上搜索一番之后,知道微软提供一个叫做scanpst.exe的程序,用于修复损坏的pst文件。新版的Outlook安装时所带的scanpst.exe文件的位置与以前版本不同,它位于D:\Program Files\Office12\Office12目录下。用这个程序修复之后,Outlook能正常启动打开那个pst文件了,只是不知道有没有丢失邮件。看来beta版的东西使用还是要谨慎。

2006-09-13

Outlook 2003发信失败

从昨天中午开始,我就不能使用我的Outlook里的大学账户发信了。发信总得到错误提示:

Fehler (0x8004210B) beim Ausführen der Aufgabe "rzmail.uni-trier.de - 
Nachrichten werden gesendet": "Timeout beim Warten auf eine Antwort 
vom Postausgangsserver (SMTP). Wenn Sie diese Meldung weiterhin 
erhalten, wenden Sie sich an Ihren Serveradministrator oder Internetdienstanbieter."

琢磨半天,联系学校的postmaster和网管都没解决问题。后来重新启动outlook,问题到解决了!!

2006-08-24

复制管理员账户桌面上的快捷方式

最近这两天,不少新的电脑(Dell Optiplex GX620,Pentium D 820 2.8GHz 双核CPU,2G DDR2 内存,150GB SATA硬盘,256MB ATI Radeon X600显卡,DVD光驱,DVD刻录机,19寸Eizo液晶显示器,USB键盘和鼠标)已经分发到了SFB 600的工作人员手里。在为他们安装FuD程序时,安装程序只在管理员的桌面上创建快捷方式,并不会为所有用户创建一个快捷方式。因此得为所有用户在C:\Dokumente und Einstellungen\All Users\Desktop下手动创建快捷方式。于是我把C:\Dokumente und Einstellungen\Administrator\Desktop下的快捷方式复制到C:\Dokumente und Einstellungen\All Users\Desktop下。可是这样在管理员账户的桌面上就会有两个快捷方式。在后来的安装中为了避免这一点,我执行剪切操作。没想到问题就来了。普通用户桌面上那个的快捷方式根本不可用,图标不对,属性也无法察看,估计应该是和windows系统下文件权限有关。因此遇到这种情况只能复制那个快捷方式文件,而不能剪切。

2006-08-23

在Ubuntu下安装常用程序

安装apache2:
apt-get install apache2

安装MySQL:
apt-get install mysql-server, mysql-admin

安装php5:
apt-get install php5
apt-get install libapache2-mod-php5
apt-get install php5-gd,php5-mysql, php5-mysqli, php5-xsl, php5-xmlrpc
apt-get install imagemagick
这样LAMP就架设好了!

Ubuntu默认安装不带ssh server

收到Ubuntu寄来的光盘很久了,只是放在光驱里看了看Live CD。今天腾出些空在gepc188上安装了Ubuntu 6.06。安装过程很简单。用光盘启动后会自动运行光盘上的Live系统,桌面上会有一个install的链接,便于用户安装。整个过程除了开始选择语言,键盘布局和分区外,其他都不用用户参与。安装完配置好网络后发现竟然没有ssh server,这可是其他版本默认的配置。不过要安装open ssh server也非常的简单,只需执行:

sudo apt-get install ssh

如果网络连接好,安装很快。安装完毕后ssh服务自动启动。以前一直用suse,接下来的几天用这台机器熟悉一下debian的风格,尤其是早闻大名的apt。

免费的词典软件StarDict

StarDic是一个用C++实现的开源词典软件,能够运行在GNU/Linux, FreeBSD, Solaris, Win32多个平台上,当前的版本为2.4.8。要在Windows上使用需先安装GTK+ Runtime Environment。软件本身没有包含字典文件,只有1.2M,因此安装完毕后可以根据自己的需要下载字典文件,解压缩后放至软件安装目录下的dic目录下即可。记得以前ETI的Markus曾经要找个汉英或汉德的字典。当时不知道这个软件,我把金山词霸推荐给他,不过效果实在是不好。当时金山词霸程序的菜单在Markus的windows 2000德文操作系统上不能正常显示,让我很是尴尬。

2006-08-22

MS Access与MySQL

Kompetenzentrum的秘书Frau Hallmann用Access做了一个包含KZ全体员工的信息,包括常见的联系方式,办公室,合同类型,合同时间等等。现在她想把那些可以公开的信息发布到Zope Webserver上,于是我把Access的数据导入到了MySQL数据库中。因为她还用Access做了一些输入框,便于输入数据。如果每次在她更新了Access数据后,都手动来把更新提交到MySQL数据库里,这样显然不方便。一个简单的解决办法是安装MySQL Connector/ODBC 3.51,然后使用Access作为输入前端,用MySQL作为存储引擎。

2006-08-21

Compiling tcl for Windows

In order to compile Tcl for Windows, you need the following items:

* Tcl 8.4.12 source distribution (or the latest patch release)
* Visual C++ 5.x or greater.

In the win subdirectory of the source release, you will find makefile.vc. This is the makefile for the Visual C++ compiler. You should update the paths at the top of the file to reflect your system configuration. Now you can use make (or nmake for VC++) to build the tcl libraries and the tclsh executable.

2006-08-20

最惨重的海难

以前看电影Titanik,以为这就是人类历史上最惨重的海难了,死亡人数估计过千。今天在浏览中文维基的但泽条目时发现,二战时苏军攻击德军邮船造成的海难人数达到了7700人。足以可见人类自相残杀才是最可怕的。
人类历史上最惨烈的海难事件:1945年1月20日,25893吨位的德国邮船“威廉号”在但泽受到苏联S-13潜艇的鱼雷攻击,7700人死亡。

2006-08-18

免费的Web IDE: Apatana

Apatana是一个用java实现的免费IDE,用于编辑HTML,CSS,Javascript,非常适合开发动态网页。除了作为单独的编辑器运行外,Apatana还可以作为Eclipse插件运行。现在ajax越来越流行,Apatana也集成了一些常见的library,如Dojo,MochiKit,Prototype,Rico, Yahoo UI等。Apatana除了有不错的Tutorial外,还有不少视屏,帮助新手入门。

2006-08-11

Unix下的另一个下载工具 curl

At first blush, wget and curl seem similar: Both download files non-interactively. They each have one large difference distinguishing them, however, among many smaller ones: curl supports sequences and sets in specifying what to download, which wget does not, while wget supports recursion, a feature missing from curl.

The programs have plenty of other differences. The full list of curl's features can be seen at "FeaturesWhat Can curl Do" (http://curl.haxx.se/docs/features.html), while some of wget's are listed at "Overview" (www.gnu.org/software/wget/manual/html_node/Overview.html#Overview). The cURL site has a chart comparing curl to other, similar programs at "Compare cURL Features with Other FTP+HTTP Tools" (http://curl.haxx.se/docs/comparison-table.html); while informative, the chart is (unsurprisingly) a bit biased toward curl.

Here's an example that uses curl's capability to support sequences in specifying what to download. The excellent National Public Radio show This American Life makes archives of all of its shows available for download on its parent website in Real Audio format (why they chose Real and not a more open format is a mystery). If you want to download 10 of these Real Audio files, just use the following:
$ curl -O http://www.wbez.org/ta/[1-10].rm
[1/10]: http://www.wbez.org/ta/1.rm --> 1.rm
--_curl_--http://www.wbez.org/ta/1.rm
Notice how you used [1-10].rm to specify that you wanted to download 1.rm, 2.rm, 3.rm, and so on. If WBEZ had instead named the files one.rm, two.rm, and three.rm, for example, you could have used a part set instead:
$ curl -O http://www.wbez.org/ta/{one,two,three}.rm
The -O (or --remote-name) option is absolutely required. If you don't use it, curl writes the output of the download to STDOUT, which means that your terminal will quickly fill with unusable goobledygook. The -O asks curl to write out what it downloads to a file, and to use the name of the file being downloaded as the local filename as well.

wget的几个选项

以前在使用wget时用得比较多的选项包括 -c(续传),-r(递归),-np(不下载父目录),-i(读取一个文件来获得下载地址),-l(下载深度)。今天又学习了几个很有用的选项: -E,-k,-p:

ping命令的一种不常见结果

ping是用来诊断网络状况最常用的命令了,常见的结果通常是两种。一种返回数据包达到指定主机的时间,另外是指定主机不响应ping命令而得到超时的结果。今天第一次碰到这种不常见的结果:
TTL Expired in Transit
德语表达:Die Gültigkeitsdauer wurde bei der Übertragung überschritten.

此错误消息表示所需跃点的数目超过了“生存时间”(TTL)。通过使用 ping-i 参数增加 TTL。可能存在路由循环。使用 tracert 命令检查是否是配置有问题的路由器导致了路由循环。

更多信息参看微软知识库的文章

与ssh有关的一个小命令:ssh-copy-id

以前看过不少类似的文章写如何使用ssh不输入密码登录到远程主机。其中中间总会有一步将在本地生成的秘钥对中的公钥拷贝到远程主机,通常的做法都是使用scp命令来拷贝,其实ssh的开发者已经为广大用户想到了这一点,并且提供一个命令 ssh-copy-id 来完成私钥的复制。
NAME
ssh-copy-id - install your identity.pub in a remote machine's authorized_keys
SYNOPSIS
ssh-copy-id [-i [identity_file]] [user@]machine
例如:ssh-copy-id -i .ssh/id_dsa.pub jia@gepc188

2006-08-09

Windows xp下使用windows explorer发布图片到网页

如果图片位于映射盘的网络硬盘第一级目录下,那么当在windows explorer(Windows XP pro + SP2)里右侧选中这些图片时,左侧的选项中不会出现"发布到网页",而当把图片拷贝到本地硬盘后或在映射硬盘的第二级目录下选中图片文件,左侧就会出现"发布到网页"的选项,不知道这个算不算是windows xp的一个小bug。

2006-08-06

认识grep的几个不常用选项

grep的功能很强大,我用得比较多的选项是 -rsl,列出包含关键字的文件。最近发现grep还有几个选项在查找时虽不常用,但在处理文本时在某些情况下还是很实用的:

-A NUM, --after-context=NUM
打印匹配行后的NUM行

-B NUM, --before-context=NUM
打印匹配行前的NUM行
-C NUM, --context=NUM
打印匹配行前NUM行和后NUM行

-w, --word-regexp
精确匹配

2006-08-04

涂鸦之作,版权所有,严禁覆盖

今天去学校主楼AB楼帮Prof. Raphael解决一个电脑问题,发现有工人在趁学校放假粉刷楼道的墙壁。楼道里一点刺鼻的异味都没有,不得不赞一句德国的涂料就是好。不过更让我惊奇的倒是墙上的涂鸦之作被工人用塑料布和胶条小心翼翼地覆盖起来了,很明显是为了保护那些土压不被新刷的涂料覆盖。这些涂鸦主题各异,当然少不了了性的主题,毛主席的头像也不止出现一次。我忍不住问了一下正干活的人,为什么对这些涂鸦之作如此小心对待。工人告诉我,这是大约20多年前,当时的一批艺术家发起的一场运动,到处涂鸦,反映当时的各种主题。这些作品此后一直受到保护,因此即使今天刷墙也要好好保护一番。此等事恐怕也就在欧美国家才能如此!

2006-08-03

分析fud server的日志文件

Giesla想要一些关于fud server的统计数据,因此得简单处理fud server的日志文件。平时也就用用vi,grep之类的小工具,或者使用现成的工具。现在这个server log的格式不是标准格式,只好自己动手了。从简单的学习sed开始吧。

2006-07-31

Zope export outside zope/使用wget来导出zope文件

以前每次导出zope的某个文件夹都要进入到ZMI的web interface里,一直希望能有脚本在命令行下完成。今天在网上找到一个脚本,可以实现在命令行下导出的功能。

使用wget来导出:
wget -O 3urts96.zexp http://username:password@urts96.uni-trier.de:8080/Projects/2urts96/manage_exportObject?download%3Aint=1&submit=Export'

Code:

2006-07-29

subversion+Outlook

Outlook是我常用的程序了,经常用里面的notes记录一些小东西。虽然网上有google notebook,也有 textsnipptes 这样的工具可用,但有时还是不如使用本地的方便。由于我经常在不同的机器上用outlook,于是把pst文件放在了网络硬盘上。可是同一时间只允许一个程序读取这个pst文件,当在outlook里关闭这个文件后,必须让outlook完全退出才能完全解锁这个文件,这样其他机器上的outlook程序才能读取它。

今天突然想,能不能把这个文件提交到subversion里,在各个本地check out一个副本,修改完后再提交到版本库,不知道这样能不能解决我的问题。

2006-07-28

frames的不同编码

当同一个页面的多个Frames使用不同的编码时,IE 6.0 的处理要好于Firefox 1.5。IE 6.0对于不同的Frame使用不同的编码,而Firefox 1.5对于多个Frames使用同一种编码,如果多个Frames的编码不一致,这样的页面在Firefox下显示就有问题了。

2006-07-27

update ilias 3 to ilias 3.6.5

Bitte beim nächsten Update nicht vergessen, im Homeverzechnis des Ilias 3 Webverzeichnis immer eine Link machen:
ln -s /studipserv/ilias3data/data data

Da sind die Daten der verschiendene ilias 3 clients.

2006-07-26

解决SVN 1.32 windows版本命令行显示乱码

我在windows XP下使用SVN 1.32时发现svn在本地化信息时一些字母没有正确显示,如得到提示:
Geben Sie 'svn help' f?\195?\188r weitere Hilfe ein.
其实本应该是Geben Sie 'svn help' für weitere Hilfe ein.

解决办法是设置环境变量 APR_ICONV_PATH,让它指向svn目录下的iconv目录,如在我的机器上是 D:\Programme\svn-win32-1.3.2\iconv 。

2006-07-25

convert MyISAM to InnoDB

MySQL的文档说InnoDB类型的表在处理数据比较大时,效率要比MyISAM类型好。urts52上有个字典数据库的数据为6.4个GB,不算小了。于是想把这个数据库的所有表从MyISAM 类型转换成 InnoDB类型,常见的办法是。
1. Dump the database with mysqldump
2. Change TYPE=ISAM to TYPE=INNODB
3. Add entries to /etc/my.cnf and restart MySQL
4. Load the database with mysql

不过如果MySQL server已经支持InnoDB了,可以用更简单的办法,如转换单个表的类型:

alter table mytable type=InnoDB;如果要转换一个数据库所有表,可以用:

for t in $(mysql --batch --column-names=false -e "show tables" mydbname);
do
mysql -e "alter table $t type=InnoDB" mydbname;
done


如果要转换一个数据库带有某个特定前缀的表或忽略某些表,可以搭配grep来使用:

for t in $(mysql --batch --column-names=false -e "show tables" mydbname |grep "include_this");
do
mysql -e "alter table $t type=InnoDB" mydbname;
done
for t in $(mysql --batch --column-names=false -e "show tables" mydbname | grep -v "exclude_this");
do
mysql -e "alter table $t type=InnoDB" mydbname;
done


或者直接输入多个表的名称: for t in table_1 table_2 table_n;
do
mysql -e "alter table $t type=InnoDB" mydbname;
done

2006-07-19

用junction创建windows 2000/XP下的symbol links

Windows 2000 and higher supports directory symbolic links, where a directory serves as a symbolic link to another directory on the computer. For example, if the directory D:\SYMLINK specified C:\WINNT\SYSTEM32 as its target, then an application accessing
D:\SYMLINK\DRIVERS would in reality be accessing C:\WINNT\SYSTEM32\DRIVERS. Directory symbolic links are known as NTFS junctions in Windows. Unfortunately, Windows comes with no tools for creating junctions - you have to purchase the Win2K Resource Kit, which comes with the linkd program for creating junctions. I therefore decided to write my own junction-creating tool: Junction. Junction not only allows you to create NTFS junctions, it allows you to see if files or directories are actually reparse points. Reparse points are the mechanism on which NTFS junctions are based, and they are used by Windows' Remote Storage Service (RSS), as well as volume mount points.

mysqldump: Error 2013

今天写了个小的脚本,把MySQL的数据从urts52复制到urts96时,运行时得到一些错误:
copying DWBdatabase4cd
mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table `TEXT_H` at row: 23854
copy database DWBdatabase4cd finished!
now copying DWVdatabase2
mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table `lemma` at row: 9251

出现这个问题的原因很有可能是max_allowed_packet变量的值设置太小了。
这儿有一个关于这个问题的讨论,和参看MySQL手册中相关的部分

2006-07-18

MySQL区分用户名大小写

以前一直没有注意MySQL中用户名大小写的问题,因为用户名一般都是小写的。今天Ansgar给我设置了一个MySQL账户,用户名为Dingjun。这样我用小写的用户名登陆
jiad4701@urts96:~> mysql -u dingjun -p
Enter password:
ERROR 1045 (28000): Access denied for user 'dingjun'@'localhost' (using password: YES)

就得到错误提示。使用区分大小写的用户名就没有问题:
jiad4701@urts96:~> mysql -u Dingjun -p
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 264184 to server version: 4.1.13
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

2006-07-14

认识Apache Forrest

最近一直在弄Apache Cocoon,今天抽空看了一下Apache Forrest。这也是一个web publish framework,其中包括了Apache的很多项目,当然也包括cocoon。Forrest支持静态和动态发布网页,对于制作项目文档和基于XML/XSLT的网页开发是个很好的工具。Forrest目前还处于发展的初期阶段,发布的最新版本为0.7,开发版本为0.8。Forrest提供一些项目快速开发支持,如用forrest seed命令创建一个项目文档的基本结构,这一点马上让我想到了ruby on rails,不过ruby on rails好像是不支持静态发布网页的。

2006-07-13

在vim中连接行

以前使用vi总不知道如何把当前行的下一行移上来,常常是通过做剪切和粘贴的工作来完成,其实用一个命令就可以完成。今天在网上看到怎么做了:
J:  将下一行连接到当前行的末尾
nJ:连接后面n行

2006-07-12

学习Xinclude

以前经常看IBM developerworks的文章,今天在网上想学习一下Xinclude,才发现MSDN也有不少好文章,如这篇将 XML 文档与 XInclude 合并在一起


这儿是实现Xinclude的一个列表(截至2003年6月),Cocoon榜上有名

2006-07-09

FOP and Embedding Fonts under Cocoon

在cocoon 2.1.9自带的文档里提到FOP and Embedding Fonts under Cocoon,但是里面的内容显然已经过时了,不是针对cocoon 2.1.9版本,如果按照文档的做法无法为cocoon的FDP serializer添加其他的字体。下面是我为cocoon 2.1.9的pdf serializer添加Arial Unicode MS字体支持的过程。

让FOP生成支持多语言的pdf文件

在使用fop 0.20.5生成pdf文件,当fo文件里出现不在base-14里的字符时,这些字符在生成的pdf文件里就变成了#符号,看了一下FOP的FAQ,发现原来是FOP里默认的字体不支持Unicode的原因。在windows上有个字体Arial Unicode MS是支持Unicode,于是执行下面的命令为这个字体生成metric file。

2006-07-07

xsl和xslt文件扩展名的问题

以前为StudIP生成pdf文件接触过xsl,但是一直搞不太清楚为什么会有xsl和xslt两个不同的文件类型。在XML Spy中创建文件时也可以选择是创建xsl文件还是xslt文件。

如果选择创建xsl文件,则程序生成的文件头为:

2006-07-06

用firefox访问非常规port的网页

今天为装zuccaro,随便选择了一个端口6000,用IE和Opera访问都没有问题,但是没想到用firefox访问时却得到提示:
This address is restricted      

This address uses a network port which is normally used for purposes other than Web browsing. Firefox has canceled the request for your protection.

后来在google上找到了解决办法:
The only way to fix this problem is to add a new variable to Firefox's configuration.
You do this by:

1. Entering about:config in the URL bar.
2. Right click the list that is displayed and choose New->String
3. Enter network.security.ports.banned.override as the name of the new string and click ok.
4. Enter the ports you want allowed, seperated by commas (like: "101,800,5000"). Click OK.

2006-07-05

安装 zuccaro

学校的Kunstgeschichte系和一个位于意大利罗马的图书馆有个项目,搞一个关于意大利艺术史的网上数据库。他们使用Zope/Plone,并且自己开发了一些Plone的Products。他们现在用的zope Server在一台windows xp上跑,打算移到Linux下。今天下午试着把他们的数据挪到urts96上去。

察看文件编码的小工具

前几天被文件编码和字符集搞的有点头疼,发现有一个小工具Enca可以检测文件的编码和作编码的转换。

这个工具现在的版本只支持一定的语言,包括中文,但是不支持德语。

2006-07-02

MySQL 4.1中涉及字符编码的变量

有多个有关character set 和 collation的变量会影响MySQL客户端与MySQL服务器的交互操作,对于在数据库中使用非英语的语言时,这些变量如果没有正确设置,就会导致出现乱码。

MySQL服务器端的character set 和 collation是由变量character_set_server 和 collation_server分别来决定的,创建数据库时默认的character set 和 collation则是由变量character_set_database and collation_database来指定的。

2006-07-01

Autoenrollment with event id 15

最近学校的网络好像不太稳定,前几天不知道什么原因甚至瘫痪了一晚上。我的日志里也有一些
Event Type: Error
Event Source: AutoEnrollment
Event Category: None
Event ID: 15
Date: date
Time: time
User: N/A
Computer: computer name
Description: Automatic certificate enrollment for local system failed to contact the active directory (0x8007054b). The specified domain either does not exist or could not be contacted. Enrollment will not be performed.

2006-06-30

wget察看web server header

有时为了调试需要察看web server返回的header,可以在firefox下使用如live http header这样的工具。手边要是没有这样的工具,可以用wget的两个选项来实现:


-S
--server-response
Print the headers sent by HTTP servers and responses sent by FTP servers.


--spider
When invoked with this option, Wget will behave as a Web spider, which means that it will not download the pages, just check that they are there. For example, you can use Wget to check your book-marks:
wget --spider --force-html -i bookmarks.html


比如:
wget -S --spider http://www.uni-trier.de
另外可以用
wget -q -O - http://www.industrial-technology-and-witchcraft.de/index.php/ITW/itw-rss20/ | head -1
来得到xml文件的第一行声明:
< ?xml version="1.0" encoding="iso-8859-1"?>

2006-06-25

映射网络硬盘时的日志警告

在系统类别的日志中发现源自MRxSmb的标示号为3019的警告,查阅微软的文档发现这是从网络映射一个硬盘到本地时,NetBIOS试图通过TCP/IP检测网络硬盘的网络速度引起的。微软告诉大家,完全可以忽略这个警告。

解决标示号为1202的错误

发现日志里有很多源自SceCli的1202错误,查询微软的支持网页找到了下面的解决办法

0x4b8: An extended error has occurred.

The 0x4b8 error is generic and can be caused by a number of different problems. To troubleshoot these errors, follow these steps:
1.Enable debug logging for the Security Configuration client-side extension. To do this:
a. Start Registry Editor.
b. Locate and then click the following registry subkey:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\GPExtensions\{827D319E-6EAC-11D2-A4EA-00C04F7 9F83A}
c. On the Edit menu, click Add Value, and then add the following registry value:
Value name: ExtensionDebugLevel
Data type: DWORD
Value data: 2
d. Quit Registry Editor.
2.Refresh the policy settings to reproduce the failure. To refresh the policy settings, type the following at the command prompt, and then press ENTER:
secedit /refreshpolicy machine_policy /enforce
This creates a file that is named Winlogon.log in the %SYSTEMROOT%\Security\Logs folder.
3.See the following Microsoft Knowledge Base articles. These articles describe known issues that cause the 0x4b8 error. Click the following article numbers to view the articles in the Microsoft Knowledge Base:
260715 (http://support.microsoft.com/kb/260715/EN-US/) Event ID 1000 and 1202 After Configuring Policies
278316 (http://support.microsoft.com/kb/278316/) ESENT Event IDs 1000, 1202, 412, and 454 Are Logged Repeatedly in the Application Event Log

Windows 下的tree命令

在Windows XP Pro下如果想列出某个目录下所有的子目录以及子目录包含的文件可以使用tree命令:
D:\>tree /?
Zeigt die Ordnerstruktur eines Laufwerks oder Pfads grafisch an.

TREE [Laufwerk:][Pfad] [/F] [/A]

  /F        Zeigt die Namen der Dateien in jedem Ordner an.
  /A        Verwendet den ASCII- statt des erweiterten Zeichensatzes.

可是发现尽管使用了/F选项,仍然不能显示以点号开始的文件,如.raidenftpd.acl这样的文件。不知道这是tree这个命令的一个bug,还是有其他的选项可以用。

2006-06-23

ACL的常见操作

Linux传统上只支持UGO(user,group,other)权限管理,但是Linux 2.6 内核版本开始支持ACL,即Access Control List,而在Solaris和Windows 2000/XP上ACL早就得到了支持。在维护StudIP和Ilias Server的时候都经常要用到ACL,下面总结一下如何在Linux下对ACL进行操作。

学习XSP 2


  • xsp:page — XSP 文档的根元素,它必须只包含一个用户元素

  • xsp:structure、xsp:include — 允许将附加的 Java 类导入到 XSP 的已编译版本中

  • xsp:logic — 允许在 XSP 的已编译版本中包含附加的编程代码块;这可以包含成员变量、方法或应用程序逻辑

  • xsp:expr — 允许对 Java 表达式求值,并将它们的值添加到文档

  • xsp:element — 允许 XSP 动态创建元素;这些元素可以用任意名称创建,并且可以与任何名称空间和前缀关联

  • xsp:attribute — 允许将属性动态地添加到元素;这些属性可以用任意名称和值创建,并且可以与任何名称空间关联

  • xsp:comment — 允许将注释添加到已生成的文档

  • xsp:pi — 允许动态创建处理指令,并将之添加到已生成的文档

  • xsp:parameter -- 允许为元素或属性生成名称


见识一下超级计算机

今天有两个朋友上我这儿来吃晚饭,其中一位在德国的马普所做博士,研究生物和力学的边沿性学科。他们经常要做大量的计算,这就离不开超级计算机。吃完饭让他远程登录位于慕尼黑Garcing的马普所的计算机中心的电脑上,看了一眼他们计算用的IBM的Power PC,见识了一下,下面是用llq命令查看的结果:


Name MaxJobCPU MaxProcCPU Free Max Description
d+hh:mm:ss d+hh:mm:ss Slots Slots
--------------- -------------- -------------- ----- ----- ---------------------
rp5_fatl undefined undefined 0 16 Power5, 8 PEs, 60 GB memory, 72h, reserved queue
rp5_fat undefined undefined 0 16 Power5, 8 PEs, 60 GB memory, 24h
dgrid_large undefined undefined 0 120 Power5, 8 PEs, 30 GB memory, 6h, DGRID
ipp undefined undefined 24 136 Power5, 8 PEs, 30 GB memory, 12h, reserved queue
lsingle undefined undefined 0 120 Power5, 1 PE, 2 GB memory, 6d, reserved queue
single undefined undefined 3 68 Power5, 1 PE, 16 GB memory, 12h
small undefined undefined 3 132 Power5, 4 PEs, 16 GB memory, 12h
rp5_long undefined undefined 30 136 Power5, 8 PEs, 30 GB memory, 6d, reserved queue
rp5 undefined undefined 30 136 Power5, 8 PEs, 30 GB memory, 24h
chubby undefined undefined 0 64 Power4, 32 PEs, 248 GB memory, 24h
p4_small undefined undefined 4 4 Power4, 4 PEs, 16 GB memory, 6h, DEISA
p4_short undefined undefined 8 8 Power4, 8 PEs, 30 GB memory, 1h, DEISA
p4_single undefined undefined 2 2 Power4, 1 PE, 16 GB memory, 6h, DEISA
mbp undefined undefined 0 128 Power4, 32 PEs, 60 GB memory, 72h, reserved queue
monster undefined undefined 0 864 Power4, 512 PEs, 960 GB memory, 18h
deci undefined undefined 0 864 Power4, 256 PEs, 480 GB memory, 60h, DECI
dino undefined undefined 0 864 Power4, 256 PEs, 480 GB memory, 18h
jumbo undefined undefined 0 864 Power4, 128 PEs, 240 GB memory, 18h
big undefined undefined 0 864 Power4, 64 PEs, 120 GB memory, 12h
lhuge undefined undefined 0 864 Power4, 32 PEs, 60 GB memory, 12h
huge undefined undefined 0 864 Power4, 32 PEs, 60 GB memory, 6h
short undefined undefined 16 1000 Power5, 8 PEs, 30 GB memory, 1h
deisa undefined undefined 0 0 DEISA pipe queue
test undefined undefined 0 866 restricted
dgrid_small undefined undefined 0 64 Power5, 4 PEs, 7 GB memory, 6h, DGRID
dgrid_single undefined undefined 1 1 Power5, 1 PE, 7 GB memory, 6h, DGRID
mp5_long undefined undefined 86 120 Power5, 8 PEs, 30 GB memory, 72h, reserved queue
mp5 undefined undefined 86 120 Power5, 8 PEs, 30 GB memory, 24h, reserved queue
fp5_big undefined undefined 23 416 Power5, 32 PEs, 120 GB memory, 72h, reserved queue
fp5 undefined undefined 23 416 Power5, 8 PEs, 30 GB memory, 24h, reserved queue
p5test undefined undefined 0 684 restricted
inter_class undefined undefined 0 1580 Interactive - 360 min. wall clock limit
--------------------------------------------------------------------------------
"Maximum Slots" values of the classes "deisa", "test", "p5test" are constrained by the MAX_STARTERS limit(s).
"Free Slots" values of the classes "rp5_fatl", "rp5_fat", "dgrid_large", "ipp", "lsingle", "single", "small", "rp5_long", "rp5", "chubby", "mbp", "monster", "deci", "dino", "jumbo", "big", "lhuge", "huge", "short", "deisa", "test", "dgrid_small", "mp5_long", "mp5", "fp5_big", "fp5", "p5test", "inter_class" are constrained by the MAX_STARTERS limit(s).

2006-06-22

germa128的问题

Vera的那台电脑germa128出毛病了,点很多程序都没有反应,使用右键菜单总是得到错误提示:
Der Zugriff auf das angegebenes Gerät, den Pfad oder die Datei wurde verweigert.
奇怪的是,可以毫无问题的打开Mirosoft的Office中的如Word,Excel等程序。
我怀疑是注册表遭到了破坏,于是用windows 2000 pro + sp4 光盘修复安装,问题没有得到解决。于是再用ghost恢复了一个做好的镜像过去,问题竟然没有解决。这就不好办了。难道这和硬件有关系,可是为什么又能打开Word,再说从错误提示来看也不应该和硬件有关。在MS的网页上仅仅查到2003年的一篇文章,可惜对germa128这台电脑的这种情况毫无帮助。事件日志也没有记录值得可查看的事件,只是在“安全”那个类别里有一项以前没见过的纪录,说安全监控成功。也许和这个有什么关系?

2006-06-21

在XSP中嵌入Javascript的例子

XSP支持多种语言,下面是在XSP页面中嵌入Javascript的例子。



1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <xsp:page language="javascript"
4 xmlns:xsp="http://apache.org/xsp"
5 xmlns:xsp-request="http://apache.org/xsp/request/2.0"
6 xmlns:xsp-session="http://apache.org/xsp/session/2.0"
7 >
8
9 <page>
10
11 <xsp:logic>
12 msg = "boo";
13 user = <xsp-request:get-parameter name="user"/>;
14 pwd = <xsp-request:get-parameter name="pass"/>;
15
16 if (user.equals("BigCorp") &amp;&amp; pwd.equals("secret")) {
17 msg = "User '" + user + "' has been authenticated" +
18 " - you can now proceed to the support page.";
19 <xsp-session:set-attribute name="user"><xsp:expr>user</xsp:expr></xsp-session:set-attribute>;
20 } else {
21 msg = "Login failed";
22 }
23
24 </xsp:logic>
25
26 <page-title>Login results</page-title>
27 <content>
28 <title>Login results</title>
29 <paragraph>
30 <xsp:expr>msg</xsp:expr>
31 </paragraph>
32 </content>
33 </page>
34
35 </xsp:page>

除此之外,还要在sitemap的相应的<map:generate>中添上
<map:parameter name="programming-language" value="js">
否则cocoon会使用默认的java编译器来处理XSP文件而引起错误。

2006-06-19

学习XSP 1

XSP (eXtensible Server Page )作为Cocoon的一个重要的组成部分可以为Cocoon的pipeline生成XML文件。XSP文件本身是XML文件,遵循XML的规范,但是支持在XML文件中包含程序代码。XSP借助Bean Scripting Framework支持多种语言,包括Java,Javascript,Python 等。

XSP文件的根元素为<page>,通常使用xsp名字空间(<xsp:page>)。
一个简单的例子如:

Cocoon URIs

To give you flexibility in where you place resources that you might need in Cocoon, Cocoon adds some URL schemes to the commonly available ones:

  • http://hostname:port/resource—This is a standard HTTP URL. A sample URL is http://localhost:8080/myxml.xml.

Serializers in Cocoon

Serializers transform a SAX event stream into binary or character streams for output. If a pipeline contains a generator, it should also contain a serializer. You can get full details on any serializer in the components appendix of the Cocoon user manual:

  • XML serializer—This Serializer serves as the basis for a number of the other serializers. It generates an XML document from the input SAX event stream. This serializer is in the class org.apache.cocoon.serialization.XMLSerializer under the name xml. You can provide a number of configuration parameters when you use the serializer from a <serialize> tag:

Transformers in Cocoon

Transformers are the components that get the job done. Without them, a pipeline could only generate some SAX events and serialize them back out. You’d get a little functionality, but not much. The standard Cocoon distribution includes a number of transformers; the following list gives you an overview of those that are built in. Some of these transformers are quite sophisticated, so we’ll provide a general description of how the transformers work. You’ll need to look at the components appendix of the Cocoon manual to learn about all the features of a particular transformer:

Generator in Cocoon

Cocoon 中事先定义了一系列的Generator,可以直接使用。这是一个简单的介绍,摘自Professional XML Development with Apache Tools: Xerces, Xalan, FOP, Cocoon, Axis, Xindice。

2006-06-18

configure Outlook 2003 to block additional attachment file name extensions

配置Outlook 2003 以阻止其他附件文件扩展名

1. Click Start, click Run, type regedit, and then click OK.
2. Locate and then click the following key in the registry:
HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\Security
3. On the Edit menu, point to New, and then click String Value.
4. Type Level1Add, and then press ENTER.
5. On the Edit menu, click Modify.
6. Type , and then click OK.

Notefile_name_extensions is a list of the attachment file name extensions. Each attachment file name extension is separated by a semicolon. For example, type .zip; .gif if you want to block both .zip and .gif files from appearing in the e-mail message as an attachment.

参考:http://support.microsoft.com/kb/837388

cocoon输出文件的编码设置

发现Cocoon输出html文件的默认编码设置为ISO-8859-1,这是在cocoon的配置文件cocoon/WEB-INF/web.xml中默认定义的。


<!--
Set encoding used by the container. If not set the ISO-8859-1 encoding
will be assumed.
Since the servlet specification requires that the ISO-8859-1 encoding
is used (by default), you should never change this value unless
you have a buggy servlet container.
-->
<init-param>
<param-name>container-encoding</param-name>
<param-value>ISO-8859-1</param-value>
</init-param>

要修改生成的HTML文件的默认编码,可以在Cocoon的sitemap文件里修改HTML的Serializer,修改后如下面例子所示:

<map:serializers default="html">
<map:serializer logger="sitemap.serializer.links" name="links" src="org.apache.cocoon.serialization.LinkSerializer"/>
<map:serializer logger="sitemap.serializer.xml" mime-type="text/xml" name="xml" src="org.apache.cocoon.serialization.XMLSerializer"/>
<map:serializer logger="sitemap.serializer.html" mime-type="text/html" name="html" pool-max="${html-serializer.pool-max}" src="org.apache.cocoon.serialization.HTMLSerializer">
<doctype-public>-//W3C//DTD HTML 4.01 Transitional//EN</doctype-public>
<doctype-system>http://www.w3.org/TR/html4/loose.dtd</doctype-system>
<encoding>UTF-8</encoding><!-- this encoding is added by Dingjun Jia -->
</map:serializer>

2006-06-17

cocoon连接MySQL数据库

今天下午花了不少时间才设置好cocoon与MySQL数据库的连接。要设置cocoon和MySQL可大致分为3步:



  1. 让cocoon能找到JDBC的 jar文件

  2. 让cocoon预先加载JDBC driver

  3. 设定连接池


我没有用cocoon自带的java web server,而是用的Tomcat 5.5.17。下载MySQL Connector/J 3.1.12后把mysql-connector-java-3.1.12-bin.jar文件先后复制到了多个目录:



  • $JAVA_HOME/jre/lib/ext

  • $CATALINA_HOME/common/lib

  • $CATALINA_HOME/webapps/cocoon/WEB-INF/lib


重新启动tomcat后日志仍然报告:
cocoon java.sql.SQLException: No suitable driver
意思是cocoon仍然找不到MySQL的MySQL Connector/J 3.1.12。
后来在$CATALINA_HOME/webapps/cocoon/WEB-INF/web.xml文件里第195行添上
com.mysql.jdbc.Driver
就能与MySQL进行连接了。


下面是设定一个连接池的例子:
在cocoon.xconf文件里加上:



<!-- added by Dingjun Jia, mysql connection pool in cocoon.conf -->
<jdbc name="abc" logger="core.datasources.abc">
<pool-controller min="5" max="10"/>
<!-- <auto-commit>false</auto-commit> -->
<!-- 此行若不注释掉,总会得到错误:
Not allowed to define mixed content in the element match at file:/opt/tomcat/webapps/cocoon/abc/sitemap.xmap:80:36 -->
<dburl>jdbc:mysql://localhost/abc</dburl>
<user>jia</user>
<password>password</password>
</jdbc>



P.S:

If we want to use non-latin characters in mySQL, Greek for example, we need to have a more specific connection string: jdbc:mysql://YourHostName:3360/YourDataBaseName?useUnicode=true&amp;characterEncoding=YourEncoding for example: (cocoon.xconf)


  <jdbc name="pool_name">
<pool-controller min="5" max="10"/>
<dburl>jdbc:mysql://YourHostName:3360/YourDataBaseName?useUnicode=true&amp;characterEncoding=ISO-8859-7</dburl>
<user>database_user</user>
<password>database_password</password>

</jdbc>

2006-06-16

Cocoon的sitemap引擎

Cocoon有两种不同的sitemap引擎,一种是编译(compiled)过的,另外一种是解释型(interpreted)的。两个都在Cocoon的配置文件$CATALINA_HOME/webapps/cocoon/cocoon.xconf里被定义,其中编译过的版本是cocoon默认的sitemap engine(check-reload和reload-method的值都为yes)。Cocoon监视sitemaps,当发现sitemaps发生变化时,Cocoon会重新加载配置文件。当Cocoon重新载入sitemap时,可以以同步或异步两种不同的方式来工作。

2006-06-15

windows下的同步工具robocopy

今天在浏览精品论坛的时候有个关于windows下同步文件夹的帖子引起了我的兴趣。我只知道在unix/linux下可以用rsync,还不知道windows下有个命令行工具robocopy也具有文件备份同步的功能。这个程序是Windows Server 2003 Resource Kit Tools中的一部分。网上说Windows XP Resource Kit Tools中也包含,可是我找来Win XP的光盘完整安装Windows Support Tools后却没有发现robocopy。于是从网上下载并安装了Windows Server 2003 Resource Kit Tools(12M)。这个小工具有很多选项可用,微软提供了一份36页的Word帮助文档。
Robocopy is a 32-bit command-line tool used for file replication. This tool helps maintain identical copies of a directory structure on a single computer or in separate network locations. Robocopy is included in the Microsoft® Windows® Resource Kit.

2006-06-14

Finanzamt的开放时间

今天上午去Finanzamt把2005年的报税单交了。虽然这已经是第五次去Finanzamt,可是对它的工作时间没放在心上。因为担心去早了还没开门(大学注册那个terminal得上午10点以后才能用,两次赶上去早了,印象深刻!),所以9点多才赶过去。一看工作时间竟然是从早上07:30开始。这可是政府部门工作时间中罕见的早啊。
周一 到周三:07:30 - 17:30
周四:07:30 - 18:00
周五:07:30 - 13:00
不过明年再报税已经全部改成网上报税了,到时候Finanzamt的工作人员不用这么早上班了。

2006-06-13

停止"磁盘空间不足"警告功能

停止"磁盘空间不足"警告功能

  当磁盘驱动器的容量少于 200MB 时,Windows XP 便会发出"磁盘空间不足"的通知。如需停止此功能,可按下步骤更改注册表。

  在“开始”菜单选择"运行",输入"Regedit",进入"HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion",在〔Policies〕下增加一个项"Explorer"(如果已有便不用增加),然后在"Explorer"增加一个 DWORD 值"NoLowDiskSpaceChecks",数值资料为〔1〕= 停止通知,值资料为〔0〕= 默认值启动通知。

拷贝DVD影片

早在VCD格式光盘流行的年代,电脑爱好者们就经常将光盘中Mpegav目录下的影音文件直接拷贝到硬盘上,然后再进行影片的播放,以此来减少光驱的耗损。虽然DVD影片光盘在制定标准时就考虑到要通过技术措施来防止拷贝,但DeCSS软件的出现使得其保护措施形同虚设,因此我们现在见到的绝大多数DVD影片光盘中的文件都是可以直接进行拷贝的。与此同时,电脑上DVD光驱的普及率越来越高,其数据读取速度已经高达16倍速(21MB/s),而硬盘的容量也越来越大,80GB已经成为了标准配置,这一切都为我们将DVD影片拷贝到硬盘上播放提供了很好的条件。

2006-06-03

Komodo 3.5.3终于修复code browser的一个bug

Komodo 3.5.2在Win XP Pro下有一个bug,表现为打开一个文件时,code browser功能不能使用,表现为程序一直显示Code scanning。Komodo 3.5.3终于修复这个bug。在2006年1月份就有人提交了Bug 43866报告了这个问题,可是等了这么久才出来。3.5.3什么时候发布的不知道,不过build的时间在5月份,“Built on Wed May 03 11:29:40 2006”。

1GB的免费存储空间

Gmail虽然提供了很大的存储空间,但是对邮件的附件大小却有所限制。今天在网上发现了一个站点Box.net能提供1GB的免费存储空间,并且还提供文件共享服务,即由用户来选择共享那些文件。注册试用以后感觉速度还不错。如果推荐了5个朋友注册还可以免费升级到5GB,想试用的朋友不妨点击这儿注册一个,帮助我免费升级。

2006-06-02

Update Wordpress to 2.0.3

这几天系里的web server总是不太正常,尽管MySQL正常运行,但是php/MySQL的页面总是不能正常打开。今天没有问题了,把Wordpress 升级到了2.0.3,据说是修正了一些安全漏洞。

2006-05-31

Install cocoon 2.1.9 on apache-tomcat-5.5.17

Tomcat 5.5.17 已经事先安装在/opt/tomcat目录下。

下载cocoon的源文件cocoon-2.1.9-src.tar.gz,下载地址为:
http://mirrorspace.org/apache/cocoon/cocoon-2.1.9-src.tar.gz

解开该文件并进入cocoon-2.1.9目录执行build.sh,在cocoon-2.1.9目录下会生成一个build目录。Build目录包含cocoon和webapp两个目录。

关掉tomcat server,执行命令/opt/tomcat/bin/catalina.sh stop 。

Office 2003/XP Add-in: Remove Hidden Data

以前就注意到在使用MS 的office产品分发如word,ppt文件等会留下个人信息。其他获得文件的人可以通过察看文档属性和文档版本看到文件制作者和编辑者的信息。微软也意识到到这位泄漏个人信息,因此提供了一个名为“Remove Hidden Data”的小工具,用于清除这些个人信息。

2006-05-26

升级ilias3到ilias 3.6.3

5月23日开发者发布了ilias 3.6.3版本,修正了一些错误,数据库本身没有变化。把ilias3test和ilias3两个server上的版本都更新了一下!除了备份之外,记着复制template和layout/lm目录下的自定义设置!

2006-05-25

试用office 2007 beta2

以前看过MS的office 2007的video demo,看到不少方便的新特性。今天qi jin过来说他已安装使用了一下,感觉确实不错。于是我也去MS的站点下了一个office 2007 proplus的英文版来测试。在安装时,我选取了自定义(custom)选项,然后选择保留以前版本的所有组件。Office的套件里我用的最多的当属Outlook了。安装完后很快我就发现我原来的office 2003下的Outlook 2003不见了,取而代之的是Outlook 2007 beta2,而office 2003下的其他组件,如word,excel,powerpoint等等却一切正常。这一点有些让人出乎意外。此后我担心Outlook 2007的pst文件格式会和Outlook 2003的不兼容,所以试图重新安装outlook 2003。安装完毕后运行Outlook 2003却总得到一个提示,有个excpetion没有处理,自动调用visual studio 2005去debug,试了好几次都不行。关掉Outlook 2003,启动Outlook 2007后又得到错误提示:

2006-05-23

恢复windows 2000管理员密码

今天下午把germa58这台电脑从DM 330楼移到了A 423。由于这台电脑很久没人用了,想使用SUS更新一下,可是不知道管理员密码。用香山红叶版本的windows PE启动后用ERD 2003想重置管理员密码,结果程序报告无法打开密码数据库文件,只好用其他的办法。一个简单的办法是删掉%Windir%\System32\Config\文件夹下的Sam文件,然后重新启动计算机。这样就可以Administrator身份登录系统,此时密码为空。


Windows NT/2000/XP中对用户账户的安全管理使用了安全账号管理器(Security AccountManager,SAM)的机制,安全账号管理器对账号的管理是通过安全标识进行的,安全标识在账号创建时就同时创建,一旦账号被删除,安全标识也同时被删除。安全标识是惟一的,即使是相同的用户名,在每次创建时获得的安全标识都是完全不同的。因此,一旦某个账号被删除,它的安全标识就不再存在了,即使用相同的用户名重建账号,也会被赋予不同的安全标识,不会保留原未的权限。


安全账号管理器的具体表现就是%SystemRoot%\system32\config\sam文件。SAM文件是WindowsNT/2000/XP的用户账户数据库,所有用户的登录名及口令等相关信息部会保存在这个文件中。

配置无线网

今天去一个香港朋友家帮助解决电脑问题。先是很顺利帮他的孩子装上DVD刻录机,然后重新安装他的中文繁体的操作系统。系统安装完后最烦的是到处找各种盘来安装各个硬件设备的驱动,后来卡在无线网这一环节上了。驱动安装完后,能建立无线网的连接,可是在获得IP地址时总是失败。反复试了几次都不行。在路由器配置页面上却能看那台机器处于活动状态,可是从那台机器却无法ping到路尤器。手动配置无线网卡的IP地址还是不行。后来打电话问了一下这位香港人的弟弟才知道,他给我的WEP加密密钥是错的,新的密钥是路由器包装里的CD盒子上。重新填写WEP加密密钥后,马上就有网络连接了。不太理解的是,为什么此前填写了错误的WAP加秘密钥,在windows下仍然显示建立了连接,只是无法获得有效的IP,如果在用户给出错误的WEP加密密钥时,系统能立即提示错误的话,我想对用户来说会更有好一些,我也不会在这上面花那么多时间。

2006-05-17

Temporary Internet Files文件夹

昨天发现一个很奇怪的问题。在学校分配的U盘上有一个文件夹Msie,下面有个文件夹“Temporary Internet Files”,用于存放用户在使用IE时的历史文件。当我从别的电脑上mount这个U盘时,这个文件夹仅仅包括,而在我的机器上映射这个驱动器却发现这个文件夹下有很多的文件。同样的一个资源在不同的电脑上映射,看到的文件内容却不同?仔细看了看从我本地电脑映射这个驱动器时那个文件夹下的临时文件,才发现是我本地电脑上偶尔用IE时留下的文件。而我本地IE历史文件的存放位置设置为E:\temporary Internet Files 。看来是这样,当我点击U:\Msie\temporary Internet Files文件夹时,系统读取的文件内容却是E:\temporary Internet Files的。估计temporary Internet Files这个文件夹不同于普通的文件夹,在某个属性设置里和本地登陆用户的IE设置总是相关联。

2006-05-16

O2的网从植物人状态到现在半身不遂

从周日上午起o2的网就不正常。周日除了Kundenbetreuung外基本就不能打电话,到了晚些时候甚至连Kundenbetreuung的电话都接不通了。一拨很快就显示Verbingdung beendet 或者Anruf beendet,然后是短促的3声,好似网络不可用,不过手机上显示确是信号不错,且在Home区。或者能打出,但是在对方手机开机的情况下,不是Mailbox就是暂时无法接通。同时还接到其他人报告类似错误。周日一共给Kundenbetreuung打了5个电话,报告网络的问题。可是O2的工作人员好像不相信是自己网络的问题,或者是不愿意承认。总之,他们建议我重开手机,把SIM卡放到其他手机里试一试。我按照他们的建议都试过了,可是还是不行。周一又打电话,还是没有结果,还让我有可能去当地的o2 shop,工作人员一直宣称,他们没有接到特列尔地区的网络故障报告。今天电话倒是能打出去了,不过通常要打好几次载能接通,前几次要不是根本就接不通,要不就是mailbox或unerreichbar。

这鞋还能不能退?

上周二(2006.05.11)LP在城里的step by step店花39.9欧元买了一双鞋,周四下午穿了一下发现鞋底褪色把袜子给染红了。

周五下午LP去店里想退掉那双鞋,店员说, "Das ist kein Reklamationsgrund und wir werden es nicht umtauschen oder zurücknehmen." 店员只提供一双鞋垫,并且态度很不友好。LP没办法,拿着鞋和鞋垫只好回家了。

周六上午给Dietmar打了个电话,讲明了情况。他说这种情况下退鞋没问题,"Sie müssen die Schuhe zurücknehmen."。电话里约好11点在deutsche bank见面,再去店里交涉一下。可是事情没有想得那么简单,我们俩到店里后讲明来意,刚好店员还是昨天的那几个,他们对此事很清楚,不做任何让步。没有办法,只有撂下“Das ist noch nicht erledigt, ich werde mich bei Verbraucherschutzzentrale melden.”这话走人。回家后上网查到了一下莱法州的Verbraucherschutzzentrale在特里尔的咨询办事处的地址(Fleischstraße 77)和电话(0651-48802),准备周一去。

2006-05-13

O2 Kundenbetreuung

时不时要打O2的顾客服务电话 0179 55 222,电话接通之后,总是要听一大堆需要什么服务请按数字的电脑录音,有时想直接跳过,又记不住,写几个常用的在此以便日后查找:
4 Rechung
5 Technik
6 Sonst(人工服务)
根据以往的几次经验,O2的电话顾客服务还是不错的。

2006-05-12

解决在bibliography folder下导入bibtext的错误

今天在Plone环境下想在bibliography folder下导入bibtext文件,可是在点击导入时总得到错误:



Es ist ein Fehler aufgetreten. Die Fehlermeldung lautet:
Fehlertyp
RuntimeError
Fehlerwert
CMFBibliographyAT/skins/bibliography/getImportReports.py has errors.

在goole上查到有人提交的这个Bug,原来是因为skin目录下有些python文件是在windows下编写的,导致换行符号与在unix下的不一样而造成了这个错误。要修改的文件包括:getImportReports.py 和 getLastImportReport.py。


cat getLastImportReport.py | col -b > getLastImportReport.py
或者
dos2unix getLastImportReport.py > getLastImportReport.py, 只是如果没有dos2unix这个小程序还得先安装一下。

2006-05-10

修复键盘失灵的错误

今天下午把nu01上早就坏掉了的硬盘换上了一个旧硬盘。旧硬盘是Wolfgang提供的,装上后一启动发现已经有操作系统XP了,不过xp2 servervice pack还没有装,于是赶紧装xp2。不想在装的过程中,机器长时间不响应,于是我就按reset重启了一下,不想这一重启后,键盘在出现登陆界面以后就失灵了。键盘灯虽然亮着,可是怎么都不响应,这样用户完全不能登陆。我原以为是键盘接口的问题,仔细检查一番没有问题。开机后能进BIOS,证明键盘是没有问题的,甚至能按F8键,选择启动的选项,可是启用安全模式启动后,到了登陆界面后,键盘就不能用了,Numlock的灯也一直亮着,无法关闭。后来怀疑是系统的问题,于是拿出XP的安装盘,准备修复。没想到当进入到安装界面,选择按Enter键,继续安装时的文字界面后,键盘也失灵了。这样系统也无法修复了。(在出现“想安装WINXP想按ENTER,想修复XP请按R……”这个界面之前键盘有用(通过按NUM LOCK灯来确定的)在这之后键盘就不能响应了,如果在刚才说的这个界面之前把NUM LOCK灯开了,那进入这个界面之后灯也一直开着,像死机一样。)后来又拿了一张winxp PE 的光盘,从光盘启动后,发现键盘还是无法工作。这样只剩下更新BIOS这招了。主板是Gigabyte的GA-BX2000,下了一个最新版本的BIOS,放到软盘上,更新完毕后再启动键盘就正常工作了。

2006-05-09

Gmail@前面的.

我注册的第一个Gmail的地址为dingjun.jia@gmail.com,因为担心在把这个地址给别人的时候,有可能dingjun和jia之间的"."被人忘记/漏写,所以曾经试图去注册一个dingjunjia@gmail.com。不过在注册的时候,却被系统告知,这个信箱已经被人占用了。今天在网上看到这篇文章才知道,原来在邮箱地址里(@前面的部分)可以随意加入任意多的.(点号)。也就是说 dingjun.jia@gmail.com和dingjunjia@gmail.com其实是同一个地址。我原来的担心其实是多余的!

另外,以前就知道的一个技巧是可以在地址上加上+关键词,如dingjun.jia+ajax@gmail.com,可惜有不少mail验证程序都把这种形式的mail地址视为非法的地址。

Gmail使用技巧

转自:http://www.kenwong.cn/post/some-useful-gmail-skills.html
1.“has:attachment”——找出所有含有附件的邮件。你还可以进一步指定更多条件,比如“has:attachment from:me label:sent”,这就是找出所有在sent(已发送邮件)里的由你所发送并且包含附件的邮件。这个很有用,因为你发送含附件的邮件后,一般情况下,sent里面的这些邮件都是没有用途的了,可以直接删掉。2.“filename:pdf”——找出所有附件中含有.pdf文件的邮件。类似地,你还可以指定其它文件类型,比如“filename:rar”或“filename:zip”。一般我们压缩收发的都是较大的附件,这样就可以直接删除掉体积较大的一些邮件。

3.“before:2006/01/01 label:sent”——找出所有由你自己发送的并且发送时间在2006年1月1日前的邮件。类似地,你也可以输入“after:2006/01/01 label:sent”来找到你在2006年1月1日以后所发送的所有邮件。

4.“from:abc@def.com”——找出所有来由abc@def.com发过来的邮件。比如当你订阅了一些电子杂志,或者你记得某人经常给你发送体积较的邮件,你可以一次过把它们找出来,然后删掉不重要的。

Gtalk与windows live messenger

在此之前通过PSI这个软件把msn messenger的联系人导入到了gtalk里,这样使用gtalk就可以与msn messenger上的联系人对话了。可是今天使用了windows live messenger,登陆后,发现有个默认是启用的选项,即加密联系人列表,以防止非windows live messenger获取列表。当时我就想到了gtalk。我取消了该选项,退出windows live messenger。启动gtalk,发现原来msn messenger上的联系人全都不在线了。这应该是与用windows live messenger登陆我的账户有关。于是赶紧在另外一台电脑上找了一个msn messenger 7.5版本用我的那个账户登陆后,再退出。重新登陆gtalk,msn messenger上的联系人又回来了。

2006-05-05

使用CMFBibliographyAT

也许是使用CMFBibliographyAT的人太少了,它的文档实在是太差了,没有FAQ,也没有Howto。出错之后在google上查找相关的结果都很少。看着让人摸不着头脑的出错提示根本不知如何下手,只好一个人来回反复试。费了一个多小时终于有点眉目,如何使用。
先建立一个CMF site或者Plone site,然后在CMF/Plone site里添加一个CMFBiblographyAT content,然后选择“LargeBibliographyFolder“,添加完BibliographyFolder后才可以在里面添加其他类型的CMFBiblographyAT content。此前不知道,所以一上来就添加“BookReference“,结果总是得到出错提示:
Unauthorized: You are not allowed to access 'aq_explicit' in this context。
相信这句话会让Plone的新手借助google找到这儿:)

2006-05-04

碰见老五!

今天应邀陪同由国内教育部组织的多个高校领导组成的一个代表团访问我们大学,竟意外的碰到了北外的老同学,老五,实在是没想到。老五如今已是博士毕业,在上外当上老师了,我来德国快六年了,如今还混迹于特里尔,希望今年能结束学业找到一份好的工作。

zMySQL DA连接字符串的格式

KZ使用zope web server,使用zMySQL Data Adapter建立与数据库的连接。以前总搞不清  Connection String的格式。这次把urts52的项目都导出到urts96上,数据库连接的字符串得改写,终于搞清楚了。
database[@host[:port]] [user [password [unix_socket]]
例如:
databasename@host username password

这个格式个人认为有点怪,用空格来分隔主机名,用户名和密码。

2006-05-03

Skype 2.5 beta支持发短信

Skype 2.5 beta版支持发SMS的功能,费率为:
中国:€ 0.045(不含税) € 0.052(含税)
德国:€ 0.102(不含税) € 0.117(含税)

更多的SMS费率列表:http://www.skype.com/products/skypesms/rates/#listing-G
我的手机无法输入中文,现在可以借助skype方便的发SMS了!

行李终于到了

29日晚上看完中国乒乓男队的比赛,稍作休息后9:30出发前往机场,10点就到机场了。到机场后办理登记手续托运行李时被告知,飞机晚点要零晨2:10才开始登机。于是便坐在登机口的休息室里无奈的等待,期间有个广播,告诉候机的旅客,飞机晚点是由于飞机的维修工作。差不多快两点了,机场的工作人员才拿了几箱水,可乐等饮料和饼干来给我们充饥。快两点半了才开始登机,飞机飞上天已经是过了凌晨3点了。

德国时间30日早上近八点了,飞机才落在法兰克福机场。我急急忙忙走在前头过了边检去领行李,可是等了半天,除了刚开始出来的几个行李外,传送带就连动都懒得动了。差不多等了快一个小时,显示屏上打出了CA 965 beendet/finished。围在传送带周围的人都不知所措,我想,莫非机场把每个人的行李都邮寄到家。正想着,一位工作人员手里拿着纸和笔,让大家填写自己的行李号和地址。白白地等了一个小时,并且guka和chang还在Koblenz等我,怕我的行李太多。这下到好3个行李都不用自己拎着回家了。
5月1日到处放假,行李是不会到的。5月2日早上接到电话被告知,行李已经到卢森堡了,再确认一下,要给我送过来。10点半,一个小伙子开着车终于把行李送过来了。此时这次旅行才算全部结束!

2006-05-02

安装CMFBibliography

Thomas要在zope上使用CMFBibliography让我安装。按照产品文档说明在确保安装了组件ArcheTypes的情况下把文件复制到zope的Products目录下,并重启zope server。可是CMFBibliography却没有出现在Products列表中。察看event.log发现缺少一个名为“ATExtensions”的模块,安装该模块后,CMFBibliography就自动安装了。

2006-04-30

update ilias 3 from 3.6.1 3.6.2

中午刚回德国,下午赶紧抽空把ilias3升级到3.6.2。
另:由于为了方便文件备份,ilias 3的的文件都放到了URT专门的file server上,在urts52上把file server上的一个目录mount到本地。这样这个文件夹不支持urts52上本身的setfacl操作,这使得文件上传出错。把wwwrun添加到studip这个组,并为ilias 3下 data目录下的所有文件赋予studip组的写权限,文件上传就不再报错了。

2006-04-03

Sony Erricson手机的伴侣

今天在网上发现了一款名为FMA在电脑上使用的开源软件,配合Sony Erricson手机,非常的方便。以前虽然有T9输入法,但是在手机上发SMS实在是太不方便了。有时想输入个数字,那叫个麻烦啊!以前在网上找了个微软发布的免费软件,用于发SMS,但是这款名为SMS sender的软件与微软一贯的风格及其不合,功能简单得不能再简单了,连倒入和导出联系人的功能都没有,界面也是寻常无比。可就是这么一款软件,还得通过微软的正版验证才能下载得到。

有了floAt's Mobile Agent,发SMS实在是小菜一碟,因此极力推荐!
FMA is a free1 powerful phone editing tool allowing users to easily manage all of the personal data stored in their phones, via a number of different connections methods. FMA allows easy management of Phonebook (both SIM and Phone memory), SMS, Profiles, and Files stored on the phone. FMA can also allow you to pickup and dial calls directly from your PC. FMA is fun and much more; whatever you want it to be, it is whatever a mobile phone should have :-)

2006-04-02

考试结束了!

原定在3月31日早上09:00的最后一个毕业考试改在了30日下午,所以30日早上4:48坐Anruf-Sammel-Taxi到火车站,4:55就到火车站了。司机人不错,直接把Taxi开到了站台边上,尽管我手上的行李并不多,除了背上的背包外就一个布袋。5:00出发直达柏林的这趟列车是从特里尔出发的唯一一趟ICE,终点站为Berlin Ostbahnhof。冲着一个一等车厢的车门就跑了上去,心想总可以穿过一等车厢到二等车厢,结果往左是餐车,往右走了两个车厢还是一等车厢。于是干脆下了火车冲着2等车厢跑过去。ICE车一等车厢的条件真是好,位置少,每个人的空间大,每个人都有个小的液晶电视。 一路上头脑发昏,只管放心的睡觉,因为不用担心倒车。在zoologischer garten下车后坐S7到Wannsee,然后换乘S1,不到两点钟就到HPI了。坐在wang long的办公室歇了歇,然后去秘书那儿做个报道。

2006-03-28

命令行重启远程win xp pro

不知道是什么原因,在DM 330的有台win xp pro机器上,当关掉一个共享文件,而这个共享的文件夹有远程用户连接时,机器会立即失去响应,CPU消耗保持在100%。由于我是通过remote desktop 远程连接过去的,当机器失去响应后,已经无法调出资源管理器来杀掉不响应的进程,CMD也无法调出来。上次就赶上这样的情况,当时是等着去DM楼的时候手动重新启动的。这次同样的问题又出现了,突然想起也许可以用命令行远程重启,于是试了一下命令:
shutdown -r -f -m \\136.199.xx.xx
果然马上奏效。
这里没有涉及用户认证的问题,我想是因为通过remote desktop连接已经通过用户验证和权限检查的问题。如果没有现存的远程桌面连接,也许需要下面的命令:
net use \\136.199.xx.xx\ipc$ kennwort /user:administrator

2006-03-27

察看MTU

以前只知道MTU为最大传输单元,最近看了不少有关网络协议的东西,对这个概念的理解更深了,顺便察看了一下studip的网络配置下的MTU:
jiad4701@urts12:~> netstat -i
Kernel Schnittstellentabelle
Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR   TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0   1500   028310910      0      0      028165106      0      0      0 BMRU
eth0:  1500   0     - keine Statistiken verfügbar -                    BMRU
eth0:  1500   0     - keine Statistiken verfügbar -                    BMRU
eth0:  1500   0     - keine Statistiken verfügbar -                    BMRU
eth0:  1500   0     - keine Statistiken verfügbar -                    BMRU
eth1   1500   0  378871      0      0      0  383850      0      0      0 BMRU
eth2   9000   011519063      0      0      012050648      0      0      0 BMRU
eth2:  9000   0     - keine Statistiken verfügbar -                    BMRU
lo    16436   0   44112      0      0      0   44112      0      0      0 LRU

2006-03-23

使用sortedTable

今天下午把Anna发给我的东西加到为Sozialreferat做的Wohungstauschbörse里了。因为前几天看到一个用javascript实现的对表格排序的脚本,觉得很不错,便把它也应用到显示出租房屋的页面上了。刚开始怎么修改都不行,后来才发现要使用这个排序功能脚本必须要在声明表格的那行里加上: class="sorted"
<table class="sorted">
我以为这仅仅是涉及格式化的css的一个类,检查例子中的css文件,却发现根本没有sorted这个类。可是没有这个声明,排序就不起作用,添上后排序就没问题。我只能无论**吞枣先照此运用,等日后有时间再琢磨一番为何。

春江水暖鸭先知

今天下午被NU的Andreas的电话叫到Übergang去聊天,因为南德意志报的一个记者想采访中国留学生,报道一下中国留学生在德国留学的一些情况。

在去Übergang的路上经过食堂后面的小水塘看见几只鸭子在水中嬉戏正欢,拿出手机拍了两张。这应该就是诗人笔下的春江水暖鸭先知了!今年的冬天迟迟不走,不知道对Vogelgrippe到处肆虐是不是间接地延缓了一下严峻的形势。记得两三周前在食堂吃完饭出来,看见好几群鸟(据说是大雁)在空中久久盘旋不止,好似迷路一般。我像往年的这个时候,到处都是绿色的一片,而这些大雁现在看到的却是白茫茫的一片,怎能让迁移回飞的大雁们不迷惑。也许鸟儿们远远比我聪明,我只是傻乎乎的以人的定势思维来考虑问题。

2006-03-22

我使用的firefox插件

从Firefox 1.0开始使用,现在已经升级到了1.5的版本了,2.0alpha也已经发布了。使用了不少的插件,但是最喜欢的插件还是下面所列:
1. Adblock Plus
先前使用adblock,后来发现了Adblock Plus便一直使用它了。它能当掉你不想看到的各种广告,图片,flash,frame页面,支持正则表达式,强大无比!

2. Web Developer
对于开发和调试网页(如CSS,Javascript)非常的方便

3. Scrapbook
能非常方便的保存一个网页和网页内的链接,包括mp3(哈哈,这下可方便下在mp3),pdf,jpg等

4. google toolbar for firefox
虽然firefox已经自带了搜索工具,但还是忍不住要安装这个插件,查询关键词的提示功能,Autofill等功能让人爱不释手!

5. Auto Copy
功能很简单,就是当选中文字的时候,自动把文字复制到粘贴板,很实用!

6. Performancing
这是新近发现的,针对所谓高产量的blogger的。虽然我不是常写blog,但是有了它写blog方便极了!

虽然firefox存在内存泄漏的问题,但是有这么好用的插件为什么不用firefox呢,多用一点内存也无妨了。

2006-03-16

高pagerank值的网页

我留意了一下,google的英文主页的pagerank值为10。这是我看到的唯一一个pagerank值为10的一个网页,google的其他语言版本,如德文 中文 的pagerank值都为8。我们大学的主页的pagerank值为7,此外一些大的IT公司,如IBM,Microsoft等公司主页的pageran值均为9。个人主页的pagerank值相对就低一些了,鼎鼎有名的网络专家Douglas Comer的个人主页的值也只有6,CSS大师Eric Meyer的个人主页的值为7。此外关于网页设计的A List Apart得分为8,也属于高pagerank值的网页了。

修改wordpress的一个插件StatTrag

StatTrag是一个wordpress的插件,用于统计访问者的情况。安装完后在察看Summary时,每个post的标题兰总是显示为乱麻,后来在文件里
把 echo htmlentities(stripslashes($row->post_title));
改为 echo $row->post_title;
先是就正常了。原来的代码好像是出于安全考虑过滤一些字符再显示,不知道为什么到了中文就出现乱码。

2006-03-14

Fujitsu-Siemens的服务电话

今天收到上个月的电话单了。大部分的电话都是使用voip软件打的,所以电话单总是很短,费用也比较低,每月支付通常不超过30欧元。今天看到有一个电话打了5.8956欧元,原来是Fujitsu-Siemens的服务电话01805004310。上次还夸Fujitsu-Siemens的售后服务质量好,效率高,今天看到这一个10分10秒的电话就花了近6欧元。这服务要再不好,那作为他们的顾客得冤死!

2006-03-12

德国手机运营商的号码

在中国就移动和联通有自己的网络在经营手机业务,在德国我知道有D1,D2,O2,E-Plus等运营商。

通过手机号的前面几位数字能看出这个用户使用的那各网络商:

D1:
151,160,170,171,175

2006-03-11

Update to Wordpress 2.0.2

因为发现安全漏洞,wordpress发布了2.0.2版本,所以第一时间赶紧升级到最新版本。

2006-03-10

添加德文的wikipedia搜索插件

我使用的是英文版的portable Firefox 1.5,默认安装的搜索插件里面有英文的wikpedia,但是没有德文的wikipedia,在Mozilla官方提供的添加搜索引擎页面也只提供了英文的wikipedia。于是在firefox根文件下的profile目录下的searchplugins目录里找到了英文wikipedia搜索插件的源文件wikipedia.src,本来想仿照写一个德文的,但看见源代码里有作者的网址,于是在作者提供的页面添加了德语和中文的wikipedia搜索插件。

2006-03-07

上麦当劳买火车票

几天前就听说Deutsche Bahn和麦当劳一同推出火车票特别优惠活动,周一在麦当劳发售4张单程票,价值为99欧元,凭此票可以在德国境内乘坐ICE, IC/EC等(周五和周日除外)。估计买票的人会很多,所以原本打算一大早麦当劳开门8:00就去抢购,可没想到睡得有点过头了,8:20才起来。到麦当劳门口已经8:50了。还没进门,透过玻璃窗一看里面倒是坐了不少人,可是在Kasse前却没有人排队,心里吓一跳。莫非票这么快就被抢光了。急忙冲到Kasse面前去问,是否还有火车票买。一位很和蔼的老太太(很少在麦当劳碰上年纪比较大的工作人员)回答有,并问我要买几张。心理的一块石头才落地。便和老太太聊了几句,说起了我的担心,并问起为什么没有出现排长队买票。她说,买票高峰在刚开门那半个小时,现在已经过了。这真是印证了来得早不如来的巧!

2006-03-05

用Google, Yahoo, MSN分别搜索"Dingjun Jia"

平时一贯用的搜索引擎都是Goolge,今天突然想看看用Google, Yahoo, MSN分别搜索"Dingjun Jia"会得到什么样不同的结果,下面是搜索(使用默认的搜索选项)的结果:

  • Google: 173 für Dingjun Jia. (0,34 Sekunden)

  • Yahoo: 348 für Dingjun Jia. - 0,30 Sek.

  • MSN: 280 Ergebnissen, die dingjun jia enthalten (0,13 Sekunden)


MSN 速度最快,搜索的结果数量介于其他两者之间,但从搜索结果的质量来看,是三者中最差的。相反Google虽然速度最慢,数量少,但是质量高。Yahoo从速度,数量和质量来看都刚好处于两者之间。当然这个比较仅仅限于对这一个关键词搜索而言。

2006-03-04

获取打印机列表

为了在Linux下也能实现打印功能,我的办法是用html2ps把生成的HTML文件转换成ps文件,然后用lpr命令把ps文件送到打印机。如何获得当前安装的打印机列表呢?

在Suse上测试过可以通过下面的命令组合来得到:
lpstat -p |sed ‘/^[ ][ ]*.*/d’ |awk ‘{print $2}’ | grep -v “file”

然后用lpr -P$printername $filename把文件送到打印机。

2006-03-03

IE 7 beta2的又一个bug?

在把wordpress升级到2.01后,在IE 7 beta2下首页由于live calender插件无法正常加载,页面会无休止的以很快的速度不断刷新,导致无法阅读。在IE 6下却正常,不知道这是不是IE 7 beta2的又一个bug。

把nucleus blog的帖子转换到 wordpress blog

nucleus blog是我用的第一个blog系统。后来发现用wordpress的越来越多,wordpress的开发更新也越来越快,于是又用wordpress建了一个blog,这样两个blogs并行存在了很长一段时间,直到因为worspress的一个xmlrpc的bug,管理员把我的wordpress给禁止了,于是便搁置了很长一段时间没管它。今天抽空把web空间从studip那个server移到了系上的那台web server上,并更新到当前最新版本2.01,并从网上找到的一个php脚本,把nucleus blog里面的帖子全部转换到wordpress这个系统里了,只是这么一转换之后,wordpress原来的帖子就不见了。当然转换之前对数据库作了备份,改天有空再把wordpress里原来的帖子在恢复回去。

让人印象深刻的两个德国小女孩

雪飘了大半天,给草地厚厚地覆盖了一层白衣,让小孩们又找到了冬天玩雪的感觉,连和我一起工作的另外一个性格外向的德国女生也高兴的直跳。下午从DM楼下班回家,路过食堂后面的草地,看见不少人在雪地里玩。这是有个小女孩冲我大声说道,Ist das Wetter nicht sehr schön? 我笑着回答说 ,"Ja, sehr schön"。女孩接着说,"Findest du jemand , der das Wetter nicht schlön findet?","Nein, ich finde keine!",我接着回答。这是我注意两个小女孩正在用积雪堆积什么东西。我以为她们俩要堆个雪人,一问才知道,她们要堆的是爱斯基摩人住的那种圆顶冰屋,叫做Iglu。这让我也有些好奇,便走过去和她们聊了起来。原来她们是姐妹俩,姐姐念7. Klasse,妹妹念6. Klasse。两人都会德语,法语(按照她的说法是fast perfekt),英语和波兰语(因为母亲是波兰人)。姐姐非常爱说话,说自己以后要当一个植物学家,研究植物。因为她觉得植物是selbsternährend。现在她就很喜欢做各种试验,参加学校的Jugendforschung的各种Projekt。最近她正在测试定期给苹果树浇灌含糖的水,看日后结的苹果会不会比没有浇含糖水的苹果树结的果实要甜。她自己说,她是Frühstudentin。,

2006-02-22

遭遇IE 7 beta2 的一个bug

在安装完IE 7 beta2后发现在打开有的chm文件时会得到:
Internet Explorer cannot display the webpage
错误提示。
原以为是因为安全策略限制引起的,参照http://support.microsoft.com/kb/896054/
文中提到的各种解决办法,问题还是存在,并且发现在打开某些chm文件时却不存在这个问题,至此排除了由于安全策略设置不当的原因。后在用关键字 “IE7, chm, mk:@MSITStore”查找后才发现,这应该是IE 7 beta2一个未解决的Bug。

2006-02-12

Event ID 6004 / 3019

由于经常映射和使用网络硬盘,发现日志上不断出现下面的错误和警告:
Ereignistyp: Fehler
Ereignisquelle: EventLog
Ereigniskategorie: Keine
Ereigniskennung: 6004

Beschreibung:
Ein Treiberpaket, das vom E/A-Teilsystem empfangen wurde, war ungültig. Die Daten sind das Paket.

2006-02-11

硬盘的故事还没完

拿到新硬盘后,把它设置为master,赶紧在上面装了一个操作系统,并把旧硬盘设置为slave。这样从新硬盘启动系统后把旧硬盘的数据拷贝到新硬盘上。拷贝数据时明显觉得拷贝速度很慢。复制一个2,3G的文件夹要半个多小时。这对两个带有8M cache的ATA 133硬盘来说简直太慢了。当时我想估计是就硬盘有问题,读取数据比较慢。也就没有太在意。心里还想,只要数据能读出来就不错。经过漫长的数据复制之后,我把旧硬盘卸下来,电脑里仅剩一个硬盘,运行起来感觉很不对劲。光启动就比以前满了好多,winxp 那个滚动条要走近30下才能启动起来。登陆进入后打开一个资源管理器也有明显的迟钝等待。1个G的内存和250 G的硬盘不应如此慢啊?!
又去查看日志,几个连续的红色由ATAPI引起的错误引起了我的注意:

2006-02-09

新硬盘寄过来了

我2004年4月24日花999欧元买的那台Fujitsu Siemens电脑的IDE硬盘(Maxtor 7Y250P0)坏了。硬盘虽然还能被识别,但是读盘已经很吃力了。算下来,这个硬盘的寿命还不到2年。我暗自庆幸,幸亏我及时发现了,要不然再过一个多月2年的保修期一过,我又得自己掏钱买一个硬盘。

2006-02-04

一个轮循日志的工具

cronolog is a simple filter program that reads log file entries from standard input and writes each entry to the output file
specified by a filename template and the current date and time. When the expanded filename changes, the current file is closed and a new one opened.

cronolog is intended to be used in conjunction with a Web server, such as Apache, to split the access log into daily or monthly logs. For example the Apache configuration directives:

2006-01-25

Löschen der servergespeichterten Benutzerpofile beim Abmelden des Benutzers an der Arbeitstation

应用组策略解决当域用户注销时删除用户在本地的profile文件。
执行gpedit.msc
在win xp pro上按下列顺序找到Delete cached copies of roaming profiles选项,激活:
computerconfiguration -> Administrative Vorlagen -> System -> User Profiles ->Delete cached copies of roaming profiles

在windows 2000上位置有所不同:
computerkonfiguration -> Administrative Vorlagen -> System -> Anmeldung -> zwischengespeicherte Kopien von servergespeicherten Profile löschen