1、心外无物,闲看庭前花开花落;去留无意,漫随天外云卷云舒。
2、静以修身,俭以养德,非淡泊无以明志,非宁静无以致远。
3、古之立大事者,不惟有超世之才,亦必有坚韧不拔之志。
4、小人以己之过为人之过,每怨天而尤人;君子以人之过为己之过,每反躬而责己。
5、千里之行,始于足下。改变将来,从现在开始。改变现在,就是改变未来。
6、没有烦恼不要惹烦恼,有了则尽量解决它。
7、忏悔心、谦卑心很重要,不过对自己的爱心更重要。
8、最好的改变方式,是我们跟内在力量沟通,然后它会改变我们。
9、如果认为自己很弱小,我们就成为弱小;如果认为自己很伟大,我们就变成伟大。
10、修改自己就是修改世界,天生我材必有用,自己是整个宇宙中很重要的一个程序。要相信自己的潜力。

据国外媒体报道,有句形容创业公司的老话说,“太早也是个错误。” 这绝对是个事实,在很多伟大的科技公司成立之前,相同的创意已经存在, 但是因为时机不对,结果没有形成气候。下文将点评10大生不逢时的科技创业公司,这些公司的项目是创新的,但是因为出现得太早,市场尚未做 好准备,所以最终失败。

同类型的公司在数年后取得辉煌成绩,产生数亿美元价值,曾经创立这10大创业公司的企业家难免懊恼不已,因为这些创意和产品都是他们曾 经历的。但是,这就是人生。以下是10大生不逢时的科技创业公司:

1.SixDegrees.com

这是第一个为用户提供社交体验的网站,该网站想揭示的原理是:最多通过6个人你就能够认识世界上任何一个人。在1997年成立以后,该网站 经历了一段时间的高速增长,但是由于人们对社交网站还不适应,所以最终淡出人们视线。

1.概述

什么是异常?异常一般指的是程序运行期(Run-Time)发生的非正常情况。异常一般是不可预测的,如:内存不足、打开文件失败、 范围溢出等。UNIX 使用信号给出异常,并当发生异常时转跳到信号处理过程进行异常处理。DOS下的信号对比UNIX系统而言相对较少。

我们知道,不管是在c++还是在java中,异常都被认为是一种很优雅的处理错误的机制。而如果想在c语言中使用异常就比较麻烦, 但是我们仍然可以使用c语言中强大的setjmp和longjmp函数实现类似于c++的异常处理机制。

异常处理的核心思想是,把功能模块代码与系统中可能出现错误的处理代码分离开来,以此来达到使我们的代码组织起来更美观、 逻辑上更清晰,并且同时从根本上来提高我们软件系统长时间稳定运行的可靠性。那么,现在回过头来看,实际上在计算机系统的硬件 设计中,操作系统的总体设计中,早期的许多面向结构化程序设计语言中(例如C语言),都有异常处理的机制和方法的广泛运用。

2.基于goto语句的异常处理

goto语句,程序员朋友们对它太熟悉了,它是C语言中使用最为灵活的一条语句,由它也充分体现出了C语言的许多特点或者说是优点。 它虽然是一条高级语言中提供的语句,但是它一般却直接对应一条“无条件直接跳转的机器指令”,所以说它非常地特别,它引起过许多 争议,但是这条语句仍然一直被保留了下来,即便是今天的C++语言中,也有对它的支持(虽然不建议使用它)。

1.概述

断言是对某种假设条件进行检查(可理解为若条件成立则无动作,否则应报告),它可以快速发现并定位软件问题, 同时对系统错误进行自动报警。断言可以对在系统中隐藏很深,用其它手段极难发现的问题进行定位,从而缩短软件问题定位时间, 提高系统的可测性。实际应用时,可根据具体情况灵活地设计断言。

2.标准断言机制

原型定义:

1
2
#include <assert.h>
void assert( int expression_r_r_r );

assert的作用是现计算表达式 expression_r_r_r ,如果其值为假(即为0), 那么它先向stderr打印一条出错信息,然后通过调用 abort来终止程序运行。

1.问题引入

C语言中有些函数使用可变参数,比如常见的 `int printf( const char *format [, argument]... );`, 第一个参数format是固定的,其余的参数的个数和类型都不固定。例如:

1
2
printf("Enjoy yourself everyday!/n");
printf("The value is %d!/n", value);

这种可变参数可以说是C语言一个比较难理解的部分,这里会由几个问题引发一些对它的分析。 注意:在C++中有函数重载(overload)可以用来区别不同函数参数的调用,但它还是不能表示任意数量的函数参数。

2.printf()实现原理

C语言用va_start等宏来处理这些可变参数。这些宏看起来很复杂,其实原理挺简单, 就是根据参数入栈的特点从最靠近第一个可变参数的固定参数开始,依次获取每个可变参数的地址。 下面我们来分析这些宏。

微博首先是媒体

但更确切点说,它是自媒体。它即是名人、权威们的自媒体,也是草根们的自媒体。在中国,草根现在靠着微薄,也有了些话语权,但声音还比较稚嫩, 分贝也不够大,但无论如何,跟着意见领袖们起起哄是必须地,支持也好,反对也罢,声音还是比从前大多了。要注意的是,一个草根的声音很小,但草根 们的声音一旦被叠加,再加上从众效应,其力量可能超乎我们想象,这时自媒体会变成众媒体(与传统的公众媒体是有区别的)。众媒体是个双刃剑,其好 处是,多数时候,这个众媒体可能代表大多数的声音,但另一方面,作为自媒体,微博毕竟是个性化的,即使看不清真相,也能知道看问题有不同的角度。 而当其成为众媒体时,其声音可能是趋同的,一旦人们形成某种较特殊的群体心理,个性将开始湮没、理性将开始丧失,这就有点危险,尤其在中国。

1.250定律

拉德认为:每一位顾客身后,大体有250名亲朋好友。如果您赢得了一位顾客的好感,就意味着赢得了250个人的好感;反之,如果你得罪了一名顾客, 也就意味着得罪了250 名顾客。在你的网站访客中,一个访客可能可以带来一群访客,任何网站都有起步和发展的过程,这 个过程中此定律尤其重要。

2.达维多定律

达维多认为,一个企业要想在市场上总是占据主导地位,那么就要做到第一个开发出新产品,又第一个淘汰自己的老产品。国内网站跟风太严重,比如 前段时间的格子网,乞讨网,博客网,一个成功了,大家一拥而上。但实际效果是,第一个出名的往往最成功,所以在网站的定位上,要动自己的脑筋, 不是去捡人家剩下的客户。同理,买人家出售的数据来建站效果是很糟糕的。

3.木桶定律

水桶定律是指,一只水桶能装多少水,完全取决于它最短的那块木板。这就是说任何一个组 织都可能面临的一个共同问题,即构成组织的各个部分往往 决定了整个组织的水平。注意审视自己的网站,是速度最糟糕?美工最糟糕?宣传最糟糕?你首先要做的,不是改进你最强的,而应该是你最薄弱的。

4.马太效应

《新约》中有这样一个故事,一个国王远行前,交给三个仆人每人一锭银子,吩咐他们:“你们去做生意,等我回来时,再来见我。”国王回来时,第一个 仆人说:“主人,你交给我们的一锭银子,我已赚了10锭。”于是国王奖励他10座城邑。第二个仆人报告说:“主人,你给我的一锭银子,我已赚了5锭。” 于是 国王例奖励了他5座城邑。第三个仆人报告说:“主人,你给我的一锭银子,我一直包在手巾里存着,我怕丢失,一直没有拿出来。”于是国王命令将第三个仆人 的一锭银子也赏给第一个仆人,并且说:“凡是少的,就连他所有的也要夺过来。凡是多的,还要给他,叫他多多益善。”这就是马太效应。在同类网站中,马太 效应是很明显的。一个出名的社区,比一个新建的社区,更容易吸引到新客户。启示是,如果你无法把网站做大,那么你要做专。作专之后再做大就更容易。

作为一家商业社交网站,LinkedIn显得低调而沉稳。与Facebook以宽泛社交为宗旨,被各种分享、聚会、礼物以及“动他(她)一下”等好玩的程序渲染的热闹相比, LinkedIn有着商业范儿的严肃简洁,只有一些基本的联络和互动功能。但也正是这种专注的定位和扎实的发展路线,让LinkedIn最终成为世界上最大的专业网站之一, 更在招聘领域独占鳌头。截至2010年年底,LinkedIn已拥有9000万注册用户,这些用户分布在200多个国家和地区,其中每月平均活跃用户占到72%,每天产生4万条 招聘信息。

在这个偏执狂才能生存的时代,专注的 LinkedIn为自己开创了招聘服务、营销服务、付费用户这三种稳定增长的收入渠道。2007年到2010年的近三年中,LinkedIn的线下 收入实现了从47%到86%的增长。2009年开始更是达到了平均每季18%的增幅,这为LinkedIn首次IPO铺平了道路。

创业是一种修行

2002年,“连环”创业家雷德·霍夫曼(Reid Hoffman)创建了LinkedIn,他现在担任公司董事会主席。此外,这位活跃的创业投资者还曾经为60多家硅谷新创企业提供 过咨询和资金,其中包括Facebook。

时光倒转到1993年,当美国在线公司(AOL)开始用送软盘来吸引人们上网的时候,霍夫曼意识到互联网变革已经开始了。当时霍夫曼已经从斯坦福大学拿到符号系统学 的学士学位,正在牛津大学攻读哲学硕士。斯坦福的学习让他了解了软件,而牛津的学习让他意识到自己应该更广阔地接触人们的生活。他发现,软件可以实现和千百万人 交流沟通的目的,于是决定创建一家软件公司。

但当他去向VC求助的时候。他们问他:“你做过软件吗?你要我们为你的公司投上百万美元的资金,你应该做过这个吧?”当霍夫曼回答“没有”的时候,他们让他“先去找份工作”。

本节向大家介绍一下UML需求分析的一般步骤,本节用实例向大家介绍,相信通过本节的介绍你对UML需求分析有一定的认识。下面让我们一起来学习具体介绍吧。

基于UML需求分析

在初步的业务需求描述已经形成的前提下,基于UML需求分析大致可分为以下步骤:
(1)利用用例及用例图表示需求。从业务需求描述出发获取执行者和场景;对场景进行汇总、分类、抽象;形成用例;确定执行者与用例、用例与用例图 之间的关系,生成用例图。
(2)利用包图及类图表示目标软件系统的总体框架结构。根据领域知识、业务需求描述和既往经验设计目标软件系统的顶层架构;从业务需求描述中 提取“关键概念”,形成领域概念模型;从概念模型和用例出发,研究系统中主要的类之间的关系,生成类图。
上述两个步骤并没有时序关系,它们可以并行展开,如图1所示。

本节将依次介绍上述步骤中涉及的UML语言机制,并结合“家庭保安系统”实例说明每步骤中基于UML需求分析方法。

也许你经常会听到人们把Linux及BSD系统混为一谈,甚至于媒体都这么说。当然,事实上这两者确实有很多相似之处,比如它们都是基于Unix演变而来, 而且基本上这两类系统都是由非盈利组织及团队开发,另外我更想说的是,这两个系统都有一个共同的目标–那就是创建最有用、最可靠的操作系统。 那么 这两个系统的区别到底在哪里?国外一位名为 Jack Wallen 的科技 Blogger 发表了一篇名为 10 differences between Linux and BSD 的文章,从许可证、 代码控制、内核 vs 操作系统、UNIX-Like、基本系统、更多来自于源代码、升级、前沿技术、硬件支持及用户群等10方面描述了 Linux 与 BSD 之间的 10 个不同之处。

1、许可证

正如我们所知道的,Linux 操作系统是基于 GPL 许可证授权下的。该许可证可防止开源软件被转换为封闭源代码软件及确保源代码的可用性。 GPL 许可证的 目的就是防止二进制包成为唯一的软件发行源。

而 BSD 许可证的限制则要少得多,它甚至允许二进制包成为唯一的发行源。这就是核心差异,可以这样理解:GPL 许可证让您有权拥有任何你想要使用该软件的 方法,但你必须确保提供源代码给下一个使用它的人(包括你对它的改变部分)。而 BSD 许可证并不是要求你必须那么做。( 译者注:这里分别维基百科上对 BSD 及 GPL 许可证的解释)