OR? What?

What do I need?

It's a good question.

Life push you too hard for you to think?

you'd better slow down...

Do you think the time of doing IMPORTANT thing rather than emergency gone with the wind?

Never!!

Every time you look back, really.

you will have something...

NEW

...............

[+/-] Read More...

Try this out!!

| 0 评论

[+/-] Read More...

不能忍了,D80+18-200VR 到了这个地步!!

| 0 评论

exchange 

D80 18-200

18-200gn

D80gn

 

简单数学计算得到。瑞典比国内便宜个800块钱不成问题。。。

恩?怎么还便宜几百?真的不能忍了!!!同志们。。怎么办?

[+/-] Read More...

微软发飙,开始大力打击盗版,WGA,OGA其上。如何应对?

| 0 评论

微软中国公司相关负责人告诉新浪科技,微软在正版化方面一直坚持3E策略,即Education(教育)、Engineering(技术)、Enforcement(执法)。

看看微软是不是要动真格的了。

网友的反应包括:

  • 支持的

    • 肯定被砍死了,别理他们。
  • 中立的(觉得事不关己)

    • 自己用vista,或者Linux。。。WPS。。。也不理他们。
    • 用OEM正版的。Home版的。
    • 有钱人。。。
  • 反对的(当然是最多的人)

    1. 人群
      • 广大穷苦人民,学生
      • 虽然白领,但是还要买车买房,没钱买系统啊
      • 就算有钱也不买,微软太欺负人了
      • 。。。
    2. 预计对策
      • 躲避策略
        1. 关闭自动更新,反正微软也不对XP进行支持了。即使要更新,用360等其他软件选择性的更新即可。
        2. 改用Linux或其他操作系统,很多人视此为linux的机会啊。Ubuntu加油,Centos加油!
        3. 用该死的Vista。虽然不好用,有些更是因为跑不动。所以说该死。。。
      • 强硬派
        1. 妈的,微软在欧洲被反垄断罚了那么多钱,中国为什么不行?1999元的正版有价格歧视。我们应该那其法律武器,整死微软。 为什么美国金融危机的损失要拿中国人民开刀。。。强烈反对,血战到底。。。
        2. 有人用一个月工资打赌,不出一个月,破解必出!!相信中国破解软件工程师的能力!!
        3. 等“瘟到死”降价到百元,我们就用正版。。。!!!
        4. 每小时黑屏一次挺好,保护视力,预防近视。一黑屏就远眺,多爽,省的自己去找软件了。
    3. 相关链接:

本文不代表个人观点,材料搜集自网上。希望微软不要找我麻烦。

[+/-] Read More...

Principles of Software Testing[ZZ]

| 0 评论

original article: http://www.the-software-experts.de/e_dta-sw-test-principles.htm

 

What is not Software Testing?

  • Test is not debugging. Debugging has the goal to remove errors. The existence and the approximate location of the error are known. Debugging is not documented. There is no specification and there will be no record (log) or report. Debugging is the result of testing but never a substitution for it.
  • Test can never find 100% of the included errors. There will be always a rest of remaining errors which can not be found. Each kind of test will find a different kind of errors.
  • Test has the goal to find errors and not their reasons. Therefore the activity of testing will not include any bug fixing or implementation of functionality. The result of testing is a test report. A tester must not modify the code he is testing, by no means! This has to be done by the developer based on the test report he receives from the tester.

What is Software Testing?

  • Test is a formal activity. It involves a strategy and a systematic approach. The different stages of tests supplement each other. Tests are always specified and recorded.
  • Test is a planned activity. The workflow and the expected results are specified. Therefore the duration of the activities can be estimated. The point in time where tests are executed is defined.
  • Test is the formal proof of software quality.

Overview of Test Methods

Static tests
The software is not executed but analyzed offline. In this category would be code inspections (e.g. Fagan inspections), Lint checks, cross reference checks, etc.
Dynamic tests
This requires the execution of the software or parts of the software (using stubs). It can be executed in the target system, an emulator or simulator. Within the dynamic tests the state of the art distinguishes between structural and functional tests.
Structural tests
These are so called "white-box tests" because they are performed with the knowledge of the source code details. Input interfaces are stimulated with the aim to run through certain predefined branches or paths in the software. The software is stressed with critical values at the boundaries of the input values or even with illegal input values. The behavior of the output interface is recorded and compared with the expected (predefined) values.
Functional tests
These are the so called "black-box" tests. The software is regarded as a unit with unknown content. Inputs are stimulated and the values at the output results are recorded and compared to the expected and specified values.

 

Test by progressive Stages

The various tests are able to find different kinds of errors. Therefore it is not enough to rely on one kind of test and completely neglect the other. E.g. white-box tests will be able to find coding errors. To detect the same coding error in the system test is very difficult. The system malfunction which may result from the coding error will not necessarily allow conclusions about the location of the coding error. Test therefore should be progressive and supplement each other in stages in order to find each kind of error with the appropriate method.
Module test
A module is the smallest compilable unit of source code. Often it is too small to allow functional tests (black-box tests). However it is the ideal candidate for white-box tests. These have to be first of all static tests (e.g. Lint and inspections) followed by dynamic tests to check boundaries, branches and paths. This will usually require the employment of stubs and special test tools.
Component test
This is the black-box test of modules or groups of modules which represent certain functionality. There are no rules about what can be called a component. It is just what the tester defined to be a component, however it should make sense and be a testable unit. Components can be step by step integrated to bigger components and tested as such.
Integration test
The software is step by step completed and tested by tests covering a collaboration of modules or classes. The integration depends on the kind of system. E.g. the steps could be to run the operating system first and gradually add one component after the other and check if the black-box tests still run (the test cases of course will increase with every added component). The integration is still done in the laboratory. It may be done using simulators or emulators. Input signals may be stimulated.
System test
This is a black-box test of the complete software in the target system. The environmental conditions have to be realistic (complete original hardware in the destination environment).

Which Test finds which Error?

Possible error

Can be best found by

Example

Syntax errors

Compiler, Lint

Missing semicolons, Values defined but not initalized or used, order of evaluation disregarded.

Data errors

Software inspection, module tests

Overflow of variables at calculation, usage of inappropriate data types, values not initialized, values loaded with wrong data or loaded at a wrong point in time, lifetime of pointers.

Algorithm and logical errors

Software inspection, module tests

Wrong program flow, use of wrong formulas and calculations.

Interface errors

Software inspection, module tests, component tests.

Overlapping ranges, range violation (min. and max. values not observed or limited), unexpected inputs, wrong sequence of input parameters.

Operating system errors, architecture and design errors

Design inspection, integration tests

Disturbances by OS interruptions or hardware interrupts, timing problems, lifetime and duration problems.

Integration errors

Integration tests, system tests

Resource problems (runtime, stack, registers, memory, etc.)

System errors

System tests

Wrong system behaviour, specification errors

[+/-] Read More...

学习使用LaTeX【ZZ】

| 0 评论

zz from http://bbs.ctex.org/forums/index.php?showtopic=15314
[整理的关于使用LaTeX的资料,内容来源:aloft编[ctex-faq]]

1 安装CTEX中文套件

1.1 初始安装
下载ctex中文套件(www.ctex.org).
安装ctex中文套件,自定义安装到D盘.
升级ghostscript.
升级gsview,在options->easy configure下选择升级的ghostscript.
升级winedt,直接覆盖安装.
MiKTEX使用升级向导升级.

1.2 升级添加宏包
已编译的,有.sty或.cls文件的,只需把文件放在localtexmf\tex\LaTeX\下的某个目录下,然后再刷新系统的文件名数据库就可以使用了.teTeX和fpTeX使用texhash命令.
或者把这些宏包和TEX源文件放在同一目录下,不用刷新文件名数据库,但只有同一个目录下的文件可以使用这些宏包.
如果使用的是宏包的源文件.先读readme文件,对.ins文件运行LaTeX命令生成.sty文件,对.dtx文件运行LaTeX命令生成帮助文档.

2 软件配置

2.1 winedt

2.1.1 缺省定义gsview工具按钮有可能无法使用.需要在注册表更改psfile下面的shell->open->command键值.
2.1.2 运行WinEdt目录下的宏可以添加metapost工具.
2.1.3 右键点击WinEdt状态栏,确认show custom info a已选取.点击对应的状态栏可以激活--src选项,这个是使用dvi search的必要条件.

3 新手入门

3.1 参考资料
[lshort中文版],[ctex-faq],薛定宇著[LaTeX科学文件处理软件入门].
清泉编制文档模板.

3.2 测试LaTeX

3.2.1 英文例子
\documentclass{article}
\begin{document}
This is a test file.
\end{document}
这个例子需要保存为.tex后缀的文件,然后用LaTeX编译,生成的DVI文件可以用DVI浏览器进行查看.
或者用dvips转换成PostScript文件.假设文件名是test.ctx.生成PostScript 文件的完整编译过程是:
LaTeX test
dvips test

3.3 编写TEX文档的编辑器
windows下使用winedt,或者是UltraEdit,Editplus.
linux下使用vi,Emacs.

4 中文处理

4.1 CJK还是CCT
推荐使用CJK处理中文.
CJK比CCT的优越之处有以下几点:
1. 字体定义采用LaTeX NFSS标准,生成的DVI文件不必像CCT那样需要用patchdvi处理后才能预览和打印.而且一般GB编码的文件也不必进行预处理就可直接用LaTeX命令进行编译.
2. 可使用多种TrueType字体和Type1字体,生成的PDF文件更清楚,漂亮.
3. 能同时在文章中使用多种编码的文字,如中文简体繁体日文韩文等.
当然,CCT在一些细节上,如字体可用中文字号,字距,段首缩进等更符合中文的习惯.而CJK就没有针对中文习惯指定特殊的排版标准.

4.2 CJK的例子
\documentclass{article}
\usepackage{CJK}
\begin{document}
\begin{CJK*}{GBK}{kai}
这是中文楷体字。
\end{CJK*}
\end{document}

4.3 CJK和CJK*
不建议使用CJK模式.
CJK*模式自动忽略中文字符间的所有空格.加空格的方法是在空格前面加上\ 字符.实际上CJK*模式忽略中文字符后面的空格,因此中文后面如果接着英文,必须加上保护的空格\ 或者~ 符号,否则可能造成断行错误.

4.4 中英文混排时正确分行
首先,英文标点符号后要留空格,这是英文的习惯,否则TEX无法断句.
其次,要用空格隔开中英文字符,TEX才能正确分行.
CJK宏包重新定义了符号~的意义.~的原始定义是不可断行的空格,CJK将其重定义成一个比较合适的弹性距离,大约相当于四分之一个汉字宽度,用于分隔中英文字符.我们通过使用命令
\CJKtilde
来实现~的重定义.如果要恢复原始定义,可以用命令
\standardtilde
注意:在CJK*模式下中文字符后面的空格会被忽略,因此中文字符后面必须加上保护的空格\ 或者~符号来隔开英文字符.

4.5 生成支持中文拷贝粘贴的PDF文件
生成可以拷贝粘贴中文的PDF文件目前只有dvipdfmx(原名dvipdfm-cjk)可以做到,它必须配置成直接使用中文TrueType字库.

4.6 CJK中使用的字库
可以使用矢量字库如Type1或是TrueType字库,也可以使用点阵字库如pk字库.
在CJK中可以使用Type1字库和TrueType字库,都能产生很好效果的输出,但有许多细微的差别,输出结果取决于所用的工具.
1. 使用dvips生成PostScript 文件
dvips可以直接使用Type1字库,生成的PostScript文件中包含了字符的矢量描述,具有很好的缩放效果.
dvips不能直接使用TrueType字库,因此必须通过ttf2pk生成中间的pk字库,这是一种点阵字库,所以生成的PostScript文件在效果较差.
2. 使用dvipdfm生成PDF文件和dvips类似,可以直接使用Type1字库或者通过ttf2pk间接使用TrueType字库.
3. 使用pdfLaTeX生成PDF文件可以直接使用两种字库,因此都可以产生效果很好的输出.
4. 使用dvipdfmx生成PDF文件可以直接使用两种字库,因此都可以产生效果很好的输出.而且直接使用TrueType字库时生成的PDF文件是唯一能支持对中文内容进行正常拷贝粘贴的.(推荐使用)

5 帮助文档

5.1 宏包文档
TEX系统安装时候带的LaTeX宏包,都可以在TEX 的安装目录下的
texmf\doc\LaTeX
找到

5.2 参考书
LaTeX: A Document Preparation System
LaTeX for Word Processor Users
lshort (The Not So Short Introduction to LaTeX2e)
A Gentle Introduction to TEX
LaTeX2插图指南
LaTeX2e for class and package writers
The TeX Book
LaTeX Manual

5.3 查询LaTeX命令和参数的缺省定义
首先你可以直接搜索相应的LaTeX宏包以及同一目录下的其他文件.如果你有宏包的源文件(.dtx) 的话,搜索源文件会更方便些.而且源文件中会有详细的说明.对于这些源文件,可以直接用LaTeX 编译,产生说明文档.LaTeX宏包的源文件一般放在texmf\source\LaTeX\目录下.
例如LaTeX标准文档类的源文件就是texmf\source\LaTeX\base\classes.dtx
如果这些文件里都找不到定义,则有可能在LaTeX内核中定义.你可以搜索texmf\source\LaTeX\base\目录下的其他.dtx文件,所有的LaTeX内核定义都在那里了.
如果还没有的话,那就可能是TEX 的基本命令或者定义了,查询Donald E. Knuth的The TEXbook,CTEX FTP上可以下载该书的源文件.

5.4 在ctex论坛http://bbs.ctex.org查找资料

6 排版
查阅参考资料.

7 LaTeX辅助工具
使用辅助工具可以方便LaTeX的编写工作.

公式编辑器:
TeXaide
这个是MathType的TeX专用版本.它的使用方法和Word中的公式编辑器一样.
http://www.dessci.com/en/products/texaide/

图形工具:
metagraf
可以生成MetaPost格式图型的制图工具.
http://w3.mecanica.upm.es/metapost/metagraf.php
ImageMagick
多功能图形工具,可以转换图片格式把其他格式转存成eps格式.
http://www.imagemagick.org/

制表工具:
tablas
用图形界面制表,再把表格转换成LaTeX编码.
http://www.informatica.us.es/~calvo/latex.html

[+/-] Read More...

See the series photo of Blue grotto and Get your own Slide show

| 0 评论

 

Picasa Web AlbumsFullscreen

 

想要这个效果? follow me

  1. Open the album you want to display in Picasa Web Album.
  2. Right-click on the button and "Copy shortcut" (?).
    or just open Slideshow, and copy the address of the page.
    e.g. http://picasaweb.google.com/zcambridge/MaltaBlueGrotto#slideshow
  3. Replace http://picasaweb.google.com/zcambridge/MaltaBlueGrotto#slideshow by your copied address in the code below:

  4. Now you can embedded your code in your blog anywhere you want.

There is a more convinent website doing this , but I don't want the advertisment on it. Thus my version is posted here. haha .

enjoy!!

[+/-] Read More...

linux下vnc终于设置好了,总结

| 0 评论

搜集网上资料,整理适合自己情况,主要是为了远程等服务器跑cadence。

 

1. 检查vnc客户端和服务器是否已经安装在你的系统中:
[user@centos ~]$ rpm -q vnc vnc-server
package vnc is not installed
vnc-server-4.0-11

 

2、设置登陆到Gnome/KDE桌面
a.
[root@ics-pc ~]# cat /etc/sysconfig/vncservers
# The VNCSERVERS variable is a list of display:user pairs.
#
# Uncomment the line below to start a VNC server on display :1
# as my 'myusername' (adjust this to your own).  You will also
# need to set a VNC password; run 'man vncpasswd' to see how
# to do that. 
#
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted!  For a secure way of using VNC, see
# <URL:http://www.uk.research.att.com/vnc/sshvnc.html>.
VNCSERVERS="1:username"
VNCSERVERARGS[1]="-geometry 800x600 -alwaysshared -depth 24"
 
注:
1. 红色部分就是被修改或增加的部分
2. -alwaysshared代表允许多用户同时登录 -depth代为色深,参数有8,16,24,32。
3. 我试验了,要想跑cadence用24没问题。 因为cadence只支持8或24.
b.
[root@ics-pc ~]# vi /root/.vnc/xstartup
#!/bin/sh
# Uncomment the following two lines for normal desktop:
 unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
gnome-session & #set starting GNOME desktop
#startkde & #kde desktop
#twm & #Text interface
注:
1. 红色部分就是被修改或增加的部分
2. 普通用户的xstartup在~/.vnc/xstartup.
3. 想用什么样的桌面就怎么配,最后3行里选一个就行。

c.

重启VNC即可。

3、VNC的启动/停止/重启
$ service vncserver start/stop/restart
关闭具体的vncserver命令:
$ vncserver -kill :1
$ vncserver -kill :2
4、设置密码
# vncpasswd
$ vncpasswd
 

5、客户端登陆

  • 用vnc客户端(viewer)登陆:
服务器地址可以是:IP或域名
端口通过以下两种办法查:
# netstat -tlnp |grep vnc
启动服务的时候也会出现如下红色

[centospub@localhost ~]$ vncserver

New 'localhost.localdomain:7 (centospub)' desktop is localhost.localdomain:7

Starting applications specified in /home/centospub/.vnc/xstartup
Log file is /home/centospub/.vnc/localhost.localdomain:7.log

 
这个例子里是7,则用: IP或域名:7  登陆。
 
  • 用浏览器登陆:
服务器地址: 一样
端口:要加个5800到原来的端口上
同样的例子: 用: IP或域名:5807  登陆。
 
6. 其他技巧:

设置vncserver启动变量:
为了使vncserver在每次启动时保持不变的端口号(5801或1)
在/etc/rc.d/rc.local文件中添加命令:
rm -f /tmp/.X11-unix/X*
rm -f /.vnc/*.pid
rm -f /.vnc/*.log
这样,每次启机,系统会先把上次非正常关机时留下的临时文件删除。

附注:

[原创]vnc远程连接linux服务器显示问题

2007-10-12 15:40

今天在服务器上装了 ic5141,配置好环境变量后运行提示:
*ERROR* Failed to find either 24-bit TrueColor or 8-bit PseudoColor Visual .
*WARNING* Failed to find eiher 24-bit TrueColor or 8-bit PseudoColor Visual.


在vnc上设置显示模式示果
之后更改vnc设置文件(/usr/bin/vncserver)中depth参数,

由$depth = 16;改为$depth=24;
运行后正常。

我自己用的并未成功。直到用了文章中2-a的设置才可以跑cadence。

 

Useful Links:

庖丁解牛lagvin 写得心得

这个里边有很多技巧问答。

[+/-] Read More...

Using screen for remote interaction (ZZ)

| 0 评论

Using screen for remote interaction

By Phil Hollenback on August 22, 2006 (8:00:00 AM)

Recently I needed to do some distance education; one of my coworkers wanted me to show him how to do software builds on Linux. The only problem was that I'm on the East Coast and he is on the West. How could I show him the build and install process? After considering some alternatives, we found our solution in GNU Screen.



I considered using the standard Unix utility script to save a log of my typing. script has several problems, not the least of which is the horrible resulting output (script saves everything, including carriage returns and corrections). In addition, this would be completely non-interactive. If my coworker had a question or needed a clarification, we would have to correspond via email afterward. That would be a frustrating experience for both of us.

Another possible solution would be to use VNC. My coworker could connect to my display, and we could alternate control of the mouse and keyboard. That approach seemed like overkill, since what I wanted to demonstrate was purely command-line work. It would also be difficult to generate a log of a VNC session. Finally, technical limitations dictated that the only way he could connect to my machine for the demonstration was over a simple SSH connection, so this dictated a purely command-line solution.

Screen is one of those tools that is hard to explain but pure genius once you see it in operation. The description from its official Web site doesn't help much:

Screen is a full-screen window manager that multiplexes a physical terminal between several processes, typically interactive shells.

Basically, screen allows you to create virtual terminals which are not connected to your actual xterms or console screens. You can then disconnect from a screen session and reconnect from somewhere else while preserving your shell or other running processes. For an introduction to screen, check out this Linux.com article.

This is just the beginning of screen's power and flexibility. You can connect to a session more than once using the -x argument to screen. That means you can for example leave your mail program running in a terminal (under screen) at work and then connect from home to read your mail in the same process. There's no need to disconnect at work, and when you come back in the next morning your mailer will be exactly as you left it, with all your state perfectly preserved.

Screen takes this feature, which is called multi-display mode, to the next level with multi-user mode. In multi-user mode more than one user can access and control a screen session. The problem with this mode is that it's not obvious how to set it up. Here's what I ultimately figured out with the help of some Google searching:

  1. Set the screen binary (/usr/bin/screen) setuid root. By default, screen is installed with the setuid bit turned off, as this is a potential security hole.

  2. The teacher starts screen in a local xterm, for example via screen -S SessionName. The -S switch gives the session a name, which makes multiple screen sessions easier to manage.

  3. The student uses SSH to connect to the teacher's computer.

  4. The teacher then has to allow multiuser access in the screen session via the command Ctrl-a :multiuser on (all screen commands start with the screen escape sequence, Ctrl-a).

  5. Next the teacher grants permission to the student user to access the screen session with Ctrl-a :acladd student where student is the student login ID.

  6. The student can now connect to the teacher's screen session. The syntax to connect to another user's screen session is screen -x username/session.

At this point the teacher and student both have control of the session. Note that there are security implications to this -- the student is operating the session as the teacher and could potentially do something to damage the system. If you don't trust your students then you should probably use a special teacher account and not your normal login account. The teacher can also make the student's session read-only. To do this, use the aclchg screen command to remove write access for the student: Ctrl-a :aclchg student -w "#". The student can then only observe the teacher's actions. Otherwise, the teacher will have to let the student work on the honor system.

While my example centers on one teacher and one student, many users could attach to one session. There could even be multiple teachers and students.

What about communication between teacher and student? Well, we used a telephone, but you could use instant messaging, IRC, or VoIP for asking questions. There is also an message feature in multiuser screen: Ctrl-a :wall message will write a message to all users connected to a screen session. One problem with this is that it uses the terminal status line. In an xterm this is the window titlebar area, which, depending on your window manager, may not be very obvious.

The final ingredient for using screen as a teaching tool is logging. With a log of all the terminal output, my coworker and I would have an exact transcript of what we did in case there were any questions later. As I mentioned earlier, the standard Unix tool script is the obvious answer, but it is a very limited tool and does not produce very readable output. You also can't turn it on and off inside a session if for example you want to run a full-screen tool such as a text editor.

Fortunately screen comes with a comprehensive logging facility that is much more sophisticated than what script can do. Screen's logging can be turned on or off at any time with Ctrl-a H, or you can use the -L switch when starting screen to enable it by default. The log file is written to the current directory under the name screenlog.n, where n is incremented by one for each new log.

The logfile will contain the output of your session with corrections and cursor movements already evaluated and applied. One caveat is that programs that send control sequences to the screen will still confuse the output. One example of this is GNU ls, which by default colorizes output. You should turn this off in your session by using something like the following bash alias:

 alias ls='ls --color=none'  

With that, all the pieces are in place: multiple users can share a screen session for any sort of command-line-based instruction. The teacher can at any time take control of the session by switching all other users to read-only access. Finally, you can turn on the logging facilities in screen to get an accurate and usable log of the entire session (or just portions of the session if you desire).

I found screen to work extremely well for this purpose, and my coworker was also pleased with the results. Some of the options and controls in screen can be hard to figure out because screen is so powerful and flexible. But I plan to use this tool in the future, and I encourage anyone in a similar situation to try it.

[+/-] Read More...

今天日全食

| 0 评论

可惜的是我起床晚了。在瑞典错过了,偏食观看时间。不过现在国内还没开始。希望老爸老妈在西安能看到,接近的全食。。。

2008年8月1日日全食食带图

[+/-] Read More...

symbian S60 3rd 简单破解 的确很简单

| 0 评论

第一步:XX手机:

我已经找不到出处了,但是至少在这里保留完整的引用:

最简单的破解手机19权限教程

前段时间,想装个最高权限的A4输入法,可其它的破解却试了多少次都不行,今天却让我发现一个最简单的手机破解方法,拿来与大家分享!现在可以安装那些高权限的软件了.从此XX你手机权限,全由手机来搞定!不再用电脑来破解或者刷机来担当风险了,手机就能解决!

如下:  解压文件后(下面附件里包括FP1《应该是二版机的吧,我没试过》和PreFP1型,按自己机型选择,我的N73是用PreFP1)把文件夹放在卡上,手机上安装X-plore管理器。步骤:打开X-plore管理器:选择-菜单-工具-设置,把显示隐藏文件、显示ROM磁盘、显示RAM磁盘、显示系统文件/文件夹后面的框框打上勾返回。然后再通过X-plore管理器把卡里面的HelloCarbide.sisx、CapsOff.sisx、CapsOn.sisx三个文件都安装文件装好在卡上,不要退出X-plore管理器!再在应用软件里运行刚才安装好HelloCarbide那个文件,进入-选项-选Menu1,后一路按Yes。再回到X-plore管理器看看,是不是sys和private文件夹都能进入了!再通过X-plore管理器把CProfDriver_SISX.ldd 与 installserver.exe复制到 C:\sys\bin\ 里面即可!退出重启手机!再进入手机安装没有签名的软件,是不是什么软件都能安装了! 现在还要用PC端来破解吗!全由手机来控制了.哈哈哈........记住:CapsOff是开启破解,CapsOn是关闭破解!

里边有几点注意:

  1. FP1,preFP1机型:

    非FP1机型:3250,E60,E70,N80,N92,N91(8G),E61,N71,5500,N93,N73,E50,N75,E61i,E62,N93i,E65
    FP1机型:N77,6290,N76,N95(8G),5700,6110N,6120c,E51,N81,N82,E90

  2. 用x-plore复制文件:
    选menu(目录选项)->edit(编辑)->copy(复制), 用右方向键进入想要进入文件夹而不是用OK建。
    然后menu(目录选项)->file(文件)->select(选择),搞定!!

的确又简单,又强大。

第二步:自己的根证书

但是我想用自己的根证书。怎么办。按照教程:

【OPDA独家首发】纯文字版的根证书制作傻瓜教程,看了就会!(12点有修改更新)

首先要感谢Ttuukk的教程,让我们都用上了自己的根证书,也许还有一部分朋友还没成功,但是相信你在看了这个教程后一定就能成功了。不要怀疑我,因为你不能怀疑自己的智商!
  这个教程就是在Ttuukk那个教程的基础上做的,相当的傻瓜化,以至于有点罗嗦,希望内行的朋友不要笑话我!因为我在一开始准备制作的时候连命令提示符都不知道怎么用,写得这么烦琐也是考虑到让和我一样没有基础的人能够看懂!再就是不希望更多的朋友和我一样在制作根证书上浪费太多的光阴。毕竟时间就是金钱!
  下面开始!
  安装OpenSSL后,先解压openssl.cnf.zip替换X:\OpenSSL\bin\openssl.cnf文件(X为盘符),然后打开命令提示符(可以通过Win+R后输入cmd来开启,也可以通过开始菜单-所有程序-附件-命令提示符来开启)。
  先定位到OpenSSL的安装目录,在命令提示符中输入:cd x:\openssl\bin(X为盘符)
  然后执行3个命令。
  第一个命令生成密匙对:
  openssl genrsa 2048 >selfsigned.key
  第二个命令是给自己颁发安全证书:
  openssl req -new -x509 -nodes -sha1 -days 3650 -key selfsigned.key >selfsigned.cer
  第二个命令完成后会依次要求输入:
  Country Name <2 letter code> [CN]:
  Organization Name <rg, company> []:
  Common Name <eg, YOUR name> []:
  Email Address []:
  其中Common Name我建议最好是输入8个字符(后面再说),Country Name和Organization Name也尽量简单的输入2-3个字符就够了。Email Address直接回车掉。(防止超过字节数,后面会说到)   不想填的地方直接输入" . "(去掉“ ”) ,回车,会比直接回车好,至于为什么,大家自己试试吧。
  第三个命令是生成DER格式文件:
  openssl x509 -in selfsigned.cer -outform DER -out selfsigned.der
  之所以在第二个命令时省去Email Address的输入并要求Country Name和Organization Name简单,是因为生成的der文件大小不能超过912字节数,所以当你生成der文件后可以马上通过十六进制编辑器打开生成的der文件selfsigned.der查看字节数是否超过规定大小。如果超过了则重新来一次,避免后面的麻烦!(PS:切记是der后缀的文件而不是cer后缀的文件。)
  确认无误后将selfsigned.der复制到你的手机上,然后用手机自带的文件管理器运行selfsigned.der,根据提示安装根证书,记住导入时的"栏目",并选择信任区域为"互联网"。导入完成后用文件管理器搜索文件CACerts.dat并将它复制到其他地方然后再复制到电脑上。
  这里又要说几点:
  第一,导入证书用手机自带的管理器,因为个别机型用第三方管理器无法安装证书(至少我用的N73不行)。
  第二,搜索CACerts.dat文件则用第三方管理器来搜索,或是直接到C:\PRIVATE\101f72a6下去复制。(我N73无法用自带的管理器搜索到CACerts.dat这个文件)
  第三,这里的"栏目"名就是之前我建议你在输入Common Name所输入的,所以并不用刻意去记,而且这个栏目名在后面还有用。
  现在,你可以删除你刚导入的证书了,工具-设置-安全性设置-证书管理。删除后你之前复制的CACerts.dat文件还是会在C:\PRIVATE\101f72a6下,但是删除前和删除后CACerts.dat文件的大小会产生变化,所以这里一定要按步骤来,我也不知道会不会有影响,但是只要按步骤来就一定不会错。
  在电脑上用十六进制编辑器打开CACerts.dat,搜索导入证书时的"栏目"名,一直搜索到最后一个,然后你就能看到这样的数值了:
  XX 00 00 00 00 52 XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
  XX表示任意数值。
  在这里出问题的最多了,我就在这里花了不少时间,Ttuukk的教程上要你记录52后的20组数值,也就是所谓的散列值。但是我建议把这总共26组数值都记下来。后面就会用到的。
  再用十六进制文件编辑器另打开swicertstore.dat文件,直接定位到文件尾部,在这里你能看到字串符:SymbianA,SymbianB等,代表栏目为SymbianA的证书,以此类推。
  我们要做的就是替换SymbianA这个栏目。
  首先,直接修改SymbianA这8个字串符,不要超过它的长度,为了能够达到统一,所以我一开始就建议你把栏目名设置成了8个字符。
  然后,在你所改的栏目名后面会有这样的数值:
  00 00 00 00 00 52 XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
  我们将之前记下来的散列值来覆盖它。
  看清楚了,之前的和现在的区别就是第一组数值,它不是XX而是00,千万要记得把它改成XX。
  接下来,替换根证书,由于栏目"SymbianA"是地一个出现的栏目,所以对应第一个根证书存储。
  der证书格式是以30 82 03 XX 30 82开头的,所以我们回到顶步找到第一个出现30 82 03 XX 30 82的位置和第二个出现30 82 03 XX 30 82的位置。将它们之间的内容(包括第一个30 82 03 XX 30 82,不包括第二个30 82 03 XX 30 82)选中,查看大小,der文件对应的大小为这里所查看的大好多小-2字节。(PS:我做了次都是914字节,也就是der文件不能超过912字节,这也就是我为什么在一开始就说明了cer文件中的字节大小不能超过912的原因)
  再用十六进制编辑器打开selfsigned.der,将其全部字节复制,然后覆盖上一步我们选来查看大小的那部分。这里一定要弄对了,只要你的selfsigned.der文件字节不超过912字节那就拿去覆盖那914字节的内容。
  OK了,根证书的制作就到这里了,另存文件为你喜欢的名字然后保存到哪里也不用我说了,还有什么存为只读,XX了权限的朋友都知道的。
  当证书制作成功的时候我明白了,其实并不是Ttuukk的教程写得太简洁,而是我在这方面根本就是个白痴所以无法理解。
  我花了一天一夜时间才能把证书做出来就错在散列值的替换,因为Ttuukk的教程上并没有说要替换XX 00 00 00 00 52中的XX,所以这里再强调一次。
  最后再次感谢Ttuukk为我们提供的方法!本来我也准备做个傻瓜化的图片教程的,但是处于某些因素没做!不过这个纯文字版的傻瓜教程应该够用了。
  我不反对转贴,只是希望能够标明来自OPDA,来自Ttuukk的教程和本人的傻瓜化,呵呵!
  制作过程中所需要用到的东西我也传上来!

其实如果后边自己改dat文件的过程可以通过mstore.v01这个软件完成。感谢作者。。

添加修改工具mstore,只需要散列值就可以生成证书存储。 
ttuukktool

只要生成DER文件后,运行并提供散列值,就可以生成00000001,不需要编辑器修改了。

把生成的selfsigned.der拷贝到mstore.exe同一个文件夹,然后运行软件,输入正确的“散列值”就可以自动生成00000001.dat文件(就是这个是你的根证书喽)。

将00000001.dat保存在XX过得手机的 c:\resource\SwiCertstore\dat\ 里边。

到证书管理里查看有没有自己的证书?呵呵

“证书管理”在 设置--》手机--》常规--》安全设置 里边。

要想不让手机重启后证书失效,需要吧dat文件设成“只读”。

 

第三点:疑问

unsigned软件都给装上了 真纳闷。。??

文件自己找吧。我放个列表好了:

X-plore官方中文版v1.21

有FP1,preFP1两个版本的:

HelloCarbide.sisx

CapsOff.sisx

CapsOn.sisx

CProfDriver_SISX.ldd

installserver.exe

根证书部分:

Win32OpenSSL_Light-0_9_8g.rar

openssl_cnf.zip

swicertstore.dat 

mstore.v01.zip

[+/-] Read More...

手机爆米花 (续)

| 0 评论

前边我说过,手机爆米花及我的试验结果

经过同志们的反馈,各方网上搜寻,加上物理常识。总结一小下。。

说是假的也不对,不过她们肯定是cheat了。

 

大多数说手机爆米花是纯粹胡说:

以下是两个从百度知道上的引用。

引用1:
呵呵!那是蒙人的。里面有机关的.而且上穿的人都说了不保证真实性。其实我现在可以告诉你一个很可行的办法来完成这个过程。那就是利用微波对爆米花进行定向加热就可以了。这只需要一个旧微波炉就可以了。将其磁控管拆下来,用微波束瞄准爆米花就可以了。况且视频中的两个人的表情看起来像是在演戏。

回答者:罂粟的眼泪 - 高级魔法师 六级 6-17 16:44

引用2:

呵呵 网上曾经盛传 俄罗斯科学家为测试手机对大脑的伤害做试验——把鸡蛋放在手机旁边 ,手机长时间通话
结果几个小时后鸡蛋被烤熟了
真的那么可怕吗?
后来……
真相大白 ,原来是那科学家的同事开的一个玩笑
同事因为肚子饿 刚好看到他那有个生鸡蛋 于是就……
过后觉得过意不去,买了个熟鸡蛋又放回去了
你要知道基站的发射功率比你看到的那些手机要大得多(一个基站同时可容纳上千个手机信号,发射距离也远) 如果真的能爆米花 ,中国移动维修基站的不知道要追认多少烈士

回答者:Panther2_A1 - 总监 八级 6-16 17:48

我觉得其实不是不可能,只是条件需要更极端:

  1. 米花可以用都快要爆好的已经加热的差不多的。不管怎么说爆米花都是个量变到质变的过程。我们可以push条件更接近threshold么。。。
  2. CDMA还是GSM或其他RF辐射其实问题不大。
    这要从加热原理来说,尽管微波炉的波段2.45GHz比较适合穿透食物,并且与里边的水或油分子共振
    但是900MHz,1.8/1.9GHz的GSM/GPRS,或者2G+的CDMA,BT,WLAN。。。不全属于微波炉的最佳频段,但是我觉得效果不会差太多。微波炉的优势在于:他有--一个金属共振腔。满足一定尺寸和波长的关系,波导发出的电磁波就能在炉子里转悠。来加热水油分子。而手机天线则需要开放式的传输接受无线电。按照立方反比规律,这个能量损失是很大的。
  3. 再者就是本身功率。
    手机发射功率按规定是不能超过1W的。(好像是美国规定,欧洲更严格点)。而我们的微波炉呢?动辄800W以上吧。
    也许我们有一天拿上几百个手机,放成一个锅一样的形状。里边就真的能爆出米花也说不定。

欢迎补充:

另外,谁知道为什么总是有一个手机是反过来的??

[+/-] Read More...

First Visa EMV dual interface card launched in China

| 0 评论

Friday, 18 July, 2008 (Age: 2 days)

The Industrial and Commercial Bank of China (ICBC), the largest financial institution in the world, is issuing its customers with the countrys first ever Visa EMV payment card allowing both contactless and contact-based payment. Cardholders can pay for purchases quickly and conveniently by simply swiping the Visa payWave card across a contactless POS terminal or alternatively inserting it into the slot of a card reader. The dual interface cards are being issued in partnership with the Asian retail group Parkson in China, whose customers can also use them to collect loyalty points. ICBC and Parkson are planning to issue the Peony Parkson credit card to several tens of thousands of bank and retail customers this year. The Chinese subsidiary of the German technology enterprise Giesecke & Devrient (G&D) has been selected to supply the cards to ICBC.

The chip embedded in the card complies with the EMV standard. The issue of the Peony Parkson card represents an important step towards wide-scale migration of payment cards in China to the international standard for chip-based payment methods. The existing Parkson loyalty program will be expanded, enabling customers to pay and collect points in supermarkets, fast-food restaurants, cinemas, parking lots and gas stations with this card.

Global IDentification: First Visa EMV dual interface card launched in China

[+/-] Read More...

CentOS 5.2 i386 LiveCD 发布

| 0 评论

 

CentOS 开发团队发布了 5.2 i386 LiveCD ,它基于之前发布的 CentOS 5.2 i386 发行版。CentOS 5.2 i386 LiveCD  主要包含了 OpenOffice.org 2.3.0, Firefox 3.0, Pidgin 2.3.1, Scribus 1.3.3.2, K3b 0.12.17, Gimp 2.2.13 等应用软件。不过据了解之前已知的一些Bug在这次发布的 LiveCD中并没有得到及时的修正。比如,SATA 光驱时常不能引导的问题。
关于CentOS:
CentOS Linux 是一个依 GPL 规范,及利用 RedHat Enterprise Linux (RHEL) 的源代码 (source code) 来重新编译 (compile) 的 Linux 版本.CentOS 提供和 RHEL 的 Binary 档案几乎百分之百兼容性,相同的版本 (Release) 和维护 (Maintainence) 更新时间.和 RedHat Enterprise Linux (RHEL) 不同的是,CentOS 依 GPL 的规范,移除了 RedHat 品牌及图片.


下载 CentOS 5.2 i386 LiveCD (697 MB)

来源链接:CentOS 5.2 i386 LiveCD 发布 - Linux宝库 - Powered by SupeSite

[+/-] Read More...

功夫熊猫 kungfu panda 经典台词

| 0 评论

近日,一头可爱的熊猫漂洋过海,凭着一身过人的中国功夫打进中国影坛,深得内地影迷的喜爱!不错,它就是美国动画电影《功夫熊猫》。相信很多的朋友看过之后,都会对里面那只憨态可掬、幽默搞笑,又带有一些中国农民所特有的狡诘的大熊猫留下深刻的印象。而除了影片中华丽的特效和夸张的武术动作外,你是否还记得片中那些经典的对白呢?

1.There are no accidents.

没有意外,一切早已注定。

2.One meets its destiny on the road he takes to avoid it.

往往在逃避命运的路上,却与之不期而遇。

3.Your mind is like this water, my friend, when it is agitated, it becomes difficult to see, but if you allow it to settle, the answer becomes clear.

你的思想就如同水,我的朋友。水波摇曳时,很难看清。不过当它平静下来,答案就清澈见底了。

4.Quit don't quit. Noodles don't noodles.

退出,不退出。做面条,不做面条。

5.There is a saying

Yesterday is history

Tomorrow is a mystery

But today is a gift

That is why it's called the present (the gift)

俗语说,昨天是历史,明天是个谜团!而今天则是上苍的馈赠。那就是为什么今天是present(现在/礼物)。

6.Yes, look at this tree Chivu, I can not make it bloom and suit me, nor make it bear food before it's time.

乌龟:是的,看着这棵树。我不能让树为我开花,也不能让它提前结果。

But there are things we can control, I can control when the fruit will fall... And I can control what time to seed. That is not illusion, Master.

师傅:但有些事情我们可以控制,我可以控制果实何时坠落。我还可以控制在何处播种,那可不是幻觉,大师。

Yes, but no matter what you do, That seed will grow to be a peach tree. You may wish for an Apple or an orange, but you will get a peach.

乌龟:不过无论你做了什么,播下的种子还是会长成桃树。你可能想要苹果或桔子,可你只能得到桃子。

But peache can not defeate Tai Long.

师傅:可桃子不能打败大龙。

Maybe it can if you are willing to guide it, to nuture it, to believe in it.

乌龟:也许它可以的,如果你愿意引导它、滋养它、相信它。

7. I'm sorry things didn't work out. It's just what it's meant to be. Paul, forget everything else, your destiny still awaits. We are Noodle folk, Broth runs deep through our veins.

天不遂人愿,况且这本不是天意。阿宝,忘了其它的事情,你的使命一直都在向你召唤。我们是做面条的,我们血液里流淌着面汤。

8. You cannot leave, real warrior never quits.

你不能走,真正的勇士决不会退却。

9.Why didn't you quit?  You know I was trying to get rid of you, but you stayed.

师傅:你为什么不退出呢?你知道我一直想把你赶走,可你还是留下来了。

Yes, I stayed. I stayed, because every time you threw up brick on the head or said I smelled, it hurts. But it could never hurt more than I did everyday in my life just being me. I stayed, because I thought, If anyone could change me, could make me not me, it was you, the greatest Kong Fu teacher in the whole of China!

阿宝:是啊,我留下来了。我留下来是因为每次你往我头上丢砖头,或说我气味难闻,这很伤我的心。可最伤我心的是,我每天努力练习,却还是现在这个样子。我留下来,因为我以为,如果还有人能改变我,能让我不再是原来的我,那就是你——中国最伟大的功夫师傅!

10. Enough talk!Let's fight!

闲话少说,开打吧!

11. The secret ingredient of my secret ingredient soup is...nothing.

我私家汤秘密食材就是——什么都不加。

12. To make something special, you just have to believe it' s special.

想让它与众不同,你就必须先相信它的与众不同。

[+/-] Read More...

NAS家庭服务器趋势

| 0 评论

近期网络上出现很多有关于中小型应用范围的存储产品NAS存储,比如EMC的存储宝箱,和HP的产品。家用和小型办公等是这类产品的主要进攻区域。

NAS家庭服务器

一个家庭中拥有多台电脑在目前已经不是什么新鲜事了。不过,相信不少用户都面临这样的问题:每台电脑上高达数十甚至上百GB的影音数据让人非常头疼!如果能够将这些 “各自为政”的影音数据整理起来并加以快速共享该多好啊。如果这时家里有一台专用的存储设备,网络上下载的任何视频、音频文件都可以方便地通过这台设备在家中的多台电脑中共享,而且还能在其他电脑关机的状态下,不间断下载网络上的资源,还能方便你在其他地方访问和提取家中的文件数据,那将是多么惬意的事情啊!而这些,正是家庭NAS服务器的专长。

一 家庭NAS存储技术发展简史

在宽带普及、BT共享时代,相信在许多用户的家中都会有一台甚至多台电脑会长时间开着,下载网络上丰富的音视频资源。但能耗过大和不方便管理的问题是我们不得不面对的。于是,有厂商推出了支持BT功能的路由器。虽然从严格意义上来说,这并不属于家庭服务器的范畴,而仅仅是一个支持资源下载,并实现了简单共享功能的网络设备,但它却让网络资源共享走向了傻瓜化操作时代,这正是许多家庭所需要的。但这类产品由于定价较高(通常都在2000元以上),且很多产品没有集成存储介质(不带硬盘,通常需要用户自己去购买USB接口移动硬盘与之连接),所以,并没有形成太大的气候。

随后,厂商们又在BT路由器的基础上推出了支持BT功能及共享功能的网络硬盘,真正实现了脱离PC主机、实现网络连接下载共享的服务,这便是家用级共享存储服务器的雏形。而随着服务器技术的发展和市场的细分,这类产品也有了自己明确的名称——家用NAS产品。

近年来家用NAS应用范围逐渐扩大,开始具有多媒体文件共享、BT下载、媒体服务器、FTP服务器等小型服务器的功能,而且设置相当简单。而传统桌面硬盘容量的提升和大降价,也为这类产品注入了一针兴奋剂。现在,一块配备500GB硬盘的家用NAS产品,价格多在3000元以内,得到了不少高端个人/家庭用户的青睐。

二 家庭NAS服务器可以给我们带来什么?

以前NAS产品主要应用于企业,功能主要是文件共享、数据(远程)备份和网络打印等。而家庭消费级市场中的NAS产品,则多具备多媒体文件共享、媒体服务器功能,同时支持Web网站和FTP服务器的架设,可以说,家用NAS产品就是一台多功能的小型服务器。

1.完善的网络存储功能

家庭NAS产品具备相当完善的网络存储功能,这正是一台家用级服务器所应充当的主要角色。借助NAS,你可以将所有的影音数据网络化,家中的电脑仅需调用NAS上的音乐文件、数码照片和电影文件即可。

为了提高安全性,有的家用NAS产品甚至还可以将文件分类存放,并可以对文件加密,为不同的用户设定不同的访问权限。做到访问的差异化。

同时,大部分的NAS产品都支持多个硬盘的阵列,给存储带来了性能的巨大提升(组建RAID 0阵列)和安全性保障(组建RAID1阵列)。

2.BT下载简单稳定

BT下载是这两年最流行的下载方式,通过P2P共享方式实现大型媒体文件的共享与下载。相信经常下载的玩家都有过整夜开着电脑BT下载的经历,时间长了对PC的稳定、耗电以及室内静音都是挑战。而NAS产品则可以代替PC来进行BT下载,同时分类保存下载文件,再也不会有稳定性、噪音等方面的困扰。同时大多数NAS服务器的BT下载界面方便友好,操作简便,易于上手。由于NAS产品比普通PC功耗要低许多,耗电量也大大降低,对能源节约大有好处。

3.远程访问,方便快捷

目前NAS产品不仅可以让你方便地在局域网内访问它上面的资源,还允许用户通过互联网远程访问它上面的资源。比如你在公司里面同样可以通过互联网,使用远程访问功能来提取家中NAS产品上的数据资源。

相对于设置烦琐的专业服务器,NAS服务器的这些功能的操作也是傻瓜化的。当然,为了实现这些,你需要为路由器开放相应端口。最愉快的是,你还可以远程控制自己家中的NAS产品去进行BT下载,做到“网络在手,天下我有”。

4.特色小功能帮大忙

除了文件存储、BT下载、文件共享和远程访问这些主要的功能之外,现在的家庭NAS产品还提供了一些小功能,比如能够让你时刻监控自己家庭网络的状况,看是否有电脑连接到这台NAS服务器,连接电脑的一些基本信息也可以查看到。还有的NAS有一个液晶屏,可以根据城市设置显示天气预报。除此之外,大部分的NAS产品都具备USB及IEEE 1394接口,方便接驳闪存、移动硬盘等外围存储设备。

三 前景看好,改变消费习惯是成败关键

可以说,家庭NAS产品的发展已经进入了一个比较成熟的阶段,而且,它的功能还在不断完善。很多家电厂商也注意到这一新产品,他们也在思考如何让自己的家电产品具备这种功能,或者能够与这类产品进行“无缝连接”。或许在不久的将来,家庭NAS产品还可以用来录制电视节目,甚至是保存异地电视上播放的视频内容;而用户也可以在电视上播放家庭服务器上的视频内容;或许你的QQ宠物不再需要你养在电脑上,家庭服务器+机器保姆就可以帮你搞定一切。

当然,目前这类家庭NAS产品也面临一个市场的问题,这其中,更多的是消费者的消费习惯问题。不少消费者的确表示面对庞大的影音数据,感到非常烦恼,但是另一方面,他们似乎更习惯去买个刻录机进行数据备份,然后把这些数据“永久地封存起来”,再也不去碰它。做好消费习惯的引导,进行良好的造势并降价,将是家庭NAS产品及相关厂商目前应该解决的主要问题。

原文:NAS家庭服务器趋势 - 计世网服务器

[+/-] Read More...

CVS使用手册

| 0 评论

CVS使用手册

2008-06-06 11:01

CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。工作模式如下:

CVS服务器(文件版本库)
/ | \
(版 本 同 步)
/ | \
开发者1 开发者2 开发者3


作为一般开发人员挑选2,6看就可以了,CVS的管理员则更需要懂的更多一些,最后还简单介绍了一些Windows下的cvs客户端使用,CVS远程用户认证的选择及与BUG跟踪系统等开发环境的集成问题。




  1. CVS环境初始化:CVS环境的搭建 管理员


  2. CVS的日常使用:日常开发中最常用的CVS命令, 开发人员 管理员


  3. CVS的分支开发:项目按照不同进度和目标并发进行 管理员


  4. CVS的用户认证:通过SSH的远程用户认证,安全,简单 管理员


  5. CVSWEB:CVS的WEB访问界面大大提高代码版本比较的效率 管理员


  6. CVS TAG:将$Id$ 加入代码注释中,方便开发过程的跟踪开发人员


  7. CVS vs VSS: CVS和Virsual SourceSafe的比较 开发人员 管理员


  8. WinCVS: 通过SSH认证的WinCVS认证设置


  9. 基于CVSTrac的小组开发环境搭建:通过CVSTrac实现web界面的CVS用户管理,集成的BUG跟踪和WIKI交流


  10. CVS中的用户权限管理:基于系统用户的CVS权限管理和基于CVSROOT/passwd的虚拟用户管理



一个系统20%的功能往往能够满足80%的需求,CVS也不例外,以下是CVS最常用的功能,可能还不到它全部命令选项的20%,作为一般开发人员平时会用cvs update和cvs commit就够了,更多的需求在实际应用过程中自然会出现,不时回头看看相关文档经常有意外的收获。



CVS环境初始化


环境设置:指定CVS库的路径CVSROOT

tcsh

setenv CVSROOT /path/to/cvsroot


bash


CVSROOT=/path/to/cvsroot ; export CVSROOT



后面还提到远程CVS服务器的设置:

CVSROOT=:ext:$USER@test.server.address#port:/path/to/cvsroot CVS_RSH=ssh; export CVSROOT CVS_RSH


初始化:CVS版本库的初始化。


cvs init



一个项目的首次导入

cvs import -m "write some comments here" project_name vendor_tag release_tag


执行后:会将所有源文件及目录导入到/path/to/cvsroot/project_name目录下


vender_tag: 开发商标记

release_tag: 版本发布标记



项目导出:将代码从CVS库里导出

cvs checkout project_name


cvs 将创建project_name目录,并将最新版本的源代码导出到相应目录中。这个checkout和Virvual SourceSafe中的check out不是一个概念,相对于Virvual SourceSafe的check out是cvs update, check in是cvs commit。



CVS的日常使用



注意:第一次导出以后,就不是通过cvs checkout来同步文件了,而是要进入刚才cvs checkout project_name导出的project_name目录下进行具体文件的版本同步(添加,修改,删除)操作。



将文件同步到最新的版本

cvs update


不制定文件名,cvs将同步所有子目录下的文件,也可以制定某个文件名/目录进行同步

cvs update file_name


最好每天开始工作前或将自己的工作导入到CVS库里前都要做一次,并养成“先同步 后修改”的习惯,和Virvual SourceSafe不同,CVS里没有文件锁定的概念,所有的冲突是在commit之前解决,如果你修改过程中,有其他人修改并commit到了CVS 库中,CVS会通知你文件冲突,并自动将冲突部分用

>>>>>>


content on cvs server


<<<<<<


content in your file


>>>>>>


标记出来,由你确认冲突内容的取舍。


版本冲突一般是在多个人修改一个文件造成的,但这种项目管理上的问题不应该指望由CVS来解决。



确认修改写入到CVS库里


cvs commit -m "write some comments here" file_name



注意:CVS的很多动作都是通过cvs commit进行最后确认并修改的,最好每次只修改一个文件。在确认的前,还需要用户填写修改注释,以帮助其他开发人员了解修改的原因。如果不用写-m "comments"而直接确认`cvs commit file_name` 的话,cvs会自动调用系统缺省的文字编辑器(一般是vi)要求你写入注释。

注释的质量很重要:所以不仅必须要写,而且必须写一些比较有意义的内容:以方便其他开发人员能够很好的理解


不好的注释,很难让其他的开发人员快速的理解:比如: -m "bug fixed" 甚至 -m ""


好的注释,甚至可以用中文: -m "在用户注册过程中加入了Email地址校验"



修改某个版本注释:每次只确认一个文件到CVS库里是一个很好的习惯,但难免有时候忘了指定文件名,把多个文件以同样注释commit到CVS库里了,以 下命令可以允许你修改某个文件某个版本的注释:


cvs admin -m 1.3:"write some comments here" file_name


添加文件


创建好新文件后,比如:touch new_file


cvs add new_file


注意:对于图片,Word文档等非纯文本的项目,需要使用cvs add -kb选项按2进制文件方式导入(k表示扩展选项,b表示binary),否则有可能出现文件被破坏的情况

比如:


cvs add -kb new_file.gif


cvs add -kb readme.doc



如果关键词替换属性在首次导入时设置错了怎么办?

cvs admin -kkv new_file.css




然后确认修改并注释


cvs ci -m "write some comments here"



删除文件


将某个源文件物理删除后,比如:rm file_name


cvs rm file_name


然后确认修改并注释


cvs ci -m "write some comments here"


以上面前2步合并的方法为:


cvs rm -f file_name


cvs ci -m "why delete file"


注意:很多cvs命令都有缩写形式:commit=>ci; update=>up; checkout=>co/get; remove=>rm;



添加目录


cvs add dir_name


查看修改历史


cvs log file_name


cvs history file_name


查看当前文件不同版本的区别


cvs diff -r1.3 -r1.5 file_name


查看当前文件(可能已经修改了)和库中相应文件的区别


cvs diff file_name


cvs的web界面提供了更方便的定位文件修改和比较版本区别的方法,具体安装设置请看后面的cvsweb使用



正确的通过CVS恢复旧版本的方法


如果用cvs update -r1.2 file.name


这个命令是给file.name加一个STICK TAG: "1.2" ,虽然你的本意只是想将它恢复到1.2版本


正确的恢复版本的方法是:cvs update -p -r1.2 file_name >file_name


如果不小心已经加成STICK TAG的话:用cvs update -A 解决



移动文件/文件重命名


cvs里没有cvs move或cvs rename,因为这两个操作是可以由先cvs remove old_file_name,然后cvs add new_file_name实现的。



删除/移动目录


最方便的方法是让管理员直接移动,删除CVSROOT里相应目录(因为CVS一个项目下的子目录都是独立的,移动到$CVSROOT目录下都可以作为新的 独立项目:好比一颗树,其实砍下任意一枝都能独立存活),对目录进行了修改后,要求其开发人员重新导出项目cvs checkout project_name 或者用cvs update -dP同步。



项目发布导出不带CVS目录的源文件


做开发的时候你可能注意到了,每个开发目录下,CVS都创建了一个CVS/目录。里面有文件用于记录当前目录和CVS库之间的对应信息。但项目发布的时候 你一般不希望把文件目录还带着含有CVS信息的CVS目录吧,这个一次性的导出过程使用cvs export命令,不过export只能针对一个TAG或者日期导出,比如:


cvs export -r release1 project_name


cvs export -D 20021023 project_name


cvs export -D now project_name



CVS Branch:项目多分支同步开发


确认版本里程碑:多个文件各自版本号不一样,项目到一定阶段,可以给所有文件统一指定一个阶段里程碑版本号,方便以后按照这个阶段里程碑版本号导出项目, 同时也是项目的多个分支开发的基础。

cvs tag release_1_0



开始一个新的里程碑


cvs commit -r 2 标记所有文件开始进入2.x的开发



注意:CVS里的revsion和软件包的发布版本可以没有直接的关系。但所有文件使用和发布版本一致的版本号比较有助于维护。



版本分支的建立


在开发项目的2.x版本的时候发现1.x有问题,但2.x又不敢用,则从先前标记的里程碑:release_1_0导出一个分支 release_1_0_patch


cvs rtag -b -r release_1_0 release_1_0_patch proj_dir



一些人先在另外一个目录下导出release_1_0_patch这个分支:解决1.0中的紧急问题,

cvs checkout -r release_1_0_patch


而其他人员仍旧在项目的主干分支2.x上开发



在release_1_0_patch上修正错误后,标记一个1.0的错误修正版本号

cvs tag release_1_0_patch_1



如果2.0认为这些错误修改在2.0里也需要,也可以在2.0的开发目录下合并release_1_0_patch_1中的修改到当前代码中:

cvs update -j release_1_0_patch_1



CVS的远程认证通过SSH远程访问CVS


使用cvs本身基于pserver的远程认证很麻烦,需要定义服务器和用户组,用户名,设置密码等,

常见的登陆格式如下:

cvs -d :pserver:cvs_user_name@cvs.server.address:/path/to/cvsroot login


例子:


cvs -d :pserver:cvs@samba.org:/cvsroot login



不是很安全,因此一般是作为匿名只读CVS访问的方式。从安全考虑,通过系统本地帐号认证并通过SSH传输是比较好的办法,通过在客户机的 /etc/profile里设置一下内容:

CVSROOT=:ext:$USER@cvs.server.address#port:/path/to/cvsroot CVS_RSH=ssh; export CVSROOT CVS_RSH


所有客户机所有本地用户都可以映射到CVS服务器相应同名帐号了。



比如:



CVS服务器是192.168.0.3,上面CVSROOT路径是/home/cvsroot,另外一台开发客户机是192.168.0.4,如果 tom在2台机器上都有同名的帐号,那么从192.168.0.4上设置了:

export CVSROOT=:ext:tom@192.168.0.3:/home/cvsroot


export CVS_RSH=ssh


tom就可以直接在192.168.0.4上对192.168.0.3的cvsroot进行访问了(如果有权限的话)


cvs checkout project_name


cd project_name


cvs update


...


cvs commit



如果CVS所在服务器的SSH端口不在缺省的22,或者和客户端与CVS服务器端SSH缺省端口不一致,有时候设置了:

:ext:$USER@test.server.address#port:/path/to/cvsroot


仍然不行,比如有以下错误信息:


ssh: test.server.address#port: Name or service not known


cvs [checkout aborted]: end of file from server (consult above messages if any)


解决的方法是做一个脚本指定端口转向(不能使用alias,会出找不到文件错误):


创建一个/usr/bin/ssh_cvs文件,假设远程服务器的SSH端口是非缺省端口:34567


#!/bin/sh


/usr/bin/ssh -p 34567 "$@"


然后:chmod +x /usr/bin/ssh_cvs


并CVS_RSH=ssh_cvs; export CVS_RSH



注意:port是指相应服务器SSH的端口,不是指cvs专用的pserver的端口



CVSWEB:提高文件浏览效率


CVSWEB就是CVS的WEB界面,可以大大提高程序员定位修改的效率:

使用的样例可以看:http://www.freebsd.org/cgi/cvsweb.cgi



CVSWEB的下载:CVSWEB从最初的版本已经演化出很多功能界面更丰富的版本,这个是我个人感觉安装设置比较方便的:

原先在:http://www.spaghetti-code.de/software/linux/cvsweb/,但目前已经删除,目前仍可以在本站下载CVSWEB, 其实最近2年FreeBSD的CVSWeb项目已经有了更好的发展吧,而当初没有用FreeBSD那个版本 主要就是因为没有彩色的文件Diff功能。


下载解包:


tar zxf cvsweb.tgz


把配置文件cvsweb.conf放到安全的地方(比如和apache的配置放在同一个目录下),


修改:cvsweb.cgi让CGI找到配置文件:


$config = $ENV{'CVSWEB_CONFIG'} || '/path/to/apache/conf/cvsweb.conf';


转到/path/to/apache/conf下并修改cvsweb.conf:




  1. 修改CVSROOT路径设置:

    %CVSROOT = (


    'Development' => '/path/to/cvsroot', #<==修改指向本地的CVSROOT


    );


  2. 缺省不显示已经删除的文档:

    "hideattic" => "1",#<==缺省不显示已经删除的文档


  3. 在配置文件cvsweb.conf中还可以定制页头的描述信息,你可以修改$long_intro成你需要的文字



CVSWEB可不能随便开放给所有用户,因此需要使用WEB用户认证:

先生成 passwd:


/path/to/apache/bin/htpasswd -c cvsweb.passwd user


修改httpd.conf: 增加


<Directory "/path/to/apache/cgi-bin/cvsweb/">


AuthName "CVS Authorization"


AuthType Basic


AuthUserFile /path/to/cvsweb.passwd


require valid-user


</Directory>



CVS TAGS: $Id$


将$Id$ 加在程序文件开头的注释里是一个很好的习惯,cvs能够自动解释更新其中的内容成:file_name version time user_name 的格式,比如:cvs_card.txt,v 1.1 2002/04/05 04:24:12 chedong Exp,可以这些信息了解文件的最后修改人和修改时间。

几个常用的缺省文件:
default.php
<?php
/*
* Copyright (c) 2002 Company Name.
* $Header$
*/

?>
====================================
Default.java: 注意文件头一般注释用 /* 开始 JAVADOC注释用 /** 开始的区别
/*
* Copyright (c) 2002 MyCompany Name.
* $Header$
*/

package com.mycompany;

import java.;

/**
* comments here
*/
public class Default {
/**
* Comments here
* @param
* @return
*/
public toString() {

}
}
====================================
default.pl:
#!/usr/bin/perl -w
# Copyright (c) 2002 Company Name.
# $Header$

# file comments here

use strict;


CVS vs VSS



CVS没有文件锁定模式,VSS在check out同时,同时记录了文件被导出者锁定。



CVS的update和commit, VSS是get_lastest_version和check in



对应VSS的check out/undo check out的CVS里是edit和unedit



在CVS中,标记自动更新功能缺省是打开的,这样也带来一个潜在的问题,就是不用-kb方式添加binary文件的话在cvs自动更新时可能会导致 文件失效。



$Header$ $Date$这样的标记在Virsual SourceSafe中称之为Keyword Explaination,缺省是关闭的,需要通过OPITION打开,并指定需要进行源文件关键词扫描的文件类型:*.txt,*.java, *.html...



对于Virsual SourceSafe和CVS都通用的TAG有:

$Header$


$Author$


$Date$


$Revision$



我建议尽量使用通用的关键词保证代码在CVS和VSS都能方便的跟踪。



WinCVS


下载:

cvs Windows客户端:目前稳定版本为1.2

http://cvsgui.sourceforge.net


ssh Windows客户端


http://www.networksimplicity.com/openssh/


安装好以上2个软件以后:


WinCVS客户端的admin==>preference设置


1 在general选单里


设置CVSROOT: username@192.168.0.123:/home/cvsroot


设置Authorization: 选择SSH server


2 Port选单里


钩上:check for alternate rsh name


并设置ssh.exe的路径,缺省是装在 C:\Program Files\NetworkSimplicity\ssh\ssh.exe



然后就可以使用WinCVS进行cvs操作了,所有操作都会跳出命令行窗口要求你输入服务器端的认证密码。



当然,如果你觉得这样很烦的话,还有一个办法就是生成一个没有密码的公钥/私钥对,并设置CVS使用基于公钥/私钥的SSH认证(在general 选单里)。



可以选择的diff工具:examdiff

下载:


http://www.prestosoft.com/examdiff/examdiff.htm


还是在WinCVS菜单admin==>preference的WinCVS选单里


选上:Externel diff program


并设置diff工具的路径,比如:C:\Program Files\ed16i\ExamDiff.exe


在对文件进行版本diff时,第一次需要将窗口右下角的use externel diff选上。



基于CVSTrac的小组开发环境搭建


作为一个小组级的开发环境,版本控制系统和BUG跟踪系统等都涉及到用户认证部分。如何方便的将这些系统集成起来是一个非常困难的事情,毕竟我们不能指望 Linux下有像Source Offsite那样集成度很高的版本控制/BUG跟踪集成系统。


我个人是很反对使用pserver模式的远程用户认证的,但如果大部分组员使用WINDOWS客户端进行开发的话,总体来说使用 CVSROOT/passwd认证还是很难避免的,但CVS本身用户的管理比较麻烦。本来我打算自己用perl写一个管理界面的,直到我发现了 CVSTrac: 一个基于WEB界面的BUG跟踪系统,它外挂在CVS系统上的BUG跟踪系统,其中就包括了WEB界面的CVSROOT/passwd文件的管理,甚至还 集成了WIKIWIKI讨论组功能。

这里首先说一下CVS的pserver模式下的用户认证,CVS的用户认证服务是基于inetd中的:

cvspserver stream tcp nowait apache /usr/bin/cvs cvs --allow-root=/home/cvsroot pserver


一般在2401端口(这个端口号很好记:49的平方)


CVS用户数据库是基于CVSROOT/passwd文件,文件格式:


[username]:[crypt_password]:[mapping_system_user]


由于密码都用的是UNIX标准的CRYPT加密,这个passwd文件的格式基本上是apache的htpasswd格式的扩展(比APACHE的 PASSWD文件多一个系统用户映射字段),所以这个文件最简单的方法可以用


apache/bin/htpasswd -b myname mypassword


创建。注意:通过htpasswd创建出来的文件会没有映射系统用户的字段


例如:


new:geBvosup/zKl2


setup:aISQuNAAoY3qw


test:hwEpz/BX.rEDU



映射系统用户的目的在于:你可以创建一个专门的CVS服务帐号,比如用apache的运行用户apache,并将/home/cvsroot目录下 的所有权限赋予这个用户,然后在passwd文件里创建不同的开发用户帐号,但开发用户帐号最后的文件读写权限都映射为apache用户,在SSH模式下 多个系统开发用户需要在同一个组中才可以相互读写CVS库中的文件。



进一步的,你可以将用户分别映射到apache这个系统用户上。

new:geBvosup/zKl2:apache


setup:aISQuNAAoY3qw:apache


test:hwEpz/BX.rEDU:apache



CVSTrac很好的解决了CVSROOT/passwd的管理问题,而且包含了BUG跟踪报告系统和集成WIKIWIKI交流功能等,使用的 CGI方式的安装,并且基于GNU Public License



在inetd里加入cvspserver服务:

cvspserver stream tcp nowait apache /usr/bin/cvs cvs --allow-root=/home/cvsroot pserver



xietd的配置文件:%cat cvspserver

service cvspserver


{


disable = no


socket_type = stream


wait = no


user = apache


server = /usr/bin/cvs


server_args = -f --allow-root=/home/cvsroot pserver


log_on_failure += USERID


}



注意:这里的用户设置成apache目的是和/home/cvsroot的所有用户一致,并且必须让这个这个用户对/home/cvsroot/下的 CVSROOT/passwd和cvstrac初始化生成的myproj.db有读取权限。



安装过程




  1. 下载:可以从http://www.cvstrac.org 下载


    我用的是已经在Linux上编译好的应用程序包:cvstrac-1.1.2.bin.gz,


    %gzip -d cvstrac-1.1.2.bin.gz


    %chmod +x cvstrac-1.1.2.bin


    #mv cvstarc-1.1.1.bin /usr/bin/cvstrac


    如果是从源代码编译:


    从 http://www.sqlite.org/download.html 下载SQLITE的rpm包:


    rpm -i sqlite-devel-2.8.6-1.i386.rpm


    从 ftp://ftp.cvstrac.org/cvstrac/ 下载软件包


    解包,假设解包到/home/chedong/cvstrac-1.1.2下,并规划将cvstrac安装到/usr/local/bin目录下, cd /home/chedong/cvstrac-1.1.2 编辑linux-gcc.mk:


    修改:


    SRCDIR = /home/chedong/cvstrac-1.1.2


    INSTALLDIR = /usr/local/bin


    然后


    mv linux-gcc.mk Makefile


    make


    #make install


  2. 初始化cvstrac数据库:假设数据库名是 myproj

    在已经装好的CVS服务器上(CVS库这时候应该已经是初始化好了,比如:cvs init初始化在/home/cvsroot里),运行一下


    %cvstrac init /home/cvsroot myproj


    运行后,/home/cvsroot里会有一个的myproj.db库,使用CVSTRAC服务,/home/cvsroot/myproj.db /home/cvsroot/CVSROOT/readers /home/cvsroot/CVSROOT/writers /home/cvsroot/CVSROOT/passwd这几个文件对于web服务的运行用户应该是可写的,在RedHat8上,缺省就有一个叫 apache用户和一个apache组,所以在httpd.conf文件中设置了用apache用户运行web服务:


    User apache


    Group apache,


    然后设置属于apache用户和apache组


    #chown -R apache:apache /home/cvsroot


    -rw-r--r-- 1 apache apache 55296 Jan 5 19:40 myproj.db


    drwxrwxr-x 3 apache apache 4096 Oct 24 13:04 CVSROOT/


    drwxrwxr-x 2 apache apache 4096 Aug 30 19:47 some_proj/


    此外还在/home/cvsroot/CVSROOT中设置了:


    chmod 664 readers writers passwd


  3. 在apche/cgi-bin目录中创建脚本cvstrac:

    #!/bin/sh


    /usr/bin/cvstrac cgi /home/cvsroot


    设置脚本可执行:


    chmod +x /home/apache/cgi-bin/cvstrac


  4. 从 http://cvs.server.address/cgi-bin/cvstrac/myproj 进入管理界面

    缺省登录名:setup 密码 setup


    对于一般用户可以从:


    http://cvs.server.address/cgi-bin/cvstrac/myproj


  5. 在setup中重新设置了CVSROOT的路径后,/home/cvsroot

    如果是初次使用需要在/home/cvsroot/CVSROOT下创建passwd, readers, writers文件


    touch passwd readers writers


    然后设置属于apache用户,


    chown apache.apache passwd readers writers


    这样使用setup用户创建新用户后会同步更新CVSROOT/passwd下的帐号



修改登录密码,进行BUG报告等,

更多使用细节可以在使用中慢慢了解。



对于前面提到的WinCVS在perference里设置:

CVSROOT栏输入:username@ip.address.of.cvs:/home/cvsroot


Authenitication选择:use passwd file on server side


就可以了从服务器上进行CVS操作了。



CVS的用户权限管理



CVS的权限管理分2种策略:




  • 基于系统文件权限的系统用户管理:适合多个在Linux上使用系统帐号的开发人员进行开发。


  • 基于CVSROOT/passwd的虚拟用户管理:适合多个在Windows平台上的开发人员将帐号映射成系统帐号使用。


为什么使用apache/apache用户?首先RedHat8中缺省就有了,而且使用这个用户可以方便通过cvstrac进行WEB管理。


chown -R apache.apache /home/cvsroot


chmod 775 /home/cvsroot

Linux上通过ssh连接CVS服务器的多个开发人员:通过都属于apache组实现文件的共享读写

开发人员有开发服务器上的系统帐号:sysuser1 sysuser2,设置让他们都属于apache组,因为通过cvs新导入的项目都是对组开放的:664权限的,这样无论那个系统用户导入的项目文件,只 要文件的组宿主是apache,所有其他同组系统开发用户就都可以读写;基于ssh远程认证的也是一样。



apache(system group)

/ | \


sysuser1 sysuser2 sysuser3



Windows上通过cvspserver连接CVS服务器的多个开发人员:通过在passwd文件种映射成 apache用户实现文件的共享读写

他们的帐号通过CVSROOT/passwd和readers writers这几个文件管理;通过cvstrac设置所有虚拟用户都映射到apache用户上即可。



apache(system user)

/ | \


windev1 windev2 windev3



利用CVS WinCVS/CVSWeb/CVSTrac 构成了一个相对完善的跨平台工作组开发版本控制环境。



相关资源:



CVS HOME:

http://www.cvshome.org



CVS FAQ:

http://www.loria.fr/~molli/cvs-index.html


相关网站:


http://directory.google.com/Top/Computers/Software/Configuration_Management/Tools/Concurrent_Versions_System/



CVS--并行版本系统

http://www.soforge.com/cvsdoc/zh_CN/book1.html



CVS 免费书:

http://cvsbook.red-bean.com/



CVS命令的速查卡片 refcards.com/refcards/cvs/



WinCVS:

http://cvsgui.sourceforge.net/



CVSTrac: A Web-Based Bug And Patch-Set Tracking System For CVS

http://www.cvstrac.org



StatCVS:基于CVS的代码统计工具:按代码量,按开发者的统计表等

http://sourceforge.net/projects/statcvs


[+/-] Read More...

塔式、机架式、刀片式服务器的区别和特点

通常人们按照外形结构的不同将服务器分成塔式、机架式、刀片式服务器三种类型,那么这三种服务器之间究竟有什么区别,各自适合应用于哪些方面呢?

塔式服务器

    塔式服务器一般是大家见得最多的,它的外形及结构都与普通的PC机差不多,只是个头稍大一些,其外形尺寸并无统一标准。

    塔式服务器的主板扩展性较强,插槽也很多,而且塔式服务器的机箱内部往往会预留很多空间,以便进行硬盘电源等的冗余扩展。这种服务器无需额外设备,对放置空间没多少要求,并且具有良好的可扩展性,配置也能够很高,因而应用范围非常广泛,可以满足一般常见的服务器应用需求。

    这种类型服务器尤其适合常见的入门级和工作组级服务器应用,而且成本比较低,性能能满足大部分中小企业用户的要求,目前的市场需求空间还是很大的。

    但这种类型服务器也有不少局限性,在需要采用多台服务器同时工作以满足较高的服务器应用需求时,由于其个体比较大,占用空间多,也不方便管理,便显得很不适合。

机架式服务器

    机架服务器实际上是工业标准化下的产品,其外观按照统一标准来设计,配合机柜统一使用,以满足企业的服务器密集部署需求。机架服务器的主要作用是为节省空 间,由于能够将多台服务器装到一个机柜上,不仅可以占用更小的空间,而且也便于统一管理。 机架服务器的宽度为19英寸,高度以U为单位(1U=1.75英寸=44.45毫米),通常有1U,2U,3U,4U,5U,7U几种标准的服务器。

    这种服务器的优点是占用空间小,而且便于统一管理,但由于内部空间限制,扩充性较受限制,例如1U的服务器大都只有1到2个PCI扩充槽。此外,散热性能 也是一个需要注意的问题,此外还需要有机柜等设备,因此这种服务器多用于服务器数量较多的大型企业使用,也有不少企业采用这种类型的服务器,但将服务器交 付给专门的服务器托管机构来托管,尤其是目前很多网站的服务器都采用这种方式。

    这种服务器由于在扩展性和散热问题上受到限制,因而单机性能比较有限,应用范围也受到一定限制,往往只专注于某在方面的应用,如远程存储和网络服务等。

    在价格方面,机架式服务器一般比同等配置的塔式服务器贵上二到三成。

刀片服务器

    刀片服务器是一种HAHD(High Availability High Density,高可用高密度)的低成本服务器平台,是专门为特殊应用行业和高密度计算机环境设计的,其主要结构为一大型主体机箱,内部可插上许多“刀 片”,其中每一块刀片实际上就是一块系统母板,类似于一个个独立的服务器,它们可以通过本地硬盘启动自己的操作系统。每一块刀片可以运行自己的系统,服务 于指定的不同用户群,相互之间没有关联。而且,也可以用系统软件将这些主板集合成一个服务器集群。在集群模式下,所有的刀片可以连接起来提供高速的网络环 境,共享资源,为相同的用户群服务。在集群中插入新的刀片,就可以提高整体性能。而由于每块刀片都是热插拔的,所以,系统可以轻松地进行替换,并且将维护 时间减少到最小。

    刀片服务器比机架式服务器更节省空间,同时,散热问题也更突出,往往要在机箱内装上大型强力风扇来散热。此型服务器虽然空间较节省,但是其机柜与刀片价格都不低,一般应用于大型的数据中心或者需要大规模计算的领域,如银行电信金融行业以及互联网数据中心等。

    目前,节约空间、便于集中管理、易于扩展和提供不间断的服务,成为对下一代服务器的新要求,而刀片服务器正好能满足这一需求,因而刀片服务器市场需求正不断扩大,具有良好的市场前景。

[+/-] Read More...

小白小黑小钢炮 摄影器材名词解释

| 0 评论

小小白:佳能 EF 70-200 mm f/4 L USM 镜头
小白:佳能 EF 70-200 mm f/2.8 L USM 镜头
大白:佳能 EF 100-400mm F/4.5-5.6 L IS USM 镜头
小白IS:佳能 EF 70-200 mm f/2.8 L IS USM 镜头
小黑:适马 70-200 mm F/2.8 HSM(超声波马达)镜头
大黑:适马 100-300mm F/4 APO EXIF HSM 镜头
大大黑:适马 300-800 F/5.6 EXIF HSM 镜头
小钢炮:尼康 80-200 mm F/2.8 镜头
大钢炮:尼康 AF-S VR Zoom-Nikkor 200-400mm F/4 G IF-ED 镜头
还有大家经常提到的XH、XGP之类的,其实就是拼音首字的缩写,XH表示小黑、XGP表示小钢炮。

XGP是指的尼康80-200/2.8D镜头俗称“小钢炮”的缩写
XGP即 AF NIKKOR 80-200MM F2.8,目前NIKON的XGP总共发展了三代:
AF Nikkor 80~200mm F2.8S ED 11组16片 发表日期:1988年2月
AF Nikkor 80~200mm F2.8D ED 11组16片 发表日期:1992年9月
AF Nikkor 80~200mm F2.8D ED New 11组16片 发表日期:1996年10月
第一第二代均已经停产,现在NIKON正在出售的是第三代。
70~200叫~~~XZP====小竹炮

[+/-] Read More...

苦战5局,纳达尔夺冠,结束费德勒称霸温网的神话。。

苦战5局,纳达尔夺冠,结束费德勒称霸温网的神话。。
在先拿下2局情况下,纳达尔连续两次抢七失利,让老将费德勒搬回两局。

决胜局中,双方频频平手。但在7-7平之前都没有破发成功。知道第八盘,纳达尔才抓住机会,破发成功。最终在第九盘发球盘再拿下费德勒,以9-7赢下最后一局,进而捧得金杯。。

真是一波三折,比赛两次被大雨打断。在最后采访过程中,纳达尔显得很激动,本来让费德勒先接受采访,结果他差点先冲上去。。。。

我已经尽我所能。。。”费德勒说。 的确,今天这场比赛相信只要是看了的,都不会后悔。我开始一直希望费德勒真的能反败为胜,但是,纳达尔最后还是没给费帅机会。当他打完最后一球,躺倒在地的时候。我想不论输赢,双方都是松了一口气。

虽然赢得了比赛,但是纳达尔还是很谦虚:“他(费德勒)还是最好的, 还是第一,我这次胜利是我的第一次,我要继续努力。。。”而费德勒却霸气十足,略带幽默:“。。。明年我还会回来的。”希望真的能想他说的,明年温网再次看到他们的精彩表演。

[+/-] Read More...

Optimizer不适合用在calibration里

Optimizer不适合我用。
在ADS里能用是因为:

  1. 设置变量方便。
  2. 可以控制算法。
  3. 可以控制步进。
而这三点在Cadence 5.1里就做不到。可能6.1版本可以,但是目前学校用不了。
另外,6.1还有与Matlab的更好地整合,可以直接用Matlab来完成算法部分,进而控制反馈校准。

不过既然不用, 就先不管。计划一下怎么办吧:


  1. 好在,我觉得我也不需要很复杂的calibration。 那干脆自己写veriloga代码好了。
  2. 通过跟Martin的meeting。我觉得应该从以下几方面入手:
    1. 考虑是否需要calibration。用Matlab模拟之。
    2. inner slice的 calibration。
    3. inter slice 的 calibration。
    4. if necessary, consider the component calibration.
  3. 可能需要先整理下先,发个文章什么的。
目前,就这么多。

[+/-] Read More...

貌似卫生的12种坏习惯(ZZ)

| 0 评论

生活中有一些习惯,貌似卫生,实际上并不卫生,不仅不能保证身体健康,反而对身体有害。

  1.白纸用于包食品为了白纸的“白”,许多厂家在生产过程中往往使用漂白剂,而漂白剂在与食品接触后,会引起一系列化学反应,产生一些有害物质,极易对食品造成污染。

  2.卫生纸擦拭餐具、水果国家质检部门抽查结果表明,许多种类的卫生纸都未经消毒或消毒不彻底,上面含有大量细菌,很容易粘附在擦拭的物体上。只有经过严格消毒处理的高级餐巾纸才符合卫生标准。

  3.饭桌上铺塑料布餐桌

  上铺了塑料布,虽然好看,但容易积累灰尘、细菌等,而且有的塑料布是由有毒的氯乙烯树脂制成的,餐具和食物长期与塑料布接触,会沾染有害物质,从而引发许多不必要的疾病,影响健康。

  4.用纱罩罩食物防蝇用纱罩罩在食物上,苍蝇虽然不会直接落到食物上,但会停留在纱罩上面,仍会留下带有病菌的虫卵,这些虫卵极易从纱孔中落下而污染食物。

  5.用毛巾擦干锅、碗、盆、杯等餐具及水果我国城市所用自来水都是经过严格消毒处理的,用自来水冲洗过的餐具及水果基本上是洁净的,不用再擦。而毛巾上存活着许多病菌,用毛巾再揩干反而会二次污染。

  6.用酒消毒碗筷一些人常用白酒来擦拭碗筷,以为这样可以达到消毒的目的。殊不知,医学上用于消毒的酒精度数为75%,而一般白酒的酒精含量在56%以下。所以,用白酒擦拭碗筷根本达不到消毒的目的。

  7.将变质食物加热加压后再吃一些家庭主妇将一些变质的食物高温高压煮过再吃,以为这样就可以彻底消灭细菌。医学证明,细菌在进入人体之前分泌的毒素非常耐高温,不易被破坏分解。

  8.用抹布擦桌子使用一周后的全新抹布,滋生细菌的数量之多会让你大吃一惊。因此,用抹布擦桌子,应当先将抹布洗透再用,抹布每隔三四天应该用水煮沸消毒一下。

  9.把水果烂的部分剜掉再吃有些人吃水果时,碰到水果烂了一部分,就把烂掉的部分剜掉再吃,以为这样就卫生了。实际上,即使把水果烂掉的部分削去,剩余的部分也已通过果汁传入了细菌的代谢物,甚至还有微生物开始繁殖,其中的霉菌可导致人体细胞突变而致癌。因此,尽管水果只烂了一部分,也还是扔掉为好。



  10.起床就叠被子人每天都要排出大量的汗液,睡觉时也不例外。起床后就把被子叠起来,汗液留在被子里,时间一长,不仅有汗臭味,影响睡眠的舒适度,也给病原体创造了生存环境,对身体不利。正确的方法是,起床以后先把被子翻过来,摊晾10分再叠起来,最好每周晾晒一次。

  11.长期使用同一种药物牙膏药物牙膏对某些细菌有一定的抑制作用。但是,如果长期使用同一种药物牙膏,会使口腔中的细菌慢慢地适应,产生耐药性。因此,牙膏也应定期更换。

  12.用废日光灯管晾毛巾日光灯管内含有水银、荧光粉及少量氨气等有毒物质。有的家庭用废日光灯管晾毛巾、手帕,以为干净、卫生。殊不知在受潮的情况下,如果灯管两端被侵蚀或灯管本身有小裂缝,管内的各种有害物质就会逐渐渗出。尤其在气温较高时,汞的渗出更多,可污染毛巾、手帕,危害人体健康。若这些有害物质直接进入人眼睛,可造成视力减退甚至失明。

[+/-] Read More...

继续跟cadence死磕----Cadence AC 仿真问题

| 0 评论

用了这么久,发现还是很菜。这不,遇到了这种 AC仿真 问题。

昨天还没问题的
今天仿真就出问题了!
AC仿真输出为0加到多大的频率都是一条直线“零”
增益无论什么电路都固定在-6.4Kdb
相位裕度都为零
有人见过这是出什么问题了么?

论坛原文在这里
我遇到了同样问题!!
回帖的答案总结为:
没有交流源(No AC source is applied to the circuit.)
开始不理解为什么没有?我明明有一个analoglib/vsin 的source在schematic里呀???

后来发现,这个要从vsin这个component的参数说起:

第一:我以前遇到过如果schematic里有多余两个交流源的时候,仿真出问题。

Try1:把其他不需要的源都删了,只留一个vsin交流源。再仿真,结果还是那个问题,全是直流结果。 (而且transient仿真的输出波形完全没问题!!)

第二:看看这个问答。。

问:
在用spectre仿ac时,所加的信号源vsin里有AC magnitude 跟Amplitude项,个人对这两个参数理解是:AC magnitude是指信号的有效值,若Amplitude为1.414V,则对应的AC magnitude应为1V,不知这种理解是否正确?
答:
1:AC magnitude是用来进行AC分析的输入量,一般给1,AV-->db: 20lgAV
而Amplitude是进行瞬态仿真的交流正弦波信号峰峰值的一半。
2:我比较赞同后者的说法 峰峰值的 一半,也就是峰值。

启发:我通过这里发现,可能的问题在于,我没有specify AC 参数--AC magnitude。
try2:简单加一个数进去。重新仿真,结果问题解决了!!

总结一下:虽然问题很简单,但是真的有时候把人脑死都搞不定。分享一下经验,希望能对其他兄弟姐妹有所帮助。

[+/-] Read More...

欲善其事先利其器,Xmanager远程登录Unix like主机

欲善其事先利其器,远程登录服务区运行Cadence之类的东东,我选择Xmanager。
以前也用过Cygwin,Xwin32但是找到Xmanager以后,其他的就算了。Cygwin太大。Xwin32刚开始没用好,折腾多了让我对他没什么好感。所以,Xmanager很不错。
介绍一下:
Xmanager是一个简单易用的高性能的运行在Windows平台上的X Server软件。它能把远端Unix/Linux的桌面无缝地带到你的Windows上,甚至当你的电脑是在内网或防火墙后,你也能通过SSH协议安全的运行远端的X应用程序。


特点包括:
-可通过Xcongfig工具设置多个Xmanager设置;
-支持多用户的Windows终端环境;
-支持多个IP地址;
-支持本地资源数据库;
-通过热键转换键盘映射;
-支持多窗口下的Windows打印功能等。

包含的xshell是相当好的一个ssh客户端,远程登录linux必备军刀

霏凡下载

可以用evaluation序列号,也可以自己去搜一个。我这里就不提供了。

[+/-] Read More...

ADS的90nm制程没用上,继续跟Cadence死磕。

学校终于搞到了45nm和90nm制程,用于cadence 和 ADS 等EDA/CAD 工具。虽然我没权限用45nm,但是90nm已经够我用的了。Cadence作为老大当然用起来很痛快。一个博士,也是我们的Cadence管理员已经把东西都搞定了。直接想0.18um那样几步copy,move,init就成。而ADS里想用就麻烦点。我和Saul准备把他搞一搞。他转移他用的RF库,我转移我要用的Mix signal库。想法很不错,分工合作,很快能让ADS用上90nm制程。但是最终,我还是没弄出来。。为什么呢?

为什么呢?
可能ADS主要用途就是RF仿真。普通Mix signal的lib,UMC 90nm给的包里就根本没有。眼看着Cadence都能用,但是ADS不能用, 我真他妈的郁闷。

只好,又转战回到Cadence怀抱,继续跟那个不太友好的GUI死磕了。

不过好的一点是,从Saul那里我学到了点关于Calibration(数字校准)的tricky。

原来
,不是一定要把那些数学系的人研究出来的算法完全用电路实现,然后一起综合仿真才叫calibration的。

这个问题困扰我很久, 如果那么麻烦,我是不是毕不了业了。!!!
好在,现在明白还不晚。关键在于巧用Optimazer 工具!!

以后,慢慢写。今天就到这里。呵呵。

[+/-] Read More...

地球最强,造句

| 0 评论

小孩问妈:“用ABCDEFG怎么造句?”
回答相当牛逼!!看看能看懂不你。。。


妈:"A呀!这B孩子C家的呀?光着个脚站在D上,EF也不穿,还露着小GG!"

[+/-] Read More...