2008-11-16

卸载Windows Live Messenger 2009 beta

一位朋友新买了一台电脑,自己安装了windows live messenger 2009 beta版本。可是安装完成后根本不能登陆,错误代码为8000ffff。网上查询的结果显示有不少人都有同样的错误,都是建议卸载后安装一个低一点的正式版本。下载完8.5版本后无法进行安装,因为检测到有更新的版本存在。于是去卸载windows live messenger 2009 beta。可是Windows控制面板里的添加卸载程序里根本就没有列出它,无法卸载。在程序安装的文件夹内也找不到卸载程序。执行用Windows Installer CleanUp Utility 1.0后,beta版本的messenger仍然纹丝不动。google的结果中有个方法是执行:

msiexec /x {B1403D7D-C725-4858-AACC-7E5FA2D72859}

可是这个方法在这位朋友的机器上却不见效,说对当前安装的程序无效。想到贴出这个方法的都是使用英文的用户,而我这位朋友安装的是中文版本。也许是英文与中文版本的ID不一样。于是上注册表一看,果然windows live messenger下的ID是另一个值。把上面的ID值更换之后,卸载界面终于出来了。问题就算解决了,可是为什么不能让beta版本的卸载更容易些呢?

2008-11-13

延迟发送邮件

现在每天要通过邮件向客户的头发送两次status report。第二次发送的时间是在18:00。如果在17:30就准备好了要发送的邮件,想早一点结束工作而又不想让头头18:00之前看到邮件,怎么办?
解决办法是在exchange+outlook环境下使用延迟发送邮件功能。撰写好邮件之后,在邮件选项里可以指定在特定时间之前不发送。这样即使在本地Outlook发送完邮件之后,exchange服务器在指定的时间之前也不会投递邮件到邮件接收者。

参考:
http://office.microsoft.com/en-us/outlook/HP052427901033.aspx?pid=CH063565631033

2008-11-12

收回已发送的邮件

Outlook 2003 在Exchange环境下可以撤回已发送的邮件。打开已发送的邮件,在action菜单下有个选项撤回已发送的邮件,具体操作如下:
http://office.microsoft.com/de-de/outlook/HA010917601031.aspx

2008-11-07

update Nav N Go iGO to v8.3.1.57021

把文件拷贝到SD卡后,启动程序总报错说:

program application database cannot be found. Please insert the original card.

网上提示修改sys.txt文件中app的路径,比如把SDCARD改成本地化版本WM中SD卡的名字:

[folders]
app="%SDCARD%/iGO8"

[interface]
maxzoom2d=6000000
show_exit=1

[map]
2dheadup=1

试着修改为Speicherkarte,仍然不行。不过发现在启动程序后在Mein Windows Mobile-basiertes Gerät下面会有一个以app的值为名称的文件夹,不过里面都是空的。也就是说程序去那儿查找content文件夹的内容却找不到,所以报错。后来干脆删掉指定folders的两行,问题就解决了。因为sys.txt,iGo8.exe和content等文件夹在同一个目录下,查找是从当前目录开始,于是就找到了。

2008-11-03

Sending artes with Outlook 2007 failed

今天要重发一遍上个月月底的time  reporting,结果发送不出去,因为周末把Outlook更新到了2007。可气的是Artes的出错提示,明明我点击的是发送,它却总是告诉我,我点击了cancel,取消了发送过程。这样的提示如何帮助用户去解决问题。后来找到的解决办法:

  1. Close Artes & Outlook 2007.

  2. Install the Microsoft patch by clicking here.
    NOTE:  You can also install the patch Collaboration Data Objects, version 1.2.1 from this link: http://www.microsoft.com/downloads/details.aspx?familyid=2714320d-c997-4de1-986f-24f081725d36&displaylang=en

  3. Start Artes & Outlook 2007.

  4. Send your Time Report.

2008-10-28

print files in landscape orientation

在双面打印横向排版的文件时,根据个人的经验,如果使用HP打印机,奇数页面的方向是正确的,可是偶数页的方向却不对。在打印之前需要设置一下orientation:

Fertigstellung -> Ausrichtung -> 选择 Querformat

2008-10-27

Font Substitution with Acrobat

Acrobat提供一个特性,把显示文档所需的字体嵌入到文件中,而不必把整个字体文件嵌入到文件中,因此能明显减小文件的大小。如果发送一个中文的pdf文档给一位使用西文操作系统的用户,这时最好使用font substitution,以保证这个文件在他的系统中能正常被现实和打印。

Font substitution in PDF will occur when the computer does not have access to the original font. If the original font is not present, an Adobe Multiple Master typeface is temporarily substituted for missing fonts— AdobeSerifMM for a serif fonts, and AdobeSansMM for sans serif fonts.

Documents submitted to technical review by the agency may contain formulas and other scientific characters. To prevent the possibility of a character being incorrectly substituted, documents must have fonts embedded.

Modern font sets often contain thousands of characters. Completely embedding a font greatly increases the file size of the resulting PDF. The solution is font subsetting. Subsetting only embeds the characters that are necessary to render the page. Visually, a document with subset fonts and completely embedded fonts looks and prints identically.

2008-09-07

购买Office 2007记

从周一开始就在K给Jump Starter做Training。今天结束的早赶上了17:11的S-Bahn,并在S-Bahn上和去年参与招人工作并主持AC的MM和Stefan(后来才知道是位senior manager)和聊了起来。快到Hbf时,GK打电话说,她公司的电脑上的Office 2007试用版已经不能用了,老板让她自己去买一套Office 2007,于是求助于我,让我去Hauptwache帮她买一套。早就跟她说过Open Office完全可以作为替代品,不过对此似乎是很不感冒。我也懒得再费口舌坐车直奔Hauptwache的Saturn了。这应该算是法兰克福最热闹的地段的一个大型电器商场了,不想货架上唯一找到的微软的Office产品除了一份单独出售的Outlook 2007外就只有Office 2007 standard的一个upgrade版本,价格为349欧元。也就是说购买者在自己的电脑上必须已经安装了一份有许可证的Office组件(Word,Excel和Powerpoint)才能使用这个Upgrade版本。看到如此情形,不禁怀疑微软是不是根本就没有打算把Office 2007卖给个人消费者,所以它才在法兰克福这样一个国际性大都市最繁华地段的大型电器商场不见踪影。一番电话之后,打消了那位还想购买Office 2007许可证的想法。Citibank这样的客户到现在还在用Office 2000,不禁好奇这Office 2007都卖给了什么样的企业用户。

2008-08-28

针对IE的CSS

用CSS来布局页面,IE的不同版本对CSS的支持不一样,因此必须针对不同的版本应用一些CSS hack。IE 5和以上版本提供一种特殊的注释,IE 会去解释它,而其他的浏览器把它视作注释,不用理睬。

想针对版本低于和等于IE 6的应用CSS,可以使用:

<!--[if lte IE 6]>
<link rel="stylesheet" type="text/css" href="css/IE6hacks.css" />
<![endif]-->

只针对IE 7的CSS:

<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="css/IE7hacks.css" />   
<![endif]-->

针对IE 5和以上版本:

<!--[if IE ]>
<link rel="stylesheet" type="text/css" href="css/IEhacks.css" />   
<![endif]-->

使用Google Calendar Sync

为了把Outlook的日历与Google的日历同步,找到了Google提供的Google Calendar Sync。填写好Gmail的账户和同步频率后就可以完成同步。这个小软件提供三种同步选择,google 日历 -> outlook 日历,outlook 日历 ->  google 日历和google 日历 <--> outlook 日历。如果能把它作为一个Outlook的addon应该会更加方便。

Vista下改变分区

周六一个朋友新买一个电脑(Vista系统),让我帮忙创建分区。我以为还可以用旧的PM搞定,用Windows PE光盘启动后,不知道是硬盘太新,还是Vista的原因,连硬盘都没有识别出来,只好作罢。后来在网上一查,原来Vista已经自带了调整和创建分区的工具。

Windows Vista includes a built-in functionality in Disk Management to shrink and expand partitions. No more 3rd party utilities needed!

2008-07-06

邮件没有到达某些或全部的预定收件人

为GK在Outlook下配置了1und1的邮箱,使用IMAP协议,收发邮件都没有问题,可是每发送一封邮件时总会在本地的收件箱里收到一封由“系统管理员”发送的主题为“未传递:邮件主题”的邮件。邮件内容为:

邮件没有到达某些或全部的预定收件人。

主题: foobar

发送时间: 6.7.2008 20:58

无法到达以下收件人:

'foobar@hotmail.com',时间为 6.7.2008 20:58

550 must be authenticated

Google了一下原来是因为在在设置账户时没有选中选项:

我的邮件发送服务器(SMTP)要求验证

2008-06-22

web dynpro for abap基础知识(4)

本篇是关于如何访问controller context。

访问一个context node

对于每一个controller,系统都会为其自动创建一个interface,名为IF_<ctrol_name>。在这个interface中,对于每一个context node都会有一个相应的WDCTX_<node_name>存在。访问root node直接使用WD_CONTEXT,访问root node的子node使用get_child_node( )方法,要注意的是方法名作为参数被传递时必须是大写!方法返回指向指定node的引用,类型为IF_WD_CONTEXT_NODE。这个方法还有一个可选参数,是要访问的element在父node中的索引编号。

访问一个node element

获得一个指向node的引用后就可以使用get_element( )方法来获得指向element at selection的引用,类型为IF_WD_CONTEXT_ELEMENT。

2008-06-21

学习HR350课程

sap的HR350是一个关于Human Capital Management的ABAP编程的课程。这个课程按课程材料规划是5天,此次在Heidelberg的HCMS学习这个课程却只有3天时间,因此只学习了第1单元到第5单元。Unit 6 (Data structures in personal planning),Unit 7(Logical database PCH),Unit 8 (customer-specific Infotypes)和Unit 9(HCM ABAP Feature)只能自己在家学习了。

2008-06-20

web dynpro for abap基础知识(3)

web dynpro中controller的方法

在web dynpro中每个controller都有两个默认的方法:

wddoinit():这是一个controller内第一个被调用的方法,常用于初始化数据。

wddoexit():这是一个controller内最后一个被调用的方法,用于做收尾工作。

这两个方法在controller被创建时自动生成,并且都是空的方法。

对于component controller还有两外两个重要的方法:

wddobeforenavigation():
This method is called after the action method has been processed and just before the web dynpro frameworkprocesses the events in the navigation queque.

wddopostprocessing():
This method allows data validation from multiple components, and it's the last controller method that is processed before the UI is sent to the client.

view controller也有自己的两个方法:

2008-06-19

web dynpro for abap基础知识(2)

在web  dynpro中定义user interface

定义user interface相对比较简单,从左边栏的工具箱里拖拽需要的UI elements到layout里面,并设置各个UI element的属性。更多的工作是关于data binding。

有些UI elements是不可见的,如TransparentContainer, ViewUIElementsContainer。这类元素用于组织其他的可见元素,如Button, Label,InputField,Table,Tree等。所有的UI elements被组织成一个树状结构,根节点名为RootUIElement,类型为TransparentContainer。RootUIElement下的每个container element都有一个属性Layout,它规定了在container内元素的布局。4种layout manager可供layout属性选择:

2008-06-18

web dynpro for abap基础知识(1)

空闲在家开始学习sap课程NET310 abap web dynpro。想学这个课程是因为Alex说,现在对web dynpro for abap的需求会越来越大。想到到他搞sap已经十几年了,先相信他这一判断。

这个课程以BC400和BC401(abap objects)为基础。BC400没有完整的学过,BC401也没学过。看了前几个单元,先纸上谈兵一番,总结一下关于wda(web dynpro for abap)的基础知识。

web dynpro for abap采用了MVC的设计方法。一个web dynpro component包括window,views和component controller。window和view主要和UI有关。windows只是一种容器,在一个component内一个window可以包含任意多个view,而component controller只有一个。如果一个component不需要view,那么windows也就相应无需存在了。

一个web dynpro component可以与一个URL关联,通过浏览器来访问,或者作为另一个web dynpro component的sub-component供调用。

用abap创建一个简单的web dynpro application

执行se80,选择Repository Browser,并选择Web Dynpro Comp. / Inf.

填入要创建的web dynpro component的名字,回车,系统创建web dynpro component,并为它创建了一个Main view和一个window。

接下来在main view的tab context中为view context创建一个context node,在main view的tab layout中插入一个表格,并完成data binding,实现main view的tab methods下的WDDOINIT方法。之后创建一个web dynpro application,并激活整个web dynpro component。测试这个web dynpro app会自动打开浏览器显示表格内容。

2008-06-17

abap objects中的命名习惯

abap objects中的类和接口与data elements,tables,structures和types共用一个命名空间,它们都被保存在表TADIR中。

classes in the class library: CL_<class name>
example: CL_COMPANY_CODE, CL_GENERAL_LEDGER_ACCOUNT

interfaces in the class library: IF_<interface name>
example: IF_STATUS_MANAGEMANT, IF_CHECKER

local classes in programs: LCL_<class name>
example: LCL_TREE_MANAGEMENT

local interfaces in programs: LIF_<interface name>
example: LIF_PRINTER

2008-06-12

使用ALV的一个例子

HR350中的Unit 4介绍了使用ALV(ABAP list viewer)来格式化report的数据输出,使输出的数据具有排序,打印,搜索,过滤,隐藏/显示特定字段等功能。使用ALV最基本的步骤包括:

1. 把要显示的数据都放到一个内表中

2. 定义一个field catalog,用于确定要显示的列

3. 调用函数 REUSE_ALV_GRID_DISPLAY

2008-05-05

Outlook 2003的search folder功能

search folder是我在Outlook中常用的一个功能,因为它能方便的根据不同的条件来组织邮件。现在的项目先后有两个负责的经理,为了把项目有关的邮件组织在一起,所以建立了一个search folder,过滤条件是From or Sent to。公司用的是Exchange Server,所以过滤条件内容为vorname1.name1; vorname2.name2。奇怪的是过滤出来的结果中没有包含后面那位经理的邮件。很明显问题只可能出在过滤条件的输入内容上,但是反复检查都没有拼写错误。最后把第二位经理的邮件地址写为name2, vorname2,过滤结果中就包括她的邮件了。实在不知道为什么,估计和Exchanger Server那边两位经理的user profile有关。

2008-05-04

升级MDA到windows mobile 6

公司发的MDA compact III操作系统为windows mobile 5.0,今天抽空把它升级到了6.0,并把Microsoft ActiveSync从4.2升级到4.5。安装完Windows Mobile 6.0后发现自带了杀毒软件F-Secure Mobile,其他也就是图标换了换,另外word默认保存为Word 2007支持的docx格式。原来在Kontakte只显示Outlook里同步过来的联系人,现在升级后SIM卡里的联系人也一并在Kontakte中显示,并且不提供选项更改。这一点感觉很不友好!

2007-11-25

解决Daemon Tools的安装问题

在单位的笔记本上安装完Daemon Tool后,启动Daemon Tool总得到错误提示:Unable to add adapter. Device problem 39。右键单击任务栏的图标得到错误提示:virtual scsi driver not detected。Windows的日志报告中没有关于这个错误的任何报告

google了一下,发现已经有人报告这类错误,解决建议包括卸载程序,重新安装,在安全模式下安装等等。我卸载数次再安装都没有解决问题,最后在安全模式下重新安装才能正常使用它加载虚拟光驱。

修改Firefox的字体设置

单位的笔记本操作系统为英文版的Windows XP。用Firefox阅读中文网页时,字体看起来很别扭。在系统中添加了微软的雅黑字体,想让Firefox显示中文网页时默认使用雅黑字体,需要修改一下字体设置。有一个变量font.name.serif.x-western,默认的值为“time new roman”,把它的值改为“Microsoft YaHei”后,中文网页的字体看起来就好多了。

2007-11-13

恢复blog

在停了两个多月后,现在终于又有点时间了。9月份先是ABAP,10月份SAP Netweaver Portal,11月现在作无聊的Co-Trainer,到20号才正式开始工作。

小提示:

在Hbf乘S4去Campus,在104站台最好往前走,大概在B的位置是最佳位置。这样下车的时候可以在S-Bahn还没有通过马路时赶紧穿过马路,因为此处过马路没有斑马线。这在赶时间的时候还是有用的:)。

回家乘S1或S2刚好相反,尽量坐在火车的后面比较划算,这样下车之后回家可以少走几步。

2007-11-06

初识SAP认证

各个大的IT公司都有自己的认证体系,如IBM,Microsoft, SAP,Oracle等等。除了这些公司提供的认证之外,还有非商业机构提供的认证,如由Linux Professional Institute提供的关于Linux的LPI认证。各个公司的认证体系既能提高使用本公司产品的用户的专业水平,也为企业招聘员工提供了一个衡量的尺度,当然也为公司带来了一笔收入,因此各个公司对此都非常重视。相比之下更多的人会选择去考取微软的认证。我想这主要是因为微软的产品普及地比较广泛,作为个人接触其产品和获取认证资料的机会也相对较多。这一点与SAP的产品形成一个鲜明的对比。SAP早期产品只是针对大企业用户,现在SAP公司正努力拓取中小企业市场,其门槛才慢慢降下来,因此考取SAP认证的人数相对而言就要更少一些。

现在SAP在全世界推行一套统一的认证体系。SAP认证包括三个级别,分别为Associate, Professional和Master。其中Associate这一级别的认证主要针对牢固掌握SAP基础知识,从业经验在1到3年之间的用户,而Professional则要求从业经验在4至7年之间,并拥有实际的项目经验。持有最高级别的Master认证的SAP咨询师则被认为是真正的SAP专家,熟悉系统整合,优化和架构知识,并能领导团队顺利完成项目。除了认证级别之外,还有一个认证领域的概念,因为SAP系统涉及企业管理的方方面面,确实比较繁杂。认证领域包括应用(application),开发(development)和技术(technology,此处译作技术欠佳,但不知道什么词更合适)。应用主要包括自定义SAP系统适应企业需求,开发则包括使用ABAP和Java的编程,技术类涉及SAP Netweaver Web Application Server和Portal等的安装和维护。早期的SAP认证,如Solution Consultant, Development Consultant 和 Technology Consultant分别对应Associate级别的Application,Development和Technology。
这样一来一个完整的SAP认证证书名称实际上由多个部分组成(符合SAP的习惯,名字也弄繁杂点 :)),首先是认证级别,紧接着是认证领域,然后是短横线接认证时所使用的SAP产品版本。比如Development Associate – ABAP with SAP
NetWeaver 7.0 或者Development Professional – ABAP System Integration with SAP NetWeaver 7.0。

因为有各种各样的认证搭配,SAP为此提供一个查询功能,供用户查询SAP提供的认证。查询表单有三个可选项。第一个可选项为认证涉及的解决方案,个 人认为与常说的模块比较接近,包括 SAP NetWeaver,Enterprise SOA,SAP Customer Relation Management, SAP ERP, SAP Product Lifecycle Management, SAP Supply Chain Management, SAP Business One, Small and Midsize Enterprise (SME)。第二个可选项是上面提到的认证领域,即application,development,technology。最后一个可选项为在企业中的角色,提供的选择包括架构师,应用咨询师,开发咨询师和技术咨询师,IT管理员及行业咨询师。
以分别选择SAP Netweaver, Technology,和technology consultat为例,系统会返回SAP提供的多种认证可能。包括:
    * SAP Certified Technology Professional - Security with SAP NetWeaver 7.0
    * SAP Certified Technology Consultant SAP NetWeaver 2004 - SAP Web AS for MAX DB
    * SAP Certified Technology Consultant SAP NetWeaver '04 - SAP Web AS for Oracle
    * SAP Certified Technology Consultant SAP NetWeaver 2004 - SAP Web AS for MS SQL Server
    * SAP Certified Technology Consultant SAP NetWeaver 2004 - SAP Web AS for DB2 UDB
    * SAP Certified Technology Consultant SAP NetWeaver 04 - OS/DB Migration for SAP Systems
    * SAP Certified Technology Consultant SAP NetWeaver - SAP Web AS Implementation & Operation for DB (2003) (for Tech. Cons. 2000)
    * SAP Certified Technology Consultant SAP NetWeaver - SAP Security (2004)
    * SAP Certified Technology Consultant SAP NetWeaver 2004 - SAP Web AS for DB2 on z/OS
    * SAP Certified Tech. Associate - System Admin (Oracle DB) with SAP NW 7.0
    * SAP Certified Technology Consultant SAP NetWeaver 2004 - Enterprise Portal, Knowledge Management & Collaboration
    * SAP Certified Technology Professional - Platform Technology with SAP NetWeaver 7.0
    * SAP Certified Technology Consultant SAP NetWeaver 7.0 Exchange Infrastructure
    * SAP Consultant Certification Technology Consultant SAP NetWeaver 2004s - Portal
    * SAP Certified Technology Associate - System Administration (MS SQL DB) with SAP NetWeaver 7.0
    * SAP Certified Technology Associate - System Administration (DB2) with SAP NetWeaver 7.0
    * SAP Certified Technology Associate - System Administration (MAX DB) with SAP NetWeaver 7.0
    * SAP Certified Technology Professional - Portal with SAP NetWeaver 7.0
    * SAP Certfied Technology Associate - Process Integration with SAP NetWeaver (PI 7.1)

点击这些列出的认证能获得更多的关于该认证的信息,包括认证考试涉及的主题和SAP针对该主题提供的培训课程,各个主题所占的比例等等。这些信息对于准备认证考试是必不可少的。

我在Preentry School的第二个月曾接受了一个月的由SAP提供的培训。我仔细比对了一下,我们当时培训的课程与上面SAP Consultant Certification Technology Consultant SAP NetWeaver 2004s - Portal里列出的课程完全一致,包括:
SAPTEC: Fundam. of SAP Web AS
SAPEP: Enterprise Portal Fund.
ADM 200: Web AS Java Administration
ADM 102: Web AS Admin II
EP 200: Enterprise Portal System Admin.
EP 300: Configuration of Knowledge Management und Collaboration

内容本身并不难,只是比较多,要在四个星期之内完成。因为当时只有考试通过了才能拿到正式的合同,所以大家都学地比较认真。培训结束时的考试也是SAP的认证考试。由SAP的一位工作人员人带着笔记本过来,考试前在每人的笔记本上安装一个SAP提供的程序,连接到考官的笔记本上。从回答第一道题开始计时,必须在3个小时内回答120个选择题,包括单选和多选。个人感觉考试内容并不难,所考的内容基本上来自培训资料。尽管EP 300也属于考试内容,但考试时因为时间关系,我们尚未来得及学习,尽管这样我们绝大多数人都通过了考试,但没有获得SAP的认证证书,因为公司为了保护自己利益仅仅颁发了一个ATS的培训证明。由此看来要考取一个SAP证书并不是很难。个人认为准备一个Associate级别的认证考试最少也需要一个月的高强度学习。更高级别的考试我没参加过,所以无从估计。但是有一点是肯定的,对于我们经历了无数考试的70后来说,这种考试我们是可以通过的。

2007-09-29

10月份培训内容

10月份继续接受培训,主题为SAP NetWeaver Portal,内容包括:

SAPTEC: Fundam. of SAP Web AS

SAPEP: Enterprise Portal Fund.

ADM 200: Web AS Java Administration

ADM 102: Web AS Admin II

EP 200: Enterprise Portal System Admin.

EP 300: Configuration of Knowledge Management und Collaboration

2007-09-02

Firefox插件列表

今天是在大学工作的最后一天了,需要的数据都备份完了。我的机器ge2pc51里Firefox中安装的插件也在此罗列一下。列表是由listZilla插件生成的:

Adblock Plus 0.7.5.1
Aptana Debugger Service 0.2.8.14433
CHM Reader 0.2.1.1
CSSViewer 1.0.2
del.icio.us 1.2.1
ErrorZilla 0.2
Firebug 1.05
Full Screen 0.5
Fullerscreen 2.02
Google Notebook 1.0.0.18
Google Toolbar for Firefox 3.0.20070525W
Greasemonkey 0.7.20070607.0
Html Validator 0.8.4.0
Java Console 6.0
ListZilla 0.8
Live HTTP Headers 0.13.1
LiveClick 0.2.4
Right Encoding 0.2.2
ScrapBook 1.2.0.8
Searchbar Autosizer 1.3.7
SwitchProxy Tool 1.4.1
View Cookies 1.6
Web Developer 1.1.4
XML Developer Toolbar 0.2

2007-08-17

工作许可下来了

等了一个多月的工作许可终于下来了。6月29日晚上打完球看信箱收到了公司寄过来的已经准备好的申请材料。7月2日周一一早去外管局递交了材料,7月3日材料到达Frankfurt劳工局,8月13日电话询问外管局得知没有进一步的消息,发Mail给公司请求公司联系劳工局查询材料的处理情况,立即收到Tania回复,答应去查询有消息即刻通知我。8月16日中午刚吃过午饭收到Tania的邮件,告诉我工作许可下来了,让我可以去Rehm那儿去了。交了30Euro之后,护照上又少了两页空白页。

2007-08-16

Wordpress 2.2使用jquery

Wordpress的开发者从2.2版本开始使用jquery作为其核心的Javascript库了,因为他们认为jquery is lighter and faster。看来jquery的发展越来越被人看好。在扩展digilib时我也使用了jquery,觉得它非常方便,清晰。一个名为visual jqeury的文档对这个库的各个函数作了很明了的分类,有时要比阅读API更方便。

jquery中很多函数操作的对象都为jqury对象的集合,而jquery自身的一个名为implicit iteration的特性能自动遍历处理集合中的每一个对象,省掉了很多for循环语句。

另外jquery的selector非常丰富,支持CSS和Xpath的表达式。此外jquery还有一个名为chaining的特性,能避免创建过多的临时变量。

This means that the result of most operations on an object is the object itself, ready for the next action to be applied to it.

2007-08-15

第一份工作还未结束

如果按照正常的休假,今天本应是在大学工作的最后一天。接下来的半个月可以享受剩下的12天假期。按规定工作半年(不超过30岁)可以享受14天休假,全年为28天,超过30岁全年休假29天,超过40岁则全年休假30天。不过即使休假也是在家呆着等法兰克福那边签发工作许可,所以痛快的接受了Thomas让我放弃休假的建议,一直工作到月底再结束在大学的工作。

2007-08-14

O2使用cocoon服务器

在浏览O2的网页时,发现其Pagerank值为零,另外URL里出现cocoon-action-DisplayCDRs等字样,便猜测会不会跟cocoon有关。查看服务器返回的Header,果然使用的是cocoon,版本号为2.1.9,而2.1.10正式版在2006年12月就发布了。看来对于企业生产环境来说,更换网页服务器不是一件简单的事。

2007-08-09

Firefox的插件LiveClick

如果使用Firefox的Live Bookmarks功能,那么这个名为LiveClick的插件能够提供更方便的功能,如显示某个post是否已经阅读,监视feed更新等等。

阅读pdf文件的小巧工具

以前就知道有个名为Foxit的pdf阅读软件,小巧并且免费,但觉得有时候文件的渲染效果不够好,在Linux下有xpdf就足够。今天在How-To Geek看到一款开源的pdf阅读软件,名为Sumatra,试用了一下速度很快,文件渲染也不错。程序由Krzysztof Kowalczyk开发,就一个可执行文件,无需安装,当前版本为beta 0.7,大小仅为803kb,非常值得推荐!常用的快捷键有:

  • space - scroll by screen
  • backspace - scroll back by screen
  • k - scroll by one line
  • j - scroll back by one line
  • Down - scroll by one line
  • Up - scroll back by one line
  • n - goto next page
  • p - goto previous page
  • Page Down - go to next page
  • Page Up - go to previous page
  • g - goto page
  • q - quit
  • + - zoom in
  • - - zoom out
  • r - reload PDF document
  • <Shift> <Ctrl> + - rotate clockwise
  • <Shift> <Ctrl> - - rotate counter-clockwise
  • Home - go to first page
  • End - go to last page

不知道为什么用k和j移动的用法刚好和在vim里相反。

2007-07-31

Ignore a file(folder) in Subversion

Ignore a file:
svn propset svn:ignore *.log .

svn propset svn:ignore *.pyc dirname

Ignore a folder:
svn propedit svn:ignore dirname



要忽略多个文件夹和文件类型,创建一个文本文件ignore.txt,一文件夹或一种文件类型占一行,如:
obj
bin

保存这个文件到如obj和bin的父目录src目录下,然后在src目录一级执行svn propset svn:ignore -F ignore.txt .

注意最后的 "."表示当前目录,不能省略。

2007-07-28

cocoon环境下在XSLT中使用request parameter

在cocoon的sitemap.xmap文件中XSLT这个transformater默认的配置是不启用request paramter的,要在XSLT中使用request parameter的值只需把:
<use-request-parameters>false</use-request-parameters>

的值改为:

<use-request-parameters>true</use-request-parameters>

这样在XSLT中声明一下这个parameter就可以使用了:

<xsl:param name="parameter-name"/>

2007-07-21

vim提供的简单加密功能

今天阅读vim的手册才知道,原来vim提供简单的文档加密功能。在新创建文档时使用 -x 选项,vim会自动询问密码,要求用户两次输入密码,确保密码被用户正确设置。要为一个已经创建的文档添加密码和更换密码,可以使用命令:
:X

要停止对一个文件加密,可以把key选项设置为一个空字串:
:set key=

2007-07-18

使用Firebug

Firefox的插件Firebug对于开发调试网页实在太有帮助了。用F12就可以激活Firebug,默认在网页下端显示。我常用control + F12在新窗口中打开Firebug,这样在左边的主显示器上显示网页,在右边的副显示器上显示Firebug的窗口。这样在使用inspect功能时可以很方便的看到对应元素的代码。查看更多Firebug的快捷键。

在使用console功能时,如果选中了larger command line,Firebug为输入javascript提供的类似vim中设置选项一样的自动补全功能不可用。当在javascript的console提示符>>>后复制一段javascript代码时,larger command line会自动被激活。

在Firebug功能选择的上面一行选中一个元素,右键可以激活Log Events选项。这样可以在console查看事件输出。

有了Firebug不用去W3C查看CSS中的box model了。选中html,选定元素,再选中右边的Layout tab,就可以看到元素的box布局了。

当Firefox加载的网页包含多个frames时,Firebug默认的context是top-level的页面,如何切换context到其中的一个frame呢?

答案:

cd(window)

By default, command line expressions are relative to the top-level window of the page. cd() allows you to use the window of a frame in the page instead.

在command line下的常用函数:

$(id)
Returns a single element with the given id.

$$(selector)
Returns an array of elements that match the given CSS selector.

$x(xpath)
Returns an array of elements that match the given XPath expression.

用于输出日志的函数:

console.debug("message" [,objects]) - Logs a debug message.
console.info("message" [,objects]) - Logs an informative message.
console.warn("message" [,objects]) - Logs a warning.
console.error("message" [,objects]) - Logs an error.

解决安装MS Expression Web遇到的错误

今天下午听Qi Jin说起MS的silverlight,顺便安装了一下微软推出的Web开发工具MS Expression Web。不想在安装过程中出现错误:

Error Message: “The 2007 Microsoft Office system does not support upgrading from a prerelease version of the 2007 Microsoft Office system.”

解决办法是卸载各种与office 2007有关的beta版本。这篇文章提及了这个问题。在我下载掉2007 Microsoft Office Add-in: Microsoft Save as PDF (Beta)后,安装就能进行了。

In addition to the programs listed in the KB, this error message could also be caused by the German Language Pack for Office 2007 and Outlook 2007 add-ins (known ones so far: Windows Live Local Addin for Outlook, Calendar Printing Assistant for Outlook 2007).

2007-07-16

vi motions

在vi 的操作符命令(operator,常见的如:c,d,y,~,gu,gU,>,<)之后跟上移动命令(motion)可以带来很高的编辑效率。在编辑html/xhtml,XML文件时我使用这个特性觉得非常方便。
删除:
ci[ 删除一对 [ ] 中的所有字符并进入插入模式
ci( 删除一对 ( ) 中的所有字符并进入插入模式
ci< 删除一对 < > 中的所有字符并进入插入模式
ci{ 删除一对 { } 中的所有字符并进入插入模式
cit 删除一对 HTML/XML 的标签内部的所有字符并进入插入模式
ci" ci' ci` 删除一对引号字符 (" 或 ' 或 `) 中所有字符并进入插入模式
把上面命令中的i替换为a可以把 [ ]/( )/< >等字符一并删出。
其他例子:
"diw" delete inner word
"daw" delete a word
"diW" delete inner WORD
"daW" delete a WORD
"dd" delete one line
"dis" delete inner sentence
"das" delete a sentence
"dib" delete inner '(' ')' block
"dab" delete a '(' ')' block
"dip" delete inner paragraph
"dap" delete a paragraph
"diB" delete inner '{' '}' block
"daB" delete a '{' '}' block

选择:
vi[ 选择一对[ ] 中的所有字符,va[ 选择一对[ ]和其中的所有字符
vi( 选择一对( ) 中的所有字符,va( 选择一对( ) 和其中的所有字符
vi< 选择一对< > 中的所有字符,va< 选择一对< > 和其中的所有字符
vi{ 选择一对{ } 中的所有字符
vit 选择一对 HTML/XML 的标签内部的所有字符
vi” vi’ vi` 选择一对引号字符 (” 或 ‘ 或 `) 中所有字符
把命令中的i替换为a可以选中 [ ]/{ } /( )等字符。
vas 选中cursor所在的句子
vap选中cursor所在的段落

2007-07-15

使用sshfs加载远程文件

使用 sudo apt-get install fuse-utils libfuse2 sshfs 安装使用sshfs所需的包,安装程序会创建fuse用户组。如果要让普通用户也能使用sshfs,还需把用户加到fuse这个用户组里。用法为:
sshfs [user@]host:[dir] mountpoint
安装完后使用时碰到一个奇怪的问题,在gepc188上使用sshfs jia@germa93:~ germa93。命令执行成功,进入germa93目录却看不到远程主机的任何文件。germa93这个文件夹的属性也变为全是问号。查看/etc/mtab文件,最后一行就是刚才加载的fuse文件系统。这才发现是因为登录到远程主机与登录到本地主机的用户名不一致造成的。jia@germa93:~ 被解释成为加载远程主机germa93上的/home/jiad4701目录。这个目录不存在,因此出现上了上面的问题。把命令改为:
sshfs jia@germa93:/home/jia germa93
加载远程主机文件就没有问题了。
如果要卸载文件使用 fusermount -u /path/to/mount/point

2007-07-11

FreeMarker概述

FreeMarker特性

  • FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写
  • 被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序
  • 虽然具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据
  • 不是一个Web应用框架,而适合作为Web应用框架一个组件
  • 与容器无关,因为它并不知道HTTP或Servlet;FreeMarker同样可以应用于非Web应用程序环境
    更适合作为Model2框架(如Struts)的视图组件,你也可以在模板中使用JSP标记库

1、通用目标

  • 能够生成各种文本:HTML、XML、RTF、Java源代码等等
  • 易于嵌入到你的产品中:轻量级;不需要Servlet环境
  • 插件式模板载入器:可以从任何源载入模板,如本地文件、数据库等等
  • 根据需要生成文本;保存到本地文件;作为Email发送;从Web应用程序发送它返回给Web浏览器

2、强大的模板语言

  • 所有常用的指令:include、if/elseif/else、循环结构
  • 在模板中创建和改变变量
  • 几乎在任何地方都可以使用复杂表达式来指定值
  • 命名的宏,可以具有位置参数和嵌套内容
  • 名字空间有助于建立和维护可重用的宏库,或者将一个大工程分成模块,而不必担心名字冲突
  • 输出转换块:在嵌套模板片段生成输出时,转换HTML转义、压缩、语法高亮等等;你可以定义自己的转换

3、通用数据模型

  • FreeMarker不是直接反射到Java对象,Java对象通过插件式对象封装,以变量方式在模板中显示
  • 可以使用抽象(接口)方式表示对象(JavaBean、XML文档、SQL查询结果集等等),告诉模板开发者使用方法,使其不受技术细节的打扰

4、为Web准备

  • 在模板语言中内建处理典型Web相关任务(如HTML转义)的结构能够集成到Model2 Web应用框架中作为JSP的替代
  • 支持JSP标记库
  • 为MVC模式设计:分离可视化设计和应用程序逻辑;分离页面设计员和程序员

5、智能的国际化和本地化

  • 字符集智能化(内部使用UNICODE)
  • 数字格式本地化敏感
  • 日期和时间格式本地化敏感
  • 可以用非US字符集作标识(如变量名)
  • 多种不同语言的相同模板

6、强大的XML处理能力

  • <#recurse> 和<#visit>指令(2.3版本)用于递归遍历XML树
  • 在模板中清楚和直觉的访问XML对象模型

Turbine Web Application Framework

Apache的项目Turbine是一个基于servlet的framwork。

A quick guide to Turbine technologies:

  • Presentation layer - Velocity or JSP
  • Database layer - Turbine uses Torque, but different OM layers like OJB or Hibernate are also supported.
  • HTML Form Validation using the Turbine provided "Intake"-Service.
  • Logging - Turbine uses Commons Logging and supports a wide range of logging frameworks like Log4J, jdk14 or simple file logging
  • Service based framework, using Avalon compatible components in Turbine 2.4 and beyond.

有时间试一试!

2007-07-07

恢复注册表损坏导致的 Windows XP 无法启动

恢复由于注册表损坏而无法启动的 Windows XP 系统。警告如果您的计算机上的操作系统是由 OEM 安装的,请不要使用本文中介绍的步骤。OEM 安装中的系统配置单元会创建以前不存在的密码和用户帐户。如果您使用本文中介绍的步骤,可能无法重新登录到故障恢复控制台,因而无法还原最初的注册表配置单元。

要点:
在故障恢复控制台的命令提示符处,键入下面几行命令:

md tmp
copy c:\windows\system32\config\system c:\windows\tmp\system.bak
copy c:\windows\system32\config\software c:\windows\tmp\software.bak
copy c:\windows\system32\config\sam c:\windows\tmp\sam.bak
copy c:\windows\system32\config\security c:\windows\tmp\security.bak
copy c:\windows\system32\config\default c:\windows\tmp\default.bak
delete c:\windows\system32\config\system
delete c:\windows\system32\config\software
delete c:\windows\system32\config\sam
delete c:\windows\system32\config\security
delete c:\windows\system32\config\default
copy c:\windows\repair\system c:\windows\system32\config\system
copy c:\windows\repair\software c:\windows\system32\config\software
copy c:\windows\repair\sam c:\windows\system32\config\sam
copy c:\windows\repair\security c:\windows\system32\config\security
copy c:\windows\repair\default c:\windows\system32\config\default

使用故障恢复控制台中的 batch 命令,您可以按顺序处理文本文件中的所有命令。在使用 batch 命令时,无需手动键入多个命令。

Win XP登陆时不显示上一次登陆名

 

Windows XP系统下默认会保留上一次的登陆名。如上次用administrator用户登陆的话,下次开机,它还保留这个用户名在用户名框内。下面这个方法用来在登陆时不显示上次的登陆名:

----------------------------------------------------------------
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system]
"dontdisplaylastusername"=dword:00000001
----------------------------------------------------------------

把上面这段保存为reg文件,导入到注册表里。这样下次登陆就不显示上次的登陆名了。如果想还原的话,就把dword值改为:00000000即可。

2007-07-06

在XSLT中为元素添加属性

想把一个XML文件中一个原来是一个元素的子元素变为该元素的属性,如:

<item>
<itemText>f. 3v: cath 3, 80-134 </itemText>
<link>003_v.jpg</link>
</item>
<item>
<itemText>f. 4r: cath 3, 135-199 </itemText>
<link>004_r.jpg</link>
</item>
<item>
<itemText>f. 4v: cath 3, 200-4, 52 </itemText>
<link>004_v.jpg</link>
</item>

使用下面的XSLT语句可以为item元素增加name属性,但是没有删除子元素<link>,只好用vi来删除了:)

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fn="http://www.w3.org/2005/xpath-functions" >
<xsl:output method="xml" encoding="utf-8" indent="yes"/>

<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>

<xsl:template match="//item">
<xsl:copy>
<xsl:attribute name="name"><xsl:value-of select="./link" /></xsl:attribute>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>

</xsl:stylesheet>

2007-07-05

Firefox的插件:fullscreen 与 fullerscreen

Firefox下的插件多多,在http://addons.mozilla.org/页面下用关键字fullscreen查找会找到名为Fullscreen的插件。不过其实还有一个实现全凭效果更好的插件,名为fullerscreen。后者能隐藏所有的菜单栏和工具栏,增加了不少可视面积。

创建帮助文件 HelpSetMaker

Ansgar他们以前为fud写的帮助文件是用Word写的。现在发现这个帮助文件使用起来并不方便,希望帮助文件能类似windows下的chm文件,支持查找,关键字等功能。在sourceforge上发现一个名为HelpSetMaker的程序,可以制作帮助文件,输出html,JavaHelp,latex和Eclipse帮助文件,也支持搜索。

输出的JavaHelp文件可以借助Javahelp中的hsviewer.jar来查看。测试了一下,发现HelpSetMaker输出javahelp格式的文件时对UTF-8的支持有问题。如果项目编码设置为UTF-8,输出的jar文件编码设置也为UTF-8,那么在用hsviewer.jar查看该文件时,变音不能正常显示。不过当项目和输出jar文件都使用latin-1或latin-15时,编码就没有问题。生成的jar文件可以用:
java -jar hsviewer.jar -helpset fud-help.jar 命令来打开。

notepad的日志功能bug

微软的notepad有个功能是每次打开文件时在文件末自动填上当前的日期和时间。办法是在文件的第一行写入 .LOG 即可。我一直用它来作一些日常笔记记录。但是这个功能有个bug,即当文件大小达到44kb时,notepad在打开这样的文件时就会报错,说内存不够,请关闭其他的应用程序。尽管你没有打开其他的应用程序还有很多空闲的内存,你仍然会得到这样的错误提示。虽然还可以编辑这个文件,但是自动填入日期和时间的功能已经没有了。

2007-07-04

配置Windows XP自动获得IP或固定IP

Nathania有个笔记本,在家用DSL上网,通过router自动获得IP。但她把电脑拿到办公室后,只能使用学校分配的固定IP上网。这样每次都要改来改去,实在是麻烦。简单一点的办法就是写两个脚本来配置不同地点的IP,不过也要手工执行,还是不够方便。其实有个更简单的解决办法,只是因为在学校的LAN下基本上都使用固定IP,所以没有发现这个方法。解决办法很简单,先配置网卡为自动获得IP,然后在为这块网卡分配一个固定IP地址就可以了。

2007-07-03

关掉Ubuntu 7.04下apache2的默认网页编码

当前使用apt-get install apache2 安装的apache版本为2.2.3。安装后apache为网页编码默认设置为UTF-8。不知道为什么一定要设置这个默认编码为UTF-8,让用户编写的网页自己来决定网页的编码不是更好吗。看了一眼/etc/apache2/apache2.conf文件,发现里面的语句:
#AddDefaultCharset ISO-8859-1

已经关掉了默认编码设置了。可是发现网页的编码设置仍然默认为UTF-8。后来才发现原来在/etc/apache2/conf.d文件夹下还有一个名为charset的文件,里面包含:
AddDefaultCharset UTF-8

就是它在捣乱了!注释掉这句再重启apache2,就关掉服务器端设置的默认网页编码了。

2007-07-02

递交申请材料

今天一大早就把申请工作许可的材料交上去了。办事的小伙子Rehm扫了一眼材料就收下了,并告诉我四周之后才有进一步的消息。他主动把他的电话写在纸条上给我,让我四周之后再打电话(7181334)询问进展情况。现在就盼着Frankfurt那边能办事利落些,学学人家Bayern那边。据说那边两周就有结果了。

为Outlook创建profile配置文件

如果在Outlook中有多个POP3帐号,那么每次在新的机器上安装时都必须重新创建每个POP3帐号,因为Outlook不提供单独帐号设置导出。MS KB的一篇文章提到了可以创建一个prf文件来配置一个新的Outlook profile。

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申请的账户。

2007-04-25

在Firefox下阅读chm文件

Firefox借助插件chm reader可以打开chm格式的文件。这个插件以前的版本还只支持Linux下的Firefox,不过现在的版本已经支持Windows下运行的Firefox了。不少chm文件都不提供放大或缩小字体的功能。要修改chm中字体的大小必须借助修改IE中的字体大小来完成,更为麻烦的是修改完IE中的字体大小后还必须关掉chm文件重新打开chm文件才能生效。现在有了chm reader方便多了。

2007-04-24

vim 中常用删除

供查看方便:

删除第3-18行
:3,18d

删除行首空白
:%s=^\s*==

此处用 \s 匹配空白。 

删除行尾空白
:%s= *$==

匹配首尾空白字符的正则表达式:^\s*|\s*$

删除行首和行尾的空白:
:%s=^\s*|\s*$==

2007-04-20

保存pdf文件

今天用Adobe Acrobat 7.0打开了一个关于XPath的ebook,并做了简单的修改。原文档拒绝保存修改,试着另存为一个PDF文件。保存后文件的大小显著减小,从原来的57.560.207 Bytes到现在的5.995.126 Bytes。保存中曾有显示程序消除了一些冗余的图像,我想这应该是文件体积减小的主要原因。

保存Tomcat的访问日志记录

Tomcat的访问日志默认时关闭的,要打开访问日志记录只需修改conf/server.xml文件,去掉下面一段的注释:

<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="common" resolveHosts="false"/>

2007-04-19

PuTTYcyg

PuTTYcyg 是一个Putty的patch版本,搭配cygwin才能使用,能提供一个命令行页面。用惯了putty,总觉得cygwin的界面不习惯。连接本地的cygwin时,只需在connection type中选择cygterm,在主机名填入短横线 - ,然后存成一个session,如cygwinterm就可以了。做一快捷方式,建立一个cygwinterm.bat文件,包含:

c:\puttycyg.exe -load cygwinterm

2007-04-18

修正gvim的右键菜单

我在家里的电脑上安装的gvim 7.0有edit with gvim的右键菜单,在办公室里的电脑上安装了同样的文件,却找不到这样右键菜单,虽然能用,但是总觉缺点什么。两台机器都是同样的操作系统和同样的补丁,只是办公室电脑是通过clone的方式安装的,因此估计在注册表上有问题。于是从家里电脑里导出了有关gvim的键值,再导入到另一台机器上,右键菜单就有了。

附上注册表的文件:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Vim]

[HKEY_LOCAL_MACHINE\SOFTWARE\Vim\Gvim]
"path"="D:\\Programme\\Vim\\vim70\\gvim.exe"

[HKEY_CLASSES_ROOT\Applications\gvim.exe]

[HKEY_CLASSES_ROOT\Applications\gvim.exe\shell]

[HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit]

[HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit\command]
@="D:\\Programme\\Vim\\vim70\\gvim.exe \"%1\""

[HKEY_CLASSES_ROOT\CLSID\{0F0BFAE1-4C90-11D1-82D7-0004AC368519}]
@="Vim"

[HKEY_CLASSES_ROOT\CLSID\{0F0BFAE1-4C90-11D1-82D7-0004AC368519}\LocalServer32]
@="D:\\Programme\\Vim\\vim70\\gvim.exe"

[HKEY_CLASSES_ROOT\CLSID\{0F0BFAE1-4C90-11D1-82D7-0004AC368519}\ProgID]
@="Vim.Application.1"

[HKEY_CLASSES_ROOT\CLSID\{0F0BFAE1-4C90-11D1-82D7-0004AC368519}\TypeLib]
@="{0F0BFAE0-4C90-11D1-82D7-0004AC368519}"

[HKEY_CLASSES_ROOT\CLSID\{0F0BFAE1-4C90-11D1-82D7-0004AC368519}\VersionIndependentProgID]
@="Vim.Application"

[HKEY_CLASSES_ROOT\CLSID\{51EEE242-AD87-11d3-9C1E-0090278BBD99}]

[HKEY_CLASSES_ROOT\CLSID\{51EEE242-AD87-11d3-9C1E-0090278BBD99}\InProcServer32]
@="D:\\Programme\\Vim\\vim70\\gvimext.dll"
"ThreadingModel"="Apartment"

2007-04-15

禁止Firefox窗口被改变大小

浏览有些网页时,有些脚本会改变浏览器的窗口大小,很是烦人。通过下面的设置可以禁止窗口大小被改变:

Here is how to prevent sites from resizing your Firefox window…

1. Open Firefox, Preferences (or if you’re on Windows…Tools, Options)

2. Go to the Content Tab

3. To the right of “Enable Javascript” hit “Advanced…”.

4. Uncheck “Move or Resize Existing Windows”

2007-04-12

在windows下使用GnuPGP签名邮件

在Windows下,以Thuderbird作为邮件客户端:
下载GnuPG 1.4.7二进制文件和Thuderbird的插件Enigmail

  1. 安装上面的两个文件,并把安装后的GnuPG目录添加到路径变量中。

  2. 测试gpg安装是否成功:

  3. C:\Dokumente und Einstellungen\jia>gpg --version gpg (GnuPG) 1.4.7
    Copyright (C) 2006 Free Software Foundation, Inc.
    This program comes with ABSOLUTELY NO WARRANTY.
    This is free software, and you are welcome to redistribute it
    under certain conditions. See the file COPYING for details.

    Home: C:/Dokumente und Einstellungen/jia/Anwendungsdaten/gnupg
    Supported algorithms:
    Pubkey: RSA, RSA-E, RSA-S, ELG-E, DSA
    Cipher: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH
    Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
    Compression: Uncompressed, ZIP, ZLIB, BZIP2

  4. 运行OpenPGP Key Management向导,生成一对Key,并提交到Key Server。


详细步骤参见:http://enigmail.mozdev.org/gpgconf.html#install

注释JMS block

把cocoon作为一个webapp分发在Tomcat下,如果在启动Tomcat时出现警告提示:


WARN! *** JMS block is installed but jms client library not found. ***
- For the jms block to work you must install and start a JMS server and place the client jar in WEB-INF/lib.
- The default server, OpenJMS is configured in cocoon.xconf but is not bundled with Cocoon.

解决办法:
在xcoocon.conf文件里注释掉关于jms-connection-manager的配置内容即可:
<jms-connection-manager logger="core.jms">
...
</jms-connection-manager>

在Tomcat 5.5下使用APR

在windwos下启动Tomcat 5.5下时,命令行窗口会提示:

INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\jdk1.5\bin;.;C:\WINDOWS\system32; ...

为了提高Tomcat的性能,应让Tomcat使用APR,Apache Portble Runtime。具体信息参见http://tomcat.apache.org/tomcat-5.5-doc/apr.html

在windows安装方法:下载编译好的dll文件,tcnative-1.dll,把它复制到%SystemRoot%\system32目录下即可。 

解决无法复制aurorun.inf文件的问题

不止一次赶上这样的情况了,无法把autorun.inf文件从本地硬盘上的一个文件夹复制到映射的网络硬盘上,但却可以复制到本地硬盘的另一个文件夹下。复制时,得到错误提示:
access denied。
请确保磁盘没有满,也没有写保护,或文件当前没有被使用。

网上搜索的结果表明,这是由McAfee的访问保护机制引起的。在McAfee的访问保护下有个文件,共享和文件夹保护选项,下面有个选项:
prevent remote creation of autorun.inf files

如果这个选项被选中,就会出现无法复制到远程机器的问题。

利用鼠标放大和缩小文字

现在有不少程序都支持利用鼠标放大和缩小文字,只要在摁住control键时,转动鼠标滑轮就可以了。我知道的最早支持这个特性的是Firefox,随后发现IE 7和Opera 9都有这个功能了。可是这个功能在Firefox下和在IE/Opera下略有差别:在Firefox下,滑轮往下转,文字变大,而在IE/Opera下刚好相反,滑轮往下转,字号变小。此外在Opera下,轻轻转动一下,文字就会变的很大或很小,感觉不够细腻。

另外新版本的XMLSPY 2007也支持这个功能。这样在编辑器查看文件时,可以很方便的调整字号了,而不用进到菜单里去调整显示字号大小。

2007-04-11

奥组委的网页

今天在msn上看到以前的一个同学留言,说ZDF找地服人员。顺道看了一下第29届奥林匹克运动会组织委员会的网页,http://www.beijing2008.cn ,提供中文,英文和法文版。英文和法文根本就没有点进去。按理说这么重要的赛事,应该弄个制作精良的网页出来。不说精美至少也多少符合web标准吧,可是扫一眼代码,满眼的<table> <tr><td>。不用说也知道这是什么水平了。我相信,国内能做出比这个网页好上百倍的网页的个人,公司和机构的实体有的是。可是组委会的人多半是不懂这些的,也没有第三方的资讯机构。这样相关的负责人一句话就随便圈定某个人来做。于是大家就看到了这么糟糕的网页,只能贻笑大方。

Firefox扩展:LiveHttpHeaders

Firefox数目众多,功能丰富的扩展真好。今天测试联邦档案馆会议记录的搜索功能时多亏有了LiveHttpheaders才发现我的问题在于提交request时,header里没有包括jessionid这个变量,所以搜索的结果分页问题不能解决。

另外在Tomcat的邮件列表中名为Christ写了一段很好的关于在搜索中使用jsessionid的问题:
> Is there anyway to create JSessionIDs per window rather than per browser?
> I am having the problem of when you open multiple tabs within
> a browser, and enter two simultaneous queries, the results returned are
> corrupted. Any suggestions? Thanks for the help.

I have an application that allows the user to perform searches and paginate through the results. Since the search really only needs to be performed once, pagination can be as simple as picking a segment of the results (stored in the session) and displayed on the screen.

I store the query that was performed as well as a "token" which is generated when the query is created. I place this token in all of the URLs on the page (most importantly, the ones involved with pagination).
If a request comes into the server including a token, I check the token against what I have in the session. If the tokens match, I skip the search. If they do not match, I re-run the search and re-set the token. Rinse, repeat.

In your case, you might want multiple simultaneous paginating queries, though I'm not exactly sure why. You could adopt a similar approach using a List of queries (using the same session key, I would imagine),
each with separate tokens for the windows.

The only problem with an implementation like this is that it is very hard to decide when you are "finished" with a query, and that it's okay to purge it from the session. That is left as an exercise for the reader
;)

Hope that helps,
-chris

2007-04-10

Dremaweaver 8的bug?

今天使用Dreamweaver 8.02时发现一个奇怪的问题。我用它打开一个XML文件,其中的元素名大多是HTML里的元素。文件里的元素名本身小写的,但是用Dreamweaver 8.02打开时,在编辑器里除了第一行XML声明和第二行文件类型声明外,其他行中的元素名全都显示为大写。不光是显示成大写,只要在Dreamweaver下保存这个文件,这些标签名就真正的变为大写。类似这样:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<HTML LANG="de">
<HEAD>
<TITLE>"Suche"</TITLE>
<LINK href="./skin/KaPr_basis_structure.css" REL="stylesheet" TYPE="text/css"/>
<LINK href="./skin/KaPr_top.css" REL="stylesheet" TYPE="text/css"/>
<LINK href="./skin/KaPr_header_footer.css" REL="stylesheet" TYPE="text/css"/>
<LINK href="./skin/KaPr_left_menue.css" REL="stylesheet" TYPE="text/css"/>
<LINK href="./skin/KaPr_left_suchformular.css" REL="stylesheet" TYPE="text/css"/>
<LINK href="./skin/KaPr_left_funktionsunterscheidung.css" REL="stylesheet" TYPE="text/css"/>
<LINK href="./skin/KaPr_text_treffer.css" REL="stylesheet" TYPE="text/css"/>
<LINK href="./skin/KaPr_Color_Fonts.css" REL="stylesheet" TYPE="text/css"/>
</HEAD>

... ...

</HTML>

用其他的编辑器,如vim,打开就不是这样,所有的元素名保持原来的大小写。这里Dreamweaver应该算是画蛇添足,算作Dreamweaver的一个bug?

2007-04-04

Windows XP下不输入用户名及密码自动登录

强烈不推荐,可是有的人偏偏喜欢这样,知道一下也无妨。

执行rundll32 netplwiz.dll,UsersRunDll,如果机器没有加入一个域,就可以去掉上方的“要使用本机,用户必须输入用户名和密码”选项前的小勾,再按“应用”按钮,会有个设置默认用户和密码的窗口弹出,输入用想默认登录的用户名和密码即可。

在XSL中对变量作加法

在XSL中对变量作加法:

如果使用的转换器只支持XSLT 1.0,则:

<xsl:variable name="n1">
<xsl:choose>
<xsl:when test="number($t1) = number($t1)">
<xsl:value-of select="$t1"/>
</xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="n2">
<xsl:choose>
<xsl:when test="number($t2) = number($t2)">
<xsl:value-of select="$t2"/>
</xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="temp1" select="$n1 + $n2"/>

如果XSLT parser支持XSLT 2.0:  

XSLT 2.0 makes it easier because of the conditional expressions in XPath 2.0. You can do:

<xsl:variable name="n1"
select="if (number($t1) = number($t1)) then $t1 else 0" />
<xsl:variable name="n2"
select="if (number($t2) = number($t2)) then $t2 else 0" />
<xsl:variable name="temp1" select="$n1 + $n2" />

Depending on how you're getting the values of $t1 and $t2 (and the final definition of if-absent()) it might also be possible to use the if-absent() function:

<xsl:variable name="temp1" select="if-absent($t1, 0) + if-absent($t2, 0)" />

2007-03-29

在Tarforst学生宿舍的最后一帖

明天上午就交钥匙,今天还得抓紧时间做清洁。使用136.199.*.52和136.199.*.53超过五年时间,中间除了曾因为53的网络接口超过流量限制被禁用过3个月外,网络一直畅通无阻。今天这个post是从53网络接口出去的最后一个了,留此文字纪念一下。
再见 Universitätsring 8,204 & 204a!

2007-03-27

搬家

来德国真正算起来搬家还只有一次。那次搬家是在2001年的圣诞节假期,地上还铺了厚厚的大雪。搬家也只是从马路的一侧搬到马路的另一侧,仅仅跨越一个桥而已,由于距离很近,东西也不像现在这么多,帮忙的同学也多,连搬家车都没租,倒是跟URT借了一个推车在雪地里推着。

这两天有个朋友的MSN上显示,我们需要的很少,但是想要的太多。这次搬家扔了不少东西,新的旧的都有。东西仍完后生活依旧,也没觉得缺东少西,只觉得那朋友的留言说的即是。

远程连接遇到错误

今天帮Ralf解决一个电脑问题,Firefox不能启动,报告js3210.dll丢失。网上搜索结果显示有可能是特洛伊木马捣乱,用mcafee 8.0扫描整个一遍没有发现异常。倒是我远程连接时得到错误提示:

Die lokale Richtlinie erlaubt es Ihnen nicht, sich interaktiv anzumelden.

解决办法:

首先确保管理员用户在允许远程桌面连接的用户列表里。如果允许多个用户远程连接,用逗号分隔用户名。

其次察看远程桌面用户是否有足够的权限:
1. Klicken Sie auf Start, klicken Sie auf Ausführen, geben Sie secpol.msc ein, und klicken Sie auf OK.
2. Erweitern Sie Lokale Richtlinien, und klicken Sie anschließend auf Zuweisen von Benutzerrechten.
3. Doppelklicken Sie im rechten Fensterbereich auf Anmeldung über Terminaldienste zulassen. Stellen Sie sicher, dass die Gruppe der Remotedesktop-Benutzer aufgelistet ist.
4. Klicken Sie auf OK.
5. Doppelklicken Sie im rechten Fensterbereich auf Anmeldung über Terminaldienste verweigern. Stellen Sie sicher, dass die Gruppe der Remotedesktop-Benutzer nicht in der Listet erscheint, klicken Sie dann auf OK.
6. Beenden Sie das Snap-In "Lokale Sicherheitseinstellungen".

2007-03-23

Exchanger XML Editor

一款名为Exchanger XML Editor 的XML编辑器有一个可供学校和非商业用途的版本,其中有个小功能我觉得很好用。在编辑栏菜单的下方有一个XPath显示栏,能自动显示当前光标所在的某个元素或属性的XPath表达式。用户也可以在栏里输入XPath表达式,下方会显示XPath Results。希望这个软件能继续提供免费版本,别像Altova XMLSpy一样以前还提供一个免费的Home版本,现在取消了。现在想去下载和使用以前的免费版本都不行了。要想更好的使用右键菜单的Tag Selection,进入菜单XML --> Set Document Properties,从Tag Completion选择一个dtd或者xml schema文件就可以了。

2007-03-20

纪念一下正式毕业

留此文字纪念一下!
2006年11月底交的论文,今天才拿到正式的毕业证书,等的时间那个叫长啊。Gesamtnote: Gut 。学生生活实际上早就结束了,不过形式上今天才有了个正式的结束。

2007-03-10

笔记本的BIOS又得升级了

启动笔记本,发现需要非常长的时间,虽然内存只有128+256少点,但也不至于这么慢,先怀疑硬盘,后来在发现应该是BIOS有关:
http://support.microsoft.com/kb/283649

只是不知道Acer对这么老的机器还会不会提供支持。

2007-02-22

Tomcat目录结构

Tomcat下的目录结构

/bin 启动和关闭Tomcat server的脚本

/conf 包含server.xml(Tomcat的配置文件),web.xml(应用程序的配置文件)和tomcat-users.xml(用户管理配置文件)

/log 日志文件

/work JSP生成的Servlet

/webapps 应用程序发布位置

/shared/lib 包含应用程序访问的JAR文件

/lib 包含Tomcat使用的JAR文件

/server/webapps 包含Tomcat自带的系统管理和应用管理的web工具

/common 包含Tomcat和应用程序都可以访问的JAR文件

2007-02-19

试用openldap

今天在ubuntu下安装(apt-get install slapd)了openldap服务器,因为openldap server在ubuntu下的包名为slapd。

root@gepc188:/etc/ldap# dpkg -s slapd
Package: slapd
Status: install ok installed
Priority: optional
Section: net
Installed-Size: 2432
Maintainer: Ubuntu Core Developers <ubuntu-devel@lists.ubuntu.com>
Architecture: i386
Source: openldap2.2
Version: 2.2.26-5ubuntu3
Replaces: libldap2, ldap-utils (<< 2.2.23-3)
Provides: ldap-server

安装完成后要使用slappasswd命令来生成加密后的密码,然后在/etc/ldap/slapd.conf文件中添加两行:
rootdn "cn=root,dc=uni-trier,dc=de"
rootpw {SSHA}X5vL372YCCfHW7KJlVzGpwc+iQ6shuEX

这样才能登入数据库。

在创建User Account之前,需创建一个Posix Group组,否则会得到错误提示:
LDAP said: Object class violation
Error number: 0x41 (LDAP_OBJECT_CLASS_VIOLATION)
Description: You tried to perform an operation that would cause an undefined attribute to exist or that would remove a required attribute, given the current list of ObjectClasses. This can also occur if you do not specify a structural objectClass when creating an entry, or if you specify more than one structural objectClass.

这是因为shema定义的缘故,一个用户要求有一个gidNumber值。phpLDAPadmin是一个与phpmyadmin类似的图像化工具,可以简化管理ldap的工作。

2007-02-16

dpkg的常用选项

查询软件包: dpkg -l zope2.9
不知道软件包的具体名称,也可使用通配符来查询: dpkg -l zope*
查看软件包的详细信息: dpkg -s zope2.9
查看已安装软件包所安装的文件列表: dpkg -L zope2.9
显示.deb包的内容: dpkg -I scalix-swa_11.0.0.653_all.deb
显示.deb包中的文件列表: dpkg -c scalix-swa_11.0.0.653_all.deb
安装.deb软件包: dpkg -i scalix-swa_11.0.0.653_all.deb
删除软件包: dpkg -r scalix-swa_11.0.0.653_all.deb
(使用该命令安装.deb包并不能自动解决软件包的依赖问题,需用dpkg -I查出该软件包的依赖要求手动解决。所以该方法一般用来安装第三方的.deb软件包。如果需系统自动解决软件包的依赖关系,则要使用apt、 tasksel、dselect、aptitude或图形化的syanptic、KPackage等前端工具来安装软件包。)

重新配置软件包: dpkg-reconfigure

此外涉及debian源码包的管理工具还包括:dpkg-source, dpkg-gencontrol, dpkg-shlibdeps, dpkg-genchanges, dpkg-buildpackage, dpkg-dista ddfile,dpkg-parsechangelog

2007-02-07

你知道换一台苹果机的电源要多少钱吗?

办公室里一台旧的Power Mac G4 (733 MHz)电脑坏了,把电脑送到了URT的Computerwerkstatt。几天之后,联系CW的工作人员,他们告诉我电源坏了,换一个电源要250欧元(!),建议我为这个旧电脑不值得换电源,实在想要apple的机器,可以考虑mac mini。

上网查到了apple的订货查询热线08002000136,电话打过去之后一问,他们也不提供这样的配件了,让我向当地的苹果经销商询问。一个电话(0686193350)打给Ringlingen的苹果经销商,他们又让我打电话给位于特里尔的办事处(06519940018)。这才终于找对人了,对方告诉我,apple官方已经不提供这种系列的电源了,但是可以把普通PC的ATX电源稍加改变就可以换上,半个小时就可以搞定,所用的费用约为90欧元。250-90=160欧元,仅仅是多打了几个电话。另外对CW的工作态度实在是不敢恭维!

另:今天看最新的Neue Universal报道,Petrisberg的教学大楼两面墙之间的橘红色“涂鸦”之作竟然是出自来自柏林的一位女艺术家之手,为此花费了61000欧元!6万一千欧元!!

2007-01-27

2006/2007的第一场雪

记不清刀朗的歌里唱的是雪下得特别晚还是特别早了,今年的雪可是比前几年晚了好多。白色的圣诞节没有,并且冬天里刮得冷风也不见踪影。昨天打完球在回家的路上发现开始飘细微的小雪颗粒。今天早上起来发现,地上已经变白了。

2007-01-26

open command here不起作用了

换了个办公室也换了台电脑,Dell的Optiplex GX620(2G的内存,可以装Vista了)。发现以前常使用的在windows explorer的文件夹上右键菜单中的open command here只在系统所在的分区起作用,在其他的分区下的文件夹下点击出来的command窗口下,当前的目录总是系统所在的根目录。对比其他电脑,发现同样的注册表设置就是在新的电脑上不起作用。

原来的设置为:HKEY_CLASS_ROOT\\Directory\\shell\\DosHere\\command的值为

C:\WINDOWS\system32\cmd.exe /k "cd %L"

后来发现cd 有个/D选项可以在切换目录时把当前目录也切换到目标目录下。把值修改为:

C:\WINDOWS\system32\cmd.exe /k "cd /D %L"

问题就解决了。

2007-01-10

修改Webalizer的默认配置文件

在urts52上使用webalizer分析zope服务器日志时,发现生成的HTML页面是用utf-8编码的,而apche 2服务器配置文件中设置了默认编码为iso-latin1。我不是管理员,无法更改httpd.conf,只好自己从webalizer上想办法了。在webalizer的默认配置文件基础上添加了以下语句:

HTMLExtension php

生成的页面为PHP页面,不再是默认的HTML页面。

HTMLPre <?php header('Content-Type: text/html; charset=utf-8');?>

这样生成的PHP网页代码中第一行都包括这行内容,强制浏览器使用utf-8编码。

HTMLHead <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

在HTML页面的head部分添加编码设置,表明网页是用utf-8编码的。

2007-01-04

用putty的端口转发

从2007年1月1日起,大学的计算机中心修改了有关计算流量的规定。估计是现在大家使用学校的代理服务器太狠,大学有些招架不住了,所以现在通过proxy的流量也要计算在内。

以前就知道putty的端口转发功能,现在要用上了。通过在putty添加一个Dynamic SOCKS-based port forwarding,即在tunnel选项卡中选中auto和dynamic,在source处填写一个任意空闲的本地端口,然后点击添加。

在浏览器器里设置代理服务:
SOCKS HOST:127.0.0.1
Port:在putty session里设置好的端口

要使用这种socks host需要远程主机的转发功能没有被禁掉。系里机房的机器全都使用iptables被禁止了。另外URT机房里的机器的forwarding也被禁止了,只有另外两台我有root权限的可用,呵呵。使用putty的后台命令行程序plink更简单,不用打开一个putty session,如:
plink -N -load mysessionname -D 666

Online Wörterbücher von Kompetenzzentrum

Kompetenzzentrum免费提供多个网上字典。2006年过去了,可以分析一下日志文件看看访问情况如何。日志文件解开之后一共是37个GB,用gzip压缩之后也有1.5GB。除了总的zope服务器的日志外,还得看看对各个字典的访问情况。

这是各个字典的链接:

DWB: http://germazope.uni-trier.de/Projects/WBB/woerterbuecher/dwb/wbwelcome

EWB: http://germazope.uni-trier.de/Projects/WBB/woerterbuecher/ewb/wbwelcome

FiB: http://germazope.uni-trier.de/Projects/WBB/woerterbuecher/findebuch/wbwelcome

GWB: http://germazope.uni-trier.de/Projects/WBB/woerterbuecher/gwb/wbwelcome

LWB: http://germazope.uni-trier.de/Projects/WBB/woerterbuecher/lwb/wbwelcome

LEX: http://germazope.uni-trier.de/Projects/WBB/woerterbuecher/lexer/wbwelcome

BMZ: http://germazope.uni-trier.de/Projects/WBB/woerterbuecher/bmz/wbwelcome

NLEX: http://germazope.uni-trier.de/Projects/WBB/woerterbuecher/nachtraege/wbwelcome

PfWB: http://germazope.uni-trier.de/Projects/WBB/woerterbuecher/pfwb/wbwelcome

RhWB: http://germazope.uni-trier.de/Projects/WBB/woerterbuecher/rhwb/wbwelcome

RhnWB: http://germazope.uni-trier.de/Projects/WBB/woerterbuecher/rhnwb/wbwelcome

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在大企业里已经是一种常见的筛选申请者的方法。在智力题测试时,题目是主持者口头念出来的,总感觉不能跟上,没能弄清题目的描述,就仅仅听清问题,问题就结束了。听力还是不够好,另外注意力集中不够!