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对象模型