博文

我们为什么来到这个世界上?(2007-05-09 17:01:00)

摘要: 我们为什么来到这个世界上?   几月前,在清华大学初次见到正在演讲的黄金雄教授,虽然通过吴莹莹的介绍,《程序员》早在数年前就已和黄教授有过联系,但这却是第一次双方面对面的深入沟通。话题较为宽泛,从架构师的实践到当前的软件培训和教育,希望以后有机会能让读者阅读到更多黄教授的专业文章。 知道他最近出版了一本书《为什么时光不能倒流》,拿到书时让我吃了一惊。我的想像中她应该是一本充满数学、计算机、哲学味道的哲理书,却没想到,竟是一本讲述儿时故事、满溢家庭温情的心灵读本。 下面摘取部分篇章,与大家分享: 我们为什么来到这个世界上? 很多很多的夜晚,在晚饭后,乡下的孩子总会聚会在屋外的空地,寻求属于自己的快乐时光。一九五零年代电视尚未在台湾出现,拥有简陋收音机的家庭也少之又少。我们有时候在路边铺上大草席,玩伴们一排躺在草席上,仰望星光闪耀的天空,在黑暗的乡村,数着数不尽的星群。我们经常寻找隔着银河两岸的牛郎星及织女星,我们也幻想着在农历七月七日的七夕夜晚,两颗明亮的星,跨进银河,而在银河的中间相会。我们也经常躺在草席上,闭着眼睛,倾听成人们拉胡琴,弹月琴,吹喇叭,唱些台湾人特有的哀怨的山歌民谣。 那天晚上,万里无云,徐徐秋风伴着欲语还休的眉月,青蛙,蟋蟀,及秋蝉共唱着乡村特有的秋夜三重唱。银河系的长条星云特别明显。我们兴致高昂地玩着“踢铁罐游戏”,这种游戏与警察捉贼的游戏类似。罐头食品用过之后的铁罐子在那时是相当难获得的。那天阿森拿来了个铁罐子,我们在猜拳之后,阿森第一个当起警察来抓贼。踢铁罐子的游戏是不需要数三十声的,取代三十声的时间是踢罐子的距离及警察把铁罐子捡回哨站的时间。同样的游戏规则,警察需要找到三个贼,才能由第一名贼来当捉贼的新警察。贼伴们也可在没被警察发现前,把铁罐子踢得很远很远来救回被找到的贼。当铁罐子被踢走之后,警察必须把罐子捡回哨站,才能重新抓贼。 那时候的乡下小孩,白天赤脚,晚上穿着木屐,用赤脚或穿木屐踢铁罐子,而且要踢很远,需要相当技巧的,经常有人的脚趾受伤,一边叫痛,一边跑着寻找躲藏的地方。阿美那天紧跟着我躲到草堆下当贼。乡下的草堆有四个支柱,有些草堆再加上中间的支柱共有五个支柱,每个支柱是由九、十块砖堆成,支柱之间用竹子或木头交叉架成一个平台,稻草就一堆一堆在平台架上堆高起来。稻草堆底下有一呎到两呎......

阅读全文(2177) | 评论:1

string和vector的理解!(2007-05-09 00:33:00)

摘要:五一在家就把string和向量看了几遍!有些理解在这里写下来!! string和向量都是自定义的数据类型! 对于string的一些基本操作! ifstream in("xxx.txt") string s; getline(in,s); string流 istringstream sin(s); sin>>a; in和sin类似,只是对象不同,in对应的是文本文件的读取,sin对应的是定义的string变量! string里存放数据象数组一样,只是不可以单个的对数据进行操作!虽然string将换行符略掉地读取数据,但他本身保留了换行的位置,所以这也是其一大优点! vector的操作! vector<int> v; for(int a;in>>a;) v.push-back(a); for(string s;getline(in,s);) for(istringstream sin(s);sin>>v;) 利用流来对向量进行输入数据!而string的内部默认换行有 助于向量内部的存储数据! 向量可以象数组一样对单个的数据进行操作!v[ 0] ,v[1]...... 这样把二者结合起来使用可以更方便的进行数据处理!......

阅读全文(3690) | 评论:0

什么是迭代跟递归算法?二者有什么区别?(2007-04-26 20:53:00)

摘要: 迭代算法是用计算机解决问题的一种基本方法。它利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值。   利用迭代算法解决问题,需要做好以下三个方面的工作:   一、确定迭代变量。在可以用迭代算法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量。   二、建立迭代关系式。所谓迭代关系式,指如何从变量的前一个值推出其下一个值的公式(或关系)。迭代关系式的建立是解决迭代问题的关键,通常可以使用递推或倒推的方法来完成。   三、对迭代过程进行控制。在什么时候结束迭代过程?这是编写迭代程序必须考虑的问题。不能让迭代过程无休止地重复执行下去。迭代过程的控制通常可分为两种情况:一种是所需的迭代次数是个确定的值,可以计算出来;另一种是所需的迭代次数无法确定。对于前一种情况,可以构建一个固定次数的循环来实现对迭代过程的控制;对于后一种情况,需要进一步分析出用来结束迭代过程的条件。   例 1 : 一个饲养场引进一只刚出生的新品种兔子,这种兔子从出生的下一个月开始,每月新生一只兔子,新生的兔子也如此繁殖。如果所有的兔子都不死去,问到第 12 个月时,该饲养场共有兔子多少只?   分析: 这是一个典型的递推问题。我们不妨假设第 1 个月时兔子的只数为 u 1 ,第 2 个月时兔子的只数为 u 2 ,第 3 个月时兔子的只数为 u 3 ,……根据题意,“这种兔子从出生的下一个月开始,每月新生一只兔子”,则有 以下是引用片段:u 1 = 1 , u 2 = u 1 + u 1 × 1 = 2 , u 3 = u 2 + u 2 × 1 = 4 ,……   根据这个规律,可以归纳出下面的递推公式: 以下是引用片段:  u n = u n - 1&n......

阅读全文(2351) | 评论:0

个人心情(2007-04-25 23:17:00)

摘要:       今天我生日,到现在为止我只收到4个人的祝福!其中有我父母再就是一哥门的女朋友和我堂妹!在这里我要感谢我的父母赐予我的生命!也要感谢2个女生对我的关心!        我今天还是蛮高兴的!因为我堂妹在我面前汇报了最近的学习情况,我为她感到骄傲,说实话我把她当我亲妹妹,有什么话我也和她说!        她那么优秀我作哥哥的也不可以落后啊!        我要努力!我要编程!......

阅读全文(2242) | 评论:0

解析3G软件人才成功之道(2007-04-24 23:16:00)

摘要:闫辉:CSDN的网友大家好,欢迎大家继续收看我们CSDN的视频节目,在新的一期节目当中我们是探讨关于3G方面的业务,为此我们请到了一些业内专家,以及在这方面技术非常过硬的专家,首先我向给大家介绍一下我们的嘉宾,第一位嘉宾是来自信息产业部通讯企业协会增殖服务专业委员会新业务委员中心主任曹峰光先生,第二位是来自摩托罗拉MCNE技术总监徐昊先生,然后还有来自搜狐无线事业部的副总经理杨向华先生,另外我们请来一位女士,她是来自智联易才集团事业发展部总监龙安女士。那么我想今天到场这么多位嘉宾跟我们的网友来探讨3G这个话题,对我们的网友来说具有非常的吸引力的,那么我想对于3G大家认为是一个很重要的发展方向,尤其是曹主任在方面有很多年的研究了? 曹峰光:对,我们的增殖服务专业委员会一直是下属的专门负责增殖服务这块的一个专业委员会,所以说一直都跟踪于3G的发展过程,包括我们这是一个新业务的发展方向,所以说这一块还是有一些信息跟大家进行一些交流吧。 闫辉:那我想对于徐昊先生,大家都知道摩托罗拉在全球移动设备是非常先进的企业,那么对您来说您怎么看待3G的这个行业的未来的发展? 徐昊:3G从行内的人角度来说是为大家提供了一个更高速的无线访问速度,但是从用户的角度来说3G应该是从应用的不同角度来说会带来不同的应用,所以行内的人会来铺好这个高速公路,但是需要更多的人来介入来实现更上层的应用。 闫辉:那接下来问一下来自搜狐的杨向华呢? 杨向华:就像徐总说的需要很多业内的人士在上面搭建很多高速应用,那么搜狐就是作这样的事,作一些好的事情给大家服务。 闫辉:那对于龙安女士就是说您那就是给他们输送一些人才了? 龙安:恩,3G的这个项目有很多人在关注,但是我相信这面的人才还是很缺乏的,目前3G的人才缺口要达到50万,所以我们也希望在3G的一些厂商合作,为国家输送更多这方面的人才。 闫辉:那我觉得3G就是一个很大的话题了,我们把他分开一些来说。我们现在对于移动的整个行业的发展,我想曹先生您肯定有经验,就是对于现在的情况怎么样来发展? 曹峰光:我觉得对现状的话,增殖业务肯定经过一个高峰期以后,国家处于一个监管加重的时期,从我个人感觉,包括我们去韩国日本考察的情况,可以看到3G以后的话,我觉得这个应用会更广泛,会更深入,特别是和3G结合的这一块,它的市场会越来越大,因为我们的增殖业务还是为......

阅读全文(2463) | 评论:0

软件安装过程浅释 (2007-04-24 15:52:00)

摘要:  软件在安装时,到底做了些什么? 大家每天都在用电脑,可能也经常在自己的电脑上安装软件。就算自己没安装过,至少也看到人家安装过软件。在这里,我不是想教你怎么安装软件,而是想向你展示,软件在安装的过程中,到底都做了些什么动作?为什么有些软件要安装,直接拷贝过去却不能用?为什么一些软件安装或卸载之后要重启。下面要讨论的就是这些问题。     首先,我们探讨一下软件安装的共通部分,说共通,就是在不同版本的操作系统上,如WINDOWS98,WIN2K和WINXP等上它们都有共同点的地方。这个文章也试图不针对具体的某个操作系统,而对共同的规律来探讨,不过我自己用的是WINDOWS98,所以有时一些例子可能会用WINDOWS98上的实例来说明,而大多数情况下这些特***在WIN2K和WINXP上也是类似的。     那么,我先来归纳一下,典型的软件安装过程都有可能做哪些事情。由于我们是讨论软件在安装时的行为,所以开始安装前的设置和选项我们就暂不讨论,只说到软件真正开始安装那个时候起的动作: ①文件从安装源位置拷贝到目标位置。 ②往系统目录写入一些必要的动态连接库(DLL)。(可选) ③往系统注册表中写入相应的设置项。(可选) ④建立开始菜单里的程序组和桌面快捷方式。(可选) ⑤其他动作。(可选)      下面我们再详细来分析上面归纳出来的这些动作: 1)拷贝软件本身需要的文件。源位置指软件未安装之前的位置,例如光盘,下载的目录等,目标位置指你指定的安装位置。 这是几乎所有的软件安装过程一定会做的一件事。而如果一个软件,在安装时只要这一步,不需要后面的其他几步,我们可以认为这个软件就是绿色软件。或者反过来说绿色软件就是只要拷贝文件,不需要依赖于某个DLL,或者它依赖的DLL在几乎所有的系统中都一定有的,并且它也不依赖于注册表里面的设置项的软件。 2)这一步,可以说至少有一半软件在安装时都会做,一些软件,需要用到某个DLL,特别是那些软件作者开发的DLL,或者系统中不常用的DLL,一般都会随软件的安装拷到系统目录。所谓系统目录,在WIN98下一般是在WINDOWS\SYSTEM这个目录,而WIN2K是在WINNT\SYSTEM32,WINXP是在W......

阅读全文(1653) | 评论:0

软件测试的常识(2007-04-24 13:49:00)

摘要:软件测试的常识     作者 张华  来源 51testing 软件开发和使用的历史已经留给了我们很多由于软件缺陷而导致的巨大财力、物力损失的经验教训。这些经验教训迫使我们这些测试工程师们必须采取强有力的检测措施来检测未发现的隐藏的软件缺陷。 生产软件的最终目的是为了满足客户需求,我们以客户需求作为评判软件质量的标准,认为软件缺陷( Software Bug )的具体含义包括下面几个因素:       1、软件未达到客户需求的功能和性能;      2、软件超出客户需求的范围;      3、软件出现客户需求不能容忍的错误;      4、软件的使用未能符合客户的习惯和工作环境。考虑到设计等方面的因素,我们还可以认为软件缺陷还可以包括软件设计不符合规范,未能在特定的条件(资金、范围等)达到最佳等。可惜的是,我们中的很多人更倾向于把软件缺陷看成运行时出现问题上来,认为软件测试仅限于程序提交之后。在目前的国内环境下,我们几乎看不到完整准确的客户需求说明书,加以客户的需求时时在变,追求完美的测试变得不太可能。因此作为一个优异的测试人员,追求软件质量的完美固然是我们的宗旨,但是明确软件测试现实与理想的差距,在软件测试中学会取舍和让步,对软件测试是有百益而无一弊的。下面是一些软件测试的常识,对这些常识的理解和运用将有助于我们在进行软件测试时能够更好的把握软件测试的尺度。      测试是不完全的(测试不完全)很显然,由于软件需求的不完整性、软件逻辑路径的组合性、输入数据的大量性及结果多样性等因素,哪怕是一个极其简单的程序,要想穷尽所有逻辑路径,所有输入数据和验证所有结果是非常困难的一件事情。我们举一个简单的例子,比如说求两个整数的最大公约数。其输入信息为两个正整数。但是如果我们将整个正整数域的数字进行一番测试的话,从其数目的无限性我们......

阅读全文(1548) | 评论:0

HTML(2007-04-22 13:09:00)

摘要:      即超文本标记语言,是WWW的描述语言。设计HTML语言的目的是为了能把存放在一台电脑中的文本或图形与另一台电脑中的文本或图形方便地联系在一起,形成有机的整体,人们不用考虑具体信息是在当前电脑上还是在网络的其它电脑上。我们只需使用鼠标在某一文档中点取一个图标,Internet就会马上转到与此图标相关的内容上去,而这些信息可能存放在网络的另一台电脑中。 HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字、图形、动画、声音、表格、链接等。HTML的结构包括头部(Head)、主体(Body)两大部分,其中头部描述浏览器所需的信息,而主体则包含所要说明的具体内容。 另外,HTML是网络的通用语言,一种简单、通用的全置标记语言。它允许网页制作人建立文本与图片相结合的复杂页面,这些页面可以被网上任何其他人浏览到,无论使用的是什么类型的电脑或浏览器。神奇吗?一点都不神奇,因为现在你看到的就是这种语言写的页面.哈哈.......

阅读全文(2134) | 评论:0

[完美吴缺]当代男人泡妞初级教程(2007-04-20 08:59:00)

摘要:网上得一好文,不敢独享,拿来与兄弟们共同学习.1、学会自嘲如果你长得很丑,好,没关系,既然无法改变,那就坦然面对。不用过分地修饰自己,如果你让女人觉得你因为长相丑陋而显得自卑,那么你就已经开始了失败的第一步。在与女人相处的过程中要学会幽默式的自嘲,可以任意夸大自己的生理缺陷,将缺点当着一个笑话来说,缺点也就可以成为优点了,即便不能,它至少也会给你们的谈话增添一些乐趣,这样的谈话方式容易给你自信,几乎所有女人都喜欢自信而搞笑的男人。当然,并不是所有的缺陷都可以用来搞笑的,比如说你是个瞎子或瘸子。2、情不厌诈如果你不爱一个女人却想得到她的身体,那你就要欺骗自己说自己爱上了她,女人是个嗅觉灵敏的动物,爱不爱,她一眼就可以看出,所以你在欺骗女人之前必须要学会欺骗自己。如果你爱上一个女人,你绝不可以表现出来,时刻提醒自己不要真的爱上,不管这么做有没有用,一旦你陷入了感情的旋涡,你就很难取胜。爱情就是一场战争,在上床之前,男人女人永远是一对自私的敌人,男人射出爱情的子弹去征服女人的性爱阵地,女人捍卫着自己的身体却想得到爱情,情不厌诈,性不气馁,他们谁也不愿妥协,直到有一天他们躺在了同一张谈判床上。于是,告别了高潮,有人流泪了,有人微笑了。3、感情成本与招妓不同,无论你多么无情,泡妞总是要付出或多或少的感情,如果可能,尽量事先让女人请你吃饭,哪怕只是一碗面条或几串羊肉串,钱不在多少,但意义重大,这涉及到一个人的感情付出问题,非常关键,尤其是第一次。如果经过这么一吃,你觉得你对这个女人并不感兴趣,也不想今后跟她有什么瓜葛,更不想亏欠她什么,那你最好主动买单,保持君子风度。相反,如果你爱上了这个女人,你绝不可过于大方,你不用伪装君子,你要做个坏人,女人都喜欢坏男人,她们回家之后会纳闷自己怎么会请这么个垃圾男人吃饭,她们会百思不得其解是不是自己爱上这个男人了,她们会深深的陷入自我批判的浪潮中,最后她们会勉强给自己找个很不着调的理由才能难过地睡去,这个时候,女人的付出就开始了,你也开始了成功的第一步。不要跟女人吃那些无谓的饭,如果吃了两次饭还没戏,在无爱的情况下,赶紧换人。与上班不同,无论你的交通多么方便,你都不要开车或坐车主动去找女人,你要让女人主动过来找你,不管她多远,一公里、一百公里甚至一千公里,距离不在远近,但意义重大,这同样涉及到一个人的感情付出问题。将这两点结合起来看,如果一......

阅读全文(1702) | 评论:0

[完美吴缺]烟啊!烟啊!烟啊!!!(2007-04-17 12:55:00)

摘要:郁闷啊!!! 今天看书看得烦就去买了包烟,谁知道出了点小事,几个人都说烟是假的!我的确也抽得没什么感觉,于是把烟草的叫来了!结果....呵呵....不慌而散啊!!!! 我还把兄弟们叫来了,他们还以为是打架!!丑啊............................. 为什么生活中总要出这样的小问题啊!!!烦....... 烟啊!烟啊!烟啊!!!!!!!!!!!!!!!!......

阅读全文(2330) | 评论:1