2007年12月26日

zz Word/其他字处理软件中特殊符号的输入

内容:
在Word中输入千分号和万分号
在Word中直接输入千分号和万分号几乎是不可能的,我们可以通过如下方法实现:
输入千分号
单击“插入→特殊符号”,出现“插入特殊符号”对话框,选择“单位符号”标签,就可以找到千分号(如图),双击即可。
此外,也可以在英文输入状态下,按下Alt+0137(小键盘),也可以输入。
输入万分号
单击“插入→符号”,出现“符号”对话框,在字体中选择“Lucida Sans Unicode”,子集中选择“广义标点”,在下方就可以找到万分号了,单击下方的“插入”按钮就可以了。我们还可以发现,它的旁边就是千分号‰。
http://media.ccidnet.com/art/5441/20060711/616337_1.html
附图:


内容:
一些特殊符号的输入法
本意是为了找化学方程式的符号,不过相信其他的地方也是用得到的.
————————
商业符号
™ 商标 表明创始人或发明人拥有此专利。
输入办法:Alt+0153
注册商标表明创始人或发明人对此商标已在(所在国)商标专利局进行了注册输入输入办法:Alt+0174
© 版权表明创始人或发明人拥有版权
输入办法:Alt+0169
————————
金融符号
$ 元 美国和其他一些国家的货币单位
输入办法:Shift+4 (或Alt+036)
ƒ 弗罗林 荷兰盾货币单位
输入办法:Alt+0131
¢ 分 货币单位分
输入办法:Alt+0162
£ 镑英国和其他一些国家的货币单位
输入办法:Alt+0163
¥ 元 中国、日本等国的货币单位
输入办法:Alt+0165
————————
数学符号
E° 度 角度的表示符号(字母E是为了衬托角度符号的正确位置)
输入办法:Alt+0176
÷ 除 除法运算符号
输入办法:Alt+0247
× 乘 乘法运算符号
输入办法:Alt+0215
± 加减号 表示加或减
输入办法:Alt+177
¼ 四分之一 分数符号
输入办法:Alt+0188
½ 二分之一 分数符号
输入办法:Alt+0189
¾ 四分之三 分数符号
输入办法:Alt+0190
¬ 否 表示否定
输入办法:Alt+0172
% 百分号
输入办法:Shift+5
‰ 千分号
输入办法:Alt+0137
————————
杂项符号
• 粗圆点 用于引起读者对段落的注意
输入办法:Alt+0149
·中圆点用于分开两个项目
输入办法:Alt+0183
————————
标点符号
… 省略号 表示省略一个或一串的标记
输入办法:Alt+0133
— 长破折号 用于句子中表示思想或重点的转折
输入办法:Alt+0151
– 短破折号用于连接持续的数字,有些情况下可作为连字号
输入办法:Alt+0150
————————
说明符号
ˆ 单剑号 用于表示死亡日期或参见注脚
输入办法:Alt+0134
‡ 双剑号 用于表示参见注脚
输入办法:Alt+0135
¶ Pilcrow 表示段落停顿、分隔
输入办法:Alt+0182
§ 段落符 表示段落的开始或参见注脚
输入办法:Alt+0167
————————
度量符号
µ 微号微米或毫克等的缩写符号
输入办法:Alt+0181
# 磅号在数字之后,表示重量磅数的计量符号
输入办法:Shift+3
————————
(说明:符号前面的符号表示是将要输入的符号;Alt+0153表示在键盘上按Alt键的同时输入数字0153(提示:数字用小键盘输入更方便),放开Alt键,即可)

2007年12月20日

机器学习的两点积累

1. 遗传神经网络

今天收到MCM队友小于的来信,真想不到研究通信的家伙现在也开始捣鼓遗传神经网络。简单调查了一下这个问题,嗯,感觉还很有意思啊,有点遗传算法应用的套路,就是用遗传算法来优化和加速其他算法的性能。

可以参考一下如下的两个连接:

NNUGA: Neural Network Using Genetic Algorithms


Palmes, P.; Hayasaka, T. & Usui, S. Mutation-based genetic neural network Neural Networks, IEEE Transactions on, 2005, 16, 587-600

 

2. SVMLight的增强版

今天在I2R同屋好友Chen Bin的Blog上发现他正在用SVMLight做实验,遇到了需要精调参数的问题,他还写道,“SVM的效果不好,只好fine-tune一些参数,刚才看到SVM-Light的主页上有个SVM-Perf的连接据说是个“more inteligent version”. 先下一个试试再说。”

 

哈哈,让俺怦然心动啊,因为我也正在用SVMLight来完成一些实验,找到了这个SVMPerf的链接,看介绍,确实不同凡响,有空的时候再研究一下。

链接:

SVMPerf: Support Vector Machine for Multivariate Performance Measures 

不得不佩服SVMLight是非常成功的机器学习工具,能想到的各个方面都非常不错啊。嗯,将来有机会俺也要发明一个好用的机器学习工具,从哪里开始呢?

zz构建高效软件开发流程和团队

文章作者:David Yan

1. 前言
本人曾就职于多家公司,但留给我印象最深刻、开发管理最规范的公司是I公司。该公司总部位于美国硅谷,其开发的产品曾获得PC Magazine的最高五星级的优秀好评。现我根据在此公司中所感受到的经历及自身的一些感想写出来,希望能给大家和其它公司有所借鉴。
2. 项目计划
在一个产品发布并使用之后,其中肯定有许多地方不如意和值得改进的地方。客户在使用的过程中会发现一些问题,提出更高的需求,市场也在发生变化,我们的竞争对手也在发展,新的技术不断地产生,这些因素推动着我们的产品不断地向前发展,使它的版本不停地往上增长。这些发展的需求不是一下子提出来的,在客户使用的过程中发现某些不如意不方便的地方,他们会向我们的技术支持人员提意见,而技术支持人员会把这些需求以BUG的形式存入BUG数据库中,其级别一般定义为下一个版本的Feature。有些上一个版本未解决的BUG也可能需要在本版本中来解决。因此当我们来开发下一个版本时,其许多特性已经存在于BUG数据库中了。当然新版本的特性不是只从BUG中获得,管理层可能从市场的角度来提出新的特性以求领先竞争对手,开发人员本身也可提出某些要求来纳入新版本开发的计划中,如要求对某部分代码进行重构以使其结构更清晰更容易维护,执行效率更高。
每个人把同自己相关的功能模块收集起来,同时预估时间,其中主要包括写文档的时间、开发时间和单元测试的时间,一般要求精确到工作日。这些信息发送给组长,组长再把本小组人员的任务和预估时间发送给管理层,由管理层对此任务及进度进行评估审核,管理层会根据产品发布时间及客户需求、市场因素等方面作出选择,可能某些功能由于时间紧急会被推迟到下一个版本中去。若预估出来的时间同预计的产品发布时间有较大冲突,而且此功能是本版本中必须得做的,则开发小组会被要求重新预估时间,加快开发速度来达到这个要求。
虽然这个开发进度时间是一个大概的估计时间,但我们要尽力按照这个开发进度来执行。每个星期五下午我们有一个Status Meeting(一般那时工作效率较低,适合开会),在此会议上我们会根据这个进度来review我们的工作,每个人手上的工作是否按照这个进度在走,是否有人延后了,是否block住别人的工作了。在此会议上每个人都要报告自己的进度,同时还要报告上个星期做了什么,正在做什么,以及下个星期打算做什么。通过这个会议,会让你觉得有人在监督你,无形之中迫使你不断地督促自己不要使任务延后,如果有延后的迹象也会尽早发现而赶上。若某些经过努力不能赶上,那也没有办法,只能修改原先的进度表,因为那是我们的估计与现实发生了偏差,我们必须使我们的进度表符合实际情况,这可以避免许多项目发生最后的 20%的工作量会占据80%甚至一直拖后的情况。修改进度表的情况我们曾经发生过,有一次在按照原先的进度执行到将要完成的状态时突然接到通知由于市场及客户的原因要求加入另一项重大的功能,这个功能对我们程序的结构有非常大的影响,因此我们就要重新制定一个进度来满足需求。在这种情况下,产品原先的开发进度被打乱,发布时间也因此推迟。当然这种情况应当尽力避免,尤其在项目后期产生新的需求,若不得已也应重新规划进度,而不是仍旧依照原先的进度去执行,因为老的进度已不能反映现实的情况。
3. 开发文档
在项目进度安排中我们已经把写文档的时间也规划进去了,这里虽然是写文档,其实是设计程序,整理一下思路与架构,磨刀不误砍柴工,这样在实际写代码时会流畅很多,节省时间,因此可以说真正有思想性的东西都在写文档这段时间内完成了。当然我们这里的文档格式不象ISO那样规定了条条框框,我们的文档格式相对自由,基本上能随意发挥,但对于几个主要点一般来说是需要说明的。要求写的文档能让他人比较容易地看明白,能把问题讲清楚,能反映你的设计思想。文档的数量也不多,开发文档有两类,一类是function Spec,另一类是Design Document。
function Spec中需要写明的是本模块完成的任务,解决什么问题,有什么作用,为什么要这些功能,此外我们还会添加进适用范围,有什么不足,注意点是什么,还有哪些地方在以后可以进行改进。在这个function Spec中不涉及到任何非常详细的算法。此文档不光给开发人员看,还让QA及其他成员以及后来的新人能根据此文档来了解此模块的大致功能,同时也会给文档编写者看,他们会根据这些function Spec整理出一份用户手册,告诉用户此版本中新增了哪些功能,各功能模块有什么作用,如何使用等信息。因此在我们的开发过程中function Spec是很重要的文档,此文档完成后会抽出一段时间同相关人员及QA一起review这个文档,让QA了解设计者的意图,同时熟悉新的功能模块,为接下来的测试作准备。如果其中有误解或不明之处,大家会提出来探讨并由开发者修正。
Design Document中主要描述实现此模块所涉及到的主要算法、数据结构、类的层次结构及调用关系。这个文档的阅读者主要是开发人员,包括任何想了解详细实现代码的人,帮助人们理解代码。在某些功能模块比较简单的程序中,此文档所描述的信息会比较少。此文档不象function Spec要在开始写代码前就编写完成,它可以随着代码编写的进行而增加,但基本上遵循文档先行原则,也就是要增加新的代码或修改代码前若有涉及到文档部分的应先修改文档,然后再修改代码。

4. 编写代码

由于我们用JAVA语言进行开发,因此我们借助了Jbuilder IDE工具。关于代码风格,我们基本上套用Jbuilder中自动的代码格式编排,但其中需要改变的是缩进是4个字符,类与类之间间隔2行,方法与方法之间间隔2行,import类时用完整的类名。写代码时要对类及函数提供详细的注释及说明,基本做到看它们的说明就能知道这个类或函数的功能以及主要算法的实现原理。在开发过程中对主要的模块要编写UnitTest,同时要UnitTest先行,也就是遵循XP规则中的测试驱动原则,当所有的单元测试代码通过时,此功能也就基本上完成了。
5. 代码管理
我们采用VSS+ SourceOffsite进行版本控制,其中存放了此产品的所有源代码、库文件、文档及release时的安装程序,各个部分存放在不同的目录中。每天早上要求开发人员从VSS中get latest version的源代码,然后进行编译并开始一天的工作。在下班之前理论上要求员工check in所有当天修改的代码,在check in之前要保证编译是能通过的。若有谁check in的代码导致daily build失败则会被要求某些惩罚措施或警告,象微软公司要负责照看当日的每日构建。有时我们编写的代码涉及到多个文件,而且此改动是比较复杂需要花费多天的工作量,如果现在check in进去可能会导致BVT(Build Verify Test)测试通不过,因为有些代码没有完全完成,而之前的代码能使BVT测试通过,而且这些代码基本上不会涉及到他人,在这种情况下可以不check in进去,直到全部代码完成能提交BVT测试时再一起check in进去。
每天我们都会做daily build,一般是在凌晨4点进行,那时有个程序会自动从VSS中拉下最新的代码并进行编译。因为我们同美国进行同步开发,因此如果想要把修改的代码进入到这个build中去那就需要在凌晨4点之前把相应的代码check in进去。若有人check in进去的代码导致编译通不过则会在本步骤中被发现。当编译完成之后自动产生安装包,测试部门将会对这些代码进行BVT测试,同时对VSS中开发库打上 label,如果发现了什么BUG就能根据这个label知道是哪个时候开始出现这个BUG的。BVT是指Build Verify Test,是对组件中基本功能的测试。这个测试每天都会进行,看新加入的代码或修改是否会影响系统的基本功能,便于及早发现错误。
6. 测试
在开发人员完成了function Spec后,测试部门开始了测试规划,确定需要测试哪些方面,如何测试及进度安排。测试人员需要写许多测试代码,有些测试代码需要集成进BVT测试,有些可能需要进行单独的测试,目的都是为了使产品符合要求,使开发人员容易找出问题所在并改正。产品功能是否符合了要求,是否能被发布是由测试人员决定的,因此测试人员也比较辛苦,责任重大。通过了每天的BVT测试,还有一些性能测试、兼容性测试、灾难测试等需要在产品发布前进行。在完成这些测试之后由测试人员决定本产品是否能release出去了,如果没有什么问题则会给某些关系较好的用户进行β测试,之后再最终release出去。
7. BUG管理
由于我们每天进行着测试,因此经常有BUG被测试部门发现,一旦发现了新的BUG,就会被添加进BUG Tracking System中。目前较流行的BUG Tracking System有TestTrack、ClearQuest、Bugzilla等。BUG tracking system是开发人员和QA之间的纽带,开发人员和QA通过BUG tracking system联系着。每个BUG有其类型和级别,预定的类型有Crash-Data Loss, Crash-No Data Loss, Incorrect functionality, Cosmetic, Feature request等, 级别有P1、P2一直到P6,它们分别代表了重要性及紧急程度,P1的BUG需要很快fix,P5之前的BUG在本版本release之前必须fix掉,若真的不能或不重要则由QA确定并降低优先级进入到下一个版本中去fix。QA发现一个BUG后在BUG Track中增加一个BUG,同时填入相关信息并assign给相应的开发人员,开发人员收到BUG分析并fix后assign给QA去verify,其中要填上分析的结果以及如何解决的详细说明。若QA对此BUG verify通过则close BUG,否则verify failed并重新assign给开发人员并等待其fix。每星期在Status Meeting上会进行BUG状况报告,主要由QA组长报告BUG的状况,主要是新增BUG数,fix掉多少,还有多少处于open状态,有多少处于等待 verify的状态,据此可以了解开发及测试情况。有时在Status Meeting上我们也会进行BUG Review,BUG Review有时是单独一个小组内进行,其主要作用是重新明确每个人头上的BUG以及了解每个BUG的状况,如开发人员对此BUG将作何处理等,以此来了解开发中是否有碰到比较棘手的问题,增加了产品发布风险。在QA增加BUG和开发人员fix BUG的游戏中,BUG的数量曲线图会象股市曲线一样上下波动,但总体趋势一般是前期BUG放量攀升,后期震荡下挫,若到了后期新open的BUG数量一直上升则说明风险在增大,有可能无法控制,也就是说fix了一个BUG导致了多个新的BUG产生。在量化开发进度中也可以用代码数量的曲线图来粗略的呈现。在有大量新功能增加时可能代码量的增加会较快,当在fix bug阶段,代码的修改较多,因此代码数量的增幅会降低,依据代码量可以看出开发的状况处于何种阶段。
需要指出的是我们对BUG的定义比较广泛,一些新功能也可以作为BUG被提出,只不过这些BUG级别比较低,让它们进入到下一个版本中去实现。因此BUG的创建者也可以是技术支持人员、市场人员甚至开发人员本身。关于开发人员本身,因为他可能会找出一些BUG,有些是其他开发者的,有些可能是此开发者本身的,把这个BUG添加进BUG库中可以帮助开发人员在以后产生新问题时或类似的BUG时有一个借鉴和思路,但此BUG的verify必须要让测试本模块的测试人员来verify。
8. Code Freeze
当P5之前的BUG都被修复了,这时离产品发布日期也就不远了,一般是2个星期后就能release产品,这时要对VSS中的代码进行freeze,以保证代码库的稳定性。 Code freeze阶段一般会把各开发人员的check in和check out的权限关闭,若在这时仍有BUG报告上来并经讨论确定是重大的且必须在本版本中fix的,则需要经管理层同意并特殊地授予权限,在修改完成后修改者要把修改了哪些文件,影响了哪些文档等信息上报给各部门如QA、build人员、文档编写者等。在code freeze阶段,测试部门在紧张地进行着各种测试,得出各种数据,并决定本版本是否可以release了。

9. Tech Talk

计算机知识更新速度非常快,经常有一些新的术语、新的名词、新的思想、新的技术所产生,如过离开此行业几个月后重新回来就会对这些新的事物不解,而我们平时为了自己的项目埋头苦干可能忘了周围的世界发生了什么。Tech Talk就提供了一个让我们了解新知识和最新发展趋势的机会,让大家把知识共享,共同提高。Tech Talk一般会在项目不是太忙碌的时候进行,主持人会提前一个星期指定某个人去准备一下Tech Talk,一般此人可能对某方面比较感兴趣,然后他会花一些时间去了解这方面的情况,写成一个文档如PowerPoint并上传到局域网内,同时通知大家可以先去浏览。Tech Talk的内容非常广泛,不一定同我们的项目紧密相关,任何新的思想、新的知识(当然一般是限在计算机领域内)都可作为Tech Talk的内容,而在主讲人讲完之后还有一段时间被大家提问,共同对这个话题进行讨论,答疑解惑。当然Tech Talk也可同我们的项目相关,如研究一下竞争对手的产品技术,本公司产品的架构等。研究本公司的产品架构可以使大家对本公司的产品有一个全局的概念,从整体上来看自己的产品,顺便整理一下产品的架构使之更加清晰有条理。平时大家都只注重于自己负责的其中的一小块,在Tech Talk中可以跳出自己的小框框来了解全局,同时这也是新员工了解公司核心技术整体框架的好机会。每个模块的负责人需要阐述此模块的方方面面,让大家来了解并回答问题。
10. Code Review
当进行工作移交时我们会进行 Code Review,在碰到棘手的BUG时也会进行Code Review,Code Review是大家了解其详细实现的一个好机会。在Code Review之后会对此代码产生亲切感而不是陌生惧怕感,相信很多人在读他人代码时会有非常痛苦的经历,Code Review是减少此痛苦感的好药方。在进行Code Review前,主讲人会提前发出一个通知告诉相关人员要review哪些代码,这样参与者可以抽出时间提前了解相关代码,对不懂的地方做个笔记以便在 Code Review进行中提出疑问。在我们碰到比较棘手的BUG没有什么思路或大惑不解时,这时找几个相关人员或对此代码也熟悉的人进行一次Code Review,这时形式比较随意,大家可以临时提出问题,让主讲人解答,在这个过程中可能听的人并不会非常快地了解其中的详细过程,但是讲的人在这个过程中重新理了一下思路,对所写的代码被迫重新审视了一遍,在其中可能就会发现出解决问题的办法。在Code Review时有时代码非常多,但可以一个功能模块一个功能模块地从总体到局部,由浅入深层层递进的方式进行。一次Code Review的时间不要太长,但可以分多次进行。Code Review中大家会提出问题和建议,集思广益,多个人共同出主意,有些可能一个人没有想到的问题会被大家发现,互相学习,共同进步。
11. 沟通与交流
大部分员工的大部分时间是在公司里度过的,因此公司的生活成了大家主要组成部分。员工之间关系的融洽,交流的畅通显得非常重要,同时大家也不想自己的生活这样枯燥乏味,一直同机器打交道。沟通无处不在,交流随时发生,有许多关系是在工作之外建立起来的。软件公司内是很容易产生各种矛盾的,因为这是由你的工作性质所决定的,比如QA或用户会对你的实现不满意,提出各种要求时,我相信你有时会有所抱怨的,无形之中就产生了对立,发展到后来会有抵触心理。我相信大部分人都会有此感受,这不是你的错,这主要是由我们的工作性质决定的。如果你的工作是把财富带给对方,则对方会非常欢迎你的到来,把你奉为财神爷来对待,同你的关系会非常融洽友好。因此我们需要在工作之外来消除这种对立矛盾的关系,建立一种融洽的工作氛围。我们在平时吃饭的时候饭桌上大家互相聊天沟通。我们建立了happy邮件列表,其中会发一些幽默笑话之类的邮件,给我们紧张的工作增加点轻松的氛围。在下班后大家可以组织一下活动,增加了公司的凝聚力。一个产品发布后组织一下旅游,让绷紧的神经松弛一下,更好地迎接下一个挑战。
12. 后记
不同公司有不同的做法,我只是把我认为比较好的流程与管理方式呈现出来,让大家有个借鉴,当然它也不是十全十美的,也不是放之四海而皆准的,如果你觉得某些地方对你有所帮助或值得推广,这是本文最想达到的效果。非常感谢I公司给了我这么美好的经历,也非常感谢I公司的同事们曾给我的巨大帮助,在此衷心地祝福 I公司越来越壮大,逐步走向成功!也衷心地祝福我的同事们幸福快乐!

2007年12月19日

zz 正版软件替代经验

正版软件太贵了?这里有一些免费软件,一点心得,与大家分享,请各位高手指正交流。

1. 办公、文字、PDF大类 (Office/text/PDF)

1.1 输入法
长期用现在还用极品五笔(免费软件)打86单字,本站文章全依赖它。
其他五笔首荐海峰、小鸭、酷极、加加(均免费软件)。龙文也可。以前的智能还可以,现在,叹!
拼音类:用过最长时间的是拼音之星(共享)打谭码,MSPY和智能也用过其双拼。加加、紫光、搜狗无须多说。自然码是难得精品,需注册但有准免费版。
1.2 文本编辑 (Text Editor)
免费开源的GVIM和Emacs,比共享的UltraEdit,EditPlus,EmEditor要强大得多得多。Emacs太难,我不会。现用GVIM,与win下习惯不太一样,不妨试试。试了才知道:文本编辑竟然能达到这种境界
editpad lite,(免费),200KB,MDI,好
Crimson EditorPSPad(免费),可在一定程度上代替UE。
普通用户也可试一下notepad2notepad++
1.3 办公 (Office)
替换MS Office,完全可用国产的WPS(个人免费) 或开源的OpenOffice.org。前者中文处理、与MS Office兼容强;后者带数据库,开源社区维护,也很可靠。我用OOo
替换MS Project(这根本不是个人用的软件),可用开源的GanttProject,9MB,免安装,可导入MS MPP文件,可绘制甘特图。
替代MS Visio,没有太好的方案。可用Dia、OOo画一些简单流程图。
1.4 PDF
PDF阅读软件多数免费。鼻祖是Adobe Reader,体积太大(30-50MB)我不用。在用并推荐的是foxit reader(当然免费),不到2M,运行超快,华人出品。
制作PDF,商用Acrobat和共享PDFFactory,均千元左右。替换方案有:新手用CutePDF writer,喜开源者推荐PDFCreator。此外primopdf(免费)、pdfmachine(基本功能免费)也不错,但用户较少。这里是相当全面的PDF软件介绍
1.5 打字练习
打拼音的好象不用此类软件,呵呵。
金码打字练习:好用,体积小,适合高手
爱不释手:也小,最大优点是断点续打,还能把打错、打得慢的字收集在一起
提高打字速度的关键是一段话反复打。

2   图像影音多媒体大类 (Pic/Audio/Multimedia)

2.1 图像浏览 (Pic View)
代替ACDSee(又大又贵),请用IrfanViewXnViewFastStone Image Viewer都是对个人免费,不加插件体积1-2MB,功能强大,速度快。我用IrfanView
上述软件对公司不免费,可用此代替:imgvFuturixImagerImagine。Imagine是TC的一个插件,但也可exe运行,超小,还可在shell中右键直接显示图片
picasa 2,也不错,但我没怎么用。
2.2 图像编辑 (Icon Tool)
代替5千多元的PhotoShop,用同样强大的开源的GIMP我一直用。下载7MB,装完20MB。源自Linux,强大,发展势头好。此外,pixia也不错,免费,日本产;Paint.Net也不错,免费。还有artweaver(免费有中文版)
Paint,就是系统自带的画笔,其实也能做不少事
2.3 图像截屏 (Screen Capture)
代替收费的Hypersnap,Snagit,有很多软件也不差。如
推荐MWSnap(免费),超小,可png、自动序号文件名
推荐Screenshot Captor,非常强大,为我深爱!
也曾用中华神捕之对大陆用户免费版,可编辑注释;丹心的色彩魔术师,IrfanView、Xnview也可以截图
本站有很多介绍文章和软件主页的翻译。最新推荐国产精品EP Snap
2.4 录制屏幕 (Tutorial)
现用+强烈推荐:Wink(免费)可录声音、加注释、生成flash,有汉化,很小巧。
Camstudio和Demostudio是同门的开源软件,主要生成avi,也可生成flash。WebEx可录音生成文件极小,惜独有格式。
2.5 录音 (Recording)
现用+强烈推荐Audacity(开源软件),小巧,可录为mp3,增(有时候增大音量很必要)减音量很方便,混音特效也没问题。国产wavecn也可。
2.6 播放器 (Player)
我很少听歌、看片,所以没有太多发言权
mp3类:经典winamp,新秀foobar,国产骄傲千千静听,小巧1by1
real:realplayer,阿飞的realone解码器
视频:MPCKMPlayer 、Kplayer、mplayer。windows media player既不能卸载,也不妨用之)

3   网络大类 (Network)

3.1 邮件客户端 (Email Client)
哪种最好?我认为共享最佳为BeckyThe Bat!,用得越久越觉好用,但不免费。替代它们,我用开源的Thundbird加这些扩展。国产的Foxmail、DreamMailKooMail也不错。MS Outlook和Lotus Notes不算是邮件客户端。
3.2 邮件检测 (Email Check)
推荐SimpleCheck(开源)小巧(150KB)、稳定、功能强大,可远程删信、转信、下载附件、回信、写信等。认为它比Magic Mail Monitor好。nPOP也不错。不过,随着web应用提升,邮件客户端和检测工具的黄金时期已逝。
3.3 web浏览器 (Web Browser)
用过很多各有千秋。在用+推荐Firfox(免费) Opera(免费)Maxthon(捐赠)
习惯IE的,可用Maxthon, GreenbrowserTheWorld。感谢畅游历史性的贡献
其实,最早用Netcaptor,这是多标签浏览的鼻祖,很有感情
3.4 FTP服务器 (FTP Server)
推荐+在用:Filezilla Ftp Server(开源),5M左右,功能全面
Typsoft FTP也不错,不到1MB,小巧易用
3.5 FTP客户端 (FTP Client)
很少上FTP,就用浏览器或Total Commander
有几个Free的,好象leechftp不错,也很小。
3.6 web文件共享 (Share File)
强烈推荐http file server(开源),对中文支持好,可对用户、目录设权限、密码。比很多共享软件都好。
3.7 Telnet
我用来上bbs管理版面,也就是newsmth之TC版。总体上web方式渐多,term少了。现用+推荐Sterm,几年前用得多,当时sterm比Cterm小巧,快。现在Fterm发展也很快。putty也不错。

4   工具大类 (Utilities/Tools)

4.1 文件管理 (File Management)
现用+购买+强烈推荐:Total Commander我全价$34注册,后组织团购¥150。Total Commander是我新机器第一个安装、开机第一个运行的软件。
免费软件推荐 FreeCommander, 2xplore(免费)和升级版xplorer2(lite版非商用免费)及explorerxp。我整理了一个文件管理软件大汇总
4.2 剪贴板类 (Clipboard Extender)
无须说代替什么共享软件,这两个免费软件都是绝世精品,100KB,功能强大,支持图片:CLCLclipx这是对比测评
4.3 宏和热键 (Hotkey/Macro)
我不太用此类软件,用win+r可以做很多事
精品热键工具属Hoekey仅12KB,功能超强。
最强也是小巧而应用广泛的2种宏工具都是免费的:AutoHotkeyAutoIt3两者有缘源我更喜前者
TypeAndRun/slickrun/Strokeit也可以让你的键盘、鼠标增强N倍。
4.4 压缩解压 (File Compress)
推荐开源小巧的7-Zip来代替收费的winzip和Winrar
当然,多数压缩解压功能,我是用Total Commander完成的。
4.5 电子词典 (E-Dictionary)
推荐灵格斯Lingoes(免费)和星际译王StarDict(开源),但一些词库版权存疑。
4.6 杂类 (others)
autoruns, bosskey, fontlist, bblean, killbox, unlocker....

5 常去的网站 (Favoriate Websites)

http://www.utf.com.cn/
http://cosoft.org.cn/html/osl/index.php
http://www.aogosoft.com/
http://www.planet-source-code.com
http://WWW.VBGOOD.COM

6 网友留言推荐

有些软件我没用过,但热心网友留言推荐,也收录于此。
hopewhite荐:FreeMat来代替MatLab, 链1 链2
lion荐:ZipGeniussnapfile评为压缩类第一,体积比7-zip大一些
suihen荐:Disc Tools类:1)虚拟光驱类:Alcohol 52%,Virtual Clone drive;2)iso制作:ISORecorder,Folders2iso;3)刻录:Imgburn。数据恢复类:file_recovery, freeundelete,File Scavenger
huaisme荐:Easy-go!似TypeAndRun而占资源更少;新出的免费电子词典lingoes;播放器gomplayer

原文链接

2007年12月17日

终于弄好ACL Latex模板的bibliography自动插入

折腾的两个小时,终于在刚才完全掌握了ACL的Latex模板中自动添加参考文献的方法。方法如下,以供查阅。

  1. 安装CTex套装;
  2. 下载并安装JabRef的最新版,在其中添加一个bibtex样例。并设置其中对应的WinEdt的路径信息;
  3. 在WinEdt中打开ACL论文的Latex模板,例如这次的acl08.tex,然后将最末尾一段如下内容进行替换:

\begin{thebibliography}{}

之间的一些Bibtex样例

\end{thebibliography}

将上述部分完整的删除,并在同一位置添加如下代码,其中的reference就是采用JabRef管理的bibtex文件,acl就是文件夹下默认的bst文件:

\bibliographystyle{acl}
\bibliography{reference}{}

4. 然后即可随心所欲的采用JabRef和WinEdt结合起来进行参考文献的自动插入了。

当我看到生成的文件中参考文献“那熟悉的身影”(总看别人的ACL论文^_^ ,想不到自己这次也能造了  )时,俺兴奋了一把 :)

2007年12月12日

zz 一位大牛整理的Python资源

Python学习

link: http://www.elias.cn/Develop/Python

基本内容

Python基本安装:

Python文档:

常用插件:

  • http://www.pfdubois.com/numpy/ Python的数学运算库,有时候一些别的库也会调用里面的一些功能,比如数组什么的;
  • http://www.pythonware.com/products/pil/ Python下著名的图像处理库Pil;
  • http://simpy.sourceforge.net/ 利用Python进行仿真、模拟的解决方案;
  • Matplotlib 据说是一个用来绘制二维图形的Python模块,它克隆了许多Matlab中的函数, 用以帮助Python用户轻松获得高质量(达到出版水平)的二维图形;
  • http://www.amk.ca/python/code/crypto python的加解密扩展模块;
  • http://cjkpython.i18n.org/ 提供与python有关的CJK语言支持功能:转码、显示之类。
  • Psyco、Pyrex:两个用于提高Python代码运行效率的解决方案;
  • PyflakesPyCheckerPyLint:都是用来做Python代码语法检查的工具。
  • http://wxpython.sourceforge.net/ 基于wxWindows的易用且强大的图形界面开发包wxPython;
  • http://www.pygame.org/ 用Python帮助开发游戏的库,也可以用这个来播放视频或者音频什么的,大概依靠的是SDL;
  • http://starship.python.net/crew/theller/py2exe/ win下将Python程序编译为可执行程序的工具,是一个让程序脱离Python运行环境的办法,也可以生成Windows服务或者COM组件。其他能完成Python脚本到可执行文件这个工作的还有Gordon McMillan's Installer、Linux专用的freeze以及py2app、setuptools等。不过此类工具难免与一些模块有一些兼容性的问题,需要现用现测一下。
  • 嵌入式数据库:BerkeleyDB的Python版,当然还有其他的好多。
  • PEAK提供一些关于超轻量线程框架等基础性重要类库实现。

部分常用工具:

  • http://www.scons.org/ Java有Ant这个巨火的构建工具,Python的特性允许我们构建更新类型的构建工具,就是scons了。
  • Python Sidebar for Mozilla FireFox的一个插件,提供一个用来查看Python文档、函数库的侧边栏。
  • IPython 很好用的Python Shell。wxPython发行版还自带了PyCrust、PyShell、PyAlaCarte和PyAlaMode等几个工具,分别是图形界面Shell和代码编辑器等,分别具有不同特点可以根据自己的需要选用。
  • Easy Install 快速安装Python模块的易用性解决方案。

推荐资源:

代码示例:

其他东西:

有意思的东西:

  • Howie:用Python实现的MSN对话机器人。
  • Cankiri:用一个Python脚本实现的屏幕录像机。

参考资料


Python IDE

我的IDE选择经验

[zz] Performing a t-test with Excel

from: http://eeb.bio.utk.edu/weltzin/GenEcol03/Stats/ttest.htm

1. Arrange your data so that each sample is in its own column, as in the following example:

Sample 1  Sample 2

7.85         12.50

8.51         12.94

13.66       6.26

11.03       6.10

6.59         13.19

8.04         10.74

14.16       6.06

8.13         12.53

6.79         15.45

11.06       15.64

5.83         15.19

10.73       14.93

6.68         7.94

5.02         8.28

10.37       12.65

2. It is always useful to look at a summary graph of your data. In this case, we can plot the mean value of the response variable for each sample. To do this with Excel, first calculate the means (by clicking at the “formula” icon in the toolbar, and selecting “average”) and the standard deviation (select “standard deviation” in the “formula” menu) of each of your samples. Then you can plot the mean for each sample using a bar graph. To to this, click on the “Chart wizard” icon in the toolbar, choose the “column” graph type, and click next. Select the means of the two samples as the data you want to plot); click next. You will have the option of adding a title, axes labels, etc.; do so if you wish, and next, and click finish in the last window. This will produce a graph like Figure 1 below.

Once you have plotted the means, you can add error bars with the standard deviation of your samples. This will give you an idea of the variability of your data. To do this, right-click once on one of the columns. This will open a menu; select “Format data series,” and go to the “Y error bars” window. Click the red arrows in the custom error amount (lower part of window); this will shrink the window. Select the cells where the standard deviations of your samples are, and click the red arrow again. You will have to this twice, for the + and – error bars. Click “OK.” This will modify your graph, as shown in Figure 2.

By looking at this graph, it is evident that the mean for sample 1 is lower than the mean for sample 2. Is this difference statistically significant? Well, the answer to that depends not only on the difference between the means of the two samples, but also on the difference between their variability. This is exactly what a t-test takes into account. (See an example of how variability of the data can determine the statistical significance of a t-test.)

3. To perform a t-test, go to the “Tools” menu, and select the “Data analysis” option; this will open the Analysis ToolPak. (If there is no “Data analysis” option in your “Tools” menu, then you have to install it; click here for help installing the Analysis ToolPak.) Select the two-sample t-test or the paired t-test option, as appropriate.

4. In the t-test window, select the ranges of each of your two variables. Select the significance level (alpha = 0.05 is the conventional value). In the “Output options” section select “New Worksheet Ply;” this will create a new page with your results. Click “OK.”

5. In the results page a table will be created with the following information:

t-Test: Two-Sample Assuming Equal Variances

image

Rows (1), (2), and (3) give you the mean, variance and number of observations for each variable. Row (4) gives you the “pooled” variance (i.e., for both samples together), used to calculate the t statistic. Row (5) gives the hypothesized mean difference (usually zero). Row (6) gives the “degrees of freedom.” Row (7) presents the t statistic (the highest the absolute value, the less similar the means of the two samples are). Row (8) gives you the one-tailed probability that the t statistic calculated for your data is lower than or equal to the critical t-value [given in row (9)]. Rows (10) and (11) give the probability and critical t-value for two tails. (You should use a one-tailed test if your hypothesis is that the mean of sample 1 is either higher or lower than the mean of sample 2; you should use a two-tailed test if your hypothesis is that the means of the two samples differ, no matter which one is higher and which is lower.)

So, in this example, the mean of sample 2 is higher than the mean of sample 1. Suppose our hypothesis was that the means are different, no matter which one is higher; we would then use the two-tailed test. This difference is statistically significant, since the two-tailed probability is 0.001587, which is much lower than alpha (i.e., 0.05).

2007年12月4日

eclipse中编辑器的换行

最近的Java、Python代码都在Eclipse中完成,一直在默默的忍受着不能自动换行的困扰。看了好几种解决方案,终于找到有人写了一个插件来实现这种功能。

转载备份如下:

link: http://www.java125.cn/article.asp?id=1307

 

【  Software updates  】→ 【  Find and Install  】→【  search for new features to install  】,点击【  New Remote Site  】按钮),在“  Name  ”中填入“  wordwrap  ”,“  URL  ”中填入“http://ahtik.com/eclipse-update/”,然后点击【  Finish  】安装即可。安装完毕后在文本编辑器的右键菜单中就可以看到“Virtual Word Wrap”了。

 

哈哈,在编辑器中右键菜单中选中“Virtual Word Wrap”后就能自动换行了,而且会随着编辑器的边界自动调整换行的方式,总之就是非常非常的方便咯。

2007年11月28日

重回FreeMind

记得2004年Cr向我推荐了这一款软件,由于当时好像只有0.6版本,感觉不是很好,找到强大的MindManager后就不再使用了。由于现在不能用D版软件,准备完成一个想法的实验,不能使用MindManager,现在只能再考虑一下FreeMind了。仔细查看,现在这个软件的版本已经到了0.9beta13了,试用了一下,感觉功能以及美观上都不弱于MindManager。还发现有一个专门的视频教程介绍0.7版的如何使用,看完以后顿觉FreeMind真的已经很好了。毫无疑问,我已经选定它了。

感兴趣的朋友可以看看下面的几个链接:

FreeMind主站

FreeMind视频教学课程

2007年11月23日

寻找失败

成功不能被复制,但失败总在不停复制。看看别人是怎么倒下的,你可以更早地成功。

盛大首席架构师周爱民的专访里,看到如下10条建议:

  1. 不要急。
  2. 不要只做不想。
  3. 听别人的话,即使你不想听。
  4. 订一个五个期的目标,写一个一年期的计划,然后回顾它。
  5. 学好中文,学好写文章,学会打标点符号。
  6. 把工作当成事业做,天天都在做事业,才会成功。
  7. 理论看不懂,就去实践;实践遇到问题,就去看理论。
  8. 参加一个开源项目,如果没你感兴趣的,就自己发起一个。
  9. 保持自己对某一件事物的热心、执着,即使这件事与你是不是程序员毫无关系。
  10. 成功不能被复制,但失败总在不停复制。看看别人是怎么倒下的,你可以更早地成功。

最后一条,感觉有道理。事实上丁磊就经常对别人讲他的成功不可复制。一个人的精力和时间都是有限的,那么如何学习别人失败的经历呢?我想可以多关注一些讲述如何失败的东西。简单找了一下,居然发现还真有这样的东西。

Failure Magazine 

呵呵,这个网站非常有意思

2007年11月22日

UML很重要,初学

准备开始涉及一些程序架构设计方面的东西,感觉UML这个东西在程序开发中非常重要,以前尝试过一次C++程序开发过程中和UML图的不断交互,那样写出来的代码非常清晰,对整个代码的架构掌握的比较清楚。现在开始采用Java编程,也准备采用这种策略来实现一把,毕竟“Java是正儿八经”的编程语言啊 :)

先转载两篇讲述UML在程序开发过程中的重要性的短文,如下。

------------------------------------------------------------------------------------------------------------------------------------

Java开发为什么需要UML?

       知道UML造成了怎样的局面大混乱吗?知道什么样的功能是UML拥有但JAVA不具备的吗?知道我们为什么需要除JAVA外的另一种电脑语言吗?UML并不仅仅只是JAVA或者其它什么语言的替代品。UML并不仅仅只是JAVA或者其它什么语言的替代品。UML是面向对象的分析及设计的注释。 UML是独立于那些传统设计语言之外的一种语言。因为UML并不依附于某种语言,而且它被用作是联系沟通Java、 C++ 、Smalltalk等语言的基础工具。通过使用UML,可以在开始编码之前规划好整个系统,并且开发人员清楚自己所负责的模块在整个系统中所起的作用。

更为重要的是,UML可以帮你记录下从设计就开始出现的错误,要知道糟糕的设计会带来一系列的麻烦。设想一下,在源代码编制到一半的时候,你突然发现你所需要的信息已经枯竭了,但你却没有办法重新取得信息,因为你没有引用Object,甚至于你引用了object,然而信息确是非public 的。显然的,你将花费数天时间来找出代码的变化。

UML可以帮您摆脱如下一些困境:代码随着细节的增多而累积,因此,查找哪些是系统的基本要素,了解objects之间的关系如何以及它们之间怎么联系都会变得困难起来。当大量的代码产生出来的时候,做一些改变也变得困难。因此决定一个对象的功能被分配到协作中的设置是一项主要的工作。甚至有时只是改变一个方法的名称那样简单事情,也很可能导致一个很长的编辑----编译---错误循环。

在编码之前高水平的设计是进行正确的需求分析和精确的定义,UML的自动化工具固然重要,但UML在设计讨论中就显得更为有用。

Source: http://www.cndw.com/tech/program/2006042862137.asp

------------------------------------------------------------------------------------------------------------------------------------

程序员眼中的UML

UML自1997年诞生以来,受到无数厂商、组织、专家学者的追捧和拥护,短短几年时间,便有一统天下之势。提起建模语言,舍UML其谁?
UML相关标准

OMG组织作为影响力最大的面向对象技术的机构,早早便将UML收入囊中,力捧其为标准建模语言。OMG在CORBA取得成功之后,最大的着力点便是MDA架构,而MDA架构的四大标准UML、MOF、XMI和CWM中,围绕着UML的技术便有三种:UML本身自不必说,版本已经到了2.0;MOF作为“建模语言的语言”,似乎就是为UML量身定做的,虽说MOF有能力创建出与UML并驾齐驱的建模语言,但是似乎没有看到谁这么干,大家只是在努力的发展UML的“方言”,例如UML Profile for CORBA,UML Profile for EJB等等;XMI是“模型的标准存储交换格式”,为了解决不同的建模工具创建的模型不能互用的问题,OMG创建了XMI作为模型的存储交换标准。这样一来,UML工具更加可以大行其道,使用不同的建模工具创建的UML模型可以互相交流,只要它们都基于XMI。
UML相关工具

工具的多寡与优劣可以看出某个技术的受欢迎程度,在建模工具中,不说100%,大概也有90%支持了UML语言。最出名的UML工具Rational Rose,被IBM收购了;Eclipse下面的UML工具EclipseUML让开发它的小公司Omondo也出名了;国内也有一个UML工具,听说效果也不错,就是楚凡科技的Trufun Plato 2005。至于其他国际上有点名气的UML工具,更是不胜枚举,几乎有点软件实力的国家,都有自己的UML工具。

当然,UML不仅仅出现在专用的UML工具中,它也频繁出现在最新的各种开发环境中。例如编程开发环境JBuilder,具有将代码转换为UML类图的功能;Together就更进一步,直接实现了代码和类图的同步转换;Eclipse作为最优秀的开放式开发平台,拥有众多的UML相关插件,除了前面提到的EclipseUML,比较有名的还有EMF和UML2。

UML在MDA出现之后,在OMG的概念中,成为了MDA的一个子集(虽然UML的名气远远大于MDA)。因此众多的MDA工具中,几乎都少不了UML功能。我认为很多MDA工具就是从UML工具直接改过来的。
UML使用现状

照理说来,如火如荼的标准和工具应该催生出如火如荼的应用才对,可是UML的使用状况实在不尽如人意。无论是身边的还是网络上的朋友,在项目中使用UML的都是凤毛麟角,即便使用了UML,也是在很小的范围内,完全没有发挥出1%的功效。现在总结一下目前我所知道的UML使用现状:

  • 读代码时,用UML工具进行逆向工程,可以清晰的观察代码结构,方便理解代码。
  • 写代码时,由于开发平台可以自动生成UML类图,因此有时观察UML类图得到比较清晰的代码结构。例如Together或者JBuilder等工具。当然,如果没有自动生成的UML图,大部分人也不会寻找其他工具去生成UML类图的。
  • 撰写科技论文时,使用UML来表达系统架构或者系统流程等。
  • 部分对UML非常熟悉的程序员,在开始写代码时,先画UML类图,然后利用工具生成代码,最后对代码进行扩展。

从上面的使用现状可以看出,很多人把UML当成一种可有可无的技术。即使使用了UML,也只是围绕着UML中的类图,其他的UML图都抛到一边去了。造成这种状况的原因,一方面固然是因为国内的正规大型软件项目比较少,软件工程技术起步很晚;另一方面是由于国内不管是架构师、系统分析员、软件工程师、程序员、测试人员等等实质上都是程序员而已,很多人是赶着鸭子上架成了架构师或者系统分析员的。这种状况下,软件工程的概念难以深入人心,UML更加成了一个国内项目的鸡肋。

看看国外的架构师、UML专家们,往往都是满脸大胡子,在计算机领域中浸淫了3,40年;而中国最古老的程序员,也只有十几年经验,除去在黑暗中摸索的几年,有十年以上开发经验的程序员少之又少。不经历几个大型项目,要使用软件工程技术是不可能的,也是不能起到什么效果的。因此,有人堂而皇之的撰文“UML的三大硬伤”,将UML驳斥得一无是处。高喊口号打倒某东西是很容易的,关键是打倒了UML何以取而代之?
程序员眼中的UML

既然国内90%以上的软件开发人员都是程序员,那么程序员眼中的UML到底应该是什么样子的呢?我很期望有一本好书能够让程序员们快速的掌握自己所需的UML知识,遗憾的是目前还没有看到这样的一本书。无论是“三友”的UML经典教材还是国内的一些“xx天精通UML”都不符合这样的要求。没有一本是“有中国特色的UML教材――一本写给程序员的UML入门书”。

作为一个程序员,我很了解其他同僚的心理,如果拿到一本书,翻了一个小时还没有找到可以run的HelloWorld,90%的人会大叫一声“去nmd”,然后把书扔进废纸堆。不能怪我们急功近利,在这个技术术语满天飞,连底层平台都动荡不安的年代,谁还有时间和兴趣看一些与自己无关的东西呢?

我很能想象一个程序员,好不容易空出时间来看看最近很热的UML技术,当他拿到一本UML入门以后,开始寻找对自己有用的东西。在开始的一个小时,满篇都是需求分析,use case,甚至书的作者还在饶有兴趣的介绍use case有六种译法:用例、用况、用案……对不起,老子一百年都没做过需求分析了,也不想知道这个狗屁的use case到底叫什么。于是开始后悔在china-pub上又白花了这么多银子。

还有些书上信誓旦旦的说“学好UML,走遍天下都不怕”,如果你做需求分析,你可以用UML和客户交流;如果你做系统分析员,你可以用UML设计系统;如果你做程序员,你可以用UML生成程序;如果你做测试员,你可以基于UML设计测试用例。而实际情况是什么呢?国内的客户有几个懂UML?懂UML的人差不多自己都可以把软件写出来了,还需要请你做需求分析么?别说客户了,上次听同学说和北京某大科研所的工程师们交流,无意中说起了UML,在场的竟然只有一个稍微了解,而且坚持认为那是一种画图工具(那位仁兄其实也没错,Visio不就是一个画图工具么)。

虽然状况如此不堪,但是UML确实是一个很优秀的“交流语言”、“代码生成工具”和“系统设计工具”。让我们擦干身上的献血,掩埋战友的尸体,睁大迷蒙的双眼来看清UML对程序员的作用。UML有九种图,作用各自不同,基本上涵盖了软件工程的各个方面,很多人就是不堪于忍受知识不足的困惑与“侮辱”(很多程序员认为一种技术自己看不懂就是对自己的侮辱),从而放弃了整片UML森林。他们怕的不是在UML这棵树上吊死,而是怕在UML森林里面迷路。但是我想说,知识学习的过程就是去芜存精,找出对自己有用的东西,然后掌握之。对于程序员来说,UML的价值就体现在三个方面:

一、UML是最好的交流语言,无论是与其他程序员交流,还是与领域专家、测试员或者用户交流。原因只有一点,UML是标准的,就像英语一样,无论多么该死,大家还是忙着把自己的论文改成英文的。当然,在小的领域可能有更好的交流方言,但是在大而长远的交流中,使用标准的交流语言是稳妥的。

二、UML是很好的代码生成工具,其实代码生成功能并不是由UML语言和规范提供的,而是由UML工具提供的,而且不同的UML工具提供的代码生成功能还不尽相同。例如Rose提供简单的代码框架生成,而Eclipse插件EMF可以生成功能丰富,提供了各种设计模式的代码包。无论如何,如果程序员可以从UML入手来写程序,比直接敲代码要高级那么一点点。从文档、版本控制、维护、测试等各方面来说,画UML类图比直接写代码都要高那么一点点。

三、UML是很好的系统设计工具。对于程序员来说,很少用到“设计”这个词,大部分时候我们都是在“编写”或者“实现”。但是勿庸置疑,程序员的许多工作中还是需要 “设计”的。包和组件之间的依赖关系、复杂操作的流程、对象之间的关联和状态、程序的部署等等,都经常是程序员的工作。那么上面的四种情况可以用UML的组件图、序列图、对象图和部署图来设计。虽然,不同的程序员有不同的设计方法或者设计图例,不过,UML是标准的。不要忽视标准的力量,标准的东西意味着在全世界范围内都有可能会被看懂,不标准的东西可能出了你的办公室就没人能够清晰、准确的理解了。
后记

Blog好久没有更新,因为最近一直忙于一些俗物,于是想写点清高的东西。但是写完之后再看,好像也不怎么清高,反而更俗了。

前段时间写论文时,需要用到UML2.0的类图元模型,在UML2.0的规范中寻觅了好久,发现类图元模型已经被拆分到三个包里面了,因为UML2.0的规范实在是太大太繁琐了。于是有感于UML之博大精深,说好听是博大精深,难听点就是乱七八糟。不过OMG历来如此,当初的CORBA如果更简约一点,也许J2EE根本就没有立足之地。

感慨之后就是想把UML中对自己有用的部分整理出来,在整理之前免不了到处翻资料,这篇文档就是翻资料的一些感触了。希望能够将UML的有用部分都整理出来,形成一个系列的文档。

Source: http://dxxhh.cnblogs.com/archive/2005/11/18/279882.html

------------------------------------------------------------------------------------------------------------------------------------

2007年11月21日

点滴

Java里面比较两个字符串是否相等不能直接用“=”。那样只能比较两个对象是否是同一个,也就是比较对象的地址而已。这一点在学Java的时候看到过,但是一时疏忽居然忘了,害得我今天花了一个小时时间来修改用于字符串比较的“=”。Java里类的成员变量不要随便将一个静态变量在某个非静态函数中自增,否则会出现严重的问题,当然如果确实需要这种功能的话,需要格外谨慎的。这段时间用Java编程,感觉Java还是很方便的,按照XF的话来说,Java是“正儿八经的编程语言”:)

Google真牛啊!今天试用了Google Calendar的手机短信提醒功能。真的很棒啊,最为关键的一点是用户不需要支付任何费用。这下子好了,也不用买个高档手机来导入Outlook的提醒了。另外得知Google正准备推出Google手机,据说能和Gmail以及搜索功能绑定,呵呵,值得期待啊。

这些日子了解到一些新加坡的历史,值得借鉴啊~!

2007年11月16日

NUS的地图大还是小?

初到NUS(新加坡国立大学)时,被发给一张全校地图,其实学校并不大,但是看到地图总觉得很大,学校里还在有三趟校车围着学校转,整个校园全景图就像下面这样。

我所在的位置就是下面这幅图中红色五角星那里

 

非常遗憾的是,我来这里几乎每天都会迷路,经常出现拿着地图找地方的情况。好在地图虽然看起来很大的样子,但是每两个地方之间都走不了两分钟。

今天,就在今天发生了一件让我感觉不愉快的事情。

事情是这样的,我帮一位朋友带了两个热水袋过来,因为新加坡气温终年都在27度左右,自然不需要热水袋的。送完热水袋回来,那位朋友头送我上了一种专门在两个NUS科学园之间往返的汽车,朋友告诉我可以提前告诉司机在计算中心下车。等过了计算中心我才想起来需要告诉司机。看到汽车行驶的路线和我要去的红色五角星处是一样的路线,我就非常自然的想到可以在离最近的地方叫一下司机停车。但是等到快到时,司机好像是欺负车上就我一个乘客,而且一看就是新来的中国人,居然不停车,还在那里罗里罗嗦的用英语解释不停。大概意思就是,他的工作就是在两个科学园之间运送乘客,你如果要下车的话需要提前举手,而且需要向司机说明。总之就是,司机是很尽责的,如果违规停车的话就会被开除的。

后来我也懒得听他说了,他倒是非常尽兴的说了足足5分钟。哼哼,要是我英文好些的话,肯定会说过他的。

好在,他在一个他认为已经很远的地方停车了,等下车我一看,哈哈,这个司机想整我,但是实际上这里离我要去的地方似乎也比较近。我凭着自己较为敏感的方向感,拿着地图,五分钟内回到了研究所。当我看到研究所大楼的时候,心里甭提有多么畅快。

 

吃一堑长一职,以后做这种两个科学园之间的汽车一定要注意,“举手”,提前说要下车,免得又被人整  :)

 

我送热水袋后,那位朋友非常热情的送给了我基本认为我会用上的书,《Vim》,《Latex用户手册》,《The Java Programming Language》。呵呵,非常好啊。感谢这位朋友咯。哦,对了,前天给另外一位朋友送动画片后获赠了一盒很不错的巧克力,好像叫“FERRERO ROCHER”。也不知道是什么牌子,就是觉得味道还不错。在这里感谢两位朋友的馈赠咯。

2007年11月15日

软件替换

金山词霸 vs Lingoes(免费),而且似乎Lingoes更好些,而且整个软件非常的小(才2M)唯一不足就是Lingoes不支持Acrobat Pdf。但是可以在同样免费PDF X-Change PDF Viewer上完成。

Komodo vs UliPad+PyScripter. 原先Komodo很不错,可以实现编辑和调试,也是很方便的,后来用了UliPad,感觉更为方便,但是UliPad不支持调试,为此加上PyScripter就感觉非常舒服了。现在写Python感觉就是一种享受。

Outlook vs Gmail + Google Canlender. 原先非常熟悉Outlook的使用,也很方便。但是如果没有Exahcnge Server的支持的话,Outlook换个机器就非常麻烦。不得已,经过详细对比分析各种相关解决方案,最终选择了Gmail + Google Canlender。现在我已经脱离Outlook一周了。感觉没有Outlook也是可以正常工作的。

SWI Prolog vs YAP Prolog. 原先就知道运行Prolog程序时Yap会快些,但是由于自己不懂怎么弄那个DEPTH设置,一直只能用SWI。昨天在一位斯里兰卡同事的帮助下,很快就搞定了这个问题。现在能够在Yap上自由运行程序了。但是今天试了一下,似乎有点小问题。

C++ vs Java。由于项目需要,我必须用Java来编写程序,好在来之前突击了一段时间Java,现在基本能够解决问题,但是有时候仍然是采用C++的编程习惯来编写Java程序。昨天得知NUS的本科生一开始就用Java编写程序,而且Java可以很好的完成各种任务。继续学习Java中...。

Windowsvs Linux . 这个是最大的替换,虽然我已经较为熟悉Windows下完成各种任务,但是感觉Linux下也能够非常好的工作,而且有时候Linux下运行大型的程序会更为方便一些。昨天看着斯里兰卡同事的操作,才真正领略了Linux的方便和强大。整个Linux世界是较为成熟的。现在我也得开始好好学习Linux了。首先感谢孙军借给了我一本好书:LINUX随身指南。

SSH vs Putty。原先一直使用SSH来连接Linux的服务器,这两天发现这边都用Putty来连接。Putty比SSH好在哪里还需要体会一下。

2007年11月10日

From 哈尔滨 to Singapore

      第一次走出国门,真的比较紧张,其中遇到了很多的有趣的"意外"。

      首先,我乘坐的飞机经停了两次,大连 and 广州。买票以及取票时都没有被告知会在大连经停40分钟。巧合的是,在飞机快到大连前,我正在阅读的一本高群耀的书《体验微软》,居然正好讲到大连那一段。感觉大连确实非常的美,尤其在飞机起飞以及快要降落时看到的场景。

      大连机场,登机前,我在让机场人员检查我的机票时,一位30多岁的女士问我是否要去Singapore。原来她的机票和我的一摸一样。想到同是从哈尔滨到异国,一时到像是遇到了老乡似的。呵呵,她是哈尔滨人,我是四川人。真是一种奇怪而特有的感觉。随后的两次碰上的几分钟的闲谈,她向我介绍了Singapore相关的很多信息,例如哈尔滨的特产红肠、黑木耳、马哈鱼等在新加坡都非常受欢迎,因为新加坡的木耳都很厚很大,味道不如哈尔滨的。她介绍马哈鱼在中国只有很少的几个城市能买到,算是哈尔滨的一种特产。我原本以为马哈鱼属于海货,新加坡这种岛国应该会很多的。

      广州下飞机后,首先是换取登机牌以及托运行礼,原先一直以为自己的箱子已经就20kg了,哈尔滨至广州断,我一直还随身带着一个大拎包和自己的背包,在广州换登机牌时随手试了一下,居然两个包加起来也不足20kg。这下子就轻松了很多。高中同学来机场见我一面,简单的闲谈了很多,谈及最多的还是大家高中毕业后的经历,最后的结论是大家都要好好努力,年轻时多积累经验。

      最为担心的是在广州登机前的安检。听说随身携带的药品需要过海关申报,在遇到申报这关时我填写的都是不用申报,最后居然顺利过关了。现在才知道,自己带的这些日常用药根本就不用申报的。

      刚登上去往新加坡的飞机,一位新加坡老太太询问我是否可以和她的一位朋友换个位置,我应声答应了。从左侧的过道侧位置转到了右侧的中间位置。翻看了几分钟随意的杂志,旁边的一位中年女士问我是否要看报纸。接下来,这位女士给我讲述了她半生的奋斗史,以及她所理解的社会、人生、以及世界各地的各种人文轶事。她说她最为厉害的就是在全世界范围内买廉价机票以及定廉价酒店。随后她就向我讲述了其中的"诀窍"。从她的言谈以及对各种最新消息的关注程度,我发现她是一位"全球化"的人士。她的很多业务都验证了《世界是平的》一书的描述,唯一不同的是她根本不借助互联网,而是单纯的凭借她的那种由于美容技术而快速结交人士的能力以及对各种相关信息的跟踪与分析。听了她的介绍,我觉得这些内容都能写成一本传记,缺少的只是后续的内容。从中也体会到了很多华人在海外的遭遇以及执着的奋斗。

      到新加坡下机后,我拎着那位哈尔滨"老乡"的行李,在一个路口等她。一位准备清理飞机的工作人员问我你怎么穿那么多啊,我说我是从哈尔滨过来的,那边气温已经低于0度了,随之而来的是一阵惊讶。

      在入境处,工作人员很顺利的建检查了我的证件,我还解释了一下我的签证的情况,看着顺利通过了检查,我觉得我用中文解释还是很有帮助的,因为这个签证很特殊的。忽然,"please speak in English"传入了我的耳朵。原来,这位官员是马来西亚人,后面的"老乡"让我帮翻译一下后也顺利通过了检查。忽然意识到了很多场合开始更多的需要英文了。

      最为意外的是在机场的接机。原先告诉了我的三位同学来接我,相关的机场怎么坐车的信息我就没有预先查一下。等我推着行李车走到接机处后居然没有看到我的同学们。一时真的有点着急了,围着两个接机口转了四个来回,我决定开始应急方案。经过数次询问后,我兑换了一些新币,购买了一张像国内IC卡那样的电话卡,准备给直接带我的老师XF打电话。因为他之前告诉我他的手机号时补充了一句,"When you are lost in the airport, please call me"。说来也巧,就在我最后一遍查看同学们是否在接机处时,忽然出现了明显匆匆赶到的Sun Jun和Jiang Hongfei。那一刻,真有一种找到家的感觉。Sun Jun变得Stronger了许多,Hongfei变得白了许多。原来他们根据经验,认为我会先填写入境登记表,然后时繁琐的入境检查,之后会是被迫缓慢的查询托运的行礼,最后才是出现在接机处。

      由于时间已经接近12点,没有了公交车,我们只好打车。刚上车,我发现新加坡的汽车原来是右边驾驶的,而且整个交通系统都是自左原则,刚好和中国的情况完全相反。弄得半天我都以为是坐在左前方的Hongfei在驾驶似的。

      半个小时后,我们终于达到目的地,原本以为会先到他们的住处挤一晚,此刻才知道他们直接送我到了帮我预租的房子这里。送走二人后,由于看起来整个房间都没有人,我开始收拾起来。先铺好床,简单收拾一下房间的格局以及自己随行携带的东西,之后洗完热水澡后就不知到怎么睡着的了。这时是凌晨2:30。

2007年10月31日

启用blogspot,继续blogginig

准备开始将自己的blog写作转移到blogspot上来,虽然现在blogspot正常是不能被中国用户访问的,但是采用一些方法还是能办到的。喜欢这个Blog系统的简约。重新点燃了继续撰写blog的心绪。想了解我过去的朋友可以看我以前的那个写了四年的blog: Bill_Lang's Study&Life

Message Board


Welcome your messages and comments to me.

Google Blog

转载:

解决BlogSpot无法访问的方法



这是网络上关于解决 BlogSpot 无法访问的几个方法:

1.在线代理

http://www.pkblogs.com/ (目前失效~)

http://www.inblogs.net/ (目前失效~)

在要访问的Blog后面加”.nyud.net:8090″,例如:http://kidoit.blogspot.com.nyud.net:8090/

2.订阅

比如用 Google Reader 订阅

3.代理文件

function FindProxyForURL(url,host){
if(dnsDomainIs(host, “.blogspot.com”)){
return “PROXY 72.14.219.190:80″;
}
}

把上面内容粘贴到记事本,保存为 proxy.pac 。

如果你使用 Firefox,打开“工具”——“选项”——“高级”——“网络”——“设置”,选择“自动代理配置URL”,填写 proxy.pac 的路径,例如:file:///D:/proxy.pac,点“重新载入”,”确定”即可正常访问 BlogSpot 。

如果你使用 IE,打开”Internet 选项”——“连接”——“局域网设置”,选择“使用自动配置脚本”,填写 proxy.pac 的路径,例如:file://D:\proxy.pac,”确定”即可正常访问 BlogSpot 。

IE在加载了代理文件之后,可能导致一些非 BlogSpot 网站无法正常访问,只需取消“使用自动配置脚本”即可。

2007年10月15日

新加坡:视障阻挡不了求知欲 盲女凭努力考获数学博士

今天是世界盲人日,忽然想起来前些天看到XF的Blog里面提到新加坡国立大学有一位盲人女博士,已经获得了数学博士学位。想来甚是感人。在网上找到她的相关报道,转载如下。

----------------------------------------
Source: http://www.cjr.org.cn/asp/news/2006-7-7/news200677112737.asp

新加坡:视障阻挡不了求知欲 盲女凭努力考获数学博士






2006-07-06 新加坡联合早报

  在杨诗翎的世界里,她只看得到光和亮。

  四五岁那一年,父母亲察觉她在看东西时眼神怪怪的,带她看医生,发现女儿患上了青光眼。

  由于发现得太晚,杨诗翎的视觉神经已经受损,经过三四次手术,还是无法恢复正常视力。从此她的视力一天天退化,她今年28岁,只分辨得出黑暗和光明。

  上幼儿园时,杨诗翎因为视力问题,常常躲在自己的世界里,甚少跟同学交谈。因为看不见,她无法正常学习,教师也不晓得如何帮助她。经过一段时间的努力,她最终还是辍学了。

  后来,她在医生的介绍下,到视障学校上课,学习布莱叶点字法(braille)。在教师的细心教导和自己强烈兴趣的驱使下,杨诗翎顺利升上中学。去年,她完成博士论文,修得数学博士学位。

  数学是一门抽象的学科,有很多符号和理论,这些对看不到的杨诗翎无疑是一项挑战。但她并没有因此而打退堂鼓,因为她知道数学是自己的兴趣所在,也是她可以有优异表现的领域。

  其实,杨诗翎能够有今天的学业成就,身边支持她的人功不可没。上课前,同学或家人总会抽出时间帮她念出课本的章节内容,收录到录音机里方便她反复温习。当然,她自己也付出努力,时时利用点字机整理笔记。

  就这样,努力再努力,杨诗翎将在这个星期天将接过毕业证书。新加坡国立大学今年的毕业典礼今天起举行。今年共有5791名毕业生领取学士学位、2053人获得硕士学位、363人获颁博士学位。

  毕业后,杨诗翎对前途是否有一份焦虑呢?

  她说:“年轻的时候当然曾经为前途担心过,因为我也听过学姐说,我们(视障者)找工作比较难。毕竟,失明者不是那么容易融入到社会的。走同样的路,别人会走得比较快,我们因为身体的局限,走得比较慢。“但我认为很多事情不必过份担忧,只要尽力,一步一步来,比别人努力,人家还是会给我们同样的机会。”

  四年前,杨诗翎就凭着优秀的成绩和坚定的毅力,获得了新加坡科技研究局(A*STAR)奖学金。目前,她正在履行奖学金合约。对于自己的事业前景,乐观的她看到的是一片光明。

2007年9月12日

所有PHP程序员都应该知道的五个工具

所有PHP程序员都应该知道的五个工具

原作者: Mike Malone 译者: 子非鱼 (Blog) 发表时间:昨天 10:00:14

在参与了几个大型PHP项目,写了很多PHP代码以后,我发现很多工具可以提高代码质量,简化发布,使得做为PHP开发人员的生涯变得轻松许多。许多这样的工具可能已经为大家所用。但是,由于一些人甚至没有注意到这些工具的存在,我会从此开始,好了,不说废话,下面是我认为所有PHP程序员应该知道的工具列表。
Phing - 一个项目构建系统

Phing LogoPhing 是一个基于Apache ANT 的项目构建系统。它的名字是一个拗口的语句首字母缩写 - PHing Is Not GNU make 。Phing可以做传统构建系统比如 GNU make 能做的任何事情,同时没有陡峭的学习曲线。

在phing(以及其他的构建系统)背后的思想是评估一系列相关性,然后执行一系列PHP类去正确的安装和配置一个应用系统。构建过程用一个简单的 XML配置文件控制。Out of the box, phing内置可以执行一系列替换(比如:在你的开发版本和产品版本间改变include路径)、执行SQL语句、移动和复制文件、运行外部脚本等等。通过扩展包含在发行包中的“task”类,你也可以创造自己的定制任务。

对任何需要在超过一台服务器上部署大型PHP应用的人来世,Phing是一个无价之宝。同时我发现它对简单的PHP脚本也是很有用的。
Xdebug - 调试和分析工具

Xdebug LogoXdebug 是帮助你调试和分析脚本的一个PHP扩展。Xdebug中最有用的特性是在激活后显示的新注意信息、警告信息和错误信息。如果一个脚本不能正常运行,Xdebug将会输出关于错误信息的完整堆跟踪 ,会附带函数名称、参数值、源文件和行号。这对于厌倦了PHP默认只带的可怜的错误报告功能的程序员是一个值得欢迎的特性。

这个扩展有很多更先进的功能,允许开发人员进行代码覆盖率分析,收集分析信息以及交互式地调试脚本。profiling functionality 功能尤其有用。分析器使用一个普通的输出文件格式,允许你使用象 KCacheGrind 这样的工具快速发现你代码中的瓶颈。对任何严肃的开发人员而言,一个好的分析器是基本工具,它使得你妥善优化你的代码,同时避免过早优化带来的危害。
PHPUnit - 单元测试框架

PHPUnit logoPHPUnit 是一个轻量级的PHP测试框架。它是在PHP5下面的 JUnit 3.8.1 完整移植,是xUnit 测试框架家族的一员(它们基于软件模式 先锋 Kent Beck 的设计)。

单元测试是几个现代敏捷开发方法的基础,使得PHPUnit成为许多大型PHP项目的关键工具。这个工具也可以被前面讨论的Xdebug扩展用来生成代码覆盖率报告 ,并且可以与phing集成来自动测试。
Propel - ORM(对象关系映射)框架

Propel LogoPropel是一个PHP5下面的对象关系映射(ORM)框架,它起源于Apache Torque项目。它提供了一个复杂但是易用的数据库抽象层,使得你可以在PHP中象使用普通类和对象一样得使用数据库实体。Propel允许你使用一种简单的XML格式定义你的数据库,这个XML文件被用来映射数据库,生成应用中使用的静态类。

Propel被内嵌于流行的Symfony PHP框架 (还有其他的),它使得代码更灵活、模块化以及可移植。这个项目有The project has 出色的文档,以及很棒的支持社区。
phpMyAdmin / phpPgAdmin - 基于web的数据库管理系统

phpMyAdmin Logo历史有点长可是还是很有用,phpMyAdmin是对于任何数据库(对应PostgreSQL和SQLite是phpPgAdmin 和 phpSQLiteAdmin)最有用的管理工具之一。它有助于做每一件事情 - 从为了调试应用去创建和删除数据库到做备份。安装它通常是我在一个LAMP服务器上面安装完 Apache, PHP和MySQL后做的第一件事情。如果你使用MySQL,不知何故还没听说过它,那么现在就安装 。
其他工具

还有很多优秀的工具用以符合各种需要,帮助PHP开发者创建一个丰富的开发环境 — 我希望我可以说到所有这些工具。我发现对自己有用的工具有PHP Beautifier, Spyc, Creole和Smarty。我确信还有很多我忘记或者没听说过的有用工具。因此,如果你知道某个我遗漏的PHP开发伟大工具,请留言让我(以及所有人)知道!

2007年7月27日

浪费时间的40种方式

1、电话
2、打扰者、突然来访者
3、会议(预约、没预约)
4、争吵、发火
5、缺乏目标、时间计划、优先计划
6、杂乱的办公室和工作桌、个人的无序性
7、无效率的代表、委托人
8、作无用的尝试
9、同一时间,想法、尝试过多
10、不现实的时间期望
11、无效的的通讯
12、下属的训练和发展不充分
13、拖延、犹豫、作白日梦
14、不会说“不”
15、努力不彻底、或改变努力
16、自己做缠人过多的细节
17、员工不足或工作不力
18、社会的、闲在的谈话
19、缺少自律
20、保持优越感
21、错误的倾听
22、缺少反馈
23、争议、个人问题
24、忧虑、恐惧、焦急
25、不充分的计划、错误的变更
26、等待
27、记忆本身
28、差的记忆
29、对结果行为的迷惑
30、疲劳、讨厌
31、责备其它
32、压力、紧张
33、不充分的工具与设备
34、公司策略
35、不充分的登记系统
36、过多的文案工作、邮件、读物
37、宠物、外界活动
38、不耐烦、草率
39、不懂该做先做的事

2007年7月20日

[ZT]拖延:一种不好的习惯

source:http://www.yeeyan.com/articles/view/3244/1247

在生活中有很多事情会妨碍我们获得成功,而其中最能妨碍我们的也许是拖延的习惯。拖延者妨碍的是他们自已,他们把妨碍物放在他们自己的道路上,他们实际上选择了伤害他们工作效率的道路。

人们为什么会这样做呢?我曾访问两位世界知名的研究拖延的专家:Joseph Ferrari, Ph.D.,,芝加哥的De Paul大学心理学方面的副教授以及Timorthy Pychyl,加拿大渥太华市的Carleton大学的心理学副教授。他们都不是拖延者,并且都很快回答了我提出的很多问题。

1. 百分之二十的人认为他们是慢性的拖延者。对他们而言,拖延是一种生活方式,尽管这并不是一种好的生活方式。并且拖延发生在生活的所有领域。拖延者往往不及时付账单,错过买音乐会的门票,不去兑现礼券或支票,总是晚报所得税申报表,或是直到圣诞节前夕才想到去买圣诞节所须商品。

2. 这并非是微不足道的问题,尽管从文化的角度上而言这并不是多么严重的问题,但它代表了一个深层次的自我约束的问题。并且,美国与其它国家相比,拖延代表了更多的问题,原因是我们非常挑剔;即使我们相信理由是真的,我们也不允许人们以各种理由辩解

3. 拖延并不是一个时间管理或计划管理方面的问题。尽管拖延者比其他人更乐观,他们对时间的估计能力并与其他人并没有什么不同。(后边这句没译出来)

4 拖延者并不是天生的。拖延的习惯是在家庭环境中形成的,但家庭环境并不直接导致拖延。拖延往往来源于家长独裁式的家庭。拥有绝对控制权的父亲往往阻碍了子女自我约束能力的发展,阻碍了他们形成自己的意图并学会将这种意图付诸实践的能力。拖延甚至是一种叛逆的表现,这种表现是在这种家庭环境下产生的表现之一。并且,在这种家庭环境中,拖延者更愿意向朋友(而非父母)寻求帮助,并且,他们的朋友可能会使拖延者的拖延变得更为严重,因为朋友对拖延者的理由总是很宽容。

5 在饮酒的人群中,拖延者往往能消费更多的酒。拖延者喝的酒往往比他开始想喝的量要多----一个自我约束方面的小问题的表现,这种表现(对拖延者的影响)大大超越了拖延的情况发生时一些反复出现的情形对拖延者的影响,并且这种表现会导致通过滥用物质得到解脱。

6 拖延者往往自欺欺人。比如,“我更愿意明天做这件事”,或者 “如果有压力我会干得更好”。但事实上到了第二天他们也没有紧迫感、也没有在压力之下干的更好。另外,为了保持自我感觉良好,他们会劝自己说“这事不重要”。拖延者偏爱的另外一大谎言是:时间的压力让他们更有创造力。不幸的是,他们最终并没有更具创造力;那只是他们的感觉而已。他们最终浪费的(时间)资源。

2007年7月16日

[ZT]windows下的83个开源软件

windows下的83个开源软件

以下内容翻译自https://wiki.ubuntu.com/LoopList,可能有部分翻译的不是很准确(因为有些东西我也不知道是干什么用的)。这些全部是windows下的开源软件。每个领域最多会列出两个最好的软件。

个人电脑程序

通讯类

邮件程序= Thunderbird

对比: Microsoft Outlook

通用即时通讯软件 = Gaim

对比: Trillian

通用即时通讯软件= Miranda IM

对比: Trillian

Web浏览器 = FireFox

对比: Microsoft Internet Explorer

IP电话 = OpenWengo

对比: Skype

教育

学习游戏 = Childsplay

对比: 未知

天文馆 = Stellarium

对比: 未知

宇宙模拟 = Celestia

对比: 未知

飞行模拟 = FlightGear

对比: Fly!

打字训练 = Tux Typing

对比: 未知

绘图程序 = Tux Paint

对比: KidPix

经济类

个人账目 = Grisbi

对比: 未知

财政: TurboCash

对比: Quicken Quickbooks

开发类

框架/平台 = Mono

对比: Microsoft .NET Framework, Java

完整开发环境 = Eclipse

对比: Microsoft Visual Studio

完整开发环境 for C# and VB.NET = SharpDevelop

对比: Microsoft Visual Studio, Borland IDE

Windows安装程序制作 = Nullsoft Scriptable Install System, Inno Setup

对比: InstallShield, Microsoft Installer

游戏类

3D 宇宙模拟 = Vega Strike, Epiar

对比: Eve-Online

3D 实时坦克大战 = BZFlag

对比: 未知

3D 回合制坦克大战 = Scorched 3D

对比: 未知

3D 海盗冒险 = Crown and Cutlass

对比: Pirates!

宇宙射击 = Kobo Deluxe

对比: 未知

台球 = FooBillard

对比: 未知

第一人称射击 = Cube, Nexiuz

对比: Quake, Doom, Unreal

疯狂小旅鼠 = Pingus

对比: Lemmings

战略指挥 = Penguin Command

对比: 未知

大型多人在线RPG = PlaneShift

对比: Everquest

赛车 = PlanetPenguin Racer (f.k.a. TuxRacer)

对比: 未知

冒险 = JavaRisk

对比: 未知

类Tron游戏 = Armagetron Advanced

对比: 未知

回合制假象策略 = Battle for Wesnoth

对比: Age of Wonders, Heroes of Might and Magic, Warlords

策略类(建设) = LinCity-NG OpenTTD

对比: SimCity, Transport Tycoon Deluxe

回合制策略(科幻) = UFO: Alien Invasion

对比: X-Com

制作类

数据库(桌面) = OpenOffice (Base)

对比: Microsoft Office (Access)

脑图 = FreeMind

对比: Mindjet MindManager, Inspiration

PDF制作 = PDF Creator

对比: Adobe Acrobat

演示 = OpenOffice (Impress)

对比: Microsoft Office (Powerpoint)

报告制作 = JasperReports

对比: Crystal Reports

表格 = OpenOffice (Calc)

对比: Microsoft Office (Excel)

文字处理 = OpenOffice (Writer)

对比: Microsoft Office (Word)

科学文字处理 = Lyx (Latex gui frontend)

对比: Scientific Word

管理类

Gantt制图 = GanttProject

对比: Microsoft Project

项目管理 = OpenWorkbench

对比: Microsoft Project

杂类

Animal Shelter Manager = Animal Shelter Manager

对比: 未知

IA-32 (x86) PC 模拟器 = Bochs

对比: 未知

Linux环境 = Cygwin

对比: 未知

处方管理 = Gourmet Recipe Manager

对比: 未知

屏幕保护 = Really Slick Screensavers

对比: Unkown

翻译工具 = OmegaT

对比: Unkown

多媒体

3D

3D 动画 = Blender, Wings 3D

对比: Alias Maya

3D 图像 = POV-Ray

对比: 未知

3D 游戏开发工具包 = Crystal Space, Ogre3d

对比: 未知

音频类

音频编辑 = Audacity

对比: Adobe Audition

音频播放 = Coolplayer, Zinf

对比: WinAMP, Windows Media Player

MP3抓取= CDex

对比: 未知

音量标准化 = MP3Gain

对比: 未知

绘图类

图表编辑 = Dia

对比: Microsoft Visio

图像编辑 = Gimp

对比: Adobe Photoshop, Corel Paint Shop

矢量绘图 = Inkscape

对比: Adobe Illustrator, CorelDraw

矢量绘图= Sodipodi

对比: Adobe Illustrator, CorelDraw

其他

媒体播放 = VLC media player

对比: Windows Media Player, PowerLink PowerDVD, Intervideo WinDVD

网页设计 = Nvu

对比: Microsoft Frontpage, Macromedia Dreamweaver

视频

视频捕捉 = VirtualDub

对比: 未知

视频编辑 = Jashaka

对比: Adobe After Effects, Pinnacle Studio, Apple Final Cut

安全类

802.1x 连接 = SecureW2

对比: 未知

杀间谍软件 = Winpooch

对比: 未知

杀毒软件 = ClamWin

对比: 未知

网络协议分析 = Ethereal

对比: Sniffer

密码安全 = KeePass Password Safe, Password Safe

对比: 未知

VPN连接 = OpenVPN client GUI for Windows

对比: Cisco VPN client, Nortel VPN client

工具类

文件压缩 = 7-Zip

对比: WinZip

FTP连接 = Filezilla FTP client

对比: SmartFTP, BulletProof FTP

统计磁盘使用情况 = WinDirStat

对比: 未知

服务器软件

数据库类

数据库服务器 = Firebird, MySQL, PostgreSQL

对比: Microsoft SQL server, Oracle database

文件服务器类

FTP服务器 = Filezilla FTP server

对比: 未知

信息类

Email服务器 = hMailServer

对比: Microsoft Exchange server, Novell GroupWise server

即时通讯服务器 = Jive Messenger

对比: Novell GroupWise Messenger

安全类

入侵侦查系统 (IDS) = Snort

对比: 未知

VPN服务器 = OpenVPN

对比: Cisco VPN

Web类

应用程序服务器 = JBoss

对比: BEA Weblogic, IBM Websphere

富网络程序服务器 = OpenLaszlo

对比: Macromedia Flex

统计 = AWStats

对比: 未知

Web服务器r = Apache

对比: Microsoft Internet Information Services (ISS)

2007年6月25日

对Weka的深入理解

Weka是一个很好的东西,对于数据挖掘的研究人员,它是一把利刃,对于自然语言处理的研究人员,它是一把尖刀。非常具体的深入的说明,请看《数据挖掘:使用机器学习技术》一书,网上有英文版的,下载地址http://wekacn.gbaopan.com/files/c0f5ee1f43914f8faf3ed9c393f477f2.gbp,中文版的可以在China-pub上买到。

自己很早以前就知道Weka了的,但是被卡在Weka占用大量内存而导致机器死机。近日研读了Weka中文站论坛 上的所有帖子。顿时发现自己对Weka的认识原先是那么的钱。当然,现在我对Weka的认识也是很浅的。Weka最吸引人的地方就是开源,可以自己完成一些算法来嵌入Weka中,从而进行非常公平的对比。在了解了Weka的这种特点后,我的犹豫是否应该学习Java。呵呵,还是暂时不学为好的。因为俺的精力实在有限得很的。等将来有机会深入研究机器学习了再来学习不迟。

说说俺新认识到的Weka的一些内容吧。Weka分类算法中ZeroR表示对数据集上取比例最大的类别标签来作为默认的分类结果。这个模块非常的简单,但是意义非凡,它确定了一个数据集上做分类的baseline。在我们的自然语言处理研究中Tim老师强调过分析这种Baseline的重要性的。

分类算法中的OneR是一个神奇的方法,神奇在于它很简单,往往比能达到的最好分类性能差一点,但是速度却是最快的。基本思想就是对数据集上的各个属性创建单层的决策树,然后计算训练集上能达到的错误率,最终选择错误率最低的属性产生的单层决策树来作为分类策略。

Weka中SMO分类算法可以看成是SVM算法的实现。Weka能调用Libsvm,但是Weka只是提供了Libsvm的Wrapper调用机制,必须安装Libsvm后将附带的jar路径添加到Weka的启动路径中。在Weka的平台下调用Libsvm可以非常方便的和其他算法进行同一配置下的比较。

Weka的特征选择算法不单单可以直接作为研究内容,还可以在数据的预处理阶段完成相关特征选择的处理。在特征较多的情况下,进行特征选择往往能使得分类器的泛化能力大大提高。

Weka可以方便的进行命令行调用。如果用Java或者Jpython编程,还能进行更加深入的调用。Weka的命令行调用参数很多,采用系统调用的方法可以采用几乎任何编程语言进行调用,唯一需要仔细处理的就是用程序写好即将被处理的arff数据文件。

Weka的一个问题是可能会暂用非常大的内存,使得问题无法处理。两个可行的方案是:1、将数据进行采样处理或者将批处理策略改为更新策略;2、采用分布式处理,Weka自带了一种分布式处理的机制,可以将一个机器难以处理的问题分摊到多个机器上,实现分布式的处理。

Weka被封装在了著名的自然语言处理平台Gate中,可以结合Gate的相关处理模块实现几乎理想的文本挖掘的工作。


2007年6月24日

自然语言处理的变相和相变

随机的往图中添加边。从这点出发,爱多士建立了很多相变的简单模型。相变是很多的自然现象。对了“自然”的自然语言处理,是否也存在类似的机制导致出现相变呢?我们先来回顾一下自然语言处理研究的变相。

传统意义上,自然语言处理的研究人员都认为自然语言处理的研究开始于基于规则的方法,后来引入大规模语料库出现了基于统计的潮流,可以说近20年来,统计方法在自然语言处理中占据了统治地位,而且统计方法的性能越来越超出基于规则的方法。但是,随着研究的深入,又有越来越多的研究人员意识到纯粹的统计方法是有瓶颈的。这个瓶颈的解决必须依靠基于规则的方法或者基于知识库的方法来进行解决。于是又开始出现了越来越多的所谓的统计和规则相结合的策略。不外乎有如下两种结合方式:过滤筛选、融入到统计中。前者是在统计方法的前处理阶段以及后处理阶段将很多不适合的样本进行剔除,从而保证最终结果的准确率。这种策略适当的牺牲了召回率,但是却大幅提高了精确率,总体看来,还是使得F值得到了提高。但是这种策略本质上没有完美而简练的体现规则和统计的深层结合。第二种融合方式就是将所谓的规则知识融入到统计过程中。本质上就是将知识信息转变未统计方法能够覆盖的“属性-值”形式的规范化数据。这种形式的早期引入确实产生了很好的效果,但是不久又出现了新的瓶颈。原因在于这种能被统计覆盖的“属性-值”表示方式使得知识没有被充分得使用。总之,现在再次出现了新的瓶颈。那么如何解决这个瓶颈呢?无数的研究者正在思考着。新近看到的ACL2007主会议的一篇论文“Learning Expressive Models for Word Sense Disambiguation”提出了一种新的方案:Inductive Logic Programming。这种方法能够很好的将需要利用的知识之间的关系。更具体的思想,等仔细研读后和大家分享。

仔细考察自然语言处理的研究策略变化,那什么东西已经或者可能导致自然语言处理研究的相变呢?统计的引入?Inductive Logic Programming? 我不得而知。

联想共指消解的研究,存在这种导致相变的机制么?我想肯定是存在的。具体的需要我们不断的思考和探索。

2007年6月23日

品读:保罗.爱多士

近日品读了《我的大脑敞开了:天才数学家保罗.爱多士传奇》。这是一本让我兴奋的书,不仅仅是因为书写得很好,还因为从中感受到了很多,也让我联想到了自然语言处理研究中的一些现象。如果你没有读过这本书,非常推荐你看一下。

保罗.爱多士是20世纪世界上最伟大的数学家之一,无疑也是最古怪独特的数学家之一。爱多士出生于数学人才辈出的匈牙利、科学精英荟萃的犹太家庭,从小就有神童之称,17岁发表数学论文,一生之中与450多人合作,发表了1500篇论文著作。爱多士一生命运多舛,身为犹太人遭纳粹迫害,不得不亡命海外,50年代因与华罗庚通信而被怀疑通共亲华,被美国麦卡锡主义者赶出美国,从此终身漂泊,浪迹天涯。爱多士终身未娶,没有固定职业,他把一生献给了科学事业。他一天工作十八九个小时,一年四季奔波于世界各地,与数学界同行探讨数学难题。爱多士的大脑里整日装满了数学问题、定理、猜想、证明。本书也介绍了爱多士关注的一些世界著名难题:如歌德巴赫猜想、费马大定理,以及数学史上德许多轶闻趣事。爱多士史一个有正义感德科学家,他爱祖国、爱母亲、爱孩子。对他来说,数学是他德生命、他的一切。他有一个开放的大脑、一个丰富多彩的人生。

通读这本书,我了解到了爱多士工作的一个主题:有序与混乱之间的微妙关系。对这一主题最清楚的陈述可以在他关于拉姆塞理论的著作中找到,拉姆塞理论表明了完全的无序是不可能的。正如夜空的星星,你总能从中找到一些特殊的形状。无序之中必定隐藏着某种有序。1959年,爱多士与瑞尼通过寻找混乱的随机图中的有序现象来研究这一问题,随机图是精心发明的无序结构。使他们感到惊讶的是,即使在最随机的情况下,有序的结构仍会自发的产生出来。

1947年,为了证明有关拉姆塞的一条定理,爱多士产生了研究随机图的奇异想法。顾名思义,随机图不是通过细心的设计而是由随机事件来构造的。试想有个神经失常的土木工程师要决定在哪些城市之间铺设连接道路。他用的方法是投钱币。例如;如果出现正面,则在阿尔巴尼与波士顿之间建一条路,否则就不用建。这样得到的路的偶然网络就是一个随机图。

爱多士和瑞尼最有创造性和最深远的合作是1959年撰写的,包含在神秘的标题“随机图论进展”之下的一系列经典论文。他们合写这些论文只是为了满足他们纯粹的数学好奇心,但这些文章可能掌握着解释一大类现实世界现象,包括生命起源的钥匙。

爱多士与瑞尼分析的情况是前面提到的土木工程师狂想曲的变奏。假定土木工程师现在的任务是要修筑链接一大批(譬如说10000个)城市的道路。他首先忽略距离,随机的选择两个城市并在它们之间筑一条路。然后随机的选择两个城市并筑另一条路。工程师按这一方法进行下去,但当两个城市之间已经有路连接,就不再在它们间筑路。

起初只有少数城市之间有路相连,但当工程师逐渐加筑一些路后,就会形成一些小小的相互链接的城市网。生活在这些城市网中的人可以沿着一系列路驱车到圈内的其他任何一个城市去。爱多士与瑞尼发现,开始时出现的城市圈是小规模和分散的。当工程师加修了更多的路时,圈的规模将缓慢的变大,圈中的城市变得更多的相互连接。直到路的条数增加到使半数的城市都被连接起来之前,情况尚无太大变化。但此后,只要添加极少数的几条路,奇迹就会突然出现。很多原先孤立的圈子将会变得相互联结而形成一个几乎包括了所有城市的巨大圈子。

由各个孤立的小圈向单个大圈的迅速转变在许多自然现象中有惊人的类似。例如,水的突然结冰或交通的堵塞。这类现象,即所谓的相变,长期以来一直使科学家们迷惑不解。爱多士与瑞尼出于纯粹的数学好奇心而进行的随机图研究,提供了一个可以阐明相变机制的简单模型。“这篇文章开辟了整个领域,”爱多士的弟子斯潘塞评论到,“回过头来看看,你就会明白:所有的发展都源于这样一个想法,即随机的增加边之后会发生什么。”自从爱多士与瑞尼关于随机图的文章发表以来,已有成百篇的其他文章,总多的专著和国际会议致力于这一领域的研究。

作为纯粹的数学家,他们并不是完全不了解他们研究的应用意义。在他们的原始论文中写到,研究随机图中结构的突然变化“不仅仅是纯粹的出于数学上的兴趣。实际上,图的变化可以当作一国或其他某个单位的一个交通网络(铁路、公路或电子网络系统等)的大为简化的模型……似乎可以这样说,通过较为复杂的网络结构的随机增长的考虑”,我们可以得到复杂的显示增长过程的相当合理的模型(例如,由不同类型的联系组成的复杂交通网络,以及甚至生命的有机结构,等等)”。40多年后,这一论点被证明是非常有远见的。桑塔费研究所的考夫曼(Stuart Kauffman)很大程度上依赖随机图的演化建立了他的令人信服的生命起源理论。在考夫曼的模型中,生命起源于混乱的原始分子群,这与爱多士和瑞尼随机图的演化模型中的“圈”(cluster)的出现安有着相同的必然性。

2007年6月22日

What's new in Weka 3.5.6

What's new in the developer version?
- nearest neighbor search got re-organized and
extended:
weka.core.neighboursearch.BallTree
weka.core.neighboursearch.CoverTree
weka.core.neighboursearch.KDTree
weka.core.neighboursearch.LinearNNSearch

- tokenizers for the StringToWordVector are now
GOE objects and the NGram tokenizer got added:
weka.core.tokenizers.AlphabeticTokenizer
weka.core.tokenizers.NGramTokenizer
weka.core.tokenizers.WordTokenizer

- new classifiers:
weka.classifiers.bayes.NaiveBayesMultinomialUpdateable
weka.classifiers.misc.SerializedClassifier

- a new kernel:
weka.classifiers.functions.supportVector.Puk

- new associators:
weka.associations.FilteredAssociator
weka.associations.GeneralizedSequentialPatterns

- new filters:
weka.filters.unsupervised.attribute.KernelFilter
weka.filters.unsupervised.attribute.NominalToString

link: Weka 3: Data Mining Software in Java


It is more suitable for our research!

2007年6月14日

学、习、自信、交流

早晨5:40,我准时起床了,这是我学习太极拳以来不曾中断的一天。朝阳是那么的美丽,校园里四处都是晨练的人们。图书馆门前大堆的人曾让我赞叹。同样的地方,同样熟悉的砖瓦,但是在不同的时刻,情景确是如此的不同。学太极的第一天早起路过这里时,第一次发现居然有这多人早早的起来在图书馆前聚集。我感悟到人世间不曾经历的场景太多太多,人生需要非常认真的深刻理解。

今天早上,从公寓出发,我背着手步速不慢的往邵馆太极拳广场出发,嘴里习惯性的说了一句,“Ladies, and gentelmen”。随后出口的便是自己对昨日高云师兄教诲的“学和习”关系的理解。只是练习的是英语。他说,“学习,注重‘习’,只有不断练习才熟能生巧。学任何东西都是一样。”这句话深深的印在了我的心里。仔细的分析一下,自己经过多年的刻苦努力,“学”的能力不算低,但是“习”的能力却是非常的值得别人同情。从小学开始,一直到硕士研究生,我们学习的模式都是开学的时候老师发给大家一本课本,然后就是略有拓展的“照本宣科”。期末的时候就考考这本书的内容即可。学习的模式是如此的一致,以至于容易让人形成一种惯性的思维:学习的内容和方法都是别人安排好了的。等到真正进入博士研究生的自我学习阶段,我开始出现了迷茫。没有人告诉你究竟该如何做研究,没有所谓的照本宣科的教学以及只考书本的试卷。自己忽然之间变得不知所措。

有人说选择是痛苦的。回顾自己开始进行所谓的研究,我走了一条曲折的路。细细的分析,我发现自己需要采用一种新的态度来对待研究。总的来说,可以用一下四个词语来概括:学、习、自信、交流。

学:问渠哪得清如许,唯有源头活水来。只有不断的学习新鲜的东西才能保持常青。

习:需要深入练习的东西有很多,英语、数学、论文写作、编写程序。熟能生巧。

自信:为什么那些优秀的研究人员能看起来非常轻松的发表大量的高水平期刊和会议的论文。据我观察,那是因为“优秀是一种习惯”。如果你定位在高水平的期刊会议上不断努力、不断修正,自然而然就会渐渐达到所需的标准。你必须有这种自信,世上无难事,只怕有心人。

交流:科研不是封闭的,体会数学天才保罗.爱多士的一生,交流是如此的重要,让交流成为习惯!现在的互联网让我们和别人的交流越发的容易,为何不珍惜和充分利用网络来和别人进行交流呢。

保持学新知识、不断练习重要的技能、充满自信的向高水平努力、交流之中寻找灵感!这就是我最近的体会。

2007年5月29日

[生活帮助]哈尔滨城市通

  在哈尔滨市区内的每个公交站牌的公告栏里都有着这样一句话:城市通伴您在出行的路上!当您要去哈尔滨市区的某一个地方却不知道路该怎么走,也不知道该怎样换乘公交车时,请拨打城市通24小时公益服务热线:10109998(热线只收市话费)。
  这是哈尔滨市公共交通管理处特设的服务百姓的公益热线。随着现代化城市建设步伐的日益加快,交通信息变化频繁,给人们出行带来了诸多不便,诸如公交换乘困难、道路咨询困难等等,而“城市通”的出现及时解决了这些出行难题。
  “城市通”汇集了哈尔滨市20万余条地址信息,共设64个图层。信息全部由人工实地沿街采集,即使是小型食杂店、理发厅等场所都在系统的查询范围之内,是查询信息快捷的智能化信息处理平台。在后期维护方面,做到每45天更新一次数据,保证人们及时、准确地获取信息。
  用户拨打城市通服务热线:10109998(1)可以询问某单位的具体地址以及到达该目的地的最佳乘坐公交车或开车路线;(2)可以查询公交车途经站点和首、末班车时间;(3)还可以查询某地的周围信息,如:饭店、银行、医院、加油站、商服网点……
  众多在公交站牌旁徘徊的人们通过10109998获得了及时的帮助,充分显示了“城市通”的实用价值以及哈尔滨市公共交通管理处服务百姓、服务交通的宗旨。总之,出行有麻烦,求助城市通,拨通10109998,畅通冰城走四方。

2007年5月28日

[收藏]放下身段,路会越走越宽

  说来也许你不信,我有一位大学同学,在校时成绩很好,大家对他的期望也很高,认为他必将有一番了不起的成就。
  
  也是有成就,但不是在政府机关或大公司里有成就,他是卖蚵仔面线卖出了成就。
  
  原来他是在退伍后不久,得知家乡附近的夜市有一个摊子要转让,他那时还没找到工作,就向家人[借钱],把它顶了下来。因为他对烹饪很有兴趣,便自己当老板,卖起呵仔面线来。他的大学生身份曾招来很多不以为然的眼光,但却也为他招来不少生意。他自己倒从未对自己学非所用及高学低用怀疑过。
  
  [要放下身段!]这是我那位同学的口头禅和座右铭:[放下身段,路会越走越宽。]
  
  人的[身段]是一种[自我认同],并不是什么不好的事,但这种[自我认同]也是一种[自我限制],也就是说,[因为我是这种人,所以我不能去做那种事],而自我认同越强的人,自我限制也越厉害,所以,千金小姐不愿意和下女同桌吃饭,博士不愿意当基层业务员,高级主管不愿意主动去找下级职员,知识份子不愿意去做[不用知识]的工作……。他们认为,如果那样做,就有损他的身份!
  
  其实这种[身段]只会让人路越走越窄,我并不是说有[身段]的人就不能有得意的人生,但我相信,在非常时刻,如果还放不下身段,那么会让自己无路可走!像博士如果找不到工作,又不愿意当业务员,那只有挨饿了;如果能放下身段,那么路就越走越宽,也没有走不通的路!
  
  你如果想在社会上走出一条路来,那么就要放下身段,也就是:放下你的学历、放下你的家庭背景、放下你的身份,让自己回归到[普通人]!同时,也要不在乎别人的眼光和批评,做你认为值得做的事,走你认为你值得走的路!
  
  [放下身段]比放不下身段的人在竞争上多了几个优势:
  
  ——能放下身段的人,他的思考富有高度的弹性,不会有刻板的观念,而能吸收各种资讯,形成一个庞大而多样的资讯库,这将是他的本钱。
  
  ——能放下身段的人能比别人早一步抓到好机会,也能比别人抓到更多的机会;因为他没有身段的顾虑!
  
  有一则这样的故事:一千金小姐随着婢女在饥饿中逃难,干粮吃尽后,婢女要小姐一起去乞讨,千金小姐说:[我是小姐也!]不愿意去。
  
  结果会怎么样呢?你自己猜吧!

[收藏]UltraEdit + LaTeX

CTEX套装自带的LaTeX编辑器是WinEdt。除了对中文spellcheck、自动换行支持不好外,还有很多“智能”的毛病,比如经常一回车,刚敲过的两行就被WinEdt自动排版了。UltraEdit实在是令人叹为观止的一款文本编辑器,我一直使用其编辑文本文件,如果能用它来编辑LaTeX就好了。事实上,UE早已为我们准备好这种功能了,拿出来共享一下。

1. LaTeX关键字的自动着色。
到UltraEdit的官方网站下载Wordfile,具体在
http://www.ultraedit.com/downloads/additional.html
打开UltraEdit目录下的wordfile.txt文件,把你下载下来的wordfile附加在末尾,用copy/paste就行了。另外wordfile.txt中是以 "/L*"来作为一种语言的开始标记,其中"*"代表数字序号,注意latex的序号不要和原先的语言(如C、Perl、HTML等)冲突就行了。
这时候你再打开一个.tex文件看看,是不是耳目一新?

2. LaTeX Tag的自动插入。还是在
http://www.ultraedit.com/downloads/additional.html
下载latextag.txt,按照对应格式copy/paste到UE目录下的taglist.txt文件中。 记得要在最后的[Group List]里加上对应项目。 然后打开UE,按Ctrl+F8,下面的用法就不用我多说了。

3. 不脱离UltraEdit环境即对TeX文件进行编译和预览。
这部分实现WinEdt的部分功能,通过几个工具栏按钮来编译、预览LaTex。

3.1 编译LaTeX
在UE的菜单项,选择Advanced->Tool Configurations,
Command Line: Latex "%p%n.tex"
Working Directory: %p
Menu Item Name: LaTeX
Save Active File: 选中
Show Dos Box: 选中
Capture Output: 选中
然后点Insert,这样就加入了一个菜单项。这时用UE打开一个Tex文件,然后在Advanced菜单的最下面多了个菜单项:Latex,点它,就可以编译LaTeX文件了!还可以用UE的自定义工具栏功能,把自定义的菜单项加到工具栏上。
(补充:在这里,可以通过对话框的ADVANCE选项,添加工具的图表,下同)

3.2 用YAP预览
其他的就大同小异了。
Command Line: yap "%p%n.dvi"
Working Directory: %p
Menu Item Name: View with YAP
Windows Program: 选中
注,其他皆不选。

3.3 编译成ps文件
Command Line: dvips "%p%n.dvi"
Working Directory: %p
Menu Item Name: DVIPS
Windows Program: 不选
Save Active File: 不选
Show Dos Box: 选中
Capture Output: 不选

3.4 用GSView预览
Command Line: "gsview32" "%p%n.ps"
Working Directory: %p
Menu Item Name: View with GSView
Windows Program: 选中
Save Active File: 不选
Show Dos Box: 不选
Capture Output: 不选

3.5 制作 PDF 文件
Command Line: ps2pdf "%p%n.ps"
Working Directory: %p
Menu Item Name: PS2PDF
Windows Program: 不选
Save Active File: 不选
Show Dos Box: 选中
Capture Output: 不选

3.6 用Acrobat Reader预览生成的PDF文件
Command Line: "AcroRd32.exe" "%p%n.pdf"
Working Directory: %p
Menu Item Name: View with Acrobat
Windows Program: 选中
Save Active File: 不选
Show Dos Box: 不选
Capture Output: 不选

体验一下UltraEdit和LaTeX的完美组合吧 :)

2007年5月27日

查新

查新,对于科研是必备的,了解别人的工作可以避免重复性建设,也可以广泛获取新鲜的营养来完成更加高水平的研究。如果把科研看成无国界的战争的化,就如兵法有云,“知己知彼,百战不殆”,也就是这个道理。

我知道很多科研牛人都经常查新的,根据我的观察,较为常见的是每月查新一次。查新内容包括最新出现的相关论文,最新召开的相关会议,相关研究人员的最新动态等等。在浏览一些科研牛人的Publications的时候,经常看到他们有很多精彩的idea。我想这和他们经常查新有关系吧。查新,也就是“问渠哪得清如许,唯有源头活水来”的根本所在。以往自己也经常查新,但是每次几乎都是胡乱查找的。我想从现在开始我需要养成每月一次查新的习惯了。

根据我自己的情况,我的查新主要包括两类:相关研究人员的个人网站,和主流会议的召开情况。

今日开始第一次常规性的查新。啊哈!了解到了很多新鲜的内容,列举如下:

王厚峰老师在2007年春季主讲了Advanced NLP课程,其中有很多同比很新的内容,例如Graphical Model、Ensemble Learning等。

2007年5月26日

更新个人网站

我的个人网站已经建立三年多了,最早采用的是“东方网页王”来进行制作的,当时觉得生成一个新的网页或者修改既有的网页都是很方便的。后来由于一次重装机器,“东方网页王”重装后不能继续维护原来的个人网站了,每次更新我只能是手动修改那些复杂的HTML代码,而且增加页面也非常的困难。前几天感觉我的个人网站不是很好,不具备良好的维护性能。为此,我准备重新制作我的个人网站。

首先,我定下了新版个人网站的几个原则:
1、导航页必须能够灵活的进行配置,不用每个页面修改;
2、增加一个页面、删除一个页面等操作要比较容易;
3、必须手动撰写所有的网页代码,只有这样才能具有完全的细节部分的掌控能力;
4、全部采用HTML实现,便于将来转移或者升级。

基于这几个原则,经过寻觅,我采用了嵌入式css文件来控制整个网站的风格,采用iframe来实现导航条、页脚的单独页面,采用CSS Tab Designer制作导航条风格。在旧版网站内容的基础上,完成了新版的个人网站。几个原则都已经实现。欢迎大家拍砖哦 :) Jun Lang's Website

呵呵,这个工作花费了两天时间,算是自己一个新的开始!继续努力。正如astronautguo的签名“每天进步一点点” :)

2007年5月25日

告别不能坚持:我的1001

为什么写Blog,记得2003年9月初,得知实验室有很多人在写Blog,我知道的第一批Blogger有Victor,Carl,Stream,Bert,Lee,Simply。看着他们记下的内容,我感触很深,在Carl的帮助下,我写下了第一篇Blog 感动于此。从那时起,我成为一位Blogger。每天晚上都会写下一段自己的文字。

写Blog比起写日记有很多优势,我感觉最好的一点是方便回顾,不受地域的限制。缺点是有一些比较私秘的东西不能写上来,毕竟中国人都是比较含蓄的。撰写Blog需要注意的就是备份,因为随着时间的推移Blog撰写成为一种习惯后,一旦出现Blog系统崩溃就会非常的难受,感觉丢失了自己的过去似的。前一阵子“酷歪”Blog系统出现的问题就让很多朋友感受到了这一点。所以,一种较好方案是Blog有自己的域名和空间,经常备份,安全系数高。回想自己的Blog系统,就满足这种需求的。

现在经常听到有人说,“Hi! Bill_Lang,你的blog写的不错啊?想不到坚持写了那么长时间,而且内容很多都不错啊!” 通过我的Blog,我学习到了很多,最大的一个感触就是体会到了交流的重要性。在现在这样一个人与人之间当面交流越来越希罕的时代,Blog成为了一种朋友之间相互了解的工具,也成了一种和别人分享喜悦和分担悲伤的工具。我的Blog名字叫做“Bill_Lang's Study&Life”,目的是为了延续自己在写Blog以前五本大学日记本的内容。今天一不小心,发现自己的Blog刚好已经撰写了1000篇。今日的这篇算是1001篇了。

回想自己维护的机器学习论坛在第1001篇帖子中写过“1000贴1000梦”,自己的Blog也是这样的。我有一个梦想,“那就是长大以后当一位科学家”。儿时稚嫩的想法,现在看来是非常模糊和不确定的。喜爱研究的我常常被各种问题所吸引,随着年岁的增加,我开始进入了一个富有意义的研究领域--“共指消解”。是的,作研究需要专注,你能想到的别人也能想到。那为什么不是别人也能完成类似的工作呢?因为,坚持!随着社会的发展,人与人之间的天生差别越来越少,后期的努力成为一种差异化的必然因素。有了想法需要坚持。坚持是苦的。有句老话“受了苦中苦,方为人上人”。无数的例子证明,想要获得成功,必须坚持。机会只给予那些有准备的人。准备是一个长期的过程,需要坚持不懈的。

我发现了自己的一个弱点,一个很大的弱点:不能坚持。我有很多很好的想法,但是经常是半途而废。为什么呢?因为自己常常给自己寻找借口来开脱。是的,有人说过,完成一次很容易,难的是长期坚持。在高中时代,我的“坚持”是在公寓楼长大爷每天的清晨的口哨声中锻炼起来的,进入本科时代,这种习惯还在坚持。但是随着自己进入研究生、博士生阶段以来,我的这种习惯没有了。现在的我变得很懒散。

找到了问题所在,我如何纠正呢?我想还是从晨练开始吧,一日之际在于晨,一年之际在于春。明日从学习太极开始吧。这次不能再半途而废了。

仅以此文纪念我的第1001。仅以此文督促自己改正缺点,发扬优点,在博士生涯中继续前进。

2007年5月22日

你健康么?大家注意啊

怎样才是真正的健康

  世界卫生组织世界卫生组织在1985年提出健康应包括三个方面:
  
  1、身体健康
  
  2、心理健康
  
  3、社会适应良好
  
  世界卫生组织规定健康的表现标志是;一、有足够充沛的精力,能从容不迫地应付日常生活和工作的压力,而不感到过分紧张;二、态度积极,乐于承担责任,不论事情大小都不挑剔;三、善干休息,睡眠良好;四、能适应外界环境的各种变化,应变能力强;五、能够抵抗一般性的感冒和传染病;六、体重得当,身材均匀;站立时,头、肩、臂的位置协调;七、反应敏锐,眼睛明亮,眼睑不发炎;八、牙齿清洁,无空洞,无痛感,无出血现象,齿龈颜色正常;九、头发有光泽,无头屑对;肌肉和皮肤富有弹性,走路轻松匀称。

2007年5月20日

你正在发散么?Focus!: 冲动之“基于二元句对主干检索的聊天机器人”

这个句子是一个贴在我显示器下面的提示语。目的是为了不断提醒自己不要发散。人总是有缺点的,我的缺点就是太发散,经常会被一些东西分散注意力。这不,今天晚上险些又被拉入了自己曾经的一个梦想--聊天机器人。

自己最早接触聊天机器人是2004年在微软俱乐部担任VB技术小组组长的时候,和组员许楠一起申请了一个聊天机器人的项目。当时的技术非常的简单,就是对每个输入的句子在库中找最接近的句子后随的话来输出,找不到就随意的输出一个转移话题或者模棱两可的句子。

随后2005年在微软亚洲研究院实习的前四个月在和际洲一起研究Alice等聊天机器人的机制,并且完成了一个简单的聊天机器人,自己还手工撰写了好几百条聊天知识。

聊天机器人现在算是自己的一个梦想,每每看到这方面的消息都会非常的集中注意力。晚上看到了一段“两个聊天机器人的对话记录”,又开始迸发做一个聊天机器人的想法。原先自己涉及过的聊天机器人以及Alice的原理,都是在寻找最接近的回复。这种可以看成二元句对模型。如果能够扩展成三元句组模型,相信能够会使聊天机器人的性能得到提高。

具体想法是:将聊天(或者对话)语料库中的每个句子进行适当的主干提取操作,在进行实际聊天过程中,每次对最近的两个句子提取主干,然后在语料库中进行检索,找出最接近的二元对,从而抽取紧随的句子作为回复。

这个方案简单易行。其中涉及到三个关键问题:1、语料的采集;2、句子主干如何设定;3、如何高效检索二元句对。我的粗浅想法是:1、语料可以收集大家的聊天语料库(但是存在难度,没有人愿意公开);2、句子主干可以采用句法分析的技术来删除一些不相关的节点,可以采用依存句法分析器或者结构句法分析器实现;3、对二元句对建立索引,然后采用Lucene等工具实现快速检索。

呵呵,一种冲动。但是看到显示器下的话“你正在发散么?Focus!”我刚才停住了调研分析。简短记下这个冲动的想法吧。等完成自己现在的主要任务后再继续前进吧。留做备份。

其实自己经常出现类似的冲动想法,这种情况以后自己一定要经常性的记录下来,以备将来回顾,同时也是为了使自己更加关注!

2007年4月30日

[收藏]默认状况下latex各部分字体大小

发信人: FireSimulate (火灾模拟◆全力以赴), 信区: MathTools
标 题: Re: 请问默认状况下latex各部分字体大小
发信站: BBS 水木清华站 (Fri Dec 6 17:19:54 2002), 转信

size 10pt (default) 11pt option 12pt option
\tiny 5pt 6pt 6pt
\scriptsize 7pt 8pt 8pt
\footnotesize 8pt 9pt 10pt
\small 9pt 10pt 11pt
\normalsize 10pt 11pt 12pt
\large 12pt 12pt 14pt
\Large 14pt 14pt 17pt
\LARGE 17pt 17pt 20pt
\huge 20pt 20pt 25pt
\Huge 25pt 25pt 25pt

[收藏]如何修改 \enumerate 的编号格式

发信人: blinkeye (少灌水,多运动!), 信区: TeX
标 题: Re: 如何修改 \enumerate 的编号格式?
发信站: BBS 大话西游站 (Thu May 12 14:20:25 2005), 站内

前天发现了一个enumerate宏包也挺好用的
\usepackage{enumerate}

然后enumerate环境就可以使用一个可选参数,像这样:

\begin{enumerate}[(a)]
\item $(p\rightarrow(q\rightarrow p))$;
\item $((q\lor r)\rightarrow((\neg r)\rightarrow q))$;
\end{enumerate}

[]里面的 (a) 出来的结果是 (a)(b)(c)(d)这样子的。还可以用如下的:
1,得到1,2,3,4....
i,得到i,ii,iii.....
I,得到I,II,III....
a,得到a,b,c,d.....
A,得到A,B,C,D....

还可以加各种修饰,比如
[Exer. i],得到 Exer. i,Exer. ii,Exer. iii, Exer. iv,等等

你要的这种结果稍微麻烦一点,要把[]用花括号括起来
\begin{enumerate}[{[}1{]}]
\item $(p\rightarrow(q\rightarrow p))$;
\item $((q\lor r)\rightarrow((\neg r)\rightarrow q))$;
\end{enumerate}

2007年4月26日

混沌-格物致之(续) Social Network


今天上午得到通知,下午我的博士生导师要和我谈一谈。一打听,才知道我是倒数第二个了。

怀着忐忑的心准时来到老师的办公室。为什么忐忑?因为我还没有完全确定做什么东西。老师非常和蔼的向我 询问了一些博士课题的研究进展。建议我不要再局限在指代消解上。我也详细向老师回答了自己想不再继续指代消解,转而全身心完成共指消解。在向老师介绍我的基于Social Network完成人名消歧的想法时,老师眼前一亮,感觉这个方法值得深入下去。随后的谈话让我感觉轻松了一些。老师指导我说应该把在博士开题的时候就确定好将来博士论文的构架以及相互之间的关系,这样能融合得比较好。至于是纵向的研究基于Social Network的共指消解呢,还是横向研究共指消解的各个方面则有待深入的分析和思考。这个事情需要我自己好好斟酌。

回到实验室,我和我的直接指导老师进行了交流。老师建议我从现在开始放弃单文档共指消解,转而完成跨文档共指消解。原因是跨文档共指消解引申出的重名问题比起单文档共指消解引申出的别名消解所占比例更加大些,更容易出现创新点。

晚上,思路又一次开始出现散射状态。想要找找有没有Social Network的资料大本营式的网站。呵呵,皇天不负有心人,还真的让我找到了。它就是:
http://www.insna.org
。感觉非常不错,随后还找到了一 个非常好的在线书籍
Introduction to social network methods
和专门绘制Social Network网络图形的免费软件

NetDraw

UCINET



哈哈,俺要开始好好学习SN了~!

2007年4月24日

混沌-格物致之


按照学校的规定,进来面临了博士开题的问题。这个问题一直让我很头疼的。因为,我一直没有完全确定究竟应该做什么。我时常询问自己,“你的博士方向究竟是什么?有什么过硬的创新点么?”每当这时,我的脑袋里就是嗡嗡作响的。

原本,我是热爱机器学习的,曾经想在机器学习的理论领域有所创新。那时的我,激动不已的和几位志同道合的朋友一起组织了几次全校范围的机器学习讨论活动。毕竟人的精力是有限的,随着我在原先确定的指代消解问题上理解的深入,我开始远离自己曾经的想法。

什么是指代消解呢?广义上说,就是在篇章中确定代词指向哪个名词短语的问题。按照指向,可以分为回指和预指。回指就是代词的先行语在代词前面,预指就是代词的先行语在代词后面。按照指代的类型可以分为三类:人称代词、指示代词、有定描述、省略、部分-整体指代、普通名词短语。这些类别中前四个都是和语言学息息相关的,目前国内外的研究人员主要是偏向语言学领域的,对于不同的语言需要深入了解这种语言的机制,很难实现语言无关的方法和算法。对于我曾经尝试过的人称代词消解,感觉需要借助一些高级而且准确的语言分析工具,同时还需要多向中文系的师生请教。这个问题的研究让我感觉很难深入的完成创造性的工作。部分-整体指代在英文中成为Bridge-anaphora,主要消解一些整体-部分关系的指代,例如门和房间。这是一种上下位关系的指代。这个问题在英文中大有研究人员,但是对于中文却很少有从指代消解的角度来进行研究。因为,这个更像实体关系抽取。而实体关系抽取现在是信息抽取领域研究的一个热点问题。剩下的普通名词短语的消解。这个问题仔细阅读论文发现,就是coreference resolution(共指消解)问题。

那什么是共指消解呢?通常认为,共指消解就是将现实世界中同一实体的不同描述归并到一起。共指消解和指代消解的区别和联系是什么呢?指代消解偏重语言学中篇章理论的分析和研究,对于代词有深入的研究。共指消解偏重将各种描述合并,在篇章内主要是解决别名的问题,在篇章之间主要是解决重名的问题,代词消解在其中不考虑的重点。共指消解研究主要分为两大类:篇章内部和篇章之间。篇章内部的共指消解现在由ACE大规模引导,篇章之间的共指消解目前主要的研究点是数字图书馆中参考文献标题、作者的重名和别名消解,以及搜索引擎检索人名、地名、机构名的结果的归并问题。篇章内部的研究的经典思路是对各个实体进行相关的特征抽取,然后采用分类、聚类算法来进行,这种思路是基于局部上下文信息的特征抽取;目前的趋势是采用全局域的实体特征抽取从而实现更好的分类和聚类。具体思路又有两种:先按就有思路两两判别给出相关度数值,然后采用聚类或者图模型来进行相关的归并;另外一种是同时对多个实体进行特征抽取,然后判断多个实体间的关系,最后统计每个实体在多组实体间的关系,从而得到最终的归并结果。篇章之间的共指消解在数字图书馆领域主要是采用图的相关理论和方法来进行解决,有大量的相关论文。目前采用较多的是Social Network的方法。检索结果聚类方面,主要借助无导词义消歧的方法,通过构建实体向量的方式实现聚类;也有一些是基于实体信息通过搜索引擎扩展后进行相关操作的。

综合上面的分析可以发现,共指消解是一个更符合我的研究方向。其中有大量值得研究的问题。而且对于图方法上的工作,存在一定的理论难度。具体的应用前景可以考虑人物、地理、机构等的社会化网络结构的建立、分析和挖掘。那么对于具体的研究问题是限定在篇章内或者篇章之间呢,还是二者都做;篇章之间是在数字图书馆领域呢,还是普通的Web?这两个问题又需要进一步的思索。

面临开题,我有点紧张。因为到目前为止还没有任何让人眼前一亮的研究成果。呵呵,有句古话叫十年磨一剑。看来还真的下苦功夫才行的。早上来到实验室,脑子里还是有点混乱。随便翻翻桌上的一大堆论文时,忽然想到了自己以前的一种体验:问渠哪得清如许,唯有源头活水来。就是说当思路混乱,不知所措时应该阅读一些优秀的相关论文来填补。

我的第一个想法就是把手头的论文重新分类。经过一个多小时的整理,我的一大堆论文呗分成了五类:指代消解、篇章内共指消解、跨篇章共指消解、具有启发性的相关领域论文、近期内不会考虑的论文。整理完毕后发现,前四种类型的论文数量差不多。整理过程中倒是发现一些论文值得重读了。

现在的一个决定是,放弃指代消解的研究,彻底进入共指消解的研究场景。(待续)

2007年4月23日

经典★PPT演示“10/20/30”原则

作为一个风险资本家,我不得不听取数以百计的创业者介绍他们的公司。大部分的介绍都是些废话:用六十页的幻灯片讲述“未决的专利申请”、“先动优势”、“所有我们需要做的就是让1%的中国人购买我们的产品”,诸如此类的启动方案。这些介绍是如此的恶心,以至于我一直在损耗着自己的听力,耳朵里一直在嗡嗡地叫,偶尔觉得世界都开始旋转。
——Guy Kawasaki


厌倦了冗长的阐述,这名著名的风险投资人一直在努力传播其所谓的“PowerPoint10/20/30原则”。那么,何谓“PowerPoint10/20/30原则”?

非常简单:一次PowerPoint陈述,应该只有10页幻灯片,持续时间不超过20分钟,字体不小于30磅。这一原则适用于任何能达成协议的陈述:比如,募集资本、推销、建立合作关系等等。

10,是PowerPoint陈述中最理想的幻灯片页数。一个普通人在一次会议里不可能理解10个以上概念——风险资本家也是普通人。(你和风险资本家的唯一区别只在于他是在拿别人的钱赌博给自己挣钱。)如果你必须要用超过10页的幻灯片来解释你的生意,你可能就没生意。

风险资本家关注的10个主题是:
1.问题是什么?

2.你的解决方案?

3.商业模式?

4.潜在力量/技术?

5.市场营销如何进行?

6.竞争性

7.团队

8.起始点和里程碑

9.地位和时限

10.概要和行动呼吁

简练的说明以上这些,对你赢得听众的赞许很有帮助!

20,是你必须在20分钟里介绍你的10页PPT。事实上很少有人能在很长时间内保持注意力集中,你必须抓紧时间。在一个完美的情况下,你在20分钟内完成你的介绍,就可以留下40分钟时间进行讨论——除非你不喜欢讨论,否则,最好还是尽快完成你的阐述吧。

30,是你的PPT文本内容的字体大小(其实30只是一个象征,意思是,尽可能大,估计是原作者为了1-2-3看起来舒服……)。大多数PPY都使用不超过20磅字体的文本,并试图在一页幻灯片里挤进尽可能多的文本,然后陈述者可以读它们,然而只要听众发现你在照本宣科,他们就可以在你之前读完,因为他们读起来总会比你说得更快。结果造成,你和你的听众不同步。

人们使用小号字体的原因有两方面:第一,他们对自己的材料不够熟悉;第二,他们认为更多的文本会更有说服力。这种观点很有害!强迫自己使用足够大的字体,因为这会要求你发现最重要的部分,并知道如何解释好它们。

这个PPT演示的“10/20/30”原则很值得我们思考,毕竟,一个演示的机会,不论对于创业者还是需要经常向各类客户做演示的人来说,都并不是唾手可得的。

2007年4月20日

hit-PlutoKaiTi Latex模板的修改

这学期要写开题报告了,打算继续采用Latex来书写。好在我们学校已经有人制定好了撰写开题报告的Latex模板。http://gf.cs.hit.edu.cn/frs/?group_id=91&release_id=198

我下载的是PlutoKaiTi-v0.2-070419.zip的版本。经过填写框架后发现这个模板存在几点问题:
1。没有目录

解决方案:经过分析和尝试,在format.tex文件的第322行后面加入\tableofcontents

2。这样添加的默认目录只有两级,由于Kaiti.tex中采用的框架结构是section, subsection, subsubsection。没有采用chapter,这个默认目录中生成的只有两级,即只能到subsection。在开题报告中需要展示三级的内容,所以需要解决这个问题。

解决方案:在Format.tex的第73行的“\setcounter{tocdepth}{2”修改为“\setcounter{tocdepth}{3}”这个3就是展示三级结构目录的

3。目录中每个数字和随后的第一个标题字符相隔太远

解决方案:经过对比研究哈工大博士论文的Latex模板http://gf.cs.hit.edu.cn/frs/download.php/233/pluto-PhD-1.7-final-20061112.zip,发现在其下的Format.tex中117到130行之间有如下内容:
-----------------------------
% 按工大标准, 缩小目录中各级标题之间的缩进,使它们相隔一个字符距离,也就是12pt
\makeatletter
\renewcommand*\l@chapter{\@dottedtocline{1}{0em}{5.42em}}%控制英文目录
\renewcommand*\l@section{\@dottedtocline{1}{12pt}{12pt}}
\renewcommand*\l@subsection{\@dottedtocline{2}{24pt}{24pt}}
\renewcommand*\l@subsubsection{\@dottedtocline{3}{36pt}{36pt}}
\renewcommand*\l@paragraph{\@dottedtocline{4}{48pt}{48pt}}
\renewcommand*\l@subparagraph{\@dottedtocline{5}{60pt}{60pt}}
\makeatother
%控制中文目录
\dottedcontents{chapter}[3.4em]{\vspace{0.5em}\hspace{-3.4em}\hei \bf}{0.0em}{5pt}
\dottedcontents{section}[1.16cm]{}{1.8em}{5pt}
\dottedcontents{subsection}[2.00cm]{}{2.7em}{5pt}
\dottedcontents{subsubsection}[2.86cm]{}{3.4em}{5pt}
-----------------------------
发现这段就是控制目录中相应的那个数字和字符距离的,将这段代码拷到开题报告模板下的Format.tex的90行。呵呵,问题迎刃而解了 :)

4。目录字体颜色是红色,黑白打印出来颜色有点淡
经过询问实验室Latex大牛Lee师兄,说是这个开题模板以及博士论文模板都存在这个问题,好像还没有去解决。

解决方案:我想这个红色应该在开题模板中有所体现,在文件夹中查找"red",发现Package.tex文件中出现了四次“linkcolor=red,”,生成的目录中每个条目点击就能直接定位到文中相应的位置,从而得知目录中的条目就是一种链接。尝试将四个red都改为green,发现果然目录中字体变成了绿色。呵呵,修改为black也就得到了可以打印清楚的黑色了。不过撰写的过程中还是用red的比较好,因为那样非常的醒目的。

呵呵,自此,俺的开题报告模板也就算是个性化配置完毕了哦。由于是初学Latex,需要查阅的东西还有很多。不过Latex生成文件的质量真是没的说,非常不错,而且很多东西都能个性化配置。非常佩服Tex的创始人Knuth了。

2007年4月16日

Beamer 制作 Presentation

最近写了一篇关于单复数识别的论文,还在草稿阶段。由于是第一次使用Latex撰写论文,自然是辛苦了不少。明日轮到俺做报告了,本想用Power Point做,但是一想到可以使用Latex来试试,就开始用Latex中制作专业Presentation的工具包Beamer来完成了。

呵呵,学到了很多东西的。感觉Beamer真的很专业。最为欣赏的是通常咱们做PPT的时候需要手工去制作很多的导航页。这一点在Beamer中几乎不用自己动手,完全交给Beamer了。

俺主要参考了两份文档:
中科院自动化所自由软件协会 第二十七次活动:教你用Beamer做讲稿

Beamer v3.0 指南(pdf)

2007年4月13日

zz开题报告的撰写方法

一、 开题报告的含义与作用
  开题报告,就是当课题方向确定之后,课题负责人在调查研究的基础上撰写的报请上级批准的选题计划。它主要说明这个课题应该进行研究,自己有条件进行研究以及准备如何开展研究等问题,也可以说是对课题的论证和设计。开题报告是提高选题质量和水平的重要环节。
  研究方案,就是课题确定之后,研究人员在正式开展研之前制订的整个课题研究的工作计划,它初步规定了课题研究各方面的具体内容和步骤。研究方案对整个研究工作的顺利开展起着关键的作用,尤其是对于我们科研经验较少的人来讲,一个好的方案,可以使我们避免无从下手,或者进行一段时间后不知道下一步干什么的情况,保证整个研究工作有条不紊地进行。可以说,研究方案水平的高低,是一个课题质量与水平的重要反映。
二、 写好研究方案应做的基础性工作
  写好研究方案一方面要了解它们的基本结构与写法,但“汝果欲学诗,功夫在诗外”,写好开题报告和研究方案重要还是要做好很多基础性工作。首先,我们要了解别人在这一领域研究的基本情况,研究工作最根本的特点就是要有创造性,熟悉了别人在这方面的研究情况,我们才不会在别人已经研究很多、很成熟的情况下,重复别人走过的路,而会站在别人研究的基础上,从事更高层次、更有价值的东西去研究;其次,我们要掌握与我们课题相关的基础理论知识,理论基础扎实,研究工作才能有一个坚实的基础,否则,没有理论基础,你就很难研究深入进去,很难有真正的创造。因此,我们进行科学研究,一定要多方面地收集资料,要加强理论学习,这样我们写报告和方案的时候,才能更有把握一些,制定出的报告和方案才能更科学、更完善。
三、课题研究方案的结构与写法
  课题研究方案主要包括以下几个方面:
  (一)课题名称
  课题名称就是课题的名字。这看起来是个小问题,但实际上很多人写课题名称时,往往写的不准确、不恰当,从而影响整个课题的形象与质量。这就是平常人们所说的“只会生孩子,不会起名字”。那么,如何给课题起名称呢?
  第一,名称要准确、规范。
  准确就是课题的名称要把课题研究的问题是什么,研究的对象是什么交待清楚,课题的名称一定要和研究的内容相一致,不能太大,也不能太小,要准确地把你研究的对象、问题概括出来。
  规范就是所用的词语、句型要规范、科学,似是而非的词不能用,口号式、结论式的句型不要用。因为我们是在进行科学研究,要用科学的、规范的语言去表述我们的思想和观点。课题就是我们要解决的问题,这个问题正在探讨,正开始研究,不能有结论性的口气。
  第二,名称要简洁,不能太长。
  不管是论文或者课题,名称都不能太长,能不要的字就尽量不要,一般不要超过20个字。这次各个学校课题申报表中,我看名称都比较简洁,我就不再多说了。
  (二) 课题研究的目的、意义
  研究的目的、意义也就是为什么要研究、研究它有什么价值。这一般可以先从现实需要方面去论述,指出现实当中存在这个问题,需要去研究,去解决,本课题的研究有什么实际作用,然后,再写课题的理论和学术价值。这些都要写得具体一点,有针对性一点,不能漫无边际地空喊口号。不要都写成是坚持党教育方针、实施素质教育、提高教育教学质量等一般性的口号。主要内容包括:⑴ 研究的有关背景(课题的提出): 即根据什么、受什么启发而搞这项研究。 ⑵ 通过分析本地(校) 的教育教学实际,指出为什么要研究该课题,研究的价值,要解决的问题。
  (三) 本课题国内外研究的历史和现状(文献综述)。
  规范些应该有,如果是小课题可以省略。一般包括:掌握其研究的广度、深度、已取得的成果;寻找有待进一步研究的问题,从而确定本课题研究的平台(起点)、研究的特色或突破点。 参考总课题报告。
  (四)课题研究的指导思想
  指导思想就是在宏观上应坚持什么方向,符合什么要求等,这个方向或要求可以是哲学、政治理论,也可以是政府的教育发展规划,也可以是有关研究问题的指导性意见等。对于范围比较大,时间又很长的课题来讲,大家在总的方面,有了一个比较明确的指导思想,就可以避免出现理论研究中的一些方向性错误。这里,我给大家介绍一下何老师在《佛山市教育现代化进程》研究方案里写的课题指导思想里的一段话:“这一课题研究要依据党中央和国家要求,依据广东省委省政府的决定,依据佛山市委市政府的决定,结合国情、市情和佛山市教育改革与发展的实际,……力求揭示佛山市教育现代化进程的规律及表现形式,为佛山市教育现代化实践服务”。另外,还有一份供大家参考一下,广东省教育科研“九五”规划重点课题《学科教学与素质教育》研究和实验方案里面,课题指导思想这样写:“坚持以马克思主义、毛泽东思想和邓小平理论为指导,从我国经济领域实现“两个转变”和我省2010年基本实现现代化对基础教育的要求出发,针对在中小学学科教学中实施素质教育的有关理论和实践问题,开展全方位的改革实验和理论研究,有效指导广大中小学教师在学科教学中深入教学改革,全面贯彻教育方针,全面提高教育质量,从而推进我省基础教育事业向前发展,为把广东建成教育强省作出贡献 ”。
  (五) 课题研究的目标
  课题研究的目标也就是课题最后要达到的具体目的,要解决哪些具体问题,也就是本课题研究要达到的预定目标:即本课题研究的目标定位,确定目标时要紧扣课题,用词要准确、精练、明了。相对于目的和指导思想而言,研究目标是比较具体的,不能笼统地讲,必须清楚地写出来。只有目标明确而具体,才能知道工作的具体方向是什么,才知道研究的重点是什么,思路就不会被各种因素所干扰。
  常见存在问题是:不写研究目标;目标扣题不紧;目标用词不准确; 目标定得过高, 对预定的目标没有进行研究或无法进行研究。
  确定课题研究目标时,一方面要考虑课题本身的要求,另一方面要考虑课题组实际的工作条件与工作水平。
  (六)课题研究的基本内容
  我们有了课题的研究目标,就要根据目标来确定我们这个课题具体要研究的内容,相对研究目标来说,研究内容要更具体、明确。并且一个目标可能要通过几方面的研究内容来实现,他们不一定是一一对应的关系。大家在确定研究内容的时候,往往考虑的不是很具体,写出来的研究内容特别笼统、模糊,把研究的目的、意义当作研究内容,这对我们整个课题研究十分不利。因此,我们要学会把课题进行分解,一点一点地去做。
  基本内容一般包括:⑴对课题名称的界说。应尽可能明确三点:研究的对象、研究的问题、研究的方法。⑵本课题研究有关的理论、名词、术语、概念的界说。
  (七)课题研究的方法
  1、本课题研究是否要设定子课题。 各子课题既要有一定的相对独立性,又要形成课题系统。作为省、市级课题,最好设定子课题。形成全校的课题研究系统。
  2、具体的研究方法可从下面选定: 观察法、调查法、实验法、经验总结法、 个案法、比较研究法、文献资料法等。 如要研究学生实践能力的现状必定离不开调查法; 要研究如何优化小学生个性宜采用实验法;要研究如何对青年教师进行培养可采用经验总结法;要研究问题家庭学生的教育对策可采用个案法等等。
  3、确定研究方法时要叙述清楚“做些什么” 和“怎样做” 。如要用调查法,则要讲清调查的目的、任务、对象、范围、调查方法、问卷的设计或来源等。最好能把调查方案附上。

4、提倡使用综合的研究方法。 一个大的课题往往需要多种方法,小的课题可能主要是一种方法,但也要利用其它方法。
我们在应用各种方法时,一定要严格按照方法的要求,不能不三不四,凭经验、常识去做。比如,我们要通过调查了解情况,我们如何制订调查表,如何进行分析,不是随随便便发张表,搞一些百分数、平均数就行了。
突出介绍行动研究法。
  (八)课题研究的步骤
  课题研究的步骤,也就是课题研究在时间和顺序上的安排。研究的步骤要充分考虑研究内容的相互关系和难易程度,一般情况下,都是从基础问题开始,分阶段进行,每个阶段从什么时间开始,至什么时间结束都要有规定。课题研究的主要步骤和时间安排包括:整个研究拟分为哪几个阶段;各阶段的起止时间;各阶段要完成的研究目标、任务;各阶段的主要研究步骤;本学期研究工作的日程安排等。
  (九)课题研究的成果形式
  本课题研究拟取得什么形式的阶段研究成果和终结研究成果。形式有很多,如调查报告、实验报告、研究报告、论文、经验总结、调查量表、测试量表、 微机软件、教学设计、录像带等,其中调查报告、研究报告、论文是课题研究成果最主要的表现形式。 课题不同,研究成果的内容、形式也不一样,但不管形式是什么,课题研究必须有成果,否则,就是这个课题就没有完成。
  (十)课题研究的组织机构和人员分工
  在方案中,要写出课题组长、副组长、课题组成员以及分工。课题组组长就是本课题的负责人。一个课题组应该包括三方面的人,一是有权之士,二是有识之士,三是有志之士。有权了课题就可以得到更多的支持,有识了课题质量、水平就会更高,有志了可以不怕辛苦,踏踏实实踏实实去干。课题组的分工必须是要分得明确合理,争取让每个人了解自己工作和责任,不能吃大锅饭。但是在分工的基础上,也要注意全体人员的合作,大家共同研究,共同商讨,克服研究过程中的各种困难和问题。
  (十一)其他有关问题或保障机制
  如课题组活动时间;
  学习什么有关理论和知识,如何学习,要进行或参加哪些培训;
  如何保证研究工作的正常进行;
  课题经费的来源和筹集;
  如何争取有关领导的支持和专家的指导;
  如何与校外同行交流等。
四、注意三点:
  1、要学会搜集和获取信息。处处留心皆学问(积累)。
  2、要多学习,多借鉴。集思广益开眼界(学习与借鉴)。
  3、创新。登高望远多创意(创新)。

2007年4月12日

怎样写开题报告?

关键词: 研究生 学位论文 开题报告

一、如何选择问题

我一起萦绕于怀的,是在写博士论文开题报告的一年多时间里,导师薛澜教授反复追问的一个问题:“你的 puzzle 是什么?”多少次我不假思索地回答“我的问题就是,中国的半导体产业为什么发展不起来。”薛老师问题以其特有的储蓄,笑而不答。我在心中既恼火又懊丧:这么简单的道理,这么明显的答案,到底哪儿不对了?!

  奥妙就在于提出问题的“层次”。不同于政策研究报告,学术文章聚集理论层面、解决理论问题。理论是由一系列前设和术语构造的逻辑体系。特定领域的理论有其特定的概念、范畴和研究范式。只有在相同的概念、视角和范式下,理论才能够对话;只有通过对话,理论才能够发展。极少有硕博论文是创造新理论的,能这样当然最好,但难度很大。我们多数是在既有理论的基础上加以发展,因此,在提出问题时,要以“内行”看得懂的术语和明确的逻辑来表述。审视我最初提出的问题“中国半导体产业为什么发展不起来”,这仅仅是对现象的探询,而非有待求证的理论命题。我的理论命题是:“中国产业政策过程是精英主导的共识过程吗?”在这个命题中,“政策过程”、“精英政治”、“共识诉求”三个术语勾勒出研究的理论大体范围和视角。

  其次,选择问题是一个“剥笋”的过程。理论问题总是深深地隐藏在纷繁复杂的现实背后,而发现理论问题,则需要运用理论思维的能力。理论思维的训练是一个长期积累的过程。不过初学者也不必望而却步,大体上可以分“三步走”:第一步,先划定一个“兴趣范围”,如半导体产业、信息产业、农村医疗、高等教育体制等,广泛浏览相关的媒体报道、政府文献和学术文章,找到其中的“症结”或“热点”。第二步,总结以往的研究者大体从哪些理论视角来分析“症结”或“热点”、运用了哪些理论工具,如公共财政的视角、社会冲突范式等。第三步,考察问题的可研究性,也就是我们自己的研究空间和研究的可行性。例如,西方的理论是否无法解释中国的问题?或者同一个问题能否用不同的理论来解释?或者理论本身的前提假设、逻辑推演是否存在缺陷?通过回答这些问题,我们找到自己研究的立足点。不过还要注意我们研究在规定的一到两年时间内,是否可能完成?资料获取是否可行?等等。

  最后,如何陈述问题?陈述问题实质上就是凝练核心观点的过程。观点应当来自对现实问题的思考和总结,而不是为了套理论而“削足适履”。中国的政治、经济和社会发展充满动态的、丰富的景象,如何才能用恰当的术语、准确的逻辑表述出来呢?雄心勃勃的初学者往往提出宏伟的概念或框架,但我的建议是尽可能缩小研究范围、明确研究对象,从而理清对象的内存逻辑,保证能在有限的时间内完成规范的学

术论文。如“中国半导体产业政策研究”就是一个非常含糊的陈述,我们可以从几个方面来收缩话题:( 1 )时间:从 1980 年到 2000 年;( 2 )对象:政府的叛乱者和决策行为,而不是市场、企业、治理结构等;( 3 )视角:政治和政府理论中的精英研究;( 4 )案例: 908 工程、 909 工程、 13 号文件和《电子振兴》,这是发生在 1980 - 2000 年间半导体政策领域的两个重大工程和两个重要文件。通过这样的明确界定,我们将目光集中在“政策过程”、“精英”、“共识”几个显而易见的概念上,问题也就水落石出了。同时,问题清楚了,我们在筛选信息和资料时也就有了明确的标准,在这个“信息冗余”的时代,能够大大提高研究效率。



二、 如何做文献综述

  首先需要将“文献综述( Literature Review) ”与“背景描述 (Backupground Description) ”区分开来。我们在选择研究问题的时候,需要了解该问题产生的背景和来龙去脉,如“中国半导体产业的发展历程”、“国外政府发展半导体产业的政策和问题”等等,这些内容属于“背景描述”,关注的是现实层面的问题,严格讲不是“文献综述”,关注的是现实层面问题,严格讲不是“文献综述”。“文献综述”是对学术观点和理论方法的整理。其次,文献综述是评论性的( Review 就是“评论”的意思),因此要带着作者本人批判的眼光 (critical thinking) 来归纳和评论文献,而不仅仅是相关领域学术研究的“堆砌”。评论的主线,要按照问题展开,也就是说,别的学者是如何看待和解决你提出的问题的,他们的方法和理论是否有什么缺陷?要是别的学者已经很完美地解决了你提出的问题,那就没有重复研究的必要了。

  清楚了文献综述的意涵,现来说说怎么做文献综述。虽说,尽可能广泛地收集资料是负责任的研究态度,但如果缺乏标准,就极易将人引入文献的泥沼。

  技巧一:瞄准主流。主流文献,如该领域的核心期刊、经典著作、专职部门的研究报告、重要化合物的观点和论述等,是做文献综述的“必修课”。而多数大众媒体上的相关报道或言论,虽然多少有点价值,但时间精力所限,可以从简。怎样摸清该领域的主流呢?建议从以下几条途径入手:一是图书馆的中外学术期刊,找到一两篇“经典”的文章后“顺藤摸瓜”,留意它们的参考文献。质量较高的学术文章,通常是不会忽略该领域的主流、经典文献的。二是利用学校图书馆的“中国期刊网”、“外文期刊数据库检索”和外文过刊阅览室,能够查到一些较为早期的经典文献。三是国家图书馆,有些上世纪七八十年代甚至更早出版的社科图书,学校图书馆往往没有收藏,但是国图却是一本不少(国内出版的所有图书都要送缴国家图书馆),不仅如此,国图还收藏了很多研究中国政治和政府的外文书籍,从互联网上可以轻松查询到。

  技巧二:随时整理,如对文献进行分类,记录文献信息和藏书地点。做博士论文的时间很长,有的文献看过了当时不一定有用,事后想起来却找不着了,所以有时记录是很有必要的。罗仆人就积累有一份研究中国政策过程的书单,还特别记录了图书分类号码和藏书地点。同时,对于特别重要的文献,不妨做一个读书笔记,摘录其中的重要观点和论述。这样一步一个脚印,到真正开始写论文时就积累了大量“干货”,可以随时享用。

  技巧三:要按照问题来组织文献综述。看过一些文献以后,我们有很强烈的愿望要把自己看到的东西都陈述出来,像“竹筒倒豆子”一样,洋洋洒洒,蔚为壮观。仿佛一定要向读者证明自己劳苦功高。我写过十多万字的文献综述,后来发觉真正有意义的不过数千字。文献综述就像是在文献的丛林中开辟道路,这条道路本来就是要指向我们所要解决的问题,当然是直线距离最短、最省事,但是一路上风景颇多,迷恋风景的人便往往绕行于迤逦的丛林中,反面“乱花渐欲迷人眼”,“曲径通幽”不知所终了。因此,在做文献综述时,头脑时刻要清醒:我要解决什么问题,人家是怎么解决问题的,说的有没有道理,就行了。



三、如何撰写开题报告

  问题清楚了,文献综述也做过了,开题报告便呼之欲出。事实也是如此,一个清晰的问题,往往已经隐含着论文的基本结论;对现有文献的缺点的评论,也基本暗含着改进的方向。开题报告就是要把这些暗含的结论、论证结论的逻辑推理,清楚地展现出来。

  写开题报告的目的,是要请老师和专家帮我们判断一下:这个问题有没有研究价值、这个研究方法有没有可能奏效、这个论证逻辑有没有明显缺陷。因此,开题报告的主要内容,就要按照“研究目的和意义”、“文献综述和理论空间”、“基本论点和研究方法”、“资料收集方法和工作步骤”这样几个方面展开。其中,“基本论点和研究方法”是重点,许多人往往花费大量笔墨铺陈文献综述,但一谈到自己的研究方法时但寥寥数语、一掠而过。这样的话,评审老师怎么能判断出你的研究前景呢?又怎么能对你的研究方法给予切实的指导和建议呢?

  对于不同的选题,研究方法有很大的差异。一个严谨规范的学术研究,必须以严谨规范的方法为支撑。在博士生课程的日常教学中,有些老师致力于传授研究方法;有的则突出讨论方法论的问题。这都有利于我们每一个人提高自己对研究方法的认识、理解、选择与应用,并具体实施于自己的论文工作中。

摘自 《中国研究生》



2007年4月11日

博士生如何写好开题报告ZZ

博士生如何写好开题报告

(1)博士论文要有原创性知识;
(2)博士论文开题报告不是回答“是什么”的问题,而是回答“为什么”的问题;
(3)博士论文开题要确定用什么样的知识来回答提出的问题。这些知识应该是多学科的知识(cross-discipinary inquiry)。

方法论包括两种:理论框架和技术性、技巧方法。开题报告不能简单罗列,只要做到同类项归类。另外,文献索引要规范,譬如可以采用按照拼音的顺序排列。

论文开题是语境、语汇、逻辑和方法的统一体,开题是寻找一个合适的语境,用合适的语汇,以合理的逻辑,并论证方法的合理性。

开题报告是一个过程,早点开始,不断去梳理。开题之前是决策,是选择,很痛苦(如何寻找人生的另一半,很费心思);开题之后要硬着头皮坚持,总会发现精彩之处(找到了之后就好好过日子,会找到属于两个人的精彩的)。

开题中应注意的几个问题:
(1)对开题性质的认识。开题是一个重要环节,功能是制定研究计划。开题报告是由博士生对博士论文研究报告的价值性和可行性的一个辩论文本。
(2)选题。选题要有挑战性,理论性和可行性(feasible)。题目是研究出来的,不是给定的。问题有problem, question和issue三类。
(3)文献综述。综述是指综合评述,是对知识的梳理。综述文献不是做相关领域的文献,那些不能证明问题,而是on……,of……的文献。另外,不能对文献有偏见,也不能出现“很少有人研究”,“没人进行研究”的语句。
(4)开题报告的撰写时间至少需要一年。

2007年4月8日

p value

昨晚学习一篇论文的时候,结果表格中多出了一个p value,猜测了一下是比较两组实验的显著性差异之用。但是直到离开实验室也没有彻底弄懂它的具体意义和计算方法。今天上午应用Excel的双因素方差分析终于学会了如何求解两个序列的p value,以后自己在做实验的时候也应该尽量考虑一下统计这个数据。在网上找了一下,下面这段问答中有p值的解释,还有一些其他有用的概念。收藏与此了。


-----------------------------------------



问:自由度是什么?怎样确定?

答:(定义)构成样本统计量的独立的样本观测值的数目或自由变动的样本观测值的数目。用df表示。自由度的设定是出于这样一个理由:在总体平均数未知时,用样本平均数去计算离差(常用小s)会受到一个限制——要计算标准差(小s)就必须先知道样本平均数,而样本平均数和n都知道的情况下,数据的总和就是一个常数了。所以,“最后一个”样本数据就不可以变了,因为它要是变,总和就变了,而这是不允许的。至于有的自由度是n-2什么的,都是同样道理。 在计算作为估计量的统计量时,引进一个统计量就会失去一个自由度。通俗点说,一个班上有50个人,我们知道他们语文成绩平均分为80,现在只需要知道49个人的成绩就能推断出剩下那个人的成绩。你可以随便报出49个人的成绩,但是最后一个人的你不能瞎说,因为平均分已经固定下来了,自由度少一个了。简单点就好比你有一百块,这是固定的,已知的,假设你打算买五件东西,那么前四件你可以随便买你想买的东西,只要还有钱的话,比如说你可以吃KFC可以买笔,可以买衣服,这些花去的钱数目不等,当你只剩2块钱时,或许你最多只能买一瓶可乐了,当然也可以买一个肉松蛋卷,但无论怎么花,你都只有两块钱,而这在你花去98块那时就已经定下来了。

问:X方检验中自由度问题

答:在正态分布检验中,这里的M为N、平均数和标准差。因为我们在做正态检验时,要使用到平均数和标准差以确定该正态分布形态,此外,要计算出各个区间的理论次数,我们还需要使用到N。所以在正态分布检验中,自由度为K-3。在总体分布的配合度检验中,自由度为K-1。在交叉表的独立性检验和同质性检验中,自由度为(r-1)×(c-1)。

问:t检验和方差分析有何区别

答:t检验适用于两个变量均数间的差异检验,多于两个变量间的均数比较要用方差分析。用于比较均值的t检验可以分成三类,第一类是针对单组设计定量资料的;第二类是针对配对设计定量资料的;第三类则是针对成组设计定量资料的。后两种设计类型的区别在于事先是否将两组研究对象按照某一个或几个方面的特征相似配成对子。无论哪种类型的t检验,都必须在满足特定的前提条件下应用才是合理的。  若是单组设计,必须给出一个标准值或总体均值,同时,提供一组定量的观测结果,应用t检验的前提条件就是该组资料必须服从正态分布;若是配对设计,每对数据的差值必须服从正态分布;若是成组设计,个体之间相互独立,两组资料均取自正态分布的总体,并满足方差齐性。之所以需要这些前提条件,是因为必须在这样的前提下所计算出的t统计量才服从t分布,而t检验正是以t分布作为其理论依据的检验方法。  值得注意的是,方差分析与成组设计t检验的前提条件是相同的,即正态性和方差齐性。  t检验是目前医学研究中使用频率最高,医学论文中最常见到的处理定量资料的假设检验方法。t检验得到如此广泛的应用,究其原因,不外乎以下几点:现有的医学期刊多在统计学方面作出了要求,研究结论需要统计学支持;传统的医学统计教学都把t检验作为假设检验的入门方法进行介绍,使之成为广大医学研究人员最熟悉的方法;t检验方法简单,其结果便于解释。简单、熟悉加上外界的要求,促成了t检验的流行。但是,由于某些人对该方法理解得不全面,导致在应用过程中出现不少问题,有些甚至是非常严重的错误,直接影响到结论的可靠性。将这些问题归类,可大致概括为以下两种情况:不考虑t检验的应用前提,对两组的比较一律用t检验;将各种实验设计类型一律视为多个单因素两水平设计,多次用t检验进行均值之间的两两比较。以上两种情况,均不同程度地增加了得出错误结论的风险。而且,在实验因素的个数大于等于2时,无法研究实验因素之间的交互作用的大小。

问:统计学意义(P值)

答:结果的统计学意义是结果真实程度(能够代表总体)的一种估计方法。专业上,P值为结果可信程度的一个递减指标,P值越大,我们越不能认为样本中变量的关联是总体中各变量关联的可靠指标。P值是将观察结果认为有效即具有总体代表性的犯错概率。如P=0.05提示样本中变量关联有5%的可能是由于偶然性造成的。即假设总体中任意变量间均无关联,我们重复类似实验,会发现约20个实验中有一个实验,我们所研究的变量关联将等于或强于我们的实验结果。(这并不是说如果变量间存在关联,我们可得到5%或95%次数的相同结果,当总体中的变量存在关联,重复研究和发现关联的可能性与设计的统计学效力有关。)在许多研究领域,0.05的P值通常被认为是可接受错误的边界水平。

问:如何判定结果具有真实的显著性

答:在最后结论中判断什么样的显著性水平具有统计学意义,不可避免地带有武断性。换句话说,认为结果无效而被拒绝接受的水平的选择具有武断性。实践中,最后的决定通常依赖于数据集比较和分析过程中结果是先验性还是仅仅为均数之间的两两>比较,依赖于总体数据集里结论一致的支持性证据的数量,依赖于以往该研究领域的惯例。通常,许多的科学领域中产生P值的结果≤0.05被认为是统计学意义的边界线,但是这显著性水平还包含了相当高的犯错可能性。结果0.05≥P>0.01被认为是具有统计学意义,而0.01≥P≥0.001被认为具有高度统计学意义。但要注意这种分类仅仅是研究基础上非正规的判断常规。

问:所有的检验统计都是正态分布的吗?

答:并不完全如此,但大多数检验都直接或间接与之有关,可以从正态分布中推导出来,如t检验、F检验或卡方检验。这些检验一般都要求:所分析变量在总体中呈正态分布,即满足所谓的正态假设。许多观察变量的确是呈正态分布的,这也是正态分布是现实世界的基本特征的原因。当人们用在正态分布基础上建立的检验分析非正态分布变量的数据时问题就产生了,(参阅非参数和方差分析的正态性检验)。这种条件下有两种方法:一是用替代的非参数检验(即无分布性检验),但这种方法不方便,因为从它所提供的结论形式看,这种方法统计效率低下、不灵活。另一种方法是:当确定样本量足够大的情况下,通常还是可以使用基于正态分布前提下的检验。后一种方法是基于一个相当重要的原则产生的,该原则对正态方程基础上的总体检验有极其重要的作用。即,随着样本量的增加,样本分布形状趋于正态,即使所研究的变量分布并不呈正态。

问:假设检验的内涵及步骤

答:在假设检验中,由于随机性我们可能在决策上犯两类错误,一类是假设正确,但我们拒绝了假设,这类错误是“弃真”错误,被称为第一类错误;一类是假设不正确,但我们没拒绝假设,这类错误是“取伪”错误,被称为第二类错误。一般来说,在样本确定的情况下,任何决策无法同时避免两类错误的发生,即在避免第一类错误发生机率的同时,会增大第二类错误发生的机率;或者在避免第二类错误发生机率的同时,会增大第一类错误发生的机率。人们往往根据需要选择对那类错误进行控制,以减少发生这类错误的机率。大多数情况下,人们会控制第一类错误发生的概率。 发生第一类错误的概率被称作显著性水平,一般用α表示,在进行假设检验时,是通过事先给定显著性水平α的值而来控制第一类错误发生的概率。在这个前提下,假设检验按下列步骤进行: 1、确定假设; 2、进行抽样,得到一定的数据; 3、根据假设条件下,构造检验统计量,并根据抽样得到的数据计算检验统计量在这次抽样中的具体值; 4、依据所构造的检验统计量的抽样分布,和给定的显著性水平,确定拒绝域及其临界值; 5、比较这次抽样中检验统计量的值与临界值的大小,如果检验统计量的值在拒绝域内,则拒绝假设;到这一步,假设检验已经基本完成,但是由于检验是利用事先给定显著性水平的方法来控制犯错概率的,所以对于两个数据比较相近的假设检验,我们无法知道那一个假设更容易犯错,即我们通过这种方法只能知道根据这次抽样而犯第一类错误的最大概率(即给定的显著性水平),而无法知道具体在多大概率水平上犯错。计算P值有效的解决了这个问题,P值其实就是按照抽样分布计算的一个概率值,这个值是根据检验统计量计算出来的。通过直接比较P值与给定的显著性水平α的大小就可以知道是否拒绝假设,显然这就代替了比较检验统计量的值与临界值的大小的方法。而且通过这种方法,我们还可以知道在p值小于α的情况下犯第一类错误的实际概率是多少,p=0.03<α=0.05,那么拒绝假设,这一决策可能犯错的概率是0.03。需要指出的是,如果P>α,那么假设不被拒绝,在这种情况下,第一类错误并不会发生。

问:卡方检验的结果,值是越大越好,还是越小越好?

答:与其它检验一样,所计算出的统计量越大,在分布中越接近分布的尾端,所对应的概率值越小。如果试验设计合理、数据正确,显著或不显著都是客观反映。没有什么好与不好。

问:配对样本的T检验和相关样本检验有何差别?

答:配对样本有同源配对(如动物实验中双胞胎)、条件配对(如相同的环境)、自身配对(如医学实验中个体的用药前后)等。在SPSS中,参数检验中的均值检验有以下几种选择, One-Samples T Test过程:进行样本均值与已知总体均值之间的差异显著性检验。 Independent-Samples T Test过程:进行检验两个不相关的样本是否来自具有相同均值的总体,即独立样本T检验。 Paired-Samples T Test过程:进行检验两个相关的样本是否来自具有相同均值的总体,即配对T检验。 One-Way ANOVA过程:用于检验几个(三个或三个以上)不相关的组是否来自相同均值的总体,即一元方差分析,也称单因素方差分析,还可进行随后的两两比较。

问:在比较两组数据的率是否相同时,二项分布和卡方检验有什么不同?

答:卡方分布主要用于多组多类的比较,是检验研究对象总数与某一类别组的观察频数和期望频数之间是否存在显著差异,要求每格中频数不小于5,如果小于5则合并相邻组。二项分布则没有这个要求。如果分类中只有两类还是采用二项检验为好。如果是2*2表格可以用fisher精确检验,在小样本下效果更好。

问:如何比较两组数据之间的差异性

答:从四个方面来回答, 1.设计类型是完全随机设计两组数据比较,不知道数据是否是连续性变量? 2.比较方法:如果数据是连续性数据,且两组数据分别服从正态分布&方差齐(方差齐性检验),则可以采用t检验,如果不服从以上条件可以采用秩和检验。 3.想知道两组数据是否有明显差异?不知道这个明显差异是什么意思?是问差别有无统计学意义(即差别的概率有多大)还是两总体均数差值在哪个范围波动?如果是前者则可以用第2步可以得到P值,如果是后者,则是用均数差值的置信区间来完成的。当然两者的结果在SPSS中均可以得到。 4.对以上结果SPSS的实现是: (1)t检验,analyse→compare means→independent-samples T Test (2)秩和检验,analyse→noparametric Test→2 independent samples

问:回归分析和相关分析的联系和区别

答:回归分析(Regression):Dependant variable is defined and can be forecasted by independent variable.相关分析(Correlation):The relationship btw two variables. --- A dose not define or determine B. 回归更有用自变量解释因变量的意思,有一点点因果关系在里面,并且可以是线性或者非线形关系;相关更倾向于解释两两之间的关系,但是一般都是指线形关系,特别是相关指数,有时候图像显示特别强二次方图像,但是相关指数仍然会很低,而这仅仅是因为两者间不是线形关系,并不意味着两者之间没有关系,因此在做相关指数的时候要特别注意怎么解释数值,特别建议做出图像观察先。不过,无论回归还是相关,在做因果关系的时候都应该特别注意,并不是每一个显著的回归因子或者较高的相关指数都意味着因果关系,有可能这些因素都是受第三,第四因素制约,都是另外因素的因或果。对于此二者的区别,我想通过下面这个比方很容易理解:对于两个人关系,相关关系只能知道他们是恋人关系,至于他们谁是主导者,谁说话算数,谁是跟随者,一个打个喷嚏,另一个会有什么反应,相关就不能胜任,而回归分析则能很好的解决这个问题回歸未必有因果關係。回歸的主要有二:一是解釋,一是預測。在於利用已知的自變項預測未知的依變數。相關係數,主要在了解兩個變數的共變情形。如果有因果關係,通常會進行路徑分析(path analysis)或是線性結構關係模式。我觉得应该这样看,我们做回归分析是在一定的理论和直觉下,通过自变量和因变量的数量关系探索是否有因果关系。楼上这位仁兄说“回归未必有因果关系……如果有因果关系,通常进行路径分析或线性结构关系模式”有点值得商榷吧,事实上,回归分析可以看成是线性结构关系模式的一个特例啊。我觉得说回归是探索因果关系的并没错,因为实际上最后我们并不是完全依据统计的结果来判断因果性,只有在统计结果和理论及现实比较吻合的基础上我们才肯定这种因果关系。任何统计方法只是一种工具,但是不能完全依赖于这种工具。即使是SEM,我们也不能说完全认定其准确性,因为即使方法是好的,但是变量的复杂关系呈现的方式也是多种多样的,可能统计只能告诉你一个方向上的最优解,可未必是最符合实际的,更何况抽样数据的质量好坏也会使得结果不符合事实,从而导致人们怀疑统计方法的准确性。统计只说明统计关联。不证明因素关系。回归有因果关系,相关未必。回归分析是处理两个及两个以上变量间线性依存关系的统计方法。此类问题很普遍,如人头发中某种金属元素的含量与血液中该元素的含量有关系,人的体表面积与身高、体重有关系;等等。回归分析就是用于说明这种依存变化的数学关系。任何事物的存在都不是孤立的,而是相互联系、相互制约的。身高与体重、体温与脉搏、年龄与血压等都存在一定的联系。说明客观事物相互间关系的密切程度并用适当的统计指标表示出来,这个过程就是相关分析。