2008年10月31日星期五

【转】VSS(Visual SourceSafe)使用入门

VSS浏览器拥有如下界面,工具栏和右键菜单很完善,使用起来非常方便。

界面下边用来输出一些没用的信息,不必管它。左边是项目列表,看起来就是一个目录树,根用"$/" 表示,可以手工添加项目,然后往项目里面添加文件,也可以一次把一个目录(可以递归包含子目录)添加进来成为一个项目。右边是项目下的文件,不包括子项 目,显示的信息包括签出的用户的名字和最后一个版本的时间以及签出位置。右边上面两个文本是当前的项目名称和项目的工作路径(工作路径是项目默认的本地目 录)

对项目可做的操作主要包括:创建项目、删除项目、添加项目或文件、设置项目工作路径、设置版本标签、取得最新(最后)版本、签出、签入、撤销签出、查看历史、比较差异、查看属性(没什么属性,关键是这里可以恢复删除的文件)。

对文件可做的操作主要包括:查看、编辑、签出、签入、撤销签出、取得最新(最后)版本、查看历史、比较差异、删除、重命名、查看属性(文件类型很重要,二进制文件无法比较细节,只能比较相同或不同,文本文件则可以按行比较,有时VSS不能正确识别文件类型,需要手工修改)。

节 1.05           项目操作

(a)            添加项目和文件

选中项目树的节点,然后点右键选择"Create Project"或者工具栏上的第一个(也许你的版本不是第一个)按钮"Create Project"或者菜单"File"下的"Create Project"可以在选中的节点下创建一个新项目(看起来就是创建一个子目录,事实上也没什么差别),需要输入的是项目的名字,支持中文,有兴趣的话顺便把注释也填上,省得以后忘了这个项目是干什么的。

很多时候可以通过添加一个目录以及目录下的所有内容来创建项目。选择"Add Files"命令可以添加项目或文件。这个命令的名字实际上并不准确,它既可以添加文件又可以添加项目。

选择左边的文件然后点"Add"按钮会把这个文件添加到当前项目,选择右边的目录点"Add"按钮则会把目录添加到项目(也就是成为一个子项目,存在一个选项让你把整个目录全部添加进来)。有时候你会注意到左边不会显示任何文件或者只显示了一小部分文件,这是因为同名文件已经在项目中存在,不可能添加同名文件进来的缘故。如果选择的是项目,弹出的"Add"对话框不仅提供输入注释的地方,还在下面提供了一个选项:递归 "Recursive",这个选项在很多地方都有,用起来很方便。选择这个选项就不只是把当前目录和下面的文件全部添加进来,而且把子目录及子目录下的内容也全部添加进来。曾经有人向作者抱怨VSS不好用,每个子目录都需要一个一个创建,很麻烦,嘿嘿,他只是英文不太好又不愿意查字典而已。

(b)            设置项目工作路径

为项目设置一个对应的本地目录,用来取得版本进行编辑。只需要为项目(工程意义的项目,而不是VSS的项目)的总入口的VSS项目设置一个工作目录既可,获得版本时下面的所有VSS子项目自动作为一个子目录得到。如果子项目设置了独立的工作路径,那么这个工作路径仅当对在这个子项目上执行操作的时候才会有用。

(c)            取得项目最新版本

这个命令通常从项目的右键菜单获得,名为"Get Last Version"。

目标位置默认是项目的工作路径,但可以更改。"Recursive"递归,若选中可以得到整个项目树,否则只得到项目下的文件而不包含子项目。"Make writeable",默认取得的文件是只读的(Check Out才是获得可编辑的版本的合理方式),若选中则不设置只读属性。

(d)            签出项目Check Out

一次性签出项目下的所有文件,适合一个项目(子项目)下所有文件都归一个开发人员负责的情况。

若选择递归则连子目录下的东西一起签出。"Don`t get local copy",不取得本地版本,这样不会覆盖本地已有的版本(也许本地版本包含着你一个通宵的勤苦工作,当然不能随便覆盖)。

签出的文件没有只读属性,可以修改。过程上应该首先签出才有权修改文件,签入以后修改才会被其他人认可。如果文件已经被签出,就应该等待或者去跟签出者协商,绝不应该在没有签出的情况下擅自修改本地文件。任何人都应该服从这一点,否则项目版本将仍然陷入混乱。

(e)            签入项目Check In

一次性签入一批文件。不签入别人看不到你的修改。

       有递归选项,可以连子目录一起签入。"Keep checked out",保持签出状态,在频繁修改代码时经常会这样做,保存一个中间版本然后立即继续修改。"Remove local copy",删除本地版本,这个主意不好,万一VSS服务器硬盘坏了不就完蛋了,不过你也许有别的方面的考虑。

(f)              撤销签出Undo Check Out

如果后悔了,不想修改文件,可以撤销签出。

       

       有递归选项。还要选择本地版本的处理方式,可以用VSS里面的版本覆盖,也可以留着不管它,还可以删除,要仔细斟酌。

(g)            显示历史记录Show History

查看项目的所有历史,包括增加文件、删除文件、签入文件(文件有更改)。(第一次使用会有配置only labels 点ok然后在打开就能显示版本了! 

       

可选项包括递归(包括子目录的历史)、包括文件的历史、包括版本标签、只包含标签(会禁止文件历史)、从什么时候开始、到什么时候(时间格式大概按照操作系统来的,至少YYYY-MM-DD是合法的时间格式)、哪个用户。默认没有递归选项,多数时候需要加上这个选项,其余选项不常用。显示的历史记录如下图所示:

按照时间顺序列出了所有历史,可以注意到文件file1.cpp在"Added"之后有两次签入,这两次签入之间有一个Label"Labeled'v1'",Label对应项目下的所有文件,除非子项目用一个同名的Label覆盖(这种情形应当避免)。这个窗口提供了很重要的项目管理功能。

"View",查看选中的文件的内容,就是查看以前版本的内容。

"Details",查看历史记录的详细信息,有一些内容是可以编辑的。清除Label的内容将导致Label被删除,没有独立的删除Label命令,这就是删除Label的方法。

"Get",取得选中的文件的历史版本或者取得选中的Label版本(label之前的最新版),会提示取得版本放到哪里去,对项目也有递归选项。能够取得任何时候的历史版本,这个功能才是版本控制系统存在的价值。

"Check Out",签出文件或项目。

"Share",共享。两个项目可以共享一个文件,两边看起来各自有一份,但其实是同一份,一次只能由一边签出。通常用菜单"SourceSafe"下的命令执行,共享以后可以断开搞分支开发。

"Report",报告历史,可以报告到打印机、剪贴板或者文件,可以包含文件历史和版本差异。

 

这也是关键功能。可以比较两个项目或目录的差异,包括一边有而另一边没有的文件和内容不同的文件。

默认情况下比较的是项目和项目的工作目录的差异,以"$"开头的是VSS项目,但两个都可以用"Browse"改变,所以实际上可以比较任何VSS和目录的差异。下面四个选项全选是最全面的,显示所有的相同和不同。递归选项选中可以包含子项目或子目录。下图是比较结果:

存在下列差异:

demo.cpp在项目中存在,但在工作目录不存在,蓝色显示。

file1.cpp有差异,图标到有红色标记。

file2.txt没有差异。

file1.cpp.bak和"新建 文本文档.txt"项目里面没有,绿色显示。

对于这些差异可以用右键菜单分别处理(注意鼠标点在哪边的文件上可能是不同的,作者的习惯是在这里只查看差异和添加文件,从不在这里删除)。

对于项目里面有但工作目录没有的,可以从项目里删除,也可以取得最新版本或签出。

对于项目里面没有的,添加到项目里面,或者从目录里删掉(真的删除了文件,而不是仅仅从列表删除)。

对于有差异的,可以查看差异(产生一个文件的差异比较,这是很常用的功能)签入或撤销签出。

对于没有差异的,可以删除或签出。

(i)               设置版本标签Label

给项目做一个版本号,这个标签代表的版本是做这个标签的时间之前的最新版本。一般在管理上要求做版本标签(有时称之为封版)之前所有文件都已签入(VSS并不要求这样),以后就可以取得标签版本。如果标签搞错了,可以在项目历史里面查看标签细节,然后将标签名称修改,如果要撤销标签就把标签名称清空。

(j)              取得历史版本

因为这是版本控制的标志功能之一,所以重复一次。

取得项目历史版本,在项目上查看历史,找到合适的Label,选择"Get"命令。

取得文件历史版本,在项目或文件上查看历史,找到合适的版本,选择"Get"命令。

节 1.06           文件操作

(a)            取得最新版本

Get Last VersionVSS数据库里的最后一个版本会放到指定的目录下,默认是项目的工作目录。

(b)            签出

Check Out,然后就可以修改。

(c)            签入

Check In,然后别人取得最新版本就可以看到你的修改。

(d)            撤销签出

       Undo Check Out,放弃修改权。对本地文件有三种处理方式:用VSS版本覆盖、保留、删除,请谨慎选择。

(e)            查看和编辑(View,Edit

VSS提供整合的查看、编辑能力(当然通常我们是在专门的开发环境中工作的)。这两个功能有同样的界面,只是默认操作不同,View的默认操作是编辑,Edit的默认操作是签出并编辑(一个典型的糟糕设计)。

不管从哪个命令进入都可以改变"Do you want to"选项进入另外一个命令。查看或编辑的工具可以是VSS内置程序或者操作系统注册的程序(如果没有注册的程序则该项不可用)或者手工选择一个不同的程序。

(f)              显示文件历史Show History

比项目的显示历史少一点选项,但显示结果有不同的命令可用。

       这里每个文件版本都获得了一个版本号"Version",是从1开始的自然数序号,每次签入都产生一个新版本(但没有修改的签入不产生新版本)。注意到有一个版本标签"v1"是来自项目的版本标签。

       这里多出几个不同的命令可用:

       "Diff",比较差异,默认跟工作目录的版本比较,但选中两个不同的版本(用Ctrl键)也可以进行两个历史版本之间的比较,比较的结果实可视化的,非常直观(仅限于文本文件,对二进制文件只能报告相同或不同)。

       "Pin",订住,被订住的版本成为最新版,别人取最新版本只能取得被订住的版本,而不影响签出者修改文件、签入、签出。只能订住还没有被签出的文件。订住可以避免其他开发者得到一个不可用的中间版本。

       "Rallback",回滚,选中的版本之后的版本都会被删除,选中的版本成为最新版。出于对历史的尊重,先签出,然后取得历史版本覆盖到工作目录,然后签入,这也许是更好的回滚方式,毕竟一个糟糕的版本也是一个版本。

(g)            文件比较Show Differences

重要功能。可以直接从右键菜单进入,也可以从文件历史结果窗口进入,还可以从项目差异结果进入。

比较的两个文件都可以改变到VSS数据库里的一个文件或者一个普通文件,VSS数据库的文件还可以带上VSS的版本号。下面的选项一般不用修改,格式如果选择为SourceSafeUnix,就会使用原始方式显示结果,很不爽,还是Visual比较好。结果如下图:

原来的文件第三行被删除,文件最后又增加几行,一目了然,点工具栏上的向上向下箭头可以查看下一个上一个差异。

(h)            文件属性

文件属性首要关心就是文件类型,Text文件可以按行存储,按行比较,Binary文件则只能按照原始格式存储,每个版本都是一个完整文件,占用很大空间,而且只能比较出相同或不同。可以在文件属性窗口改变这个属性。如果某个文件VSS不能正确存储,就只能改为二进制格式。有时候VSS自动判断出错,也要逐个修改文件属性。

其他几项暂时没什么可说的,需要用的时候自然就会了。

节 1.07           与开发工具整合

很多开发工具都整合了VSS支持,此时最好只用开发工作操作。开发工具对VSS的操作本质上与VSS浏览器是一样的,不过是签入签出而已。只是一定不要忘了及时签入,否则你的工作是能被别人看到的。

节 1.08           已知的问题

(a)            UNICODEUTF-8的问题

ANSI格式没有问题,UTF-16UTF-8有问题,不能正确识别,存储的文件会错乱。微软承认麻烦很大,详细的说明MSDN里面可以查到,下面的斜体文字引自MSDN文档"ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/vsintro7/html/vxtsksavingfileswithencoding.htm"

为了方便代码在特定语言和特定平台上进行显示,可将文件与特定字符编码建立关联。

如果使用 Visual SourceSafe ANSIUTF8 Unicode 格式存储文件,请注意它们各自的以下限制。

  • ANSI 文件只允许使用当前代码页中支持的字符,这会限制国际使用。
  • Unicode 文件无法使用共享签出、差异检查或合并功能,原因是此类文件是作为二进制文件处理的。可在国际文件中使用此格式。
  • UTF8 文件在 Visual SourceSafe 中不能安全地工作,因为在签入、签出、差异检查和合并过程中该文件会被更改,而这会导致 UTF8 文件编辑器出现问题。

(b)            InterDev开发Web应用的问题

不可绕过InterDev直接使用VSS浏览器签入签出,会死人的。InterDev实际上借助IIS访问VSS,所以会有这个问题。很幸运,vs.net里面已经没有InterDev了。

(c)            文件比较的问题

有时候会报告文件有差异但却看不出差别,也许是换行符的差异,也许不是,如果执行签入会发现并没有签入(这意味着签入程序并不认为文件有差别)。如果是6.0C,这种情况会非常多,6.0D则好很多,基本上不会出现。因为是C版大量使用所以特别提到这个问题。顺便说一下,C版和D版可以混用,没发现什么问题。

(d)            签入无效的问题(与CuteFTP有关的)

有时候看起来签入成功但实际上并未签入。如果文件是用CuteFTP下载到本地的,那么可能是因为CuteFTP显示FTP文件的窗口需要刷新。推测可能是CutFTP下载文件时使用旧的文件信息,VSS签入时发现文件是旧的就认为不是新版本不需要签入。

节 1.09           Tip

1 有时会出现某个文件无权 GET 的问题,重起 SERVER 端机器即可解决

2 有一次,不知因何原因(可能是病毒),Sourcesafe 的数据库访问权限变了,需要在 Windows 页面重新分配所有权

3 建议经常做 SourceSafe 备份,以便文件丢失时(Sourcesafe 大了会丢失),可以挽回,备份采用 WINDOWS 的自动备份功能即可(管理工具中有一个备份工具,排定一个计划,即可自动备份)

4 了解 sourcesafe 目录结构的方法如下:将所有内容 GET 出来, TREE>*.txt(DOS命令),即可将该目录结构存储到一个文本文件中

 
2008-10-31

chenxu

生活2

 
1.经常保持微笑
 
2.学会和别人一块分享喜悦
 
3.乐于助人
 
4.保持一颗童心
 
5.学会和各种人愉快相处
 
6.保持幽默感
 
7.要能处乱不惊
 
8.学会宽恕他人
 
9.有几个知心朋友
 
10.要有目标和追求
 
11.常与别人保持合作、并从中获得乐趣
 
12.最好有点男欢女爱、呵呵
 
13.保持高度自信心
14.尊重弱者
 
15.偶尔放纵一下自己
 
16.不做违法犯罪的事
 
17.具备胆识和勇气
 
18.不要狗拿耗子多管闲事
 
19.要常运动、比如提水、、、
 
20.经常出去呼吸一下新鲜空气
 
21.对人对己要严格要求
 
22.有点成绩、不要总是沾沾自喜
 
23.不要总是追求不属于自己的东西
 
24.要懂得浪漫
 
25.任何时间都要相信:成功的男人背后一定有个成功的女人
 
26.要知足常乐、比如己拥有了(保时捷)
 
27.登高远望能淘冶情操
 
28.每年去度假几次
 
29.不要酗酒
 
30.不要财迷
 
31.最后、一定记住,面对色情,要背过脸去
 
 
2008-10-31

chenxu

2008年10月30日星期四

vi命令一览表

文本编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi,而vi命令繁多,论坛里好像这方面的总结不多,以下稍做总结,以资共享!渴望更正和补充! 

进入vi的命令
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename....filename :打开多个文件,依次进行编辑

移动光标类命令
h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾

屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

插入文本类命令
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行

删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本

搜索及替换命令
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换

选项设置
all:列出所有选项设置情况
term:设置终端类型
ignorance:在搜索中忽略大小写
list:显示制表位(Ctrl+I)和行尾标志($)
number:显示行号
report:显示由面向行的命令修改过的数目
terse:显示简短的警告信息
warn:在转到别的文件时若没保存当前文件则显示NO write信息
nomagic:允许在搜索模式中,使用前面不带"\"的特殊字符
nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
mesg:允许vi显示其他用户用write写到自己终端上的信息

最后行方式命令
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d :将n1行到n2行之间的内容删除
:w :保存当前文件
:e filename:打开文件filename进行编辑
:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:执行shell命令command
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入
:r!command:将命令command的输出结果放到当前行

寄存器操作
"?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字
"?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字
"?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字
"?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字
ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。
 
2008-10-30

chenxu

[转]CCNA的三级通关路 90天拿什么保驾护航?

CCNA的三级通关路 90天拿什么保驾护航?

经过三个月的奋战,终于完成了NA、NP的考试。我想,我之所以能够顺利的通过考试,与一些朋友的无私奉献是分不开的!现将自己在学NA、NP过程中的一些体会和学习方法以及考试心得与大家分享,希望能给正在学习NA、NP,或者打算将要学习NA、NP的朋友提供一点帮助。    看到很多朋友在问:用几个月的时间就能学好NA、NP,并能顺利的通过考试吗?答案当然是肯定的,但要怎样才能做到,却不是三言两语就能说得清楚的。总的来说你必须要先具备以下三点:信心、恒心、用心。
    首先要具有信心,坚定的信心是成功的起源!如果在学习之前,你就没有信心,那么劝你趁早放弃,因为还没开始你就已经失败了;如果你的信心不坚定,那么你也应该放弃,因为你终究会失败,只是时间的问题。如果有人认为自己没信心是有很多理由的:很多年没摸过书本了;没什么专业基础;英语也不好……那么我想对他说:请不要找太多借口!因为我正是从这样的状况下走过来的。过去三年中我几乎很少拿起书本,平时都是网络游戏、抽烟醉酒、迟到旷课、考试作弊。单看三年来的成绩记录你就明白了:13门补考、3门重修!说到专业基础,去参加NA培训的第一课的时候,我把老师说的"
路由器"写成"路游器"关于什么"掩码"更是不懂了!说到英语,我更是不行,上中学时就学不好,上大学来更是没学过,就连星期一到星期天这七个单词还经常不认得。所以别去为自己找太多借口,树立好自己的目标,从容的去面对现实的一切,给自己多些信心,你完全可以到达你想抵的彼岸。
    其次,要有恒心,顽强的毅力是成功的保证!许多人有着伟大的理想,目标明确的奋斗方向,详尽周到的计划指标,但去实施的时候却是三天打鱼、两天晒网,最终将会放弃!因为坚持奋斗的过程可不是一件容易的事,对此我身有体会。开始学习思科一段时间后,我觉得捧起书本是一件很令人难受的事情。如果你经常午时过后还蒙头睡觉;经常不分白天黑夜的沉迷在网络游戏之中;经常在深更半夜醉酒街头;你就会明白我的感受:学习是对我一种痛苦的折磨!当我实在坚持不下去想要放弃的时候,我就对自己说:再坚持一天吧,也许过了今天我就会适应下来了。就这样多自己说了好多次,我终于坚持下来了!学习是一个漫长的过程受到一些挫折是理所当然的,挫折之后,应该更加努力,不能放弃,也许努力并不等于成功,但放弃就到此为止!
    第三,要用心,用心思考是成功的法宝!记得周星驰的电影《食神》里有一句经典台词:"世上根本就没有什么食神,或者人人都是食神,只要用心人人都能成为食神!"爆笑之余,你不得不承认这是一句至理名言。是啊,世上根本就没有什么天才,又或者人人都是天才,只要用心人人都能成为天才!用脑去记的东西,不久你将会忘记,用心去想到的东西,将长久属于你。只要用心地学习,就没有学不会的知识;只要用心去做事,就没有做不好的事情;只要用心去做人,就一定能成为一个成功的人士!
    如果你已具备了以上三点,那么你已经走在成功的道路上了,而一个好的学习方法是通向成功的一条捷径。
    关于好的学习方法,是没有绝对正确的定义的。对别人来说是一种好的学习方法,可能对你却不然。学习方法因人而异,别人认为好的学习方法,自己只能作为参考,自己找到的学习方法才是真正的好方法。要找到好的学习方法,首先你要去学,用心去学!
    我在学习NA、NP过程中,总共分为三个阶段。简单描述是:全局着手、各个击破、融会贯通。
    第一阶段,从全局着手。用很短的时间把书本看一遍,对书中的主要内容做一个大概的了解。就拿学CCNA的书本来说吧。第一阶段,你必须有这样一个认识:书中第一章是讲OSI的参考模型,需要掌握各层的作用、特点;第二章是关于IP寻址和地址类型,注意一些TCP
协议和UDP协议不同特点、功能的区分;第三章主要是学子网的划分;第四章是……本书最重要的知识点在第五六七八章,而要学好这些知识必须要熟练掌握子网划分和子网掩码,也就是要把第三章的内容掌握透彻。其实这一阶段的目的就是为了下一个阶段的学习做一个合理的规划。从全局着手,要学会"不拘小节",只要求了解总体的内容,细节的知识不必理会,不能眉毛胡子一把抓,在很短的时间内,你学的东西越多,真正属于你的就越少。
    第二阶段,各个击破。就是把整本书划整为零,各个击破,先把书本的知识点划分为几个大块,在把大块划分为几个小块,然后把一个小块一个小块的知识掌握下来。我把CCNA书本分成四个大块,第一大块是关于概念性的东西,要记的部分,如OSI模型、因特网的一些
协议、关于cisco设备的特点和管理(了解);第二大块是子网的划分和规划的方法(熟练掌握);第三大块是路由和交换(重点掌握);第四大块的广域网(简单掌握)。关于交换和路由,有可以分为交换块和路由块,路由块有可以分为静态路由与默认路由、IGRP与EIGRP、OSPF等小块,而OSPF需要掌握的知识点有:概念特点、SPF算法、DR和BDR的选举、配置和检验。第二阶段必须要按第一阶段的规划学习,注意安排时间,重点的知识必须多换点时间去重点掌握,不重要的可以做一般的理解,一些没必要的内容可以不用理会。
    第三阶段,融会贯通。就是把学到的各个部分的知识在联系起来,我想这个阶段的重要性我就不多说了,大家都明白没有哪一本书的某一个知识点是完全孤立的,学完一本书最终目的都是要把它的内容融会贯通!要想做好这阶段的要求,做总结和笔记是最重要的,比如把所有show命令的作用全部记在一起。

    关于考试,我就不想多说了。大家都明白掌握技术是关键,同时要看习题。看习题的时候也要做笔记,不要求整齐,做简单一点自己明白就行。其实考试是一件最简单的事情,考试所靠远远比书本上要学的知识简单得多了,只要掌握书上70%的知识,然后看习题,你就可以去考试了,只要新题不超过30%过是没问题的。说来怕考试就是那1000多元钱在做怪,谁在考试的时候都很紧张,毕竟1000块不是小数目。我这三个月去考试5次,每次都很紧张,在考试之前,我总对自己说:如果成功了将会使我更加自信,失败了只会使我更加坚强!
    我是从8月初开始接触思科的,9月初过NA,11月初过NP.三个月来,我花费在思科上的精力很多,特别在9月份之后,我平均每天学NP的时间不少于10个小时。我知道考完NP,对网络技术来说只是一个起步,以后还得继续努力!其实我并不打算以后往网络技术这门技术发展,但我对这三个月的艰辛付出永不后悔,NA、NP使我改变很大,这几个月我学到了很多很多,我学到的不仅是网络的知识,学到了信心、恒心、用心,还学到了什么是亲情、友情,更是学到了再重新面对人生的勇气……</P
 
2008-10-30

chenxu

2008年10月29日星期三

MySql 1067错误

使用xampp里面的mysql安装批处理安装mysql出现  1067错误

只要把mysql里面的my.cnf 里面的文件路径参数前面加上盘符 在安装一次就ok了

下面是在网上收集的方法,受下面的启发!

安装后MYSQL5后,发现启动出错,有时启动正常,但加接时马上出错。

出错代码:1067

解决办法如下:

  1. 删除%windows%/my.ini
  2. 删除其它地方的my.ini
  3. 在mysql安装目录下把my-small.ini复制为my.ini
  4. 在my.ini最后一行插入:
    CODE:
    [mysqld]
    #设置basedir指向mysql的安装路径
    basedir=C:\mysql-5.1.11-beta-win32
    datadir=C:\mysql-5.1.11-beta-win32\data

  5. 重新启动。。。
CODE:

C:\mysql-5.1.11-beta-win32\bin>net start mysql
MySQL 服务正在启动 .
MySQL 服务无法启动。

系统出错。

发生系统错误 1067。

进程意外终止。

C:\mysql-5.1.11-beta-win32\bin>mysqld-nt --remove
Service successfully removed.

C:\mysql-5.1.11-beta-win32\bin>mysqld-nt --install
Service successfully installed.

C:\mysql-5.1.11-beta-win32\bin>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。


C:\mysql-5.1.11-beta-win32\bin>net stop mysql
MySQL 服务正在停止..
MySQL 服务已成功停止。

 
2008-10-29

chenxu

2008年10月27日星期一

[转]中国古代经典励志名言100句

 
1.天行健,君子以自强不息。 ――《周易》  
  译:作为君子,应该有坚强的意志,永不止息的奋斗精神,努力加强自我修养,完成并发展自己的学业或事业,能这样做才体现了天的意志,不辜负宇宙给予君子的职责和才能。

  2.勿以恶小而为之,勿以善小而不为。 ――《三国志》刘备语
  译:对任何一件事,不要因为它是很小的、不显眼的坏事就去做;相反,对于一些微小的。却有益于别人的好事,不要因为它意义不大就不去做它。
  3.见善如不及,见不善如探汤。 ――《论语》
  译:见到好的人,生怕来不及向他学习,见到好的事,生怕迟了就做不了。看到了恶人、坏事,就像是接触到热得发烫的水一样,要立刻离开,避得远远的。
  4.躬自厚而薄责于人,则远怨矣。 ――《论语》
  译:干活抢重的,有过失主动承担主要责任是"躬自厚",对别人多谅解多宽容,是"薄责于人",这样的话,就不会互相怨恨。
  5.君子成人之美,不成人之恶。小人反是。 ――《论语》
  译:君子总是从善良的或有利于他人的愿望出发,全心全意促使别人实现良好的意愿和正当的要求,不会用冷酷的眼光看世界。或是唯恐天下不乱,不会在别人有失败、错误或痛苦时推波助澜。小人却相反,总是"成人之恶,不成人之美"。  
  6.见贤思齐焉,见不贤而内自省也。 ――《论语》
  译:见到有人在某一方面有超过自己的长处和优点,就虚心请教,认真学习,想办法赶上他,和他达到同一水平;见有人存在某种缺点或不足,就要冷静反省,看自己是不是也有他那样的缺点或不足。
  7.己所不欲,勿施于人。 ――《论语》
  译:自己不想要的(痛苦、灾难、祸事……),就不要把它强加到别人身上去。
  8.当仁,不让于师。 ――《论语》
  译:遇到应该做的好事,不能犹豫不决,即使老师在一旁,也应该抢着去做。后发展为成语"当仁不让"。
  9.君子欲讷于言而敏于行。 ――《论语》
  译:君子不会夸夸其谈,做起事来却敏捷灵巧。
  10.二人同心,其利断金;同心之言,其臭如兰。 ――《周易》
  译:同心协力的人,他们的力量足以把坚硬的金属弄断;同心同德的人发表一致的意见,说服力强,人们就像嗅到芬芳的兰花香味,容易接受。  
  11.君子藏器于身,待时而动。 ――《周易》
  译:君子就算有卓越的才能超群的技艺,也不会到处炫耀、卖弄。而是在必要的时刻把才能或技艺施展出来。
  12.满招损,谦受益。 ――《尚书》
  译:自满于已获得的成绩,将会招来损失和灾害;谦逊并时时感到了自己的不足,就能因此而得益。
  13.人不知而不愠,不亦君子乎? ――《论语》
  译:如果我有了某些成就,别人并不理解,可我决不会感到气愤、委屈。这不也是一种君子风度的表现吗?
知缘斋主人   
  14.言必信 ,行必果。 ――《论语》
  译:说了的话,一定要守信用;确定了要干的事,就一定要坚决果敢地干下去。
  15.毋意,毋必,毋固,毋我。 ――《论语》
  译:讲事实,不凭空猜测;遇事不专断,不任性,可行则行;行事要灵活,不死板;凡事不以"我"为中心,不自以为是,与周围的人群策群力,共同完成任务。  
  16.三人行,必有我师焉,择其善者而从之,其不善者而改之。――《论语》
  译:三个人在一起,其中必有某人在某方面是值得我学习的,那他就可当我的老师。我选取他的优点来学习,对他的缺点和不足,我会引以为戒,有则改之。
  17.君子求诸己,小人求诸人。 ――《论语》
  译:君子总是责备自己,从自身找缺点,找问题。小人常常把目光射向别人,找别人的缺点和不足。
  18.君子坦荡荡,小人长戚戚。 ――《论语》
  译:君子心胸开朗,思想上坦率洁净,外貌动作也显得十分舒畅安定。小人心里欲念太多,心理负担很重,就常忧虑、担心,外貌、动作也显得忐忑不安,常是坐不定,站不稳的样子。
  19.不怨天,不尤人。 ――《论语》
  译:遇到挫折与失败,绝不从客观上去找借口,绝不把责任推向别人,后来发展为成语"怨天尤人"。
  20.不迁怒,不贰过。 ――《论语》
  译:犯了错误,不要迁怒别人,并且不要再犯第二次。)
  21.小不忍,则乱大谋。 ――《论语》
  译:不该干的事,即使很想去干,但坚持不干,叫"忍"。对小事不忍,没忍性,就会影响大局,坏了大事。
  22.小人之过也必文。 ――《论语》
  译:小人对自己的过错必定加以掩饰。
  23.过而不改,是谓过矣。 ――《论语》
  译:有了过错而不改正,这就是真的过错了。
  24.君子务本,本立而道生。 ――《论语》
  译:君子致力于根本,确立了根本,"道"也就自然产生。
  25.君子耻其言而过其行。 ――《论语》
  译:君子认为说得多做得少是可耻的。
  26.三思而后行。 ――《论语》
  译:每做一件事情必须要经过反复的考虑后才去做。
  27.多行不义必自毙。 ――《左传》
  译:坏事做得太多,终将自取灭亡。
  28.人谁无过,过而能改,善莫大焉。 ――《左传》
  译:人都有可能犯错误,犯了猎误,只要改正了仍是最好的人。
  29.不以一眚掩大德。 ――《左传》
  译:评价一个人时,不能因为一点过失就抹杀他的功劳。
  30.人一能之,己百之;人十能之,己千之。 ――《中庸》
  译:人家一次就学通的,我如果花上百次的功夫,一定能学通。人家十次能掌握的,我要是学一千次,也肯定会掌握的。
  31.知耻近乎勇。 ――《中庸》
  译:知道什么是可耻的行为,那就是勇敢的好表现。
  32.以五十步笑百步。 ――《孟子》
  译:以为自己的错误比别人的小,缺点比别人少而沾沾自喜。
  33.君子莫大乎与人为善。 ――《孟子》
  译:君子最大的长处就是用高尚、仁义的心去对待别人。
  34.人皆可以为尧舜。 ――《孟子》
  译:只要肯努力去做,人人都可以成为尧舜那样的大圣人。
  35.千丈之堤,以蝼蚁之穴溃;百尺之室,以突隙之烟焚。 ――《韩非子》
  译:千里大堤,因为有蝼蚁在打洞,可能会因此而塌掉决堤;百尺高楼,可能因为烟囱的缝隙冒出火星引起火灾而焚毁。
  36.言之者无罪,闻之者足以戒。 ――《诗序》
  译:提出批评意见的人,是没有罪过的。听到别人的批评意见要仔细反省自己,有错就改正,无错就当作是别人给自己的劝告。
  37.良药苦于口而利于病,忠言逆于耳而利于行。 ――《孔子家语》
  译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。
  38.良言一句三冬暖,恶语伤人六月寒。 ――明代谚语
  译:一句良善有益的话,能让听者即使在三冬严寒中也倍感温暖;相反,尖酸刻薄的恶毒语言,伤害别人的感情和自尊心,即使在六月大暑天,也会让人觉得寒冷。
  39.千经万典,孝悌为先。 ――《增广贤文》
  译:千万种经典讲的道理,孝顺父母,友爱兄弟是最应该先做到的。
  40.善恶随人作,祸福自己招, ――《增广贤文》
  译:好事坏事都是自己做的,灾祸幸福也全是由自己的言行招来的。
  41.学而不思则罔,思而不学则殆。 ――《论语》
  译:只学习却不思考就不会感到迷茫,只空想却不学习就会疲倦而没有收获。
  42.知之为知之,不知为不知,是知也。 ――《论语》
  译:知道就是知道,不知道应当说不知道,不弄虚作假,这才是明智的行为。
  43.业精于勤,荒于嬉;行成于思,毁于随。 ――韩愈
  译:事业或学业的成功在于奋发努力,勤勉进取。太贪玩,放松要求便会一事无成;做人行事,必须谨慎思考,考虑周详才会有所成就。任性、马虎、随便只会导致失败。
  44.读书有三到:谓心到,眼到,口到。 ――明・朱熹
  译:用心思考,用眼仔细看,有口多读,三方面都做得到位才是真正的读书。
  45.学而不厌,诲人不倦。 ――《论语》
  译:努力学习却不感到满足,教导别人不感到厌倦。
  46.不积跬步,无以至千里,不积小流,无以成江海。 ――《荀子・劝学》
  译:不把半步、一步积累起来,就不能走到千里远的地方,不把细流汇聚起来,就不能形成江河大海。
  47.欲穷千里目,更上一层楼。 ――唐・王之涣《登颧雀楼》
  译:想看到更远更广阔的景物,你就要再上一层楼。想学到更多更深的知识,你就要比原来更努力。
  48.强中自有强中手,莫向人前满自夸。 ――《警世通言》
  译:尽管你是一个强者,可是一定还有比你更强的人,所以不要在别人面前骄傲自满,自己夸耀自己。
  49.玉不琢,不成器;人不学,不知道。 ――《礼记・学记》
  译:玉石不经过雕琢,不能成为有用的玉器;人不经过学习,就不懂得事理。
  50.黑发不知勤学早,白首方悔读书迟。 ――《劝学》
  译:年轻的时候不知道抓紧时间勤奋学习,到老了想读书却为时已晚。
    51.知不足者好学,耻下问者自满。 ――林逋《省心录》
  译:知道自己的不足并努力学习就是聪明的人,不好问又骄傲自满的人是可耻的。
  52.学不可以已。 ――《荀子》
  译:学习是不可以停止的。
  53.学而时习之,不亦悦乎? ――《论语》
  译:学过的知识,在适当的时候去复习它,使自己对知识又有了新的认识,这不是令人感到快乐的事吗?
  54.温故而知新,可以为师矣。 ――《论语》
  译:学了新的知识又常常温习已学过的知识,不断地学习,温习,学问和修养一定会很快得到提高,这样的人就可以成为老师了。
  55.读书破万卷,下笔如有神。 ――唐・杜甫
  译:读书读得多,写起文章来就会笔下生花,像有神助一样。
  56.少壮不努力,老大徒伤悲。 ――《汉乐府・长歌行》
  译:年轻时不努力学习,年老了只能后悔、叹息。
  57.读书百遍,其义自见。 ――《三国志》
  译:读书必须反复多次地读,这样才能明白书中所讲的意思。
  58.学而不化,非学也。 ――宋・杨万里
  译:学习知识但不能灵活运用,不能称为学习。
  59.好学而不贰。 ――《左传》
  译:爱好学习但不三心二意。
  60.学如不及,犹恐失之。 ――.《论语・秦伯》
  译:学习知识时生怕追不上,追上了又害怕再失去。
  61.人而不学,其犹正墙面而立。 ――《尚书》
  译:人如果不学习,就像面对墙壁站着,什么东西也看不见。
  62、知而好问,然后能才。 ――《荀子》
  译:聪明的人还一定得勤学好问才能成才。
  63、学之广在于不倦,不倦在于固志。 ――晋・葛洪
  译:学问的渊博在于学习时不知道厌倦,而学习不知厌倦在于有坚定的目标。
  64.学而不知道,与不学同;知而不能行,与不知同。 ――黄�
  译:学习知识不能从中明白一些道理,这和不学习没什么区别;学到了道理却不能运用,这仍等于没有学到道理。
  65.博观而约取,厚积而薄发。 ――宋・苏轼
  译:广泛阅读,多了解古今中外的人和事,把其中好的部分牢牢记住;积累了大量的知识材料,到需要用时便可以很自如恰当地选择运用。
  66.差之毫厘,谬以千里。 ――宋・陆九渊
  译:做任何事情,开始一定要认真地做好,如果做差了一丝一毫,结果会发现相差很远。
  67.盛年不重来,一日难再晨。 ――晋・陶渊明
  译:美好的青春年华过去了就不会再来,一天不可能有两个早晨,要珍惜时光啊!)
  68、言之无文,行而不远。 ――《左传》
  译:文章讲的内容或题材都很好,可表达不适当,那么欣赏的人就不会很多,难以传播千古。
  69.人之为学,不可自小,又不可自大。 ――顾炎武
  译:学习时不要在渊博浩翰的知识面前感到自卑,也不能因为学到一点点知识而骄傲自满。
  70.好学近乎知,力行近乎仁,知耻近乎勇。 ――《中庸》
  译:勤奋好学就接近智,做任何事情只要努力就接近仁,懂得了是非善恶就是勇的一种表现。
  71.书到用时方恨少,事非经过不知难。 ――陈廷焯
  译:知识总是在运用时才让人感到太不够了,许多事情如果不亲身经历过就不知道它有多难。
  72、笨鸟先飞早入林,笨人勤学早成材。 ――《省世格言》
  译:飞得慢的鸟儿提早起飞就会比别的鸟儿早飞入树林,不够聪明的人只要勤奋努力,就可以比别人早成材。
  73.书山有路勤为径,学海无涯苦作舟。 ――《增广贤文》
  译:勤奋是登上知识高峰的一条捷径,不怕吃苦才能在知识的海洋里自由遨游。
  74.学如逆水行舟,不进则退。 ――《增广贤文》
  译:学习要不断进取,不断努力,就像逆水行驶的小船,不努力向前,就只能向后退。
  75.吾生也有涯,而知也无涯。 ――《庄子》
  译:我的生命是有限的,而人类的知识是无限的。
  76.天下兴亡,匹夫有责。 ――明・顾炎武
  译:国家的兴旺、衰败,每一个人都负有很大的责任。
  77.生于忧患,死于安乐。 ――孟子
  译:逆境能使人的意志得到磨炼,使人更坚强。相反,时常满足于享受,会使人不求上进而逐渐落后。
  78.位卑未敢忘忧国。 ――陆游《病起书怀》
  译:虽然自己地位低微,但是从没忘掉忧国忧民的责任。
  79.人生自古谁无死,留取丹心照汉青。 ――宋・文天祥《过零丁洋》
  译:自古以来,谁都难免会死的,那就把一片爱国的赤胆忠心留在史册上吧!
  80.先天下之忧而忧,后天下之乐而乐。 ――宋・范仲淹《岳阳楼记》
  译:为国家分忧时,比别人先,比别人急;享受幸福,快乐时,却让别人先,自己居后。
知缘斋主人   
  81.小来思报国,不是爱封侯。 ――唐・岑参《关人赴安西》
  译:从小就想着报效祖国,而不是想着要封侯当官。)
  82.有益国家之事虽死弗避。 ――明・吕坤《呻吟语・卷上》
  译:对国家有利的事情要勇敢地去做,就算有死亡的危险也不躲避。
  83.一寸山河一寸金。 ――金・左企弓语
  译:祖国的每一寸山河比一寸黄金还要宝贵,是绝不能让给外人的。
  84.欲安其家,必先安于国。 ――武则天
  译:如果想建立个人幸福的小家,必须先让国定安定,繁荣起来。
  85.捐躯赴国难,视死忽如归。 ――三国・曹植《白马篇》
  译:在国家有危难的时候要敢于挺身而出,把死当作回家一样。
  86.风声、雨声、读书声,声声入耳;家事、国事、天下事,事事关心。――明・顾宪成
  译:风声、雨声、琅琅读书声,都进入我们的耳朵,所以,作为一个读书人,家事、国事,天下的事情,各种事情都应该关心,不能只是死读书。
  87.生当作人杰,死亦为鬼雄。 ――宋・李清照《夏日绝句》
  译:活着的时候要做英雄,死后也要当英雄。
  88.利于国者爱之,害于国者恶之。 ――《晏子春秋》
  译:对于国家有利的事就要热心地去做,对国家有害的事就要憎恶它,远离它。

    89.读书本意在元元。 ――宋・陆游
  译:读书的目的应该是掌握了知识后为社会和大众服务,而不是为了自己的升官发财。
  90.时穷节乃现,一一垂丹青。 ――宋・文天祥
  译:历史上许多忠臣义士,在国家有难时,他们的节操就显现出来,一个个名垂史册。
知缘斋主人   
  91.哀哀父母,生我劬劳。 ――《诗经》
  译:想起父母,做子女的是多么为他们感到心痛啊!他们生我育我,花费了多少辛勤的劳动啊!
  92.报国之心,死而后已。――宋・苏轼
  译:报效祖国的志向到死都不会变。
  93.忧国忘家,捐躯济难,忠臣之志也。 ――三国・曹植《求自诚表》
  译:忧虑国家大事忘记小家庭,为拯救国家危难而捐躯献身,这都是忠臣的志向。
  94.大丈夫处世,当扫除天下,安事一室乎? ――汉・陈蕃语
  译:有志气的人活在世上,应当敢于跟各种不利于国家的行为作斗争,哪能只满足于处理好自己小家的小事呢?
  95.君子之交淡如水,小人之交甘若醴。 ――《庄子》
  译:君子之间的交往,像水一样的平淡、纯净,这样的友谊才会持久;往小人之间的交像甜酒一样的又浓又稠,但不会长久。
  96.老吾老,以及人之老;幼吾幼,以及人之幼。 ――《孟子》
  译:尊敬、爱戴别人的长辈,要像尊敬、爱戴自己长辈一样;爱护别人的儿女,也要像爱护自己的儿女一样。
  97.见侮而不斗,辱也。 ――《公孙龙子》
  译:当正义遭到侮辱、欺凌却不挺身而出,是一种耻辱的表现。
  98.天下皆知取之为取,而莫知与之为取。 ――《后汉书》
  译:人们都认为只有获取别人的东西才是收获,却不知道给予别人也是一种收获。
  99.人固有一死,或重于泰山,或轻于鸿毛。 ――汉・司马迁《史记》
  译:人终究免不了一死,但死的价值不同,为了人民正义的事业而死就比泰山还重,而那些自私自利,损人利已的人之死就比鸿毛还轻。
知缘斋主人   
  100.羊有跪乳之恩,鸦有反哺之义。 ――《增广贤文》
  译:羊羔有跪下接受母乳的感恩举动,小乌鸦有衔食喂母鸦的情义,做子女的更要懂得孝顺父母


chenxu
2008-10-27

2008年10月24日星期五

郑多彬自杀了

 
 
姓名:郑多彬

  出生:韩国

  生日:1982年3月4日

  身高:165cm

  体重:43kg

  特长:钢琴,作曲,跳舞等

  学历:英(永)德女子高中毕业

  主要影视作品:

  《那小子真帅》《阁楼男女》

 

都挺好看的电影和电视剧!


chenxu
2008-10-24

2008年10月23日星期四

[转]河南新密非法采煤:民房开裂,道路塌陷

《新湘报》特约撰稿曾彩云 发自河南新密
       四川省汶川地震、山西省襄汾尾矿溃坝,天灾与人祸让国民对灾难有了痛彻心扉的感受。然而,在河南省新密市城西下庄河村与翟沟村,非法煤矿的矿主们执意要在这里人为制造一场灾难。当地群众整日提心吊胆,时刻担心房子会在什么时候突然掉到地下的煤田里去。
 
                非法开采扰乱一方百姓
 
      从新密市西行约4公里,有一个原来在当地闻名的繁华集镇名叫下庄河。现如今临近下庄河,公路两边的情景让人仿佛进入了地震灾区。倒塌的房屋、横七竖八的预制板、摇摇   欲坠的房舍、沉陷的路面……一切是那么的不可置信而又真实的呈现在眼前。西大街办事处南面100多米处有一块木牌,上面写着"沉陷区",路旁支离破碎的村庄,向路人诉说着这里的不幸遭遇。当地群众流着眼泪告诉记者 :"是黑心的矿主利欲熏心,非法开采破坏了我们美好的家园!"
 
                村民楼房随时可能倒塌
 
      据当地群众向《新湘报》记者介绍,下庄河翟沟村一带地下煤炭资源十分丰富,这让不少煤矿老板垂涎欲滴。鑫兴煤业有限公司(鑫兴煤矿)和翟沟煤矿这两家非法矿就是破坏当地生态环境与居住安全的元凶。受利益驱动,这两家非法矿利用金钱开道,打通了一些环节,明目张胆的进行非法开采。乱采滥挖导致当地水土严重流失,附近村庄出现地基沉陷、墙壁错位和裂缝,门窗变形等现象,这些房屋随时面临倒塌危险。
 
      翟沟村翟沟煤矿附近大片土地、房屋、道路处于悬空状态,许多基本农田也遭到严重破坏。经过此处的省道有几处已经沉陷下去,路基已遭受破坏,货车走在上面晃悠悠的如履薄冰,随时有陷入地下的危险。


 非法开采导致村民房屋开裂倒塌

有关部门在国道边上挂牌提示路过的司机

房间里的裂缝随处可见

                  政府部门对此熟视无睹
 
      对于这一切,相关部门熟视无睹。在下庄河村下前组,几位村民偷偷的告诉记者:"煤矿老板有钱,将煤炭局的干部都买通了,特别是现任局长杨春杰,原来他本人就是一个个体煤矿老板,花钱买官后,现在大肆收煤矿的黑金,就不管我们这些百姓的死活了 。"下前村有 2个组的房屋基本全部倒塌,但是在这倒塌的废墟之中,仍然有几户人家住在还没有完全倒掉的危房里。
 
      绕过废墟,记者来到了一户烟窗仍在冒烟的住户前。开门的是一位70岁左右的奶奶,记者说明来意后,老奶奶哭着说:"以前说挖社会主义墙脚,这些人(煤矿老板)现在是挖咱老百姓的墙脚。我的房子被挖成了危房,村领导、镇领导都代表群众无数次去煤炭局交涉,煤炭局就是不管,哪天房子倒了我这把老骨头就埋这儿了 。"
 
             "用人命去换省长乌纱帽"?
 
      下庄河村与翟沟村群众深受非法煤矿之害已经多年。几年来,当地群众到处奔走,呼号求助,金钱的力量战胜了一切,现任煤炭局长杨春杰亲自跑到北京帮煤矿活动,群众的呼声就这样被矿主们用钞票在官员的包庇下化为无声,几年时间内,鑫兴煤矿和翟沟煤矿开了又关,关了又开。据相关报道:2007年6月14日,新密市国土资源局下发[2007]25号文件通知两家煤矿停止开采。
 
      2007年9月,全国整顿和规范矿产资源秩序部际联席会议办公室通知河南省进行调查,省有关领导虽多次批示,但新密市国土局2007年2月第一次仅仅是查处了鑫兴煤矿1.8亩的违法新井口,回应了温总理的批示。
 
      群众对处理结果严重不满,持续上访,2008年9月2日新密市国土局最新查处鑫兴煤矿土地违法16.54亩(其中占用基本农田10.23亩,占用建设用地6.31亩);翟沟煤矿违法占用土地12.3亩,虽然查处结果比原来有所扩大,但事实上此次查处也仅仅是20余亩,与两矿实际土地违法250亩相比出入巨大,在报告上对同一案件处理结果为何差别如此大,文中也仅以GPS失灵一笔带过,对俩个非法矿破坏大量基本农田的严重违法事实,至今仍没有处理到位,新密市国土局声称的此次查处,已移交给新密市检察院,追究当事人的刑事责任。但是就是这样的处理结果,当地群众多次上访索要,也未能看到相关的法律文书。当地群众说:"我们要与自己的家园共存亡!山西省襄汾尾矿溃坝让孟学农丢了乌纱帽,我们已经做好了用两个村1000多条人命去换省长乌纱帽的打算。"
 
      相关链接:基本农田保护条例(1998年12月27日国务院令第257号发布)第十七条 禁止任何单位和个人在基本农田保护区内建窑、建房、建坟、挖砂、采石、采矿、取土、堆放固体废弃物或者进行其他破坏基本农田的活动。

 

chenxu
2008-10-23

2008年10月22日星期三

页面读取显示文本文件

<table border="1" width="100%" id="table1" height="744">
 <tr>
  <td width="83%"> <iframe src="ip.txt" width="947" height=722 marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="auto"></iframe>  
 </tr>
</table>
 

chenxu
2008-10-22

mediawiki 设置

 

chenxu
2008-10-22

2008年10月21日星期二

mantis1.1.2新增功能

1,增加wiki
2,rss
3,版本,tag ,项目管理中增加版本复制功能。
4,自定义字段的复制功能。
5,增加了数据库配置页面,可以直接在里面配置mantis功能,而不用去修改config文件。
6,路线图
路线图功能类似于更新功能,但追踪计划的功能和修补,而不是执行的。 路线特点是一个核心工具,规划今后的发布和交流等计划,客户和开发团队。 .它还提供了一个方法来跟踪方面所取得的进展释放方面所做的工作与计划。可以看这个网页http://www.mantisbt.org/wiki/doku.php/mantisbt:features:roadmap


chenxu
2008-10-21

强烈建议PHPer们使用Turck MMCache [Tech ]

强烈建议PHPer们使用Turck MMCache [Tech ]

  Turck MMCache是一个类似于Zend Optimizer/Encoder的软件,不过速度要超过后者。而且他是一个开源的软件,可以免费使用。官方网站是:http://turck-mmcache.sourceforge.net

安装方法

  在http://sourceforge.net/project/showfiles.php?group_id=69426根据你的PHP版本下载MMCache解压至任意目录后,在PHP.ini中添加如下内容即可:(C:\PHP\mmcache是MMCache所在的目录,如果是非Windows平台则是 zend_extension_ts=mmcpath/mmcache.so)

zend_extension_ts="C:\PHP\mmcache\mmcache.dll"
mmcache.shm_size="16"
mmcache.cache_dir="C:\PHP\mmcache\tmp"
mmcache.enable="1"
mmcache.optimizer="1"
mmcache.check_mtime="1"
mmcache.debug="0"
mmcache.filter=""
mmcache.shm_max="0"
mmcache.shm_ttl="0"
mmcache.shm_prune_period="0"
mmcache.shm_only="0"
mmcache.compress="1"

  目前多数的虚拟主机都没有安装Turck MMCache,实在是大大的浪费。装了之后几乎可以放多10倍的站点。而且PHP程序员用起来没有任何区别。

  下表是同类软件的比较:

No Cache Afterburner 0.14 APC 1.1.0 (shm) APC 2.0b PHP Accelerator 1.3.3r2 Turck MMCache 2.4.0* Zend Performance Suite 3.5.0**
Document Path: /phpMyAdmin-2.5.1/index.php
Concurrency Level: 1
Complete requests: 200
Document Length: 2369 bytes
Time taken for tests [sec]: 22.459 10.233 13.606 4.864 5.080 4.622 4.689
Total transferred [bytes]: 522800 522800 522800 522800 529200 522800 522800
HTML transferred [bytes]: 473800 473800 473800 473800 473800 473800 473800
Requests per second [#/sec]: 8.91 19.54 14.70 41.12 39.37 43.27 42.65
Time per request [ms]: 112.30 51.16 68.03 24.32 25.40 23.11 23.45
Time per request [ms]:
(across all concurrent requests)
112.30 51.16 68.03 24.32 25.40 23.11 23.45
Transfer rate [Kbytes/sec]: 23.28 51.09 38.42 107.48 104.17 113.11 111.49
Connect Time (min/avg/max) [ms]: 0/0/0 0/0/0 0/0/0 0/0/0 0/0/0 0/0/0 0/0/0
Processing Time (min/avg/max) [ms]: 111/112/113 50/51/52 67/68/69 24/24/25 25/25/26 22/23/24 23/23/24
Total Time (min/avg/max) [ms]: 111/112/113 50/51/52 67/68/69 24/24/25 25/25/26 22/23/24 23/23/24
Speedup [%]: 100 220 165 462 442 486
WINNER
480
The second

Posted by xdanger at February 10, 2004 10:16 PM | TrackBack
TrackBacks
TrackBack URL for this entry: http://blog.xdanger.com/script/trackback.pl/100
 

chenxu
2008-10-21

2008年10月20日星期一

TestLink安装配置手册(网络收集和自我总结)

TestLink安装配置手册
 
 
范围
 
 
本文仅作为安装和配置TestLink的参考文档。
 
本文的第一部分为TestLink的安装步骤,第二部分是TestLink的配置方法。
 
本文和其他相关文档可在TestLink网站上找到。您也可以在TestLink的论坛中寻求帮助
 
 
 
一般TestLink安装的步骤如下:
 
1.下载TestLink
 
2.解压文件
 
3.创建数据库
 
4.导入缺省数据
 
5.编辑配置文件
 
6. PHP文件扩展
 
7.登录TestLink
 
 
 
系统需求
 
 
要使TestLink正常运行,需要安装以下软件:
 
MySQL 4.1.x及以上
 
php   4.3.x及以上
 
WebServer(Apache 1.3.x或2.0.x及以上,IIS 3及以上,等等,更详细的信息请参见<php安装目录>/install.txt)
 
对于操作系统平台没有特别要求(TestLink已经在Linux和MS Win32平台上测试通过)
 
你也可以将数据库与TestLink分别安装在不同的服务器上,如下图:
 
 
 
 
 
安装步骤
 
 
在安装TestLink之前应先完成以下步骤:
 
1.安装环境:Webserver、php4和MySQL,安装方法参见这些应用软件的安装文档。
 
我是在winXP下安装的,webserver是IIS,PHP5.1.2,MySql的版本是5.0.18
 
 IIS的安装就不多说了,下面主要讲讲PHP
 
从5.0开始,PHP对MySql的支持需要手动配置
 
将php_mysql.dll 和libmySQL.dll 文件拷贝到winnt\system32目录里,这两个文件可以在PHP安装目录里找到。
编辑<windows>目录下php.ini,将;extension=php_mysql.dll前面的";"去掉
 
2.将TestLink的安装文件复制到服务器上。
 
3.解压缩Testlink的安装文件。
 
 
 
数据库安装
 
 
自动安装(略)
 
 
手工安装
 
 
创建MySQL数据库
 
      CREATE DATABASE testlink CHARACTER SET utf8 COLLATE utf8_general_ci
 
创建数据表
 
      # mysql -u <user> -p<password> <dbname> <<testlinkdir>/install/sql/testlink_create_tables.sql
 
导入缺省数据
 
      # mysql -u <user> -p<password> <dbname> < <testlinkdir>/install/sql/testlink_create_default_data.sql
 
 
 
也可以使用mysql客户端工具进行创建数据库的操作。
 
 
 
在<testlinkdir>目录下创建config_db.inc.php文件
 
<?php // Automatically Generated by TestLink Installer
 
define('DB_TYPE', 'mysql');
 
define('DB_USER', 'root');
 
define('DB_PASS', 'root');
 
define('DB_HOST', 'localhost');
 
define('DB_NAME', 'testlink');
 
?>
 
 
 
配置
 
配置文件
<testlink installation directory>/config.inc.php - 主要的配置文件,后面会做详细介绍
 
<testlink installation directory>/config_db.inc.php - 包含访问数据库的所有配置参数。这个文件在安装或升级过程中产生。通常不必做手工修改
 
<testlink installation directory>/cfg/<bug_tracking_system>.cfg.php
/cfg/bugzilla.cfg.php
/cfg/mantis.cfg.php
/cfg/jira.cfg.php
  包含访问bugzilla、mantis或者jira等缺陷跟踪系统的配置参数。如果想从TestLink直接访问这些系统,需要手工修改这些文件,另外这个功能需要在config.inc.php文件中修改一个配置参数。
 
 
 
***************<testlink installation directory>/config.inc.php 配置*****************************
 
必须修改的参数
DB_SUPPORTS_UTF8
MySQL4.1以前的版本不支持utf8,因此所有的页面使用ISO-8859-1字符集而数据则以latin1字符集存入数据库,令DB_SUPPORTS_UTF8 = FALSE;
MySQL4.1及以后的版本,令DB_SUPPORTS_UTF8 = TRUE,使全部页面支持UTF-8而数据以utf8字符集存入数据库。
 
 
 
/** [LOGGING] */
/** @see logging.inc.php for more information */
$g_log_path=TL_TEMP_PATH;
 
/** Default level of logging (NONE, ERROR, INFO, DEBUG, EXTENDED) */
$g_log_level='NONE';
 

可能需要修改的参数
TL_LOG_LEVEL_DEFAULT
日志记录的缺省级别,日志级别有(NONE、ERROR、INFO、DEBUG)。DEBUG级别只在开发或者与bug系统集成时使用
 
TL_LOG_PATH
日志文件的文件名和路径
 

// Display name and surename in all user lists
// $g_show_realname=TRUE; -> use the function format_username()
//                           to display user identification
//                           using $g_username_format
$g_show_realname = TRUE;//FALSE   // 显示真实姓名
 
// used by function format_username()
// example: user ux555, real name= John Cook
// '%first% %last%'          -> John Cook
// '%last%, %first%'          -> John Cook
// '%first% %last% %login%'    -> John Cook [ux555]
$g_username_format = '%last%%first%'; 姓与名的排列
 

MAIN_PAGE_METRICS_ENABLED  //1.7.4 已删除这个功能
这个参数控制矩阵表格是否显示在主页上,允许"TURE"和"FALSE"两个值 
 
TL_INTERFACE_BUGS
设置testlink和缺陷跟踪系统的接口。允许的值为:"NO"、"BUGZILLA"、"MANTIS"
与BUGZILLA的接口配置参见cfg/bugzilla.cfg.php,支持0.19.1
与MANTIS的接口配置参见cfg/mantis.cfg.php,支持1.0.0.a3
 
TL_TREE_KIND
这个参数用于配置testlink所使用的树形菜单,允许的值为"LAYERSMENU"、"JTREE"、"DTREE"
LAYERSMENU 是缺省值;在这里,JTREE的性能最好;其他的两种树形菜单,可以记住上一次的位置。
 
TL_IMPORT_LIMIT
最大可以上传的文件的大小,单位是bytes。缺省值是200000。如果需要上传一个更大的文件,你可以加大这个值。另外还有一个参数:TL_IMPORT_ROW_MAX,用户规定导出文件一行最长可以有多长字符,10000字符已经足够了。
 
$g_fckeditor_toolbar
定义fckeditor工具条,你可以修改其内容。这个部件的更详细的信息参见fckeditor的主页(http://www.fckeditor.net/
 
TL_TPL_CHARSET
中文用户只需要设置:define('TL_TPL_CHARSET','gb2312');这样就定义了正确的html字符集。其他的语言可以不必修改这个参数
 
TL_DEFAULT_LOCALE
置缺省语言,必须是$g_locales的一个值。缺省值是en_GB。
 
TL_COMPANY,TL_DOC_COPYRIGHT,TL_DOC_CONFIDENT
用于文档抬头,如果不用写抬头,就置这些参数为空。
 
自定义参数
 
 
 
级联样式表
 
*****************************关联mantis设置*************************************
 
$g_interface_bugs='MANTIS';
 
在custom_config.inc.php文件下加入
 
$g_interface_bugs='MANTIS';
 
在cfg\mantis.cfg.php 设置mantis参数
 

在mantis中必须增加一个匿名用户!
config_defaults_inc.php
# --- anonymous login -----------
# Allow anonymous login
$g_allow_anonymous_login = ON;
$g_anonymous_account  = 'dummy';
 
 
 
******************可以编写你自己的级联样式表改变TestLink的外观。****************************
你必须修改以下定义:
 
define('TL_LOGIN_CSS','gui/css/tl_login.css'); - 登录、登出的CSS文件
 
define('TL_TESTLINK_CSS','gui/css/testlink.css'); - 主页的CSS文件
 
define('TL_DOC_BASIC_CSS','gui/css/tl_doc_basic.css'); - 用于测试报告
 
重要:CSS文件的路径是相对于<TestLink的安装目录>的路径,是相对路径
 
如果要使用自己的CSS文件,建议进行如下操作:
 
1. 在gui目录下创建一个新的目录,例如 "gui/css/my_css/"
2. 复制testlink原文件到新的目录
3. 按你的想法修改它们
4. 编辑config.inc.php文件:
   // Original configuration
  //define('TL_LOGIN_CSS','gui/css/tl_login.css');
   //define('TL_TESTLINK_CSS','gui/css/testlink.css');
   //define('TL_DOC_BASIC_CSS','gui/css/tl_doc_basic.css');
     define('TL_LOGIN_CSS','gui/css/my_css/tl_login_acqua.css');
     define('TL_TESTLINK_CSS','gui/css/my_css/testlink_acqua.css');
     define('TL_DOC_BASIC_CSS','gui/css/my_css/tl_doc_basic.css');
 
******************************************************************************************
 
当产品、部件、分类、测试用例重名时的处理
 
 
当从一个已经复制一个产品、部件、分类、测试用例时,经常会发生重名的情况。
你可以配置如何处理复制:
如果你设置$g_check_names_for_duplicates=TRUE,那么系统就会进行以下的检查
 
  1. 产品名是否唯一
  2. 产品下的部件名是否唯一
  3. 部件下的分类名是否唯一
  4. 分类下的测试用例名是否唯一
 
一旦置$g_check_names_for_duplicates=TRUE,你可以配置如果进行操作,如果发现重名的情况,就使用$g_action_on_duplicate_name,选项如下:
 
'allow_repeat':允许重名(可以和1.0.4、1.5.x兼容)
'generate_new':生成新名称,将"$g_prefix_name_for_copy"的值和原名合并,成为一个新名字
'block':返回一个错误
 
例如:
 
$g_action_on_duplicate_name='allow_repeat';
$g_prefix_name_for_copy= strftime("%Y%m%d-%H:%M:%S", time());
 
允许重复,并将当前时间以(年月日-时分秒)的格式做为原来的名字的前缀。
 
测试计划和产品的关联
从1.6版开始,当创建一个测试计划(Test Plan)时,缺省情况下测试计划会和当前所选择的产品相关联。这意味着你可以以产品为关键字过滤测试计划(Test Plan)。在1.6版本之前,Test Plan没有和指定的产品相关联,当从1.5.x升级到1.6时,安装程序不能将测试计划和产品相关联从而将测试计划的product ID项置为0。这样做将导致老的测试计划将不能被看到。要解决这个问题,必须添加以下参数:
 
$g_show_tp_without_prodid=TRUE;
 
你也可以通过在数据库中手工关联,以便使用以前的数据。
 
通过产品过滤测试计划
使用以下参数:
 
$g_ui_show_check_filter_tp_by_product
 
你可以:
 
允许用户通过界面来使能测试计划过滤功能。$g_ui_show_check_filter_tp_by_product = TRUE时,在测试计划之前显示了一个复选框。
$g_ui_show_check_filter_tp_by_product = FALSE时。强制测试计划的过滤,并且用户不能修改
 
关键字管理
如果不想为同一个产品创建相同的关键字:
 
$g_allow_duplicate_keywords=FALSE;
 

**************************testlink\cfg\const.inc.php*********************************
 
日期和时间本地化
设置日期和时间的显示方式。使用两个关联的数组进行配置:$g_locales_date_format 和 $g_locales_timestamp_format.
 
$g_locales_date_format = array(
'en_GB' => "%d/%m/%Y", 'it_IT' => "%d/%m/%Y",
'es_AR' => "%d/%m/%Y", 'es_ES' => "%d/%m/%Y",
'de_DE' => "%d.%m.%Y", 'fr_FR' => "%d/%m/%Y",
'pt_BR' => "%d/%m/%Y" );
 
$g_locales_timestamp_format = array(
'en_GB' => "%d/%m/%Y %H:%M:%S",
'it_IT' => "%d/%m/%Y %H:%M:%S",
'es_AR' => "%d/%m/%Y %H:%M:%S",
'es_ES' => "%d/%m/%Y %H:%M:%S",
'de_DE' => "%d.%m.%Y %H:%M:%S",
'fr_FR' => "%d/%m/%Y %H:%M:%S",
'pt_BR' => "%d/%m/%Y %H:%M:%S", );
 
***************************************************************************************************
 
 
如果在上述数组中没有找到匹配的本地化格式,以下配置参数将被使用:$g_date_format 和 $g_timestamp_format
 
例如:
 
$g_date_format ="%d/%m/%Y";
$g_timestamp_format = "%d/%m/%Y %H:%M:%S";
 
 
 

从需求生成测试用例
在创建需求SRS之后,可以选择为每个测试需求创建测试用例(部件和分类也同时被创建)
 
使用配置参数:$g_reg_cfg,你可以配置:
 
创建的部件的名字:$g_req_cfg->default_component_name="Component Created by Requirement - Auto";
部件的范围:$g_req_cfg->scope_for_component="Component/Category/Test Cases generated from Requirements";
创建的分类的名字:$g_req_cfg->default_category_name="TODO";
分类的目标描述:$g_req_cfg->objective_for_category="Category/Test Cases generated from Requirements";
分类的名字可以作如下配置:
 
$g_req_cfg->use_req_spec_as_category_name=TRUE;
将需求名称做为分类名称
$g_req_cfg->use_req_spec_as_category_name=FALSE;
那么$g_req_cfg->default_category_name将做为分类的名称
使用自己的Smarty模板(GUI定义)
使用自定义模板,要用到以下参数:$g_tpl
 
$g_tpl['tcView']
 
$g_tpl['tcSearchView']
 
$g_tpl['tcEdit']
 
$g_tpl['tcNew']
 
$g_tpl['execSetResults']
 
允许创建新的模板,而且新的模板采用不同于原始TestLink模板的名字,以避免在下次升级过程中被覆盖
 
注意:不是所有的TestLink页面都可以进行这样的配置
 
标准配置如下:
 
$g_tpl['tcView'] = "tcView.tpl";
$g_tpl['tcSearchView'] = "tcSearchView.tpl";
$g_tpl['tcEdit'] = "tcEdit.tpl";
$g_tpl['tcNew'] = "tcNew.tpl";
$g_tpl['execSetResults'] = "execSetResults.tpl";
 
FAQ
 
以下是常见问题,更多问题请查看TestLink的论坛
问1:我从老版本升级后,不能登录
 答:你的原始数据库版本不支持不同字符集。从1.6版起,缺省的字符集是UTF-8。请在config.inc.php文件中置DB_SUPPORTS_UTF8=FALSE。
 
问2:登录页面显示Smarty error
 答:Linux/unix 用户: 确认当前用户是否有临时目录的存取权限。缺省临时目录:<testlink_root>/gui/template_c/
 
***********************************************************
 
2007-12-7
 
修改首页功能是在 gui\templates\login.tpl
下面是注册新用户
{* BUGID 695 *}
 {if $g_user_self_signup eq true}
  <a href="firstLogin.php">{lang_get s='new_user_q'}</a><br />
 {/if}
 
链接testlink官网
{include file="inc_copyrightnotice.tpl"}
 
 
 

// image for main menu item bullet (just filename)
$g_main_menu_item_bullet_img='arrow_org.gif';
//$g_main_menu_item_bullet_img='slide_gripper.gif';
下面是是否让每个产品有自己的颜色
// 'background'  -> standard behaviour for 1.6.x you can have a different
//                  background colour for every test project.
//
// 'none'        -> new behaviour no background color change
//
define('TL_TESTPROJECT_COLORING','background');
//define('TL_TESTPROJECT_COLORING','none');
 
 
 
下面是关于导出doc文件内容一些标识
// ----------------------------------------------------------------------------
/** [GENERATED DOCUMENTATION] */
// Constants used in printed documents.
define('TL_DOC_BASIC_CSS', TL_THEME_CSS_DIR . 'tl_doc_basic.css');
 
// Leave them empty if you would not to use.
define('TL_DOC_COMPANY', "Testlink Development Team [configure using TL_DOC_COMPANY]");
define('TL_DOC_COMPANY_LOGO',
       '<img alt="TestLink logo" title="configure using TL_DOC_COMPANY_LOGO" src="%BASE_HREF%' .
             TL_THEME_IMG_DIR . '/company_logo.png" />');
define('TL_DOC_COPYRIGHT', 'copyright - Testlink Development Team [configure using TL_DOC_COPYRIGHT]');
define('TL_DOC_CONFIDENT', 'this document is not confidential [configure using TL_DOC_CONFIDENT]');
 
 
 
上传文件是否压缩,压缩类型
/**
 * compression used within the repository
 * TL_REPOSITORY_COMPRESSIONTYPE_NONE => no compression
 * TL_REPOSITORY_COMPRESSIONTYPE_GZIP => gzip compression
 */
//$g_repositoryCompressionType = TL_REPOSITORY_COMPRESSIONTYPE_NONE;
$g_repositoryCompressionType = TL_REPOSITORY_COMPRESSIONTYPE_GZIP;
 

third_party\fckeditor\fckconfig.js  文本框菜单选项
 
/* 20070212 - Test Link configuration                                                  */
FCKConfig.ToolbarSets["TL_Medium"] = [
 ['Cut','Copy','Paste','Find','Replace','SelectAll','Link','Unlink','Anchor','Bold','Italic','Underline','OrderedList','UnorderedList','-','JustifyLeft','Image','Table','Rule'],
 '/',
 ['FontName','FontSize','TextColor','BGColor']
] ;
 
FCKConfig.ToolbarSets["TL_Medium_2"] = [
 ['Cut','Copy','Paste','Find','Replace','Link','Unlink','Bold','Italic','Underline','OrderedList','UnorderedList','-','Image','Table'],
 '/',
 ['FontName','FontSize','TextColor','BGColor']
] ;
/* ----------------------------------------------------------------------------------- */
全部功能
FCKConfig.ToolbarSets["TL_Medium_2"] = [  
  ['Source','DocProps','-','Save','NewPage','Preview','-','Templates'],  
  ['Cut','Copy','Paste','PasteText','PasteWord','-','Print','SpellCheck'],  
  ['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],  
  ['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],  
  ['OrderedList','UnorderedList','-','Outdent','Indent'],  
  ['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],  
  ['Link','Unlink','Anchor'],  
  ['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak','UniversalKey'],  
  ['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],  
  '/',  
  ['Style','FontFormat','FontName','FontSize'],  
  ['TextColor','BGColor'],  
  ['About']  
  ]   ;  
/* ----------------------------------------------------------------------------------- */
默认模版和最简模版
FCKConfig.ToolbarSets["Default"] = [
 ['Source','DocProps','-','Save','NewPage','Preview','-','Templates'],
 ['Cut','Copy','Paste','PasteText','PasteWord','-','Print','SpellCheck'],
 ['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
 ['OrderedList','UnorderedList','-','Outdent','Indent'],
 ['TextColor','BGColor'],
 ['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],
 ['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
 ['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
 ['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak'],
 ['Link','Unlink','Anchor'],
 ['Style','FontFormat','FontName','FontSize'],
  ['FitWindow','-','About']
] ;
 
FCKConfig.ToolbarSets["Basic"] = [
 ['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink','-','About']
] ;
 

上传文件使用的语言 文件同上 fckconfig.js
// The following value defines which File Browser connector and Quick Upload
// "uploader" to use. It is valid for the default implementaion and it is here
// just to make this configuration file cleaner.
// It is not possible to change this value using an external file or even
// inline when creating the editor instance. In that cases you must set the
// values of LinkBrowserURL, ImageBrowserURL and so on.
// Custom implementations should just ignore it.
var _FileBrowserLanguage = 'php' ; // asp | aspx | cfm | lasso | perl | php | py
var _QuickUploadLanguage = 'php' ; // asp | aspx | cfm | lasso | php
 
 
 
在config.inc.php下设置 文本框菜单类型 TL_Medium  TL_Medium_2(默认)
/** fckeditor Toolbar
 * modify which icons will be available in html edit pages
 * refer to fckeditor configuration file
 **/
$g_fckeditor_toolbar = "TL_Medium";
自定义字体
FCKConfig.FontNames  = '宋体;黑体;隶书;楷体_GB2312;Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;
字体大小
FCKConfig.FontSizes  = '1/xx-small;2/x-small;3/small;4/medium;5/large;6/x-large;7/xx-large' ;
 

third_party\fckeditor\editor\filemanager\browser\default\connectors\php 下config.php开启上传功能
// SECURITY: You must explicitelly enable this "connector". (Set it to "true").
$Config['Enabled'] = true ; //开启
以下地址必须指向同一个目录
// Path to user files relative to the document root.
$Config['UserFilesPath'] = 'http://192.168.70.252/imtmp' ; //网址 二级目录
 
// Fill the following value it you prefer to specify the absolute path for the
// user files directory. Usefull if you are using a virtual directory, symbolic
// link or alias. Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'.
// Attention: The above 'UserFilesPath' must point to the same directory.
$Config['UserFilesAbsolutePath'] = 'C:\\www\\imtmp\\' ; 服务器路径
 

strings.txt 文件少几个翻译.1.7中没有需要覆盖
// gui/templates/inc_update.tpl
$TLS_info_failed_db_upd ="更新数据库失败!";
$TLS_info_failed_db_upd_details ="更新数据库失败!-- 详细信息:";
$TLS_invalid_query ="无效的查询";
$TLS_warning = "警告!!";
$TLS_was_success =" 已成功 ";
$TLS_Build = "构建";
$TLS_Keyword = "关键字";
$TLS_Priority = "优先级";
$TLS_Product = "产品";
$TLS_Requirement = "需求";
$TLS_Requirements = "需求";
$TLS_testcase = "测试用例";
$TLS_TestPlan = "测试计划";
$TLS_add = "增加";
$TLS_assigned = "被指派";
$TLS_delete = "删除";
$TLS_item = "项目";
$TLS_update = "更新";
$TLS_updated = "更新";
$TLS_user = "用户";
 
 
 
 
 
配置
 
配置文件
<testlink installation directory>/config.inc.php - 主要的配置文件,后面会做详细介绍
 
<testlink installation directory>/config_db.inc.php - 包含访问数据库的所有配置参数。这个文件在安装或升级过程中产生。通常不必做手工修改
 
<testlink installation directory>/cfg/<bug_tracking_system>.cfg.php
/cfg/bugzilla.cfg.php
/cfg/mantis.cfg.php
/cfg/jira.cfg.php
  包含访问bugzilla、mantis或者jira等缺陷跟踪系统的配置参数。如果想从TestLink直接访问这些系统,需要手工修改这些文件,另外这个功能需要在config.inc.php文件中修改一个配置参数。
 

必须修改的参数
DB_SUPPORTS_UTF8
MySQL4.1以前的版本不支持utf8,因此所有的页面使用ISO-8859-1字符集而数据则以latin1字符集存入数据库,令DB_SUPPORTS_UTF8 = FALSE;
MySQL4.1及以后的版本,令DB_SUPPORTS_UTF8 = TRUE,使全部页面支持UTF-8而数据以utf8字符集存入数据库。
 

可能需要修改的参数
TL_LOG_LEVEL_DEFAULT
日志记录的缺省级别,日志级别有(NONE、ERROR、INFO、DEBUG)。DEBUG级别只在开发或者与bug系统集成时使用
 
TL_LOG_PATH
日志文件的文件名和路径
 
MAIN_PAGE_METRICS_ENABLED
这个参数控制矩阵表格是否显示在主页上,允许"TURE"和"FALSE"两个值
 
TL_INTERFACE_BUGS
设置testlink和缺陷跟踪系统的接口。允许的值为:"NO"、"BUGZILLA"、"MANTIS"
与BUGZILLA的接口配置参见cfg/bugzilla.cfg.php,支持0.19.1
与MANTIS的接口配置参见cfg/mantis.cfg.php,支持1.0.0.a3
 
TL_TREE_KIND
这个参数用于配置testlink所使用的树形菜单,允许的值为"LAYERSMENU"、"JTREE"、"DTREE"
LAYERSMENU 是缺省值;在这里,JTREE的性能最好;其他的两种树形菜单,可以记住上一次的位置。
 
TL_IMPORT_LIMIT
最大可以上传的文件的大小,单位是bytes。缺省值是200000。如果需要上传一个更大的文件,你可以加大这个值。另外还有一个参数:TL_IMPORT_ROW_MAX,用户规定导出文件一行最长可以有多长字符,10000字符已经足够了。
 
$g_fckeditor_toolbar
定义fckeditor工具条,你可以修改其内容。这个部件的更详细的信息参见fckeditor的主页(http://www.fckeditor.net/
 
TL_TPL_CHARSET
中文用户只需要设置:define('TL_TPL_CHARSET','gb2312');这样就定义了正确的html字符集。其他的语言可以不必修改这个参数
 
TL_DEFAULT_LOCALE
置缺省语言,必须是$g_locales的一个值。缺省值是en_GB。
 
TL_COMPANY,TL_DOC_COPYRIGHT,TL_DOC_CONFIDENT
用于文档抬头,如果不用写抬头,就置这些参数为空。
 
自定义参数
 
级联样式表
可以编写你自己的级联样式表改变TestLink的外观。
你必须修改以下定义:
 
define('TL_LOGIN_CSS','gui/css/tl_login.css'); - 登录、登出的CSS文件
 
define('TL_TESTLINK_CSS','gui/css/testlink.css'); - 主页的CSS文件
 
define('TL_DOC_BASIC_CSS','gui/css/tl_doc_basic.css'); - 用于测试报告
 
重要:CSS文件的路径是相对于<TestLink的安装目录>的路径,是相对路径
 
如果要使用自己的CSS文件,建议进行如下操作:
 
1. 在gui目录下创建一个新的目录,例如 "gui/css/my_css/"
2. 复制testlink原文件到新的目录
3. 按你的想法修改它们
4. 编辑config.inc.php文件:
   // Original configuration
   //define('TL_LOGIN_CSS','gui/css/tl_login.css'); 
   //define('TL_TESTLINK_CSS','gui/css/testlink.css');
   //define('TL_DOC_BASIC_CSS','gui/css/tl_doc_basic.css');
     define('TL_LOGIN_CSS','gui/css/my_css/tl_login_acqua.css');
     define('TL_TESTLINK_CSS','gui/css/my_css/testlink_acqua.css');
     define('TL_DOC_BASIC_CSS','gui/css/my_css/tl_doc_basic.css');
 
 
 
当产品、部件、分类、测试用例重名时的处理
 
 
当从一个已经复制一个产品、部件、分类、测试用例时,经常会发生重名的情况。
你可以配置如何处理复制:
如果你设置$g_check_names_for_duplicates=TRUE,那么系统就会进行以下的检查
 
  1. 产品名是否唯一
  2. 产品下的部件名是否唯一
  3. 部件下的分类名是否唯一
  4. 分类下的测试用例名是否唯一
 
一旦置$g_check_names_for_duplicates=TRUE,你可以配置如果进行操作,如果发现重名的情况,就使用$g_action_on_duplicate_name,选项如下:
 
'allow_repeat':允许重名(可以和1.0.4、1.5.x兼容)
'generate_new':生成新名称,将"$g_prefix_name_for_copy"的值和原名合并,成为一个新名字
'block':返回一个错误
 
例如:
 
$g_action_on_duplicate_name='allow_repeat';
$g_prefix_name_for_copy= strftime("%Y%m%d-%H:%M:%S", time());
 
允许重复,并将当前时间以(年月日-时分秒)的格式做为原来的名字的前缀。
 
测试计划和产品的关联
从1.6版开始,当创建一个测试计划(Test Plan)时,缺省情况下测试计划会和当前所选择的产品相关联。这意味着你可以以产品为关键字过滤测试计划(Test Plan)。在1.6版本之前,Test Plan没有和指定的产品相关联,当从1.5.x升级到1.6时,安装程序不能将测试计划和产品相关联从而将测试计划的product ID项置为0。这样做将导致老的测试计划将不能被看到。要解决这个问题,必须添加以下参数:
 
$g_show_tp_without_prodid=TRUE;
 
你也可以通过在数据库中手工关联,以便使用以前的数据。
 
通过产品过滤测试计划
使用以下参数:
 
$g_ui_show_check_filter_tp_by_product
 
你可以:
 
允许用户通过界面来使能测试计划过滤功能。$g_ui_show_check_filter_tp_by_product = TRUE时,在测试计划之前显示了一个复选框。
$g_ui_show_check_filter_tp_by_product = FALSE时。强制测试计划的过滤,并且用户不能修改
 
关键字管理
如果不想为同一个产品创建相同的关键字:
 
$g_allow_duplicate_keywords=FALSE;
 
日期和时间本地化
设置日期和时间的显示方式。使用两个关联的数组进行配置:$g_locales_date_format 和 $g_locales_timestamp_format.
文件在cfg\const.inc.php里修改
 
$g_locales_date_format = array(
'en_GB' => "%d/%m/%Y", 'it_IT' => "%d/%m/%Y",
'es_AR' => "%d/%m/%Y", 'es_ES' => "%d/%m/%Y",
'de_DE' => "%d.%m.%Y", 'fr_FR' => "%d/%m/%Y",
'pt_BR' => "%d/%m/%Y" );
 
$g_locales_timestamp_format = array(
'en_GB' => "%d/%m/%Y %H:%M:%S",
'it_IT' => "%d/%m/%Y %H:%M:%S",
'es_AR' => "%d/%m/%Y %H:%M:%S",
'es_ES' => "%d/%m/%Y %H:%M:%S",
'de_DE' => "%d.%m.%Y %H:%M:%S",
'fr_FR' => "%d/%m/%Y %H:%M:%S",
'pt_BR' => "%d/%m/%Y %H:%M:%S", );
 
 
如果在上述数组中没有找到匹配的本地化格式,以下配置参数将被使用:$g_date_format 和 $g_timestamp_format
 
例如:
 
$g_date_format ="%d/%m/%Y";
$g_timestamp_format = "%d/%m/%Y %H:%M:%S";
 
从需求生成测试用例
在创建需求SRS之后,可以选择为每个测试需求创建测试用例(部件和分类也同时被创建)
 
使用配置参数:$g_reg_cfg,你可以配置:
 
创建的部件的名字:$g_req_cfg->default_component_name="Component Created by Requirement - Auto";
部件的范围:$g_req_cfg->scope_for_component="Component/Category/Test Cases generated from Requirements";
创建的分类的名字:$g_req_cfg->default_category_name="TODO";
分类的目标描述:$g_req_cfg->objective_for_category="Category/Test Cases generated from Requirements";
分类的名字可以作如下配置:
 
$g_req_cfg->use_req_spec_as_category_name=TRUE;
将需求名称做为分类名称
$g_req_cfg->use_req_spec_as_category_name=FALSE;
那么$g_req_cfg->default_category_name将做为分类的名称
使用自己的Smarty模板(GUI定义)
使用自定义模板,要用到以下参数:$g_tpl
 
$g_tpl['tcView']
 
$g_tpl['tcSearchView']
 
$g_tpl['tcEdit']
 
$g_tpl['tcNew']
 
$g_tpl['execSetResults']
 
允许创建新的模板,而且新的模板采用不同于原始TestLink模板的名字,以避免在下次升级过程中被覆盖
 
注意:不是所有的TestLink页面都可以进行这样的配置
 
标准配置如下:
 
$g_tpl['tcView'] = "tcView.tpl";
$g_tpl['tcSearchView'] = "tcSearchView.tpl";
$g_tpl['tcEdit'] = "tcEdit.tpl";
$g_tpl['tcNew'] = "tcNew.tpl";
$g_tpl['execSetResults'] = "execSetResults.tpl";
 

显示人员真实姓名和名字和姓的顺序
config.inc.php
// Display name and surename in all user lists
// $g_show_realname=TRUE; -> use the function format_username()
//                           to display user identification
//                           using $g_username_format
$g_show_realname = TRUE;//FALSE
 
// used by function format_username()
// example: user ux555, real name= John Cook
// '%first% %last%'          -> John Cook
// '%last%, %first%'          -> John Cook
// '%first% %last% %login%'    -> John Cook [ux555]
$g_username_format = '%last%%first%';
 
设定显示用户真实名字和顺序
$g_show_realname = TRUE;//FALSE
 
// used by function format_username()
// example: user ux555, real name= John Cook
// '%first% %last%'          -> John Cook
// '%last%, %first%'          -> John Cook
// '%first% %last% %login%'    -> John Cook [ux555]
$g_username_format = '%last%%first%  [%login%]';
 
上传图片文件夹路径设置
\testlink\third_party\fckeditor\editor\filemanager\browser\default\connectors\php\config.php
// Path to user files relative to the document root.
$Config['UserFilesPath'] = '/testlink/imtmp/' ;
 
// Fill the following value it you prefer to specify the absolute path for the
// user files directory. Usefull if you are using a virtual directory, symbolic
// link or alias. Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'.
// Attention: The above 'UserFilesPath' must point to the same directory.
$Config['UserFilesAbsolutePath'] = 'C:\\www\\testlink\\imtmp\\' ;
 
 
 
修改testlink角色英文名称为中文在数据库中 roles表中
 
 
 

读取mantis bug摘要乱码 关闭摘要显示 \lib\bugtracking\int_mantis.php
 

 /**if ($result)
  {
   $summary = $this->m_dbConnection->fetch_array($result);
 
   // 20070302 - BUGID - on MS-SQL fetch_array() does not returns numeric indexes, then
   //                    only choice is accessing my field name (IMHO better)
   if ($summary)
    $summary = $summary['summary'];
   else
    $summary = null;
  }
  return $summary;
  **/
  
  注释此行
 

chenxu
2008-10-20