Six factors to help you create a great website

I’m wondering how to create a great site to put me in bucks.
I would like to share some ideas with you in the hope it would be helpful.  [originally post on zausiu’s blog http://ykyi.net]

1. Content is the most important thing. If your website is a long-term business, don’t even think about black-hat SEO. Appropriate legal SEO is necessary, but it can’t be too over-killing. High quality content is worthier of your time and effort.Search engine’s algorithm is quickly changing. If your website is friendly to the visitor, it’s friendly to SE too.

2. Visitors can benifit from your site. That’s why they will come back. Useless website cannot survive in the internet world.

3. In the huge wave of SNS age, take advantage of the SNS is a must. As you know, something sprend in social network like infectious virus.

4. If you have enough time and technology support. Consider develop related desttop version application and app for mobile phone. Those apps must be able to update automatically, and you can control them in the server side. So, you can push all kinds of infomation to the apps, which will guide the users to visit your website, so your site traffic increases. What is more, the apps will be released to various kinds of download sites. Most likely your website URL will be post there which are your high-quality external links. You surely know how much the high-quality external links means to your site.

5. You’d better have a team, even though you are versatile and are able to play a number of roles. Remember it’s not a age for lone heroes any more, everybody is limited in some aspects.

[originally post on zausiu’s blog http://ykyi.net]

6. Your site have a central theme. The content are basically about this core. Don’t make your website like a hodgepodge. Visitors don’t like this, so is search engine. It is preferable that you personally have much interests in this theme and You are a expert on this field.

我的梦想.(卓越领导力三千字结课作业)

             我的梦想

 

虽然我的梦想没有马丁路德那么伟大,在我人生的每个阶段,我也有我的梦想。

 

读幼儿园之前和幼儿园时代,我的梦想是参军打仗,因为我看到的电视画面中的士兵很英勇,战争很吸引我。我要杀光所有坏人,保卫祖国!没错,小时候我的梦想竟然是要做一个血淋淋地杀人机器。现在想来真是不靠谱啊,歌舞升平的和平年代,打打杀杀什么呀?难道我要加入基地组织吗?或者去非洲参加雇佣军?

 

后来顺利进入小学了。虽然当时也没预见到以后国内会无仗可打,出国打仗也会毫无希望,但我确实果断放弃了以后要参军打仗的梦想。因为我突然发觉我更愿意以后做一名数学家!擦,数学家啊!!!吓死人咩!!!仅仅因为我喜欢做数学题,做同龄人做不出来的数学题,考试数学考高分,参加数学竞赛,老师表扬,同学羡慕。因些而得来了无限荣光和急剧增长的成就感,我当想就想了。以后我要成为数学家,天天解题!那时哥要是知道微积分,极数啊,场论啊,复变函数啊什么的长什么模样,我怎么会想当数学家啊!

 

进入中学后,数学不再仅仅是玩一些算术的小把戏了,曾经在小学时代鄙视用方程解应用题的我一度变得迷惑了,数学竟然还可以这样玩的呀。要做数学家的梦想慢慢地就被磨灭了。中学时代时要么不是想着放学后打电脑游戏,要么就是要准备升学考试或者各种什么什么考试了。我也就对未来梦想这种宏大飘渺的主题变得没什么兴趣。在三日一小考,一月一大考的中学生活中,考出好成绩,不用被父母老师骂才是最朴实最生动的梦想呀!

 

上到大学后,我的私人时间瞬间变得充足起来,使我有时间和精力构思对未来的梦想。在这个从少年成长到青年的关键时期,随着社会经历的慢慢丰富,梦想变得切实可操作了。大学时的梦想相当的务实,即是毕业后能像表哥那样成为一位出色的软件工程师。更具体一点,是游戏了开发工程师。现在回想,我那时真不知道架构师,工程师和码农的区别。言归正传,为了实现我小小的梦想,我在整个大学阶段确实非常用功地学习,很多同学晚上都在宿舍玩游戏,我仍然坚持去晚自习。毕业前已经写出了好几个在同龄学生中极具竞争力的PC游戏。所以,凭借我写的几个游戏作品,在大四时我毫不废力的找到了游戏开发的工作。我还记得刚到游戏开发公司上班时的兴奋心情。我想,这能算得上是实现了一个小小梦想吧。

 

但我的游戏开发的梦想很轻易地破灭了,而且经受的打击颇大。从那时我体会到一句话:当兴趣变成工作的以后,就大不一样了。现在回想当时对公司的失望以至对整个游戏开发行业的失望主要缘于自己的见识不够,不知道一家大型的游戏公司和小作坊型的游戏公司有相当大的差别。另外,在从学生到职业人的角色转变过程中相当地不适应。事实上,那时是有相当多的机会的呀!还有一个因素即是因为大学阶段因为在不恰当的时间帮助同学提高成绩,我的学位证被学校取消了。在毕业后的时间里,心里经常有一种失落时不时的跳出来,那就是有一天要回学校读完硕士,了结大学时没有学位证的心愿。在毕业后来到社会之中摸爬滚打的几年里,我渐渐形成了要创办自己的实业的想法。经过长年不间断的学习,我在IT技术上积累的技术已经相当全面。另外也从来没有间断过学习英语,英语水平一直在持续提高,生活阅历也更加丰富了。我的梦想,就是要有自己的实业,很可能是IT科技公司,再有其它投资组合,最终能让我实现财务自由。我把财务自由定义为,即使我每天睡大觉,我以前的劳动创造的各种盈利方式都能够帮我创造财富,带来现金流。实现财务自由后就可以做N多自己想做的事情啦!起码具备了周游世界的最基本的经济基础。在这个指导思想的指引下,我创办了一个小网站。半年后这个小网站开始盈利了,虽然很少,不过这正是我想要的Earning Machine的模型啊!即使我后来基本不去管网站,它也一直在给我创造经济收益。第一次拿到谷歌寄来的美金支票,非常开心!我做的是一个简单的粤语歌词网站,给歌词附上了粤语注音,用户点击后可以听到单个字的粤语读音。这样一个简单的网站每个月可以给我带来一百元左右的收入。我想,如果我能把流量括大一百倍,那每个月就轻松有一万元收账嘿嘿。仅仅就这个非常简陋的小网站来讲,我觉得把流量括大一百倍并没太大问题。因为我还没有围饶社交网络做推广,也没有给网站做用户体验,还有很多功能也没有做。而我观察的一个类假的相关网站的网络流量竟然是我的几百倍。我觉得如果投入时间就能超越它。但我没有继续做下去!不是我没有执行力,我不太想做WEB方面,我做做ARM嵌入式方面,我觉得在这方面一定会有更多更好的机会。

 

去年下半年又返学校读书了,明年六月能顺利毕业。届时就能完成本科时的小小心愿,某种程度上也算是圆一个小小的梦想。在中大读软工硕士的时间里,仍然疯狂地学技术和英语,并跟进日新月异的IT业界的新闻。脑子里基本上有一些想法,我还需要认识更多的高手,除了互联网领域肯定还有其它方面的创业方向。昨天晚上,与一位以前在毒霸时相识的老同事聊天。它是位出色的逆向高手,离开珠海后,他在广州与朋友创办了一家做网页游戏的游戏公司,撑了近一年经营不下去。于是他去了深圳腾讯做回逆向工程老本行,但他只在腾讯做了七个月又离职了,和朋友去上海二次创业,仍然做网页游戏。他说他离职的原因就是放不下他心中的梦想。其实我也一样。在人生的每个阶段,不间断地为实现心中的梦想而努力这应该是人生的部分意义吧。如今,我思考我与我的梦想的距离。我具备了很广泛的计算机知识,从硬到软,从网络到桌面到WEB到嵌入式,具备了相对不错的英文水平。但我还欠缺广泛的优质的人脉关系,这方面还需要不断的积累。今年下半年,我会找我感兴趣的方向的兼职,希望能认识一些优秀的朋友。我们之间分享信息和体会,互相为实现各自的梦想提供支持。

 

我非常希望能在四十岁前能实现财务自由梦想。虽然这样的想法听起来太多务实,还带着一点铜臭味。但我却也无需过多解释,每个人都能够理解。我是普通人,我只希望能给家人带来健康和幸福,希望有能力帮助保护我身边重要的人,所以我务实,而不是关注世界和平,关注拯救地球,关注消灭战争和贫困。

 

如果财务自由的梦想不能实现呢?于是我一直在工薪层卖不断出卖劳动力生活,终未能实现目标呢?虽然为了实现梦想,我们当然要付出百倍的努力,但成功往往不仅仅受制于主动的努力程度,也受制于客观的各种不可抗条件。所以,对于每一个心怀梦想的年轻人,我觉得都应该有良好的心态面对可能的失败。我会努力追逐我的梦想,但如果做不到,我觉得不能丢掉两样东西,一件是乐观的心态,另一件是健康的身体。这两件东西是能完成任何一个目标的最低配置。

 

如果我能及时实现财务自由我梦想。那我一定要开始我的周游列国之旅,还要认真学一门乐器,这才是真正的生命哈哈!在充分的实现的实现了自我价值的同时,我一定会把更多精力投入到回报社会中来。想想比尔盖茨的故事。比尔盖茨在今年年初《高端访问》节目上如此表示,我的新梦想是希望能够平等地对待生命,人们消除了偏见,让这个世界变得更加公平。希望20年后,我所提到艾滋病、疟疾、结核病等重大疾病都彻底的消失,让贫困国家的人民摆脱贫困,获得公平对待的机会。”很多富有的西方商界人士在功成身退后都会把很多精力用于经营慈善基金。这大概是因为基督教主张账富源于社会,又要回报社会。我不信仰基督教,我也不会有比尔盖茨那样成功,但我非常认同这样的普世价值观,我也会力所能及的回报社会。或许我可以做义工,也可以资助贫困地区的教育。

 

希望我能有幸实现我的一个又一个梦想!

 

()

 

想钱想疯了.

昨晚梦见自己开了一辆敞篷跑车~~

好奇怪呀。我从来都对小车不感兴趣呢。
三年前。珠海。与我同一天生日的一个好同事也离职了,准备去上海。
他说:“我要买辆兰博基尼”。
我居然不知道兰博基尼是什么。~~
好久之前就想:我要创造出好几个Earning Machine。于是不管你到处游玩,做各种自己想做的事情,Earning Machine都会自动给你带来收益。啊哈哈哈~~自由啊!!!在这一指导思想下,确实实现了一个小小的试验性质的小案例,称之为Earning Machine Version I,但实在实在太少收益了。多次考虑过增强这个版本,但要投入太多时间,更有说服力的原因是在这个过程中积累的技术经验是我不感兴趣的方面。我还是面向技术的思维方式啊!
学校的生活令我相当地满足呢,除了经常想到持续减少的银行账户余额,感到严重没有安全感。
这种不安是我疯狂看书的动力之一。我迫切希望快点完成读书的计划,在下半年再回到社会,找个工作,认识一班新朋友,或许能够有更多的思路实现Earning Machine Version II。
之前还想,如果读博士学位,成为某个方面的资深专家,能不能把读博时的成果转化成巨大的经济收益呢?我问Dr. Woo,你能把你的学术成果转化成真金白银吗?Dr. Woo说现在很难。
两三天前,广州好热好热。我以为夏天到了,于是把被子收了起来,铺上凉席。结果当天晚上就下雨又天冷了。靠~~连续三天五早晨时被冻醒,于是穿多件衣服睡,其实也满舒服的!!!应该再过几天又会很热了~~
哎。时间资源实在太有限了。我下载了The Secret的英文原版打印出来了,才看了不到15页。买了笛子入门基础书,看了不到5页,有些东西看不懂。
还有一个月就要考BEC高级了,希望自己能通过。应该能够通过吧~~我想!!!所以,暂时英语优先级最高分到最多时间资源,专业技术优先级其次,其它事情就放放吧~~~
虽然阴沉沉地下着雨,去图书馆的路上却心情非常不错,因为觉得很满足,我在做我想做的事情!

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

虽然只是个小小的功能。但写出来却也不是一两个小时的事情,写了四个小时才写完~~~有个缺陷就是:对多音字支持得不够好~~

主要技术障碍来自于对javasript不熟悉,用firefox浏览器调试时浏览器总是缓冲旧的javascript文件。

http://ykyi.net/jyutping2char.php

一直以来都有网友抱怨没有办法发音~ 这是因为目前的发音是通过flash技术实现的,但很多手机平台上的浏览器不支持flash技术,比如苹果的移动平台就不支持flash。

鉴于HTML5是未来互联网的行业标准。我在计划写一个HTML5的版本。但是没有时间表约定~我也不知道什么时候可以完成。

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是一种分析方法,用来确定企业本身的竞争优势,竞争劣势,机会和威胁,从而将公司的战略与公司内部资源、外部环境有机结合。因此,清楚的确定公司的资源优势和缺陷,了解公司所面临的机会和挑战,对于制定公司未来的发展战略有着至关重要的意义。
 
 

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

软件工程进展读论文报告

论文: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)。

[分析]

1. 发行版总大小

结果显示每隔两年,发行版的大小(统计发行版的所有源代码行数)就会增加一倍。截止2007年的Debian 4.0,已经共有4亿行代码和1万个包。如此大的规模会为未来的继续发展带来不小的麻烦,在最新的发行版中已经可以看到超大规模的几数级增长已经给某些时间点带来了延迟。

2. 包的大小

而包的平均大小指标在九年内几乎维持不变。因为软件系统的总代码量迅速增长而平均包大小不变,这意味着越来越多的包被增加到系统中。Debian .4.0的包数目是Debian 2.0的包数目的10倍。为了应对包的不断增多,Debian系统需要迅速增加包维护者以及每个维护者需要应对的包数目。包数目的迅速增长也是一个非常棘手的问题,特别影响了包维护者的相互配合。

3. 包的维护

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的各个发行版之间没有改变,即使它们所属的包的名字变化了。

4. 开发语言

统计数据显示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的编译器,开发库和开发工具。

通过观察开发语言的使用率趋势,可以估算出有多少开发者比较熟悉某种开发语言。同时,不同语言的不断演化也反映出自由软件在开发语言层面的变化。

5. 文件大小

大多数开发语言的源代码文件大小,一直没有太大的变化。C语言文件的平均大小保持在260行到295行之间,而C++的文件大小则是在140到196行之间。但有一个例外则是Shell语言的文件尺寸,这个尺寸从Debian 2.0到Debian 4.0翻了三倍。个中原由应该是几乎所有的包都有Shell代码来安装,配置或当作胶水语言使用。Shell代码很少被切成多个文件,如果要增加更多功能的时候,增加的代码则被添加到以前的文件里面。因此,Shell文件变得越来越大。

同时很明显地是,过程性语言通常比面向对象的开发语言的源文件要长。比如,C或YACC较之C++通常要大一些。这是因为类继承和其它一些面向对象语言的特性能够有效帮助减少代码量。

6. 依赖性

大型自由软件也是模块化设计。因为没有商用软件的诸多限制,软件复用在自由软件社区里是非常容易的。Debian的各个包之间通常有着非常复杂的依赖关系。

统计数据显示,在Debian 2.0时,有最多依赖项的是phython-gdk-imlib,共19个依赖项。到了Debian 4.0发布时,kde有多达561个依赖项,紧排其后的是gnome,共486个依赖项。

随着新的发行版的发布,包之间的关系变得愈来愈复杂。举例来讲,Mozilla包在Debian 2.1时只有7个依赖项,而到了4.0时则有72个依赖项。PostgreSql在2.0时仅有9个依赖项,到了4.0时则有42个依赖项。

从另一个角度看依赖性有项图。每一个结点表示一个包,有多少有向边指向该结点则表示这个包被多少其它的包依赖,我们把这些依赖它的包称为下属(Subordinate)。则一个包愈重要,则它的下属愈多。对于大多数包,它们的下属数目为零。而只有少数包拥有大量的下属。总体来看,包的平均下属数目随着整个软件系统包总数的增多而不断快速增多。比如,在Debian 2.0时,perl有118个下属,而到了Debian 4.0这个数量增长到11459。毫不奇怪,有最多下属的包是一些运行库,如libc,脚本语言解析器,如perl,传统Unix工具,如binutils和sed,awk。在某种程度上,一个包拥有越来多的下属数目则表示它的开发越成功。

对论文的个人评价和理解:

因为个人兴趣爱好,我对Unix/Linux相关的技术比较感兴趣,并有多年使用Debian OS的经验。因此我选择了这篇以Debian为研究对象的论文。全篇论文没有很难理解的地方,只是统计了Debian发展过程中的各种指标,把统计数据列出来再概括一个趋势。我想,这其间最困难的地方应该是编写分析Debian发行版配置文件的自动化程序。

另外我觉得这篇文章概括出来的一些大型软件系统的特点仅适用于自由软件。而商业软件在很多特性上很可能同自由软件相差甚远。比如,自由软件重代码轻文档,因些有这样的说法“代码即文档”。很多自由软件的项目代码编写优先入文档编写,文档通常相当程度落后于实际的开发进度。而商业大型软件则基本上是先确定文档再编写代码。开发方式的大相径庭使得该论文的结论不适用于大型商业软件。

另一个注意到的地方是关于流行开发语言的统计数据。虽然该篇论文发表于2008年,已是4年之前,Sun还没被Oracle收购,OpenJava还未加入Debian。但即便是4年之前,在整个软件开发工业里,Java已然是占有份额最多的开发语言,C语言紧随其后。该篇论文的数据则显示在Debian 4.0版本中,C语言占51%的份额,Java仅占3%的市场份额。虽然论文中有指出因为没有统计私有许可证的Sun SDK和Sun JRE的Java代码量。Java和C的占用率仍然是相差甚远,都不在一个数量级之上。我个人的理解主要有两点原因。其一,Debian搭建的是一个桌面生态环境,Java主要用到Web开发移动开发企业开发,开发桌面应用还是不多。其二,开源社区排斥由商业公司控制的开发语言,如果要开发效率,社区宁可选择选择自由许可证的Python。

从论文中提供的数据看来,Debian的规模是每两年增加一倍,如此迅速的演化速度,以前的组织方式必然需要提出创新和改变。我觉得论文不足的地方是对大型自由软件的未来发展趋势以及技术创新涉及甚少,没有一个前瞻性的预判。

copyright ykyi.net

业务连续性读书报告

第一部分  概述

什么是业务连续性

业务连续性就是为了应对系统宕机,无法接受的性能下降之类的问题。

为什么要有业务连续性

因为如果系统宕机会造成无法估计的巨大损失。怕你不信,PPT里画了张表,列举了几个行业宕机会造成的损失估计。最低的一般零售业每小时损失一百万美金;损失最大的是投资银行,每小时造成接近七百万美金的损失。

恢复时间 Recovery Time

Recovery Time includes1. Fault detection 2. Recovering data 3.Bringing apps back online。

灾难恢复和灾难重启的区别

灾难恢复是在人为干预下使用备份技术恢复数据把数据恢复到备份的某个完整点。而灾难重启则是重启镜像数据和应用程序。

5. 造成系统宕机的原因

有人为因素,系统本身的原因,支持系统的外围设备的故障(比如电网断电),另外还有自然灾难,战争什么的。苦逼的伊斯兰世界天天哭喊着要圣战啊。

6. 业务连续性和灾难恢复

业务连续性是一盘大棋,包括:计划,准备,从灾难中恢复。它侧重在预防。而灾难恢复计划(Disaster recovery planningabbreviated 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.

单点失效

这个概念N多学科里都有提到哇。顾名思义都知道单点失效是什么咯。解决的方法就是冗余!PPT里列举了HBA失效,交换机/阵列端口失效,磁盘失效,主机失效,站点/存储阵列失效。

10 业务连续性技术的解决方案

有三种。 A. 本地复制 B. 远端复制 C. 备份/恢复

11 EMC的相关产品

EMC在业务连续性方面的产品叫PowerPathPowerPath是个基于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存储课的作业.

 

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. 这项工作非人能忍受。

于是flesh and blood还可以引申为一篇文章一部小说或是一个概念等的血与肉。

The paragraph lacks flesh and blood. please flesh out with more details.

是啊,一篇好的文章既要有好的结构bone,又要有丰富的内容flesh and blood.这样才好看。再看一句话:

No matter what happened, Tom is my own flesh and blood.不管发生了什么事,汤姆都是我亲生骨肉。

pound of flesh又是什么意思呢?

Pound of flesh出生<威尼斯商人>。William shakespeare的戏剧啊!现在的引申义是: pound of flesh means to cruelly or unreasonably insist on one’s right.

例如: Their boss pays the highest wages, but he wants his pound of flesh in return and makes them work very hard.

go the way of all flesh 是死的意思 http://ykyi.net

Our dog’s gone the way of all flesh. 我们的狗死了。

A thorn in someone’s flesh 很容易猜到是肉中刺的意思和中文是一样的。

I wonder why i become a thorn in their flesh. I’ve never harmed them.

Press the flesh 什么意思呢

猜不到吧!Press the flesh竟然是握手的意思。压肉就是握手。哈哈。

例句:The candidate went through the crowed, pressing the flesh. 候选人穿过人群,与他们一一握手。

英语里几个和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. 这个体力活使我筋疲力尽了。

Knock yourself out: 什么意思呢?

这个短语是“请便”的意思。http://ykyi.net 比如:

Could you give me your pencil for a while ? 能借你的铅笔给我用一下吗?

Knock yourself out. My pencil is just on the table. 请随便,我的铅笔就在桌子上。

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.

若用kid gloves拍打人是一种什么样的惩罚呢?Treat with kid gloves 指的是手下留情,小心对待。Kid此处指小山羊。用小山羊皮制的手套极为柔软,引申为小心谨慎 handle with great care and sensitivity.

例如: You have to handle the students with kid’s gloves. http://ykyi.net

另外,面对真假轻重不同的惩罚,我们要擦亮眼睛!有人表面祥和,却是外荏内厉(an iron fist in a velvet glove),最应提防的是口蜜腹剑的人(a fox in a sheep’s skin or a wolf in sheeps clothing.)