写了一个输粤拼查汉字的功能

虽然只是个小小的功能。但写出来却也不是一两个小时的事情,写了四个小时才写完~~~有个缺陷就是:对多音字支持得不够好~~ 主要技术障碍来自于对javasript不熟悉,用firefox浏览器调试时浏览器总是缓冲旧的javascript文件。 http://ykyi.net/jyutping2char.php 一直以来都有网友抱怨没有办法发音~ 这是因为目前的发音是通过flash技术实现的,但很多手机平台上的浏览器不支持flash技术,比如苹果的移动平台就不支持flash。 鉴于HTML5是未来互联网的行业标准。我在计划写一个HTML5的版本。但是没有时间表约定~我也不知道什么时候可以完成。

April 3, 2012 · 1 min · kamus

SWOT分析法

 SWOT   SWOT分析法又称态势分析法。早在20世纪80年代初由旧金山大学的管理学教授提出,它是一种能够较客观而准确地分析和研究一个单位现实情况的方法。   S.W.O.T.分别是是英文单词STRENGTHS(优势),WEAKNESSES(劣势),OPPORTUNITIES(机会),THREATS(威胁)的首字母缩写。       其中竞争优势S可以是:技术技能优势,有形资产优势;无形资产优势;人力资源优势;组织体系优势;竞争能力优势。竞争劣势W可以是:缺乏具有竞争意义的技能技术;缺乏有竞争力的有形资产;无形资产;人力资源;组织资产。企业中的机会O可以是:客户群的扩大趋势或产品细分市场;技能技术向新产品新业务转移,为更大客户群服务;前身或后向整合;市场进入壁垒降低;获得购并竞争对手的能力;市场需求增长强劲,可快速扩张;出现向其他地理区域扩张,扩大市场份额的机会。企业生存的外部威胁可以是:出现将进入市场的强大的新竞争对手;替代产品抢占公司的销售额;主要产品市场增长率下降;汇率和外贸政策的不利变动;人口特征,社会消费方式的不利变动;客户或供应商的谈判能力提高;市场需求减少;容易受到经济萧条和业务周期的冲击。其中的SW属于内部因素,OT属于外部因素。       企业进行SWOT分析时先罗列组织的内部优势和劣势,外部可能的机会与威胁。其次,对SO,ST,WO,WT策略进行甄别和选择,确定组织目前应采取的具体战略与仿真;优势、劣势与机会、威胁相组合,形成SO、ST、WO、WT策略。一共三个阶段。更详细的展开说。       在第一阶段运用各种调查研究方法,分析出公司所处的各种环境因素,即外部环境因素和内部能力因素。外部环境因素包括机会因素和威胁因素,它们是外部环境对公司的发展直接有影响的有利和不利因素,属于客观因素,内部环境因素包括优势因素和弱点因素,它们是公司在其发展中自身存在的积极和消极因素,属主动因素,在调查分析这些因素时,不仅要考虑到历史与现状,而且更要考虑未来发展问题。       在第二阶段构造SWOT矩阵。将调查得出的各种因素根据轻重缓急或影响程度等排序方式,构造SWOT矩阵。在此过程中,将那些对公司发展有直接的、重要的、大量的、迫切的、久远的影响因素优先排列出来,而将那些间接的、次要的、少许的、不急的、短暂的影响因素排列在后面。       在第三阶段制定行动计划。在完成环境因素分析和SWOT矩阵的 构造后,便可以制定出相应的行动计划。制定计划的基本思路是:发挥优势因素,克服弱点因素,利用机会因素,化解威胁因素;考虑过去,立足当前,着眼未来。 运用系统分析的综合分析方法,将排列与考虑的各种环境因素相互匹配起来加以组合,得出一系列公司未来发展的可选择对策。       总言之:SWOT是一种分析方法,用来确定企业本身的竞争优势,竞争劣势,机会和威胁,从而将公司的战略与公司内部资源、外部环境有机结合。因此,清楚的确定公司的资源优势和缺陷,了解公司所面临的机会和挑战,对于制定公司未来的发展战略有着至关重要的意义。    

March 20, 2012 · 1 min · kamus

gcc的-E选项什么意思

gcc的-E选项可以为你生成预编译后的文件。预编译后的文件将把c文件中的宏以及该文件包含的所有头文件展开。这样就没有了一层一层进入嵌套包含的头文件。下面是一个使用gcc的-E选项的例子。 下面是来自gcc mannual page的解释: -E Stop after the preprocessing stage; do not run the compiler proper. The output is in the form of preprocessed source code, which is sent to the standard output. Input files which don’t require preprocessing are ignored. $ gcc -E drivers/char/mydrv.c -D__KERNEL__ -Iinclude -Iinclude/asm-x86/mach-default > mydrv.i 其中的-I选项告诉编译器在哪些目录中搜索所需要的头文件。 还可以用gcc的-S选项生成汇编码的文件。如: $ gcc -S drivers/char/mydrv.c -D__KERNEL__ -Iinclude -Ianother/include/path ykyi.net

February 22, 2012 · 1 min · kamus

读论文 宏观层面的软件演化

软件工程进展读论文报告 论文:Macro-level software evolution: a case study of a large software compilation (宏观层面的软件演化:举例研究一个大型软件的编译)于2008年11月29号发表于实证软件工程。 论文的背景和动机: 软件演化(Software Evolution)一般研究的是由相互合作的团队开发的单个的软件产品。但是越来越多的软件系统包含了大量了不同的应用和运行库。很多这些应用和运行库是由不同的团队面向不同的目的开发的。这种大型软件系统是如何演化的呢?他们有些什么特性特点呢。但要研究这样的大型软件系统需要有这个系统所涉及的所有应用和库在各个时间点的源代码。这并非一件易事。因此才鲜有研究文献涉及该类型的系统。 这些年,很多大型自由软件系统取得了巨大成功,例如Fedora Linux, Debian GNU/Linux, FreeBSD, OpenBSD。这些大型自由软件集成成百上千独立应用和库,并且几乎所有自由件的授权都充许自由得到相应的源代码。这为我们研究大型软件系统的演化提供了必要条件。 构成大型软件系统的各个工程是独立开发的(某些软件系统把这些独立开发的工程称之为包),但从整个软件系统的视角来看,它们之间却存在复杂的依存关系,甚至在某些情况下会是冲突关系。因此,单个的研究某特定工程的演化与在整个软件系统中研究软件的演化是不同的。 论文旨在通过分析一个大型自由软件系统的演化来揭示大型自由软件系统的一般规律以至私有大型软件的某些规律和特点。 论文中实证研究的定义、规划、执行与分析: Debian GNU/Linux是一个非常流行的大型软件系统。它包括了各种大大小小的应用和库,其中一些演化的非常迅速,其中一些又长期没有变化,不断有新的包加入该系统又不断有过时的包被抛弃。仅管这些包是相互独立开发并自我演化,但在Debian系统中,它们之前有着非常复杂的关系。这个复杂关系随着Debian系统的演化而变得更加复杂,使之越来越难以维护。 [定义] 这篇论文,即以Debian软件系统为例,主要考察了九年以来Deiban系统中包的总数,包的大小,开发语言,包之间的相互依赖性等多个指标,在宏观上研究整个Debian软件系统的演化。最终得出一些大型自由软件的特点,分析这些特点能指导单独的软件研发使之能更好的集成进大型系统中。 [规划和执行] Debian组织成一个个包(package),一般地讲每个包对应于一个应用或一个库,少数情况下对应于文档或其它。包分两种,一种是包含运行的二进制文件的包,另一个是源文件包。源代码包在构建以后通常生成一个或多个二进制包。Debian为每一个发行版本维护了一系列配置文件,这些配置文件设定了每个发行版所需要的运行环境,包含了哪些包。而每个包的配置文件也约定了它所依赖的其它包的关系。 这份报告研究了Debian从2.0到4.0的所有稳定发行版号,即2.0,2.1,2.2,3.0,3.1,4.0。对于每一个待考察的版本,配置文件被事先写好的脚本分析,把分析到的数据存入数据库中。然后,每一个源码包被自动获取,源代码行数被SLOC工具分析得出;源代码所使用的编程语言也用SLOC工具识别到。而包与包之间的依赖性亦可由Debian发行版的配置文件中记录的Depends,Pre-Depends,Suggests,Recommends字段得到。这些信息被分析出来以后,包与包之间的依赖关系由一个有向图描述出来。有向图中的结点表示一个包,连接结点的边表示包与包之间的依赖关系。每个待研究的Debian发行版都会生成一个这样的IDG(Inter-Dependency Graph),通过运用有向图的算法可以得到很多研究关心的数据,比如最流行的包(The most popular package)。 [分析] 发行版总大小 结果显示每隔两年,发行版的大小(统计发行版的所有源代码行数)就会增加一倍。截止2007年的Debian 4.0,已经共有4亿行代码和1万个包。如此大的规模会为未来的继续发展带来不小的麻烦,在最新的发行版中已经可以看到超大规模的几数级增长已经给某些时间点带来了延迟。 包的大小 而包的平均大小指标在九年内几乎维持不变。因为软件系统的总代码量迅速增长而平均包大小不变,这意味着越来越多的包被增加到系统中。Debian .4.0的包数目是Debian 2.0的包数目的10倍。为了应对包的不断增多,Debian系统需要迅速增加包维护者以及每个维护者需要应对的包数目。包数目的迅速增长也是一个非常棘手的问题,特别影响了包维护者的相互配合。 包的维护 Debian维护者的任务之一就是跟踪新版本的软件包,给它们重新打包,更新相应的包描述。一但一个新版本的包发布了,包的名字就会相应变化。因此可以通过分析发行版的包的名称确定软件包有没有被维护过。 分析数据后显示Debian 2.0的1096个包里面有721个可以在4.0中找到。这意味着Debian2.0中只有30%的包在九年后的Debian 4.0中被移除。再之,Debian 3.1的10106个包中,而在4.0中仍然存在的有7300个,这个比例也大概是30%。 对于没有改变过的包。Debian 4.0中有132个包与Debian 2.0中毫无改变。换言之,Debian 2.0中不少于15%的包在九年后仍然没有任何改变在Debian 4.0中。 必须指出的是未改变的包所包含的文件数目并不能反应所有的未改变的文件数目。后者的数字应该高一些:有相当多的文件在Debian的各个发行版之间没有改变,即使它们所属的包的名字变化了。 开发语言 统计数据显示Debian各个发行版中最多使用的开发语言仍然是C语言,并且较之于第二名优势明显。但对于C语言,在第Debian 2.0中,C占了77%的份额;到了Debian 4.0,C语言的份额下降到了51%。而对于C++,则是从2.0时占6%的市场份额上升到了4.0时的19%。总体上看,C语言的重要性一直在相对减弱,而C++和其它一些开发语言都保持了一定增长的趋势。必须说明的一点时,仅管C语言的份额在下降,但从C语言代码绝的绝对数量上看仍然在快速增加。 Shell语一直处在第三的位置,因为这种语言在几乎每个包中都有。从大量的小尺寸包到重量级的包,Shell无所不在。 另一个值得关注的必然是Java。在Debian 3.0时,Java编写的应用仅仅占到0.5%。到了Debian 3.1发布时,这个数字飞速上升到1.7%,到了Debian 4.0時,增加到了3.1%,稳定地占据了第四的位置。Java的快速增长得益于几个大型应用使用Java语言进行开发,比如:Eclipse和Azureus。实际上,Java还是被低估了。因为授权许可证的问题,包含大量Java代码的Sun JDK和Sun JRE没有统计在内,而其它语言则至少包含了一个常用的开发环境。 就代码量而言,一些比较生僻冷门的语言也占据了比较明显的份额。这是因为虽然这些生僻语言仅仅出现在少量包中,但这些开发包的尺寸却很大。比如,Ada语言在Debian 3.0中有57万行代码,其中的43万行都来自于Ada的编译器,开发库和开发工具。 通过观察开发语言的使用率趋势,可以估算出有多少开发者比较熟悉某种开发语言。同时,不同语言的不断演化也反映出自由软件在开发语言层面的变化。 ...

February 22, 2012 · 1 min · kamus

怎么为Linux源代码生成补丁

怎么为Linux源代码生成补丁 用diff命令来为linux源代码生成补丁。如: $ diff -Nur /path/to/original/kernel /path/to/your/kernel > change.patch 注意原始的源代码在前,更改后的源代码在后。2.6.x内核的补丁包提交约定指出你需要在每个patch后面写上这样一行: Sined-off-by: name 这样注明这个补丁包由你制作并贡献给社区。 参看 Documentation/SubmittingPatches可以知道更多关于提交linux源代码补丁的内容 。 参看 Documentation/applying-patches.txt 可以知道更多如果打补丁包。 copyright ykyi.net

February 22, 2012 · 1 min · kamus

业务连续性读书报告

第一部分  概述 1 什么是业务连续性 业务连续性就是为了应对系统宕机,无法接受的性能下降之类的问题。 2 为什么要有业务连续性 因为如果系统宕机会造成无法估计的巨大损失。怕你不信,PPT里画了张表,列举了几个行业宕机会造成的损失估计。最低的一般零售业每小时损失一百万美金;损失最大的是投资银行,每小时造成接近七百万美金的损失。 3 恢复时间 Recovery Time Recovery Time includes:1. Fault detection 2. Recovering data 3.Bringing apps back online。 4 灾难恢复和灾难重启的区别 灾难恢复是在人为干预下使用备份技术恢复数据把数据恢复到备份的某个完整点。而灾难重启则是重启镜像数据和应用程序。 5. 造成系统宕机的原因 有人为因素,系统本身的原因,支持系统的外围设备的故障(比如电网断电),另外还有自然灾难,战争什么的。苦逼的伊斯兰世界天天哭喊着要圣战啊。 6. 业务连续性和灾难恢复 业务连续性是一盘大棋,包括:计划,准备,从灾难中恢复。它侧重在预防。而灾难恢复计划(Disaster recovery planning,abbreviated as BCP)应被看成业务连续性的一部分。灾难恢复侧重于事发后采取的措施和行动。 7. 业务连续计划(BCP) 界定关键业务功能;收集当前业务流程的数据;风险管理;制定应急预案(Contingency Plans)和灾难恢复计划(DR Plan);培训;测式;维护。 8. 业务连续性计划的生命周期 包括五个阶段。1. Implement, Maintain, and assess 2. Objectives 3. Analysis 4. Design & Develop 5. Train, Test & Document. 9 单点失效 这个概念N多学科里都有提到哇。顾名思义都知道单点失效是什么咯。解决的方法就是冗余!PPT里列举了HBA失效,交换机/阵列端口失效,磁盘失效,主机失效,站点/存储阵列失效。 10 业务连续性技术的解决方案 有三种。 A. 本地复制 B. 远端复制 C. 备份/恢复 11 EMC的相关产品 EMC在业务连续性方面的产品叫PowerPath。PowerPath是个基于Server的软应用,它在HBA和存储子系统间提供了多通路。嗱,它提供冗余通路。好明显冗余是为了防止单点失效;还提供了负载平衡;应用层的透明性。这个东东增强了数据的有效性和可达性。 第二部分 解决方案 A) 备份和恢复 1. 备份是数据恢复和恢复的目的,可以使用的额外副本。主副本丢失或损坏时,使用备份副本。 2. 备份恢复的策略:复制数据,反射(或快照)后复制,远程备份等。   3. 备份计划的原因包括以下几个方面:硬件损伤、人为因素、应用程序崩溃、安全机制失败、自然灾难、定期的以及公司的需求。 4. 数据库备份方法:热备份,生产不中断;冷备份,生产中断。 5. 备份粒度和等级:全备份,累积备份,增加的备份 6. 备份架构拓扑,3种基本备份拓扑:基于直接附属设备的备份,基于局域网的备份,基于SAN的备份。 7. 备份媒介,磁带,磁盘。 8. 管理备份过程 备份应用程序接口一般包括两类,CLI和GUI。 备份报告:目的是要便于阅读和提供重要信息,如:备份的数据量;完成备份数;备份不完整的号码(失败);可能发生的错误类型。 备份日志的重要性:从日志中我们可以看到备份操作的强度和完整度等等,备份日志丢失,软件无法找到确定的备份文件来进行恢复。 B) 本地复制 1. 复制是产生拷贝数据的过程。 2. 备份关注两方面的,可恢复性,一致性。 3. 文件系统复制。 4. 数据库应用程序复制,包括数据和日志。 5. 本地复制技术,基于主机:基于存储阵列,分别举了几个例子。逻辑卷管理(LVM),基于镜像文件系统快照。 C) 远程复制 1. 学习目标:阐释远程复制的概念,能从各方面讨论基于主机和基于阵列的远程复制技术。 2.  同步复制:确保源和远程副本,在任何时候都相同的数据 3.  异步复制:数据缓冲,并且送到远程 4.  远程复制技术包括:基于主机的复制;基于阵列存储设备 zausiu's blog ///////// 介个是EMC存储课的作业. ...

January 13, 2012 · 1 min · kamus

In the flesh 本人地;活生生地。及其它与flesh有关的短语。

<绝望的主妇>第二季第十九集中,susan 的感情进展地很不顺利。一天她独自去电影院。不巧的是,她在电影院里撞见了mike,还是和别的女孩一起来的。这真是无巧不成书。她为了避免尴尬赶快向旁边一位男士求救。还好他很配合,也很幽默。他说:Wow, i can’t believe I’m finally seeing the man himself, in the flesh. http://ykyi.net 在这句说话里面,in the flesh means present and alive before one’s eyes or in person(活生生地在某人眼前或本人地),也可以简单理解为”活生生地,本人地” 例如: She is even more beautiful in the flesh. 她本人更漂亮 一定要学会这句话喔。这可是在看照片时常用的啊。哈哈。 flesh可以指“肉,肉体” Hi, what makes u lose so much flesh. 嗨,是什么使你变得如此消瘦。 The spirit is willing but the flesh is weak. 心有余而力不足。 **flesh and blood 可以用来泛指人体,人性(The human body or nature). ** The work is more than flesh and blood can stand. 这项工作非人能忍受。 ...

January 7, 2012 · 1 min · kamus

英语里几个和knock有关的短语 knock off; knock out; knock up; knock yourself out

knock是个普通的动词,但在日常口语中经常出现。 Knock off : ‘住手’的意思! Betty Applewhite把自己弱智的儿子caleb囚禁在basement,caleb总是不断地击打镣铐发出哐啷的声音。另一个儿子Matthew无法忍受时对地下室喊到: Knock it off ! Knock out: 拳击双赛中的”KO”,即把对方击倒,即 knock out 的缩写. 但数学老师说”we can knock out x and y”这里的knock out 则是“消去”的意思。http://ykyi.net knock-out 作名词解时却是“美女”的意思。 She is a knock-out. 她是个美女。 Knock up: Knock up这是一个略显粗俗的美国俚语,意思是“to make sb. pregnant”(使某人怀孕)例如: You are so irresponsible, if u knock her up and then disappear. 又如: The young girl said she was afraid of getting knocked up. 在英式英语中,knock up 和 knock out 有相同的意思,表示“使筋疲力尽,使累垮” 例如:This physical work knocked me up. 这个体力活使我筋疲力尽了。 ...

January 7, 2012 · 1 min · kamus

A slap on the wrist 轻微的惩罚

<绝望的主妇>第二季第九集中。Lynette找到stu,鼓动他上司Ed说明自己被解雇的真正原因是女上司Nina对他的性骚扰,Stu为保全工作决定找Ed摊牌,但同时又担心Nina的处境。 So would Nina get in trouble ? 那么Nina会有麻烦吗? well, I‘m not gonna lie to u. There is a possibility she’d get a slap on the wrist. http://ykyi.net 我不想撒谎,Nina有可能会受到轻微的处罰。 这里 a slap on the wrist中的slap就是打一下。比如说,a slap on the face就是打耳光。 a slap on the wrist 就是在手腕上打一下。在手腕上打一下并不痛。作为习惯用语呢, a slap on the wrist 就是”轻微的惩罚”。 比a slap on the wrist更轻的叫做“token punishment”.象征性惩罚。 You got off easy this time, but stealing is a serious crime and next time it won’t just be a slap on the wrist. ...

January 7, 2012 · 1 min · kamus

stab someone in the back 出卖别人

《绝望的主妇》第2季第22集,大伙忙着帮susan收拾大火过后的残局,无意之间susan发现只有edie站在街对面袖手旁观,悠闲地吃冰棒(popsicle),还洋洋得意地盯着susan. Susan当即像是明白了些什么,随后便跑到Edie家去想问个究竟… http://ykyi.net 没想到这一对质,Edie承认了她所做的一切,但她却振振有词,原因是她看了susan之前写给她的道歉信。susan做梦也想不到那封信怎么还会到Edie的手里。Mike花了大价钱赶走了私家侦探Oliver. Susan又想尽一切办法引开邮递员Gus的注意,偷出了那封信,没想到老天捉弄人, 在Julie回家后以为是邮递员弄错了,误把给Edie的信放在自己家里的信里了,于是她又给放了回去。 http://ykyi.net 当susan还是一头雾水的问”letter? what letter?” 。还是 Edie理直气壮地告诉她:The one where u admitted to stabbing me in the back by sleeping with Karl (在那封信里你承认了你在背后出卖我,与Karl睡觉。) Stab someone in the back 是指在背后暗箭伤人,出卖某人的意思. I cannot believe my best friend stabbed me in the back. 我不敢相信我最好的朋友竟然出卖我。 http://ykyi.net 顺便提到另一个谚语: Better an open enemy than a false friend. 公开的敌人胜过虚假的朋友。

January 6, 2012 · 1 min · kamus