<?xml version="1.0" encoding="gb2312"?>

<!-- RSS generated by oioj.net on 4/16/2004 ; 感谢LeXRus提供 RSS 2.0 文档; 此文件可自由使用，但请保留此行信息 --> 
<!-- Source download URL: http://blogger.org.cn/blog/rss2.asp       -->
<rss version="2.0">

<channel>
<title>V-加油</title>
<link>http://blogger.org.cn/blog/blog.asp?name=vacobo</link>
<description>vacobo@sogou.com的博客</description>
<copyright>blogger.org.cn</copyright>
<generator>W3CHINA Blog</generator>
<webMaster>webmaster@blogger.org.cn</webMaster>
<item>
<title><![CDATA[Jbuilder 2005光标问题的解决]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=vacobo&amp;id=12364</link>
<author>vacobo</author>
<pubDate>2006/3/8 11:23:03</pubDate>
<description><![CDATA[JBuilder在中文系统中存在光标错位的问题，解决方法无外乎两种：
　　1、将编辑器的字体改为宋体，用这种方法带来的问题是，在宋体下的英文字体实在难看，阅读起来不太顺眼；
　　2、就是将编辑器字体的粗体属性去掉，这样也影响代码的可读性。
　　其实，造成JBuilder光标错位的问题并不是Borland的错误，而是Java的宗师——Sun的罪过！大家一定知道i18n吧？在不同的区域设置中，JDK自动调用与之相对应的properties文件，而在JDK中，Sun所推出的与中文系统相对应的properties文件存在问题，在它之中没有区分英文字体的正常、粗体和斜体，从而导致了以上所说的问题，解决的方法很简单，只要将这个properties文件修改正确就可以了，修改方法如下：
在jre/lib目录中找到font.properties.zh文件，编辑这个文件并修改成如下内容:
# @(#)font.properties.zh1.16 00/10/06
#
# AWT Font default Properties for Chinese asp.cn/ class=wordstyle&gt;Windows
#


dialog.plain.0=Arial,ANSI_CHARSET
dialog.plain.1=\u5b8b\u4f53,GB2312_CHARSET
dialog.plain.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
dialog.plain.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

dialog.bold.0=Arial Bold,ANSI_CHARSET
dialog.bold.1=\u5b8b\u4f53,GB2312_CHARSET
dialog.bold.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
dialog.bold.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

dialog.italic.0=Arial Italic,ANSI_CHARSET
dialog.italic.1=\u5b8b\u4f53,GB2312_CHARSET
dialog.italic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED


dialog.italic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

dialog.bolditalic.0=Arial Bold Italic,ANSI_CHARSET
dialog.bolditalic.1=\u5b8b\u4f53,GB2312_CHARSET
dialog.bolditalic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
dialog.bolditalic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

dialoginput.plain.0=Courier New,ANSI_CHARSET
dialoginput.plain.1=\u5b8b\u4f53,GB2312_CHARSET
dialoginput.plain.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
dialoginput.plain.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

dialoginput.bold.0=Courier New Bold,ANSI_CHARSET
dialoginput.bold.1=\u5b8b\u4f53,GB2312_CHARSET
dialoginput.bold.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
dialoginput.bold.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

dialoginput.italic.0=Courier New Italic,ANSI_CHARSET
dialoginput.italic.1=\u5b8b\u4f53,GB2312_CHARSET
dialoginput.italic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
dialoginput.italic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED



dialoginput.bolditalic.0=Courier New Bold Italic,ANSI_CHARSET
dialoginput.bolditalic.1=\u5b8b\u4f53,GB2312_CHARSET
dialoginput.bolditalic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
dialoginput.bolditalic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

serif.plain.0=Times New Roman,ANSI_CHARSET
serif.plain.1=\u5b8b\u4f53,GB2312_CHARSET
serif.plain.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
serif.plain.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED


serif.bold.0=Times New Roman Bold,ANSI_CHARSET
serif.bold.1=\u5b8b\u4f53,GB2312_CHARSET
serif.bold.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
serif.bold.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

serif.italic.0=Times New Roman Italic,ANSI_CHARSET
serif.italic.1=\u5b8b\u4f53,GB2312_CHARSET
serif.italic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
serif.italic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

serif.bolditalic.0=Times New Roman Bold Italic,ANSI_CHARSET


serif.bolditalic.1=\u5b8b\u4f53,GB2312_CHARSET
serif.bolditalic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
serif.bolditalic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

sansserif.plain.0=Arial,ANSI_CHARSET
sansserif.plain.1=\u5b8b\u4f53,GB2312_CHARSET
sansserif.plain.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
sansserif.plain.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

sansserif.bold.0=Arial Bold,ANSI_CHARSET
sansserif.bold.1=\u5b8b\u4f53,GB2312_CHARSET
sansserif.bold.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
sansserif.bold.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

sansserif.italic.0=Arial Italic,ANSI_CHARSET
sansserif.italic.1=\u5b8b\u4f53,GB2312_CHARSET
sansserif.italic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
sansserif.italic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

sansserif.bolditalic.0=Arial Bold Italic,ANSI_CHARSET
sansserif.bolditalic.1=\u5b8b\u4f53,GB2312_CHARSET
sansserif.bolditalic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED


sansserif.bolditalic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

monospaced.plain.0=Courier New,GB2312_CHARSET
monospaced.plain.1=\u5b8b\u4f53,GB2312_CHARSET
monospaced.plain.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
monospaced.plain.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

monospaced.bold.0=Courier New Bold,GB2312_CHARSET
monospaced.bold.1=\u5b8b\u4f53,GB2312_CHARSET
monospaced.bold.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
monospaced.bold.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

monospaced.italic.0=Courier New Italic,GB2312_CHARSET
monospaced.italic.1=\u5b8b\u4f53,GB2312_CHARSET
monospaced.italic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
monospaced.italic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

monospaced.bolditalic.0=Courier New Bold Italic,GB2312_CHARSET
monospaced.bolditalic.1=\u5b8b\u4f53,GB2312_CHARSET
monospaced.bolditalic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
monospaced.bolditalic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED



# name aliases
#
#alias.timesroman=serif
#alias.helvetica=sansserif
#alias.courier=monospaced

# for backward compatibility
#timesroman.0=Times New Roman,ANSI_CHARSET
#helvetica.0=Arial,ANSI_CHARSET
#courier.0=Courier New,ANSI_CHARSET
zapfdingbats.0=WingDings,SYMBOL_CHARSET

# font filenames for reduced initialization time
#
filename.\u5b8b\u4f53=SIMSUN.TTF

filename.Arial=ARIAL.TTF
filename.Arial_Bold=ARIALBD.TTF
filename.Arial_Italic=ARIALI.TTF
filename.Arial_Bold_Italic=ARIALBI.TTF

filename.Courier_New=COUR.TTF



filename.Courier_New_Bold=COURBD.TTF
filename.Courier_New_Italic=COURI.TTF
filename.Courier_New_Bold_Italic=COURBI.TTF

filename.Times_New_Roman=TIMES.TTF
filename.Times_New_Roman_Bold=TIMESBD.TTF
filename.Times_New_Roman_Italic=TIMESI.TTF
filename.Times_New_Roman_Bold_Italic=TIMESBI.TTF

filename.WingDings=WINGDING.TTF
filename.Symbol=SYMBOL.TTF

# Default font definition
#
default.char=2751

# Static FontCharset info.
#
#fontcharset.dialog.0=sun.io.CharToByteCp1252
fontcharset.dialog.1=sun.io.CharToByteGBK
fontcharset.dialog.2=sun.awt.asp.cn/ class=wordstyle&gt;windows.CharToByteWingDings


fontcharset.dialog.3=sun.awt.CharToByteSymbol

#fontcharset.dialoginput.0=sun.io.CharToByteCp1252
fontcharset.dialoginput.1=sun.io.CharToByteGBK
fontcharset.dialoginput.2=sun.awt.asp.cn/ class=wordstyle&gt;windows.CharToByteWingDings
fontcharset.dialoginput.3=sun.awt.CharToByteSymbol

#fontcharset.serif.0=sun.io.CharToByteCp1252
fontcharset.serif.1=sun.io.CharToByteGBK
fontcharset.serif.2=sun.awt.asp.cn/ class=wordstyle&gt;windows.CharToByteWingDings
fontcharset.serif.3=sun.awt.CharToByteSymbol

#fontcharset.sansserif.0=sun.io.CharToByteCp1252
fontcharset.sansserif.1=sun.io.CharToByteGBK
fontcharset.sansserif.2=sun.awt.asp.cn/ class=wordstyle&gt;windows.CharToByteWingDings
fontcharset.sansserif.3=sun.awt.CharToByteSymbol

#fontcharset.monospaced.0=sun.io.CharToByteCp1252
fontcharset.monospaced.1=sun.io.CharToByteGBK
fontcharset.monospaced.2=sun.awt.asp.cn/ class=wordstyle&gt;windows.CharToByteWingDings
fontcharset.monospaced.3=sun.awt.CharToByteSymbol

# Exclusion Range info.
#
exclusion.dialog.plain.0=00a0-f8ff
exclusion.dialog.italic.0=00a0-f8ff
exclusion.dialog.bold.0=00a0-f8ff
exclusion.dialog.bolditalic.0=00a0-f8ff

exclusion.dialoginput.plain.0=00a0-f8ff
exclusion.dialoginput.italic.0=00a0-f8ff
exclusion.dialoginput.bold.0=00a0-f8ff
exclusion.dialoginput.bolditalic.0=00a0-f8ff

exclusion.serif.plain.0=00a0-f8ff
exclusion.serif.italic.0=00a0-f8ff
exclusion.serif.bold.0=00a0-f8ff
exclusion.serif.bolditalic.0=00a0-f8ff

exclusion.sansserif.plain.0=00a0-f8ff
exclusion.sansserif.italic.0=00a0-f8ff
exclusion.sansserif.bold.0=00a0-f8ff
exclusion.sansserif.bolditalic.0=00a0-f8ff

exclusion.monospaced.italic.0=00a0-f8ff
exclusion.monospaced.bold.0=00a0-f8ff
exclusion.monospaced.bolditalic.0=00a0-f8ff

# charset for text input
# inputtextcharset=GB2312_CHARSET]]></description>
</item><item>
<title><![CDATA[明码标价：谈待遇的要领和禁忌]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=vacobo&amp;id=11791</link>
<author>vacobo</author>
<pubDate>2006/2/17 9:23:01</pubDate>
<description><![CDATA[<STRONG><FONT size=4>明码标价：谈待遇的要领和禁忌</FONT></STRONG> 
<DD class=ArticleInfo>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 来自：IT.com.cn　&nbsp;&nbsp; 
<P class=ArticleInfo>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 无庸置疑，对上班族而言，薪水是非常重要的一件事。谈到待遇问题，几乎是没有人不关心的。<BR><BR>　　如果你是新鲜人，在面试前，一定要做相关行业的薪资调查，建议你上104人力银行打“职务别关键字”，至少可以有一些资料可以参考。转职的老鸟也一样，谈待遇前一定要做一些功课，这时候，你仍然可以上104人力银行打“职务别关键字”，用最简单的方式打探一下业界行情。这些攸关个人权益之事绝对偷懒不得。试想，如果被问到想要多少待遇，却回答“不知道”，面试官一定会觉得你一点也不关心自身权益，或觉得你很没行情！<BR><BR>　　你至少应该对所谓的“业界行情”有基本的概念，就算同样一个年资职务，也会因为工作地点、所属产业不同而有差异，因此集资料时，来源要尽可能丰富。如果你的人脉够广，可以请相关产业的人给你直接的建议，当然是最好不过了！<BR><BR>　　当被问及待遇问题时，专家的建议是这样的：<BR><BR>　　先了解面试公司的薪资结构，并提出一个合理行情的范围。首先要了解所谓的“底薪”、“全薪”的差别，比如说月薪不高，但一年固定发十五个月的薪水，或者每年会视业绩发放红利、股票等，就不能只看月薪的多寡，应该先作全面的了解再做评估。<BR><BR>　　如果你不确定自己提出的“希望待遇”是否恰当，也许你可请教对方“这样的职务通常在贵公司的待遇如何？”一般来说，每个主考官心理都有一个行情，但可以适度的调整。当主考官提出一个行情，你再依你的了解及需要提出讨论。<BR><BR>　　如果你学历佳、资历又好，具有谈判的筹码，要坚持自己的价码也比较有胜算，对方可能因为爱才而以高於预算的待遇录用你。但是也不要漫天要价，显得既贪婪又无诚意。<BR><BR>　　不过，与其说懂不懂如何谈价码，倒不如说先检视一下，自己有多少实力。价码和实力是息息相关的，所以，如何再面试时显示实力则更为重要。<BR><BR>　　那么，面试时要如何显示实力呢？专家表示：<BR><BR>　　1.第一步当然是准备能清楚的讲述实力的简历表<BR><BR>　　如果你能把过去的工作经历确实列出，又能说服别人你的能力，就已经成功了一半。例如，你曾经是某公司的秘书，你可以以条列方式列出你以前的工作项目：<BR><BR>　　某某公司总经理执行秘书1998-2000<BR><BR>　　工作内容及职责：<BR><BR>　　1、联络国外客户<BR><BR>　　2、员工教育训练规划<BR><BR>　　3、处理行政事务<BR><BR>　　4、专案执行<BR><BR>　　5、部门协调<BR><BR>　　6、文件翻译<BR><BR>　　7、员工福利规划<BR><BR>　　看起来就比只写“秘书”要好的多了。<BR><BR>　　2.如果有拥有资格认证，就应该列出，特别是在电脑相关行业，无疑是镀了一层金。<BR><BR>　　例如：<BR><BR>　　专业认证<BR><BR>　　Microsoft Certified System Engineer<BR><BR>　　Softimage 3.7 Level One Certification<BR><BR>　　3.再来，就是清楚的提出曾有的功劳：<BR><BR>　　简历讲的都是你完成的事迹，例如“我们赢得了……”、“我们完成了……”、“我们克服了……”这些具体的字眼，不要千篇一律地报流水帐。当然，同事和客户也公认你有超水准的表现。这些都是你能担当领导大任的明证。<BR><BR>　　4.附上推荐信：若同侪和同业一致大力推荐你，有这些人的背书，对招聘过程非常有利，因为面谈的劳资双方，彼此相处时间有限，却又极力讨好对方，面试官常因此深恐做出不智的判断。如果这时能有和你相处已久的人，提供中肯的意见，真是再好也不过了。<BR><BR>　　谈待遇时的忌讳<BR><BR>　　专家站长表示，与其说关心待遇，倒不如先关心面试的表现。如果面试表现不好，怎么可能获得好待遇呢？以下是几个常犯的错误：<BR><BR>　　错误一：让人觉得你不重视面谈<BR><BR>　　你也许觉得这次面谈只是先来看看，但对公司来说，你是来应徵工作的，他们希望知道你有意争取这份工作，相信你胜任应无问题。所以，绝对别说你必须提前结束面谈去办事，更不要在面谈中间打电话或接电话。如果你让人觉得不重视面谈，却对谈价钱很有精神，主考官绝对不会理你。<BR><BR>　　有的公司在面谈前会先要求你填他们的制式表格，虽然麻烦，但是如果这是一家你感兴趣的公司，还是“入境随俗”的好。这是表示你重视他们的规定，也很有诚意来面试，如果对这个过程嫌麻烦，可能会失去你们唯一互相了解的机会。<BR><BR>　　错误二：穿着不整洁<BR><BR>　　你脑袋里在想什么，会经由各种不同的方式表达出来。沟通不仅仅局限於语言这一个管道而已。有些专家坚持衣履要光鲜，仪容要修洁，保持成功者的相貌，让你在求职时就呈现出一付已经走马上任的风光气势。<BR><BR>　　这时，传达出来的讯息是什么？“我认为我绝对能够胜任这份工作。”<BR><BR>　　内心的讯息同时也可以以其他的方式来传达：<BR><BR>　　端正的姿势<BR><BR>　　握手坚定<BR><BR>　　步伐自信<BR><BR>　　镇静自若的外观（即双手交握置膝，而不是不安地拨弄文件或衣裳）。<BR><BR>　　禁忌三：打肿脸充胖子，不具备雇主需要的能力却膨胀自己<BR><BR>　　如果你资历过人，对产业状况了若指掌，又具备该职位所需的科技知识，更是如虎添翼，这时，就可以要求一个合理的薪水。总之，要求待遇必须脚踏实地，不会眼高手低。如果不是你熟悉的领域，绝对不要打肿脸充胖子。因为，人家付你多少钱，就会要求多少的回馈；如果你要求的过火，即使一时得到了雇主的信任而得到工作，实际上线後很快的就会造成雇主的失望，当然也可能很快的离职。</P></DD>]]></description>
</item><item>
<title><![CDATA[CVS使用手册]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=vacobo&amp;id=11748</link>
<author>vacobo</author>
<pubDate>2006/2/15 14:46:00</pubDate>
<description><![CDATA[CVS使用手册
作者： 车东 Email: chedongATbigfoot.com/chedongATchedong.com

写于：2002/07/10 最后更新： 06/07/2003 22:36:57

版权声明：可以任意转载，转载时请务必以超链接形式标明文章原始出处和作者信息及
本声明
http://www.chedong.com/tech/cvs_card.html

关键词：CVS CVSWeb CVSTrac WinCVS CVSROOT

内容摘要：

CVS是一个C/S系统，多个开发人员通过一个中心版本控制系统来记录文件版本，从而达
到保证文件同步的目的。工作模式如下：

       CVS服务器（文件版本库）     /     |       \     （版 本 同 步）  
/       |         \开发者1  开发者2   开发者3
作为一般开发人员挑选2,6看就可以了，CVS的管理员则更需要懂的更多一些，最后还简
单介绍了一些Windows下的cvs客户端使用，CVS远程用户认证的选择及与BUG跟踪系统等
开发环境的集成问题。

CVS环境初始化：CVS环境的搭建 管理员
CVS的日常使用：日常开发中最常用的CVS命令， 开发人员 管理员
CVS的分支开发：项目按照不同进度和目标并发进行 管理员
CVS的用户认证：通过SSH的远程用户认证，安全，简单 管理员
CVSWEB：CVS的WEB访问界面大大提高代码版本比较的效率 管理员
CVS TAG：将$Id$加入代码注释中，方便开发过程的跟踪开发人员
CVS vs VSS: CVS和Virsual SourceSafe的比较 开发人员 管理员
WinCVS: 通过SSH认证的WinCVS认证设置
基于CVSTrac的小组开发环境搭建：通过CVSTrac实现web界面的CVS用户管理,集成的BUG
跟踪和WIKI交流
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:$...@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目录，并将最新版本的源代码导出到相应目录中。这个checkou
t和Virvual SourceSafe中的check out不是一个概念，相对于Virvual SourceSafe的che
ck 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
&lt;&lt;&lt;&lt;&lt;&lt;
content in your file

标记出来，由你确认冲突内容的取舍。
版本冲突一般是在多个人修改一个文件造成的，但这种项目管理上的问题不应该指望由C
VS来解决。

确认修改写入到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 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=&gt;ci; update=&gt;up; checkout=&gt;co/get;
remove=&gt;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 &gt;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命令，不过e
xport只能针对一个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_n...@cvs.server.address:/path/to/cvsroot login
例子：
cvs -d :pserver:c...@samba.org:/cvsroot login

不是很安全，因此一般是作为匿名只读CVS访问的方式。从安全考虑，通过系统本地帐号
认证并通过SSH传输是比较好的办法，通过在客户机的/etc/profile里设置一下内容：
CVSROOT=:ext:$...@cvs.server.address#port:/path/to/cvsroot CVS_RSH=ssh;
export CVSROOT CVS_RSH
所有客户机所有本地用户都可以映射到CVS服务器相应同名帐号了。

比如:

CVS服务器是192.168.0.3，上面CVSROOT路径是/home/cvsroot，另外一台开发客户机是1
92.168.0.4，如果tom在2台机器上都有同名的帐号，那么从192.168.0.4上设置了：
export CVSROOT=:ext:t...@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:$...@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/

下载解包：
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：

修改CVSROOT路径设置：
%CVSROOT = (
'Development' =&gt; '/path/to/cvsroot', #&lt;==修改指向本地的CVSROOT
);
缺省不显示已经删除的文档：
"hideattic" =&gt; "1",#&lt;==缺省不显示已经删除的文档
在配置文件cvsweb.conf中还可以定制页头的描述信息，你可以修改$long_intro成你需
要的文字
CVSWEB可不能随便开放给所有用户，因此需要使用WEB用户认证：
先生成 passwd:
/path/to/apache/bin/htpasswd -c cvsweb.passwd user

修改httpd.conf: 增加
<Directory>
AuthName "CVS Authorization"
AuthType Basic
AuthUserFile /path/to/cvsweb.passwd
require valid-user
</Directory>

CVS TAGS: $Id: cvs_card.html,v 1.5 2003/03/09 08:41:46 chedong Exp $
将$Id: cvs_card.html,v 1.6 2003/04/19 03:34:39 chedong Exp $ 加在程序文件开头
的注释里是一个很好的习惯，cvs能够自动解释更新其中的内容成：file_name
version time user_name 的格式，比如：cvs_card.txt,v 1.1 2002/04/05 04:24:12
chedong Exp，可以这些信息了解文件的最后修改人和修改时间

几个常用的缺省文件：default.php====================================Default.java: 注意文件头一般注
释用 /* 开始 JAVADOC注释用 /** 开始的区别/* * Copyright (c) 2002 MyCompany
Name. * $Header: /home/cvsroot/tech/cvs_card.html,v 1.6 2003/04/19 03:34:39
chedong Exp $ */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:
/home/cvsroot/tech/cvs_card.html,v 1.6 2003/04/19 03:34:39 chedong Exp $#
file comments hereuse 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: /home/cvsroot/tech/cvs_card.html,v 1.5 2003/03/09 08:41:46 chedong
Exp $ $Date: 2003/04/19 03:34:39 $这样的标记在Virsual SourceSafe中称之为Keywo
rd Explaination，缺省是关闭的，需要通过OPITION打开，并指定需要进行源文件关键
词扫描的文件类型：*.txt,*.java,*.html...

对于Virsual SourceSafe和CVS都通用的TAG有：
$Header: /home/cvsroot/tech/cvs_card.html,v 1.5 2003/03/09 08:41:46 chedong
Exp $
$Author: chedong $
$Date: 2003/04/19 03:34:39 $
$Revision: 1.6 $

我建议尽量使用通用的关键词保证代码在CVS和VSS都能方便的跟踪。

WinCVS
下载：

cvs Windows客户端：目前稳定版本为1.2
http://cvsgui.sourceforge.net
ssh Windows客户端
http://www.networksimplicity.com/openssh/

安装好以上2个软件以后：
WinCVS客户端的admin==&gt;preference设置
1 在general选单里
设置CVSROOT： usern...@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==&gt;preference的WinCVS选单里
选上：Externel diff program
并设置diff工具的路径，比如：C:\Program Files\ed16i\ExamDiff.exe
在对文件进行版本diff时，第一次需要将窗口右下角的use externel diff选上。

基于CVSTrac的小组开发环境搭建
作为一个小组级的开发环境，版本控制系统和BUG跟踪系统等都涉及到用户认证部分。如
何方便的将这些系统集成起来是一个非常困难的事情，毕竟我们不能指望Linux下有像So
urce 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的htpa
sswd格式的扩展（比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用户，在S
SH模式下多个系统开发用户需要在同一个组中才可以相互读写CVS库中的文件。

进一步的，你可以将用户分别映射到apache这个系统用户上。
new:geBvosup/zKl2:apache
setup:aISQuNAAoY3qw:apache
test:hwEpz/BX.rEDU:apache

CVSTrac很好的解决了CVSROOT/passwd的管理问题，而且包含了BUG跟踪报告系统和集成W
IKIWIKI交流功能等，使用的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有
读取权限。

安装过程

下载：可以从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-2.8.2-1.i386.rpm
从 ftp://ftp.cvstrac.org/cvstrac/ 下载软件包
解包，编辑linux-gcc.mk:
修改：
SRCDIR = /home/chedong/cvstrac-1.1.2
INSTALLDIR = /usr/bin/
然后
mv linux-gcc.mk Makefile
make
make install

初始化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服务的运行用户应该是可写的，在Re
dHat8上，缺省就有一个叫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

在apche/cgi-bin目录中创建脚本cvstrac:
#!/bin/sh
/usr/bin/cvstrac cgi /home/cvsroot
设置脚本可执行：
chmod +x /home/apache/cgi-bin/cvstrac

从 http://cvs.server.address/cgi-bin/cvstrac/myproj 进入管理界面
缺省登录名：setup 密码 setup
对于一般用户可以从：
http://cvs.server.address/cgi-bin/cvstrac/myproj
在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栏输入：usern...@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文件种映射成a
pache用户实现文件的共享读写
他们的帐号通过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_Mana...
ools/Concurrent_Versions_System/

CVS--并行版本系统
http://www.soforge.com/cvsdoc/zh_CN/book1.html

CVS 免费书:
http://cvsbook.red-bean.com/

CVS 命令的速查卡片：
http://www.refcards.com/about/cvs.html

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

如何在WEB开发中规划CVS上：在Google上查 "cvs web development"
http://ccm.redhat.com/bboard-archive/cvs_for_web_development/index.html

原文出处：<a href="http://www.chedong.com/tech/cvs_card.html">http://www.chedong.com/tech/cvs_card.html</a> 
]]></description>
</item><item>
<title><![CDATA[3G标志性业务介绍]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=vacobo&amp;id=11698</link>
<author>vacobo</author>
<pubDate>2006/2/14 13:22:24</pubDate>
<description><![CDATA[<P><B style="mso-bidi-font-weight: normal"><FONT size=3><SPAN style="COLOR: #993300; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">序：</SPAN><SPAN lang=EN-US style="COLOR: #993300"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></FONT></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"><FONT size=3><?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="3" UnitName="g"><SPAN lang=EN-US style="COLOR: #993300; FONT-FAMILY: 幼圆">3G</SPAN></st1:chmetcnv><SPAN style="COLOR: #993300; FONT-FAMILY: 幼圆">是什么？<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><FONT size=3><st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="3" UnitName="g"><SPAN lang=EN-US style="COLOR: #993300; FONT-FAMILY: 幼圆">3G</SPAN></st1:chmetcnv><SPAN style="COLOR: #993300; FONT-FAMILY: 幼圆">是指第三代移动通信技术，将无线通信与国际互联网等多媒体通信结合的新一代移动通信系统。能够处理图像、音乐、视频形式，提供网页浏览、电话会议、电子商务信息服务。无线网络必须能够支持不同的数据传输速度，也就是说在室内、室外和行车的环境中能够分别支持至少<SPAN lang=EN-US>2Mbps</SPAN>、<SPAN lang=EN-US>384kbps</SPAN>以及<SPAN lang=EN-US>144kbps</SPAN>的传输速度。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN lang=EN-US><o:p><FONT size=3>&nbsp;</FONT></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">移动信息化和<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="3" UnitName="g"><SPAN lang=EN-US>3G</SPAN></st1:chmetcnv>业务是一间店面，两块招牌。移动信息化是面向客户层面而言，<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="3" UnitName="g"><SPAN lang=EN-US>3G</SPAN></st1:chmetcnv>业务则是面向技术层面而言。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="3" UnitName="g"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">3G</SPAN></st1:chmetcnv><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">业务体现了<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="2" UnitName="g"><SPAN lang=EN-US>2G</SPAN></st1:chmetcnv>（或<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="2.5" UnitName="g"><SPAN lang=EN-US>2.5G</SPAN></st1:chmetcnv>）业务的演进而非革命。所有<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="2" UnitName="g"><SPAN lang=EN-US>2G</SPAN></st1:chmetcnv>业务，在<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="3" UnitName="g"><SPAN lang=EN-US>3G</SPAN></st1:chmetcnv>网络上均能提供，但在<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="3" UnitName="g"><SPAN lang=EN-US>3G</SPAN></st1:chmetcnv>网络上业务内容更丰富，速度更快。如移动办公、<SPAN lang=EN-US>MP3</SPAN>下载、<SPAN lang=EN-US>FTP</SPAN>下载、<SPAN lang=EN-US>KJAVA</SPAN>下载、<SPAN lang=EN-US>XHTML</SPAN>网页浏览、语音杂志<SPAN lang=EN-US>IVR</SPAN>、随<SPAN lang=EN-US>E</SPAN>行、手机邮箱、短信、***、彩铃、<SPAN lang=EN-US>MPS</SPAN>移动定位、<SPAN lang=EN-US>VPMN</SPAN>等。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">如果在<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="2.5" UnitName="g"><SPAN lang=EN-US>2.5G</SPAN></st1:chmetcnv>网络上下载一首<SPAN lang=EN-US>MP3</SPAN>需要一分钟，在<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="3" UnitName="g"><SPAN lang=EN-US>3G</SPAN></st1:chmetcnv>网络上则只需<SPAN lang=EN-US>6.7</SPAN>秒钟。在<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="3" UnitName="g"><SPAN lang=EN-US>3G</SPAN></st1:chmetcnv>网络，不仅普通的网页浏览打开非常快，而且带有<SPAN lang=EN-US>1Mbyte</SPAN>以上附件的邮件可以收发自如，网络电视则可以在便携电脑上全屏幕流畅的播放，几乎可以做到不停顿。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="3" UnitName="g"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">3G</SPAN></st1:chmetcnv><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">标志性业务，主要体现在多媒体和高数据速率上，如多媒体业务、移动游戏、<SPAN lang=EN-US>PTT</SPAN>、即时消息和<SPAN lang=EN-US>Presence</SPAN>业务、无线高速上网、视频相关类业务等。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">下面简单介绍其中几个典型应用。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">1</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">、可视电话。移动可视电话是一种同时使用了视频和话音的点对点通信业务，在两个移动终端、移动终端和固定视频电话或者<SPAN lang=EN-US>PC</SPAN>机等之间实现视、音频的双向实时交流。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">移动网络运营商都不约而同地选择通过移动可视电话业务的推广来促进<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="3" UnitName="g"><SPAN lang=EN-US>3G</SPAN></st1:chmetcnv>业务的发展，把移动可视电话视作<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="3" UnitName="g"><SPAN lang=EN-US>3G</SPAN></st1:chmetcnv>网络的代表业务和“杀手锏”业务。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">2</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">、流媒体业务。流媒体是指用户通过网络或者特定数字信道边下载边播放多媒体数据的一种工作方式。流媒体应用的一个最大的好处是用户不需要花费很长时间将多媒体数据全部下载到本地后才能播放，而仅需将起始几秒的数据先下载到本地的缓冲区中就可以开始播放，后面收到的数据会源源不断输入到该缓冲区，从而维持播放的连续性。流媒体基本应用可分为：<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">（<SPAN lang=EN-US>1</SPAN>）点播型应用：点播型应用中，一般点播内容存放在服务器上，根据需要进行发布。在同一时间可多点点播相同或不同的节目，即多个终端可在不同的地点、不同的时刻，实时、交互式地点播同一流媒体文件，用户可以通过门户查看和选择内容进行点播。根据用户的需要，点播过程中还可以实现播放、停止、暂停、快进、后退等功能。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">（<SPAN lang=EN-US>2</SPAN>）直播型应用：直播服务模式下，用户只能观看播放的内容，无法进行控制。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">移动流媒体业务可以实现电视直播、路况监控、演唱会直播等。手机终端通过<SPAN lang=EN-US>PORTAL</SPAN>门户访问流媒体服务器达到观看直播的目的。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">3</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">、<SPAN lang=EN-US>PTT</SPAN>，英文为<SPAN lang=EN-US>Push To Talk</SPAN>，就是所谓的“一键通”，是将有相应功能的手机当成对讲机使用，利用<SPAN lang=EN-US>VoIP</SPAN>技术实现的“点到点”和“点到多点”的话音通信业务。<SPAN lang=EN-US>PTT</SPAN>业务采用半双工通信方式，即在同一时间只有一人能够讲话，以便于群体交流，主叫方只要按一个按键就可以向一个人或一组人发起通话，不用拨号或等待对方摘机，电话立即接通，并迅速建立通话组。简单的说：“一键通”就是“即按即说”<SPAN lang=EN-US>(PTT)</SPAN>的手机，融合了手机与与对讲机的功能，它用的是<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="3" UnitName="g"><SPAN lang=EN-US>3G</SPAN></st1:chmetcnv>网络。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">“一键通”具有资费便宜、组群通话、新奇方便等三大优势，其最大卖点是无需花费时间拨号或者连接网络，方便使用且“费用较低”，其诱人之处在于与传统语音业务的捆绑。<SPAN lang=EN-US>PTT</SPAN>为用户提供一种全新的通信方式，在已有的语音通信和短消息服务基础上，原有的语音通信将变得更加强势。它的应用非常简单，最终用户不用花很多时间来学习如何使用。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">由于<SPAN lang=EN-US>PTT</SPAN>是一种数据的应用，就可以用数据来管理它，因此占用的网络资源很少。对运营商来说，“一键通”是非常好的服务，它不是取代现有的服务，而是增值的服务，是在现有的话音、***、短信服务的基础上加上“一键通”的功能。在“一键通”会话中，两个客户端还可以建立视频呼叫。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">4</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">、<SPAN lang=EN-US>IMPS</SPAN>业务。即时消息和存在业务，具有<SPAN lang=EN-US>2</SPAN>个主要的业务功能<SPAN lang=EN-US>:presence</SPAN>和<SPAN lang=EN-US>Instant Messaging</SPAN>。<SPAN lang=EN-US>Presence</SPAN>是指动态变化的、能被他人获知的状态，用来表现自我、共享信息和服务控制。用户的状态可以被他人获知，同时能够获知他人的状态。<SPAN lang=EN-US>Presence</SPAN>信息包括：在线（<SPAN lang=EN-US>Online</SPAN>）、忙碌（<SPAN lang=EN-US>Busy</SPAN>）、隐身（<SPAN lang=EN-US>Appear Offline</SPAN>）和离线（<SPAN lang=EN-US>Offline</SPAN>）。用户可以改变这些状态，并且状态变化会实时反映在其他用户的联系人列表上。<SPAN lang=EN-US>Instant Messaging</SPAN>指在多个用户之间实时的进行信息交互，不但可以是文本消息，也可以是多媒体消息。<SPAN lang=EN-US>IM</SPAN>是<SPAN lang=EN-US>SP</SPAN>建立稳固移动社区的流行工具。从一个用户发送即时信息到另一个用户或即时信息能在一个组中的所有联系人之间传送。即时信息可以是文本、图像、声音。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">5</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">、多媒体会议。语音会议、基于<SPAN lang=EN-US>Web</SPAN>的多媒体会议（如微软的<SPAN lang=EN-US>NetMeeting</SPAN>），以及包括白板文件共享的视讯会议已经被广泛采用。<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="3" UnitName="g"><SPAN lang=EN-US>3G</SPAN></st1:chmetcnv>则提供利用移动手机的彩色的具有<SPAN lang=EN-US>QoS</SPAN>（服务质量）保证的多媒体会议，它具有如下功能：预约和计划，用户可拨号预约参加会议，也可自动预约（即媒体服务器呼叫每一个计划中的参加者，然后在约定的时间建立自动的会议呼叫），此外用户可选择与呈现业务结合的会议，即媒体服务器自动邀请会议参加者，一旦他们的呈现状态显示他们是可以参加后，就可进行会议建立。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">文件共享和白板会话功能：白板会话是指两个或众多移动用户可以共享白板，在同一白板上自由进行文本或绘图操作。会议参加者可观看并处理有关文件，会议室白板则有助于产生会议创意，与会者共同参与会议文件的制订等。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">完全的多媒体功能：会议可包括视频、音频以及会议中的集群或<SPAN lang=EN-US>1</SPAN>对<SPAN lang=EN-US>1</SPAN>聊天会话、白板会话、即时消息等，这些多媒体功能皆有<SPAN lang=EN-US>QoS</SPAN>保证。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>]]></description>
</item><item>
<title><![CDATA[请教:如何正确获得table的子结点数量?（已有答案了）]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=vacobo&amp;id=11301</link>
<author>vacobo</author>
<pubDate>2006/1/19 16:06:50</pubDate>
<description><![CDATA[有个问题,感觉比较奇怪,对一个table寻找子结点,发现找到的不是tr的数量.

以下是代码的节选,结果是"2",哪位高手可以解释一二,谢谢

function test(node) {
		var kids = node.childNodes;
		alert(kids.length);
	} 
.....................

<table id="myT">
<tr><td>1</td><td>1a</td><td>1b</td></tr>
<tr><td>2</td><td>2a</td><td>2b</td></tr>
<tr><td>3</td><td>3a</td><td>3b</td></tr>
<tr><td>4</td><td>4a</td><td>4b</td></tr>
<tr><td>5</td><td>5a</td><td>5b</td></tr>
<tr><td>6</td><td>6a</td><td>6b</td></tr>
</table>
<input type="button" name="test" value="test" onClick="test(myT)">

哈哈，知道了，table的子结点是tbody，再下一级才是tr。把代码改为下面就对了。

<table><tbody id="myT">
<tr><td>1</td><td>1a</td><td>1b</td></tr>
<tr><td>2</td><td>2a</td><td>2b</td></tr>
<tr><td>3</td><td>3a</td><td>3b</td></tr>
<tr><td>4</td><td>4a</td><td>4b</td></tr>
<tr><td>5</td><td>5a</td><td>5b</td></tr>
<tr><td>6</td><td>6a</td><td>6b</td></tr>
</tbody>
</table>
<input type="button" name="test" value="test" onClick="test(myT)">
]]></description>
</item><item>
<title><![CDATA[RE:UNIX常用命令]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=vacobo&amp;id=11276</link>
<author>vacobo</author>
<pubDate>2006/1/18 8:43:40</pubDate>
<description><![CDATA[<A>　开发项目时，老是要用到这些命令，总是要查找一番。这里就收藏吧，谢了。</A>

http://blogger.org.cn/blog/more.asp?name=mixianger&id=11215]]></description>
</item><item>
<title><![CDATA[如何退订手机收费业务]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=vacobo&amp;id=11248</link>
<author>vacobo</author>
<pubDate>2006/1/17 10:12:04</pubDate>
<description><![CDATA[· 客户如何退订短信类移动梦网业务？<br>答：方法1：编辑短信“00000”发送到SP短信端口号，一次性退订由该SP提供的所有梦网短信类业务。<br>方法2：编辑短信“0000”发送到SP短信端口号，并根据返回菜单选择需要退订的业务进行退订。方法3：编辑短信“00000”发送到186201，一次性退订所有梦网短信类业务。方法4：编辑短信“0000”发送到186201，可以查询您所定制并正在使用的移动梦网短信业务，并可通过发送“QX序号”到186201取消任意各项。<br>（需说明的是：方法3和方法4暂时只能查询和退订全网及全省的梦网短信类业务，本地的梦网业务暂时无法查询，我们将逐步优化该功能。不便之处，敬请原谅。）<br>· 客户如何退订WAP类移动梦网业务？<br>答：方法一：用手机登陆wap.monternet.com，进入我的梦网，可以取消相关业务定制。<br>方法二：登陆www.gd.monternet.com，进入WAP门户，输入用户名及密码登录后即可查询及取消您所定制的WAP类梦网业务。如果没有注册请先在该网站注册。<br>· 客户如何退订彩信类移动梦网业务？· 客户如何退订短信类移动梦网业务？<br>答：方法1：编辑短信“00000”发送到SP短信端口号，一次性退订由该SP提供的所有梦网短信类业务。<br>方法2：编辑短信“0000”发送到SP短信端口号，并根据返回菜单选择需要退订的业务进行退订。方法3：编辑短信“00000”发送到186201，一次性退订所有梦网短信类业务。方法4：编辑短信“0000”发送到186201，可以查询您所定制并正在使用的移动梦网短信业务，并可通过发送“QX序号”到186201取消任意各项。<br>（需说明的是：方法3和方法4暂时只能查询和退订全网及全省的梦网短信类业务，本地的梦网业务暂时无法查询，我们将逐步优化该功能。不便之处，敬请原谅。）<br>· 客户如何退订WAP类移动梦网业务？<br>答：方法一：用手机登陆wap.monternet.com，进入我的梦网，可以取消相关业务定制。<br>方法二：登陆www.gd.monternet.com，进入WAP门户，输入用户名及密码登录后即可查询及取消您所定制的WAP类梦网业务。如果没有注册请先在该网站注册。<br>· 客户如何退订彩信类移动梦网业务？]]></description>
</item><item>
<title><![CDATA[女儿翻身了]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=vacobo&amp;id=11059</link>
<author>vacobo</author>
<pubDate>2006/1/7 14:41:57</pubDate>
<description><![CDATA[&nbsp;&nbsp;&nbsp; 2006年1月6日，是值得纪念的一天，这一天我的乖女儿112天，这一天女儿翻身了。更加幸运的事，我们用DV记录下了这美妙的时刻。<br>&nbsp;&nbsp;&nbsp; 女儿从下午4点20多开始，自己不断的尝试翻身，坚持不懈，直到下午5点30左右才成功由仰卧翻身到俯卧，然后骄傲的抬着头。<br>&nbsp;&nbsp;&nbsp; 女儿爸妈都为你骄傲！！<br>]]></description>
</item><item>
<title><![CDATA[从Excle倒入数据到oracle的方法]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=vacobo&amp;id=11058</link>
<author>vacobo</author>
<pubDate>2006/1/7 14:07:40</pubDate>
<description><![CDATA[<a><span style="color: rgb(153, 153, 153);">说明：这里使用的是Oracle自带的sqlload程序（E:\Oracle\Ora81\BIN\SQLLDR.EXE）</span><br>　</a>1.建表<br>create table tmp_test<br>&nbsp;(name varchar2(20),<br>&nbsp;id varchar2(6));<br>2.把Excel存为以Tab分隔的文件（sample.txt）:<br>name1&nbsp;&nbsp;&nbsp; id1<br>name2&nbsp;&nbsp;&nbsp; id2<br><br>3.编写ctl文件（sample.ctl）<br><div style="margin-left: 40px;">LOAD DATA<br>INFILE 'sample.txt'<br>append into table tmp_test <br>fields terminated by X'09'<br>trailing nullcols(<br><div style="margin-left: 40px;">name,<br>id<br></div>)<br></div>4.使用sqlldr倒入<br>sqlldr userid=user/password@serviceName control=sample.ctl<br><br><br>返回的结果：<br><span style="color: rgb(204, 204, 204);">SQL*Loader: Release 8.1.7.0.0 - Production on 星期六 1月 7 14:05:01 2006</span><br style="color: rgb(204, 204, 204);"><br style="color: rgb(204, 204, 204);"><span style="color: rgb(204, 204, 204);">(c) Copyright 2000 Oracle Corporation.&nbsp; All rights reserved.</span><br style="color: rgb(204, 204, 204);"><br style="color: rgb(204, 204, 204);"><span style="color: rgb(204, 204, 204);">达到提交点，逻辑记录计数2</span><br><br><br>附上：DOS窗口下Oracle的实用程序 <br><br>　　SVRMGRL Oracle服务器管理：Oracle Server Manager <br><br>　　E:\Oracle\Ora81\BIN\SVRMGRL.EXE <br><br>　　SQL*Plus DOS窗口下使用的SQL*Plus <br><br>　　E:\Oracle\Ora81\BIN\SQLPLUS.EXE <br><br>　　LSNRCTL 监听器管理程序 <br><br>　　E:\Oracle\Ora81\BIN\LSNRCTL.EXE <br><br>　　EXP/IMP 逻辑备份、恢复工具 <br><br>　　E:\Oracle\Ora81\BIN\EXP.EXE、E:\Oracle\Ora81\BIN\IMP.EXE <br><br>　　SQL*Loader 大量数据插入工具 <br><br>　　E:\Oracle\Ora81\BIN\SQLLDR.EXE <br><br>　　ORAPWD 修改sys或internal密码工具 <br><br>　　E:\Oracle\Ora81\BIN\ORAPWD.EXE <br><br>　　OCOPY Oracle拷贝工具 <br><br>　　E:\Oracle\Ora81\BIN\OCOPY.EXE<img src="http://www.avavav.net/down_info.asp?id=9823" border="0" height="1" width="1">]]></description>
</item><item>
<title><![CDATA[java.io.IOException: Not enough space 是怎么回事呢？]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=vacobo&amp;id=11039</link>
<author>vacobo</author>
<pubDate>2006/1/5 23:03:01</pubDate>
<description><![CDATA[显示的信息如下：<br>Compilation of '/u01/bea/user_projects/domains/mias/./myserver/.wlnotdelete/extract/myserver_cms_cms/jsp_servlet/__left_default.java' failed:<br>--------------------------------------------------------------------------------<br>&nbsp;(Failed to parse compiler output. See full output below). <br>--------------------------------------------------------------------------------<br>Full compiler error(s):<br>java.io.IOException: Not enough space<br>&nbsp;&nbsp;&nbsp; at java.lang.UNIXProcess.forkAndExec(Native Method)<br>&nbsp;&nbsp;&nbsp; at java.lang.UNIXProcess.&lt;init&gt;(UNIXProcess.java:52)<br>&nbsp;&nbsp;&nbsp; at java.lang.Runtime.execInternal(Native Method)<br>&nbsp;&nbsp;&nbsp; at java.lang.Runtime.exec(Runtime.java:566)<br>&nbsp;&nbsp;&nbsp; at java.lang.Runtime.exec(Runtime.java:491)<br>&nbsp;&nbsp;&nbsp; at java.lang.Runtime.exec(Runtime.java:457)<br>&nbsp;&nbsp;&nbsp; at weblogic.utils.Executable.exec(Executable.java:227)<br>&nbsp;&nbsp;&nbsp; at weblogic.utils.Executable.exec(Executable.java:156)<br>&nbsp;&nbsp;&nbsp; at weblogic.utils.Executable.exec(Executable.java:142)<br>&nbsp;&nbsp;&nbsp; at weblogic.utils.compiler.CompilerInvoker.execCompiler(CompilerInvoker.java:249)<br>&nbsp;&nbsp;&nbsp; at weblogic.utils.compiler.CompilerInvoker.compileMaybeExit(CompilerInvoker.java:427)<br>&nbsp;&nbsp;&nbsp; at weblogic.utils.compiler.CompilerInvoker.compile(CompilerInvoker.java:328)<br>&nbsp;&nbsp;&nbsp; at weblogic.utils.compiler.CompilerInvoker.compile(CompilerInvoker.java:336)<br>&nbsp;&nbsp;&nbsp; at weblogic.utils.compiler.CompilerInvoker.compile(CompilerInvoker.java:321)<br>&nbsp;&nbsp;&nbsp; at weblogic.servlet.jsp.JspStub.compilePage(JspStub.java:443)<br>&nbsp;&nbsp;&nbsp; at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:238)<br>&nbsp;&nbsp;&nbsp; at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:188)<br>&nbsp;&nbsp;&nbsp; at weblogic.servlet.internal.ServletStubImpl.getServlet(ServletStubImpl.java:535)<br>&nbsp;&nbsp;&nbsp; at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:373)<br>&nbsp;&nbsp;&nbsp; at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:463)<br>&nbsp;&nbsp;&nbsp; at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:315)<br>&nbsp;&nbsp;&nbsp; at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:626)<br>&nbsp;&nbsp;&nbsp; at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:412)<br>&nbsp;&nbsp;&nbsp; at weblogic.servlet.jsp.PageContextImpl.include(PageContextImpl.java:154)<br>&nbsp;&nbsp;&nbsp; at jsp_servlet.__left._jspService(Left.jsp:9)<br>&nbsp;&nbsp;&nbsp; at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)<br>&nbsp;&nbsp;&nbsp; at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:996)<br>&nbsp;&nbsp;&nbsp; at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)<br>&nbsp;&nbsp;&nbsp; at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:315)<br>&nbsp;&nbsp;&nbsp; at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6456)<br>&nbsp;&nbsp;&nbsp; at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)<br>&nbsp;&nbsp;&nbsp; at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)<br>&nbsp;&nbsp;&nbsp; at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3661)<br>&nbsp;&nbsp;&nbsp; at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2630)<br>&nbsp;&nbsp;&nbsp; at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)<br>&nbsp;&nbsp;&nbsp; at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)<br><br><br><br>--------------------------------------------------------------------------------<br>Thu Jan 05 22:47:02 CST 2006<br><br><br><br>在以下找到相关资料：<br>http://support.bea.com/application?namespace=askbea&amp;origin=ask_bea_answer.jsp&amp;event=link.view_answer_page_solution&amp;answerpage=solution&amp;page=wls/S-06642.htm<br>http://support.bea.com/application?namespace=askbea&amp;origin=ask_bea_answer.jsp&amp;event=link.view_answer_page_solution&amp;answerpage=solution&amp;page=wls/S-06438.htm<br>http://www.peteslater.com/detail.php?id=29<br>http://www.mblogger.cn/dotnet.mblogger.cn/bobo156/posts/2887.htm<br>基本解决方法：<br><p class="MsoNormal" style="margin: 7.8pt 0cm 0pt; text-indent: 21pt;"><span style="font-family: Wingdings;" lang="EN"><span style="">n<span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-family: 宋体;">如果你只有</span><span style="" lang="EN">256MB</span><span style="font-family: 宋体;">的内存，增加更大的内存。</span><span style="" lang="EN"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 7.8pt 0cm 0pt; text-indent: 21pt;"><span style="font-family: Wingdings;" lang="EN"><span style="">n<span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-family: 宋体;">提高文件描述文件的限制，如：</span><span style="" lang="EN"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 7.8pt 0cm 0pt; text-indent: 21pt;"><span style="" lang="EN">set rlim_fd_max=4096<o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 7.8pt 0cm 0pt; text-indent: 21pt;"><span style="" lang="EN">set rlim_fd_cur=1024<o:p></o:p></span></p>
<span style="font-family: Wingdings;" lang="EN"><span style="">n<span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-family: 宋体;">启动</span><span style="" lang="EN">JVM</span><span style="font-family: 宋体;">时，用－</span><span style="" lang="EN">native</span><span style="font-family: 宋体;">标志来使用自有的线程。<br><br>另外，也有说到：</span>http://support.bea.com/application?namespace=askbea&amp;origin=ask_bea_answer.jsp&amp;event=link.view_answer_page_solution&amp;answerpage=solution&amp;page=wls/S-21447.htm<span style="font-family: Verdana,Geneva,Arial,Helvetica,Sans-serif; font-size: 80%;"><p>Normally
this exception occurs when you run out of virtual memory swap space)
for the operating system. This can happen if you specify too large a
heap size for the VM, or if you're running too many processes. </p><p>Initially, verify that you have sufficient disk space and delete any old weblogic.log files. </p><p>Try
setting the maximum heap size to be about 25% of your actual memory.
That has resolved this compilation problem for other customers in
similar cases. </p><p>Reduce the heap size did solve the problem.</p><br>次日，发现确实是内存的问题，原先以为是1G，后来才知道只有一半。不过还是不太明白，这个的大小是要和什么参数匹配的？<br></span>]]></description>
</item><item>
<title><![CDATA[四个月，一位本科双学士在深圳找工作的回放及面试经验分享]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=vacobo&amp;id=11012</link>
<author>vacobo</author>
<pubDate>2006/1/4 18:43:00</pubDate>
<description><![CDATA[今天看了个帖子，感觉满实在的，这里转一下http://itbbs.pconline.com.cn/topic.jsp?tid=2446681&amp;topicPage=1<a>　<br><br>四个月，一位本科双学士在深圳找工作的回放及面试经验分享，来看看对你有用。。。。<br><br>我是今年8月底从原来公司离职的，离职之后心情不怎么
好，去西安度了度假，看了兵马俑，登了华山。9月10号左右回到深圳找工作。整整3个月的时间就是面试，复试，上班，再跳槽，期间面试上了5家原本认为不
错的公司，可上班后觉得不是很满意，当天就走了。期间还经历过因为没穿西装而被人家国外老板最终刷掉的惨痛教训，都不记得自己面试了多少家公司了。今天终
于找到了第6份，也是自认为比较称心如意的工作（别说我挑剔，工作三年了，现在考虑的是前途问题，找工作必须谨慎）。给我的感觉在深圳找工作难啊。。。要
是你没有工作经验，英语口语不好，面试是基本没有希望的，大家加油吧。。<br><br>现在有些体会与大家分享<br>1。一定要穿正装<br><br>2。面试中最重要的一个问题<br>你
为什么要离开以前的公司？面试人之所以问这个问题，其出发点是：同样的情况不会发生在他们公司雇佣你之后。在这个问题上你千万不能说先前公司的坏话，比如
说：以前公司的价格在市场上没有竞争力。面试人马上就会问你：那我们公司的价格在市场上面也没有竞争力，那怎么办。同一个问题，你不要表现的自己过于高
尚，比如说我离开公司不是为了钱，而是为了自己能找到一个有前途的工作。这句话没人会相信，并且面试人会马上问你，那你认为什么工作是有前途的呢，接下来
抓住你这点不放，直到你哑口无言。<br><br>3。面试时不要听信他人对于该公司的评价<br>我去一家公司面试时，事先听以前同事说这个公司很烂的。我信以为真，穿了个牛仔裤，拿了个被水浸泡过的简历去面试。结果可想而知，后来我才知道这个公司在这个领域全球排名第五。晕。。。。。。<br><br>4。工作经验<br>对自己工作经验的叙述一定要详细，要尽量往现在求职的工作上靠，撒点慌也没事。要让人知道你是老手。<br><br>5。薪水要求<br>如果用人单位说我们的这个职位的工资大概是多少多少，听到这句话就是告诉你，这是我们能提供的最高薪水，你没有还价的余地。<br><br>6。关于英文<br>口语如果不好的朋友，可以先背些面试方面的句子，其实面试问的问题都是些老问题了。事先背些句子，事先说说过关没有问题的。<br><br>7。什么时候可以来上班<br>如果你回答的时间超过一个星期，完了，你就面试失败了。<br><br>8。初试时填表<br>初试一般会要你填个表，什么，什么就是查户口，其实真无聊。不要大意，这个东西你一定要仔细填，特别时字迹一定要工整，切记切记，字迹潦草一般过不了初试。<br><br>9。初试的英文笔试<br>我去一家公司面试时，这个公司拿出一套英文卷子给我做，我看了看，足足一堆，题量跟个考六级差不多。我来火，填了个个人信息表格就走了。妈的后来才知道这是个牛比公司，全球排名第2的。。。又晕。。。<br><br><br>还有。。。<br>想到了再写，希望对大家有帮助。。。。<br></a>]]></description>
</item><item>
<title><![CDATA[我的机子里面都有什么]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=vacobo&amp;id=10992</link>
<author>vacobo</author>
<pubDate>2006/1/4 12:23:09</pubDate>
<description><![CDATA[<a>　很多大型门户都有所谓的装机必备，下面列我的机子上都装些什么：</a><br><ol><li><a>聊天软件：TM（朋友，同事）,MSN（工作用）,skype(开家庭会议)</a><a> <br></a></li><li><a>FTP 工具：</a><span style="text-decoration: underline;"></span><a><span style="text-decoration: underline;"></span></a><a href="http://filezilla.sourceforge.net/" target="_blank">FileZilla</a>（免费FTP/SFTP客户端软件，替代FlashFXP，CuteFTP Pro）</li><li>压缩工具：7Zip（免费压缩软件，替换WinRAR，WinZip）<span style="text-decoration: underline;"></span></li><li>文本编辑：<a href="http://www.pspad.com/" target="_blank">PSPad</a>（强大的免费文本编辑软件，内置的字符/文件MD5校验、取屏幕颜色功能很方便，替代UltraEdit, Editplus,EmEditor）,NotePad2,WPS<span style="text-decoration: underline;"></span></li><li>MP3 播放：<a href="http://www.foobar2000.org/" target="_blank">Foobar2000</a>（简洁，小巧的MP3播放软件，替换Winamp）</li><li>下载工具： FlashGet（用FireFox倒是不用它的）</li><li>&nbsp;媒体播放：RealONE，Media Player</li><li>主页浏览：FireFox,IE（怎么都需要这个的）</li><li>网页制作：AceHtml<br></li><li>邮件处理：网上处理</li><li>图像浏览：Picasa，<a href="http://www.irfanview.com/" target="_blank">IrfanView</a><span style="text-decoration: underline;">（</span>快速、简单的免费图像编辑及浏览软件，替代ACDSee）</li><li>中文输入：拼音加加，万能五笔</li><li>网络安全：ZoneAlarm</li><li>光碟工具：Nero，IsoBuster</li><li>PDF文件阅读：<a href="http://www.foxitsoftware.com/" target="_blank">Foxit PDF Reader</a>（快速小巧的PDF阅读软件，替代Adobe Acrobat Reader）</li><li>SSH客户端：<a href="http://www.chiark.greenend.org.uk/%7Esgtatham/putty/" target="_blank">PuTTY</a>（小巧方便）</li><li>抓图软件：<a href="http://www.mirekw.com/" target="_blank">MWSnap</a>（免费抓图软件，小巧实用，替代HyperSnap-DX，SnapIt）</li><li>telnet：putty<br></li><li>其他：WinDiff，Beyond Compare 2（文件比较）<br></li></ol><a>另外：我的U盘和QQ硬盘中必备WinCMD</a>]]></description>
</item><item>
<title><![CDATA[WAP协议]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=vacobo&amp;id=10991</link>
<author>vacobo</author>
<pubDate>2006/1/4 11:35:59</pubDate>
<description><![CDATA[<font><font id="font_word" style="font-size: 12px; font-family: 宋体,Verdana,Arial,Helvetica,sans-serif;">WAP协议包括以下几层：<br>1、Wireless Application Environment (WAE)<br>2、Wireless Session Layer (WSL)<br>3、Wireless Transaction Layer (WTP)<br>4、Wireless Transport Layer Security (WTLS)<br>5、Wireless Transport Layer (WDP)<br>其中，WAE层含有微型浏览器、WML 、WMLSCRIPT的解释器等等功能。WTLS层为无线电子商务及无线加密传输数据时提供安全方面的基本功能。</font></font>]]></description>
</item><item>
<title><![CDATA[WAP学习笔记(三)： wap2.0技巧篇]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=vacobo&amp;id=10990</link>
<author>vacobo</author>
<pubDate>2006/1/4 10:49:20</pubDate>
<description><![CDATA[<p><font face="Times New Roman">注:如果没有特殊说明,仅限移动MISC平台 </font></p>
<p><font face="Times New Roman">1. 谨慎使用表格. <br>由于一个页面在显示之前,要根据表格定义画出手机屏幕内容,这部分会简慢页面速度,应该尽量减数表格数量 </font></p>
<p><font face="Times New Roman">2.在使用&lt;img &gt;标签时,最好定义图片的宽度和长度,这样在显示整个页面前,会按图片长宽预留此图片位置,加快显示其它文字内容 </font></p>
<p><font face="Times New Roman">3.部分手机支持CSS </font></p>
<p><font face="Times New Roman">4.部分手机支持页面背景音乐 </font></p>
<p><font face="Times New Roman">5.部分手机支持图片上传功能 </font></p>
<p><font face="Times New Roman">6.使用表格时,为了更好的显示效果,要匹配手机终端的表格宽度 </font></p>
<p><font face="Times New Roman">1) Wap浏览器支持的MIME类型 <br>text/css <br>image/gif <br>image/jpeg <br>audio/midi <br>application/vnd.wap.xhtml+xml <br>text/html </font></p><font face="Times New Roman">
</font><p><font face="Times New Roman"><br>2)引入XHTML带来的改变: <br>1、跑马灯 <br>&lt;marquee&gt;链接、文字内容或图片&lt;/marquee&gt; </font></p>
<p><font face="Times New Roman">属性： <br>loop=“100” <br>direction=“right” or “left” <br>behavior=“scroll” or “alternate” <br>scrollamount=“10” <br>bgcolor="#aaaaee" </font></p>
<p><font face="Times New Roman"><br>2、文字颜色 <br>&lt;font color=‘blue’&gt;文字&lt;/font&gt; </font></p>
<p><font face="Times New Roman">Css文件内容： <br>a:link <br>{ color: #000000} </font></p>
<p><font face="Times New Roman"><br>3、动画显示 <br>应用于背景图、前景图 <br>body <br>{ <br>background-image:url(/Images/bg.gif); <br>} <br>图片大小适配 </font></p>
<p><font face="Times New Roman">整个页面图片大小30k以内 <br>推荐20k </font></p>
<p><font face="Times New Roman">4、表单 <br>输入框 <br>&lt;input type="text" width="120" value="hello"&gt; <br>单选框 <br>&lt;input type=“radio” value=“1”&gt;北京 <br>多选框 <br>&lt;input type="checkbox" value="1"&gt;北京 <br>下拉框 <br>&lt;form&gt;&lt;select id="province"&gt;&lt;option value="0"&gt;北京&lt;/option&gt;&lt;option value="1"&gt;上 <br>海&lt;/option&gt;&lt;/select&gt; <br>&lt;/form&gt; </font></p>
<p><font face="Times New Roman">5、表格——支持表格 <br>支持table、tr、td </font></p>
<p><font face="Times New Roman">6、背景色 、背景图片 <br>背景色 </font></p>
<p><font face="Times New Roman">&lt;body bgcolor="#e0e0e0"&gt; <br>CSS： <br>body {background:red} </font></p>
<p><font face="Times New Roman">背景图 <br><br></font></p>
<p><font face="Times New Roman">&lt;table background="Images/bg.gif"&gt; <br>CSS: <br>body <br>{ background-image: url(Images/bg.gif);} </font></p>
<p><font face="Times New Roman">7、背景音乐 <br>&lt;BGSOUND src='midi/sample.mid' loop='-1'&gt;</font></p>]]></description>
</item><item>
<title><![CDATA[什么是MISC？]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=vacobo&amp;id=10989</link>
<author>vacobo</author>
<pubDate>2006/1/4 10:39:40</pubDate>
<description><![CDATA[<a>　<font id="zoom" class="f14">MISC(Mobile　Information　Service　Center，移<!---->动信息服务中心)　平台的主要功能是完成数据业务的管理和控制功能，实现用户管理、业务管理和SP管理，并可以为各个业务网关、SP提供代计费。</font>
</a><p><font id="zoom" class="f14">　　根据MISC管理平台规定，只有用户主动上行申请才能定制梦网业务，如果没有用户主
动的上行申请，SP不可能像以前那样未经许可强行定制，而且定制后MISC管理平台会下发短信告知用户定制了何种业务、何种资费以及取消方式，用户如果发
现误定，72小时内取消就无需支付费用。</font></p>]]></description>
</item><item>
<title><![CDATA[WAP学习笔记(二)]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=vacobo&amp;id=10988</link>
<author>vacobo</author>
<pubDate>2006/1/4 10:14:15</pubDate>
<description><![CDATA[<ol><li>WAP2.0于2001年8月正式发布，它在WAP1.x的基础上集成了Internet上最新的标准和技术，并将这些技术和标准应用到无线领域。这些新
技术和标准包括XHTML、TCP/IP、超文本协议(HTTP/1.1)和传输安全层(TLS)。在这些新技术的支持下，新增加了数据同步、多媒体信息
服务、统一存储接口、配置信息提供和小图片等新的业务和应用，同时加强了无线电话应用、Push技术和用户代理特征描述等原有的应用。</li><li>XHTML是由万维网联盟W3C制定的一项新标准，它是在HTML4.0的基础上产生的，是现在和将来要产生的文档类型和模块的集合。这些文档类型是在
HTML4.0基础上的扩展、改进或者是其子集的某一部分；XHTML是基于XML的，其最终将会在基于XML的用户代理环境中执行。</li><li>利用XHTML的好处有以下3点：XHTML文档符合XML的标准，可以使用标准的XML工具对其进行浏览、编辑和验证；XHTML文档可以在XHTML
的用户代理中执行，也可以在现存的HTML4.0的用户代理中执行；XHTML文档可以开发基于HTML文档对象模型的应用，也可以开发基于XML文档对
象模型的应用。随着XHTML集合的演进，基于XHTML的文档更容易在各种各样的XHTML环境中或者它们之间进行互操作。通过利用XHTML，内容开
发商能够逐步进入XML，同时还能保持它们内容的前后兼容。</li><li>XHTMLBasic文档类型包括了保持XHTML语言特征的最小的模块集合。此外它还包括了图像、窗体、基本表格和对象支持等，文档类型丰富，但它不包
括全部的XHTML集合，因为有些网络客户端不支持全部的XHTML特征，如移动电话、PDA、寻呼机和机顶盒等设备。XHTMLBasic被设计成能扩
展的通用的基本集合，例如，其中事件模块比传统的XHTML4.0的事件系统更加通用，而且能通过另外的XHTMLModularization模块集合
进行增减和功能扩展。XHTMLBasic的目标是能够支持各种各样的用户代理的通用语言。XHTMLBasic是WML2.0的基础。</li><li>WAP2.0利用XHTML和CSSMobileProfile等标准，同时保持了对WML1.x的向后兼容，减少了开发、测试一种应用和为多种设备编制内容的时间，减少了开发成本。　<br></li></ol><a></a><h4><a>新增加和增强的业务和应用</a></h4><a>(1)推服务(WAP Push)<br>(2)用户代理特征描述(User Agent Profile，UAProf)<br>(3)无线电话应用(Wireless Telephony Application, WTA)<br>(4)外部功能接口(External Functionality Interface，EFI)<br>(5)统一客户存储界面(Persistent Storage Interface)<br>(6)数据同步(Data Synchronization)<br>(7)多媒体信息服务(Multimedia Messaging Service，MMS)<br>(8)配置信息提供(Provisioning)<br>(9)小图片(Pictogram)<br></a>]]></description>
</item><item>
<title><![CDATA[jar命令的使用]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=vacobo&amp;id=10965</link>
<author>vacobo</author>
<pubDate>2006/1/2 20:09:52</pubDate>
<description><![CDATA[总是忘了jar命令的使用。在这里摘录一下吧：<br>用法：jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名 ...<br>选项：<br>&nbsp;&nbsp;&nbsp; -c&nbsp; 创建新的存档<br>&nbsp;&nbsp;&nbsp; -t&nbsp; 列出存档内容的列表<br>&nbsp;&nbsp;&nbsp; -x&nbsp; 展开存档中的命名的（或所有的〕文件<br>&nbsp;&nbsp;&nbsp; -u&nbsp; 更新已存在的存档<br>&nbsp;&nbsp;&nbsp; -v&nbsp; 生成详细输出到标准输出上<br>&nbsp;&nbsp;&nbsp; -f&nbsp; 指定存档文件名<br>&nbsp;&nbsp;&nbsp; -m&nbsp; 包含来自标明文件的标明信息<br>&nbsp;&nbsp;&nbsp; -0&nbsp; 只存储方式；未用ZIP压缩格式<br>&nbsp;&nbsp;&nbsp; -M&nbsp; 不产生所有项的清单（manifest〕文件<br>&nbsp;&nbsp;&nbsp; -i&nbsp; 为指定的jar文件产生索引信息<br>&nbsp;&nbsp;&nbsp; -C&nbsp; 改变到指定的目录，并且包含下列文件：<br>如果一个文件名是一个目录，它将被递归处理。<br>清单（manifest〕文件名和存档文件名都需要被指定，按'm' 和 'f'标志指定的相同顺序。<br><br>示例1：将两个class文件存档到一个名为 'classes.jar' 的存档文件中：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jar cvf classes.jar Foo.class Bar.class<br>示例2：用一个存在的清单（manifest）文件 'mymanifest' 将 foo/ 目录下的所有<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 文件存档到一个名为 'classes.jar' 的存档文件中：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jar cvfm classes.jar mymanifest -C foo/ .<a>　<br>示例3：打包一个目录（</a><a>dirName</a><a>）<br></a><a>&nbsp;&nbsp;&nbsp; jar cvMf classes.jar dirName</a><a><br>示例4：解压一个jar文件<br>&nbsp;&nbsp;&nbsp; jar xvf classer.jar<br>&nbsp;&nbsp; <br></a>]]></description>
</item><item>
<title><![CDATA[麻省理工学院的开放式课程计划]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=vacobo&amp;id=10940</link>
<author>vacobo</author>
<pubDate>2005/12/31 23:18:56</pubDate>
<description><![CDATA[<a>　麻省理工学院的开放式课程计划（http://www.cocw.net/mit/）目前上线了九百门课程，已经到达了2007年所有课程上线的目标的一半。这些课程包括了麻省理工学院五个领域的三十三个不同学科的课程。<br><br>&nbsp;&nbsp;&nbsp; 这是一个免费、开放的麻省理工学院教材资源网站。里面已经发布了900多门课程，并计划发布所有的课程。我为麻省这样的决定感到振动。同时令我感动的是，我看到那么多的义工无私的把这些翻译成中文，这使我也有加入其中的冲动。<br><br>在这个事情中，我记住了以下名称，麻省理工，奇幻基金会。<br><br>中国的教育界，看看麻省在做些什么，我们又在做些什么。</a>]]></description>
</item><item>
<title><![CDATA[WAP学习笔记(CharData/Space not allow in content 什么意思)]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=vacobo&amp;id=10917</link>
<author>vacobo</author>
<pubDate>2005/12/30 22:27:06</pubDate>
<description><![CDATA[今天看了看WML，有了个简单大概的认识：<br><ol><li>WML是一种XML</li><li>语法要求严格，区分大小写。CDATA不可以写为cdata</li><li>语言比较简单，至少入门容易</li><li>&lt;?xml version="1.0"?&gt; 语句必须出现在一个Deck的首行，而且必须顶头写，插入任何字符哪怕是空格都会造成语法错误。</li><li>不合法的XML字符必须被替换为相应的实体<p>下面是五个在XML文档中预定义好的实体:</p>
<table class="ex" border="1" cellspacing="0" width="50%">
<tbody><tr>
<td width="39%">&amp;lt;</td>
<td width="17%">&lt;</td>                <td width="44%">小于号</td>
</tr>
<tr>
<td>&amp;gt;</td>
<td>&gt;</td>                <td>大于号</td>
</tr>
<tr>
<td>&amp;amp;</td>
<td>&amp;</td>                <td>和</td>
</tr>
<tr>
<td>&amp;apos;</td>
<td>'</td>                <td>单引号</td>
</tr>
<tr>
<td>&amp;quot;</td>
<td>"</td>                <td>双引号</td>
</tr></tbody></table>
<br>
            实体必须以符号"&amp;"开头，以符号";"结尾<b>。</b> 
            <b>注意:</b> 只有"&lt;" 字符和"&amp;"字符对于XML来说是严格禁止使用的。</li></ol><span style="color: rgb(255, 0, 0);"><span style="font-weight: bold;">另<span style="font-weight: bold;">还有以下疑问</span><span style="font-weight: bold;">：</span><br></span></span><ol><li style="color: rgb(255, 0, 0); font-weight: bold;">写例子的时候，copy，past导致了不少错误，删除了所有空格后，就好了，郁闷了好一阵。可能是某些字符导致的吧。报的错误是：CharData/Space not allow in content。</li><li style="font-weight: bold; color: rgb(255, 0, 0);">XHTML是基于XML的，其最终将会在基于XML的<span style="text-decoration: underline;">用户代理环境</span>中执行。<br>什么是<span style="text-decoration: underline;">“用户代理环境”？</span></li></ol>]]></description>
</item><item>
<title><![CDATA[网易弓虽]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=vacobo&amp;id=10905</link>
<author>vacobo</author>
<pubDate>2005/12/30 12:11:42</pubDate>
<description><![CDATA[&nbsp;&nbsp;&nbsp; 今天在网易新闻页面上随便逛了逛，发现网易的网页简洁明快了不少，感觉不错。同时发现网易新闻标题确实弓虽<br><br><ul><li><a href="http://lady.163.com/special/m/00261IF2/man.html">[男人]男女接吻12式</a> <a href="http://lady.163.com/05/1230/10/267AVSOP00261IFR.html">性交72式的伟哥指数(1)（图）</a></li><li><a href="http://health.163.com/05/1230/09/2678NT6500181AB5.html">[两性]女人的性爱保健操 提高性爱质量(组图)</a></li><li><a href="http://health.163.com/05/1230/09/2677V55P00181AB5.html">婚后如何保持正常的性欲</a></li></ul>]]></description>
</item>
</channel>
</rss>