奥运比赛我学到了

j.L 发表于 2008-08-17 23:51:02

不到最后一秒决不放弃(射击,爱闷死最后的4.4环) 良好的心理素质(女网比赛,李娜没有控制好自己) 综合:成功只是刹那,而为此需要长期的等待。
关键词(Tag): 2008奥运

确定自己使用的语言和平台

j.L 发表于 2008-08-17 23:46:44

语言:C/C++, C#, PHP, PYTHON 平台: FREEBSD, MAC, WIN2003
关键词(Tag): code

关于搜索的近期思考

j.L 发表于 2008-03-02 20:02:06

最近看了些google的paper,文章我以前看过了,这次又看了一遍。 对海量存储大体有了个底,也就纠正了一个错误看法,也就是MapReduce其实只是解决的海量文件存储,大文件切块应该是解决网络传输和硬盘传输问题。 既然MapReduce并没有减少搜索涉及的索引块,那么百度和google为什么可以这么快的找到答案呢? 在重读了谷歌的研究员的关于逻辑的文字让我想到一个想法,也许他们就是这么做得。 将搜索关键词切分,根据其起始文字和长度来并发请求,这样能过滤点很多索引块。然后就是排序,根据文章所在的url,关键词出现的频率等信息来设定其相关分数。 多个关键词采用逻辑来处理索引结果。根据索引寻找文件信息来显示。 当然大部分搜索的内容是cache过的。如何cache,如何定义搜索结果的相关分,如何更新索引块,这些我就不具体说了。毕竟每个搜索业务是不一样,所做的设计也不一样,只有特制的才是最适合的,才最能表现该搜索的业务特点。 记得网易上搜索时,有人说他们用了nutch是无法实现的,不知道为什么这么看? 在我看来,lucene是能实现google和baidu这么大的搜索引擎的(看下lucene之父到yahoo,yahoo现在对他的依赖就可知了)。当然这个lucene是改过的,而且它在整个搜索系统中不是全部,只是一部分罢了。
关键词(Tag): 搜索

我理解的开源软件

j.L 发表于 2008-03-02 19:19:38

开源软件在国内一些人眼里就是免费和代码学习,因此使用开源的人很多。但是真正长时间跟踪开源软件的很少,参与的更少。这主要和国内IT环境有关。 国人喜欢在bbs讨论开源,在线问问题,问题通常都是一大堆代码和稀疏的文字。现在使用mail-list的人比以前多了点,但相对于bbs的问题,还是少的可怜。 一般人学习使用开源软件是通过学习官网上的教程和文档信息,有wiki的看看。国内某大牛根据这些信息以及自己的经验,觉得对某开源软件很了解,发表了热情洋溢的评论blog。因为说的正好是我关注了快2年并在工作中使用过的软件,所以我仔细看了下,结果漏洞百出。 文档,wiki,教程,faq只是让你初步了解和使用该软件。但要真正把握它。就必须了解一点,通常开源软件都适用于多种情况,所以上面的信息都适用于大众信息,而离你实施的项目,应用该软件的项目是有相当大的差距的。随着业务的变化,实施的工作环境的变化,会出现很多奇妙问题。是碰到问题才想去解决还是先知道如何解决的好呢?自然是后者,所以mail-list是最好的学习方式。会有很多问题出现,查看他人问题,思考解决方式是一种深入学习的方式。 深入学习和使用过程中,会看到其不足之处,如何去弥补,让它更完美。37signals的rails公布开源,目的估计也就是完善它,让更多人使用,让更多人参与完善。 有些开源有两个版本,也就是还有一个商业版,它除了开源部分的,还有很多完善以及技术服务。 因此开源,我更愿意说是一种商业模式,利用开源吸引更多人参与,更多市场份额的占领。一旦使用者多了,那么就开始商业化,在上面加些非常棒的功能,提供技术有偿服务,开辟培训。一个国际大软件公司就出现了,实际里面人员也不是很多。 不知不觉这么多文字,写这些希望阐述我对开源的观点,也希望大家能更好的利用好开源,参与学习。
关键词(Tag): 开源

我看雪灾

j.L 发表于 2008-02-18 21:31:41

雪灾给我们很多启示。 我看到的问题 1:应急处理无力。我国自然灾害每年都有,只是从来没这么大面积过。所以国家级别的应急处理几乎为零。 2:雪灾引起的电荒。能源问题希望政府能更加关注,毕竟这是国之根本。 3:雪灾使得大量人员停留。人员分布极度不平衡,中西部开发还需努力。
关键词(Tag): 2008雪灾

站在公司的肩膀上

j.L 发表于 2008-02-14 11:10:44

(原文地址:http://home.wangjianshuo.com/cn/20080213_cceeae.htm) 作者:Jian Shuo Wang 发表于: 2008-02-13 21:02 今天是鼠年第一天上班,心轻气爽,上海的天气少有的好,天空少有的蓝。 中午从MountView过来的Google做PageRank算法的朋友阳萌,和大家一起去吃水饺。传统行业的确比互联网行业传统,就算我们已经开始上班,餐馆还坚守者初八上班的传统,害得我们绕交大一周才找到一家开着的馆子。在吃饭期间,我们不可避免的聊起了Google,当然还有微软。 基础设施 Google和微软,从大的角度来说,他们很像:他们都是软件公司。但软件公司多了,Oracle也是软件公司,Adobe也是,Netscape 也是,还有很多很多的软件公司,但Google和微软和他们有都不一样,显得很另类。从行业来说,微软主营的是操作系统和办公套件,Google专注互联网上的搜索,看似行业不一样,但他们在不同的行业又有一点相同。 这一点相同的地方,就是他们都是平台提供商。 平台这个被滥用的词挺难准确的表达我想表达的意思的。我要说的就是,就是他们都希望做好东西,让别人在在自己的基础上做开发,而不仅仅满足于别人用自己的应用程序本身。做为公司,它们是这样对待外部的用户和合作伙伴的,但更重要的是,他们也是这样对待自己的员工的。 比如说Windows,首先要说,他是个不错的应用程序,否则也就没有它做平台的份儿了。但他真正的成功是让开发者在上面开发应用。如果我们看到微软内部,内部的各个部门互相提供大量的编程接口,这成就了微软内部的很多的创新。在微软内部,大家都争着为其他部门提供更好的"编程接口"好让他们用自己的服务。也就是说,在微软里面,自己可以在其上开发的“平台”很多,所以可以做出更好的东西。 Google的搜索当然不错,但看到他的背后,也是一个大的平台,让Google的工程师可以更高效的开发程序。比如GFS(Google File System),就提供了便宜的,巨大的,高容错的,高性能的存储。这样的平台,估计现在全球范围内不多。还有Mapreduce,这个让一个程序并发的跑在数万台电脑上的程序框架,让一个刚刚加入公司的程序员就可以操纵数万台电脑一晚上处理到几个Terabyte的数据;再比如说Bigtable这样的东东,巨大的存储结构。 这些东西,借用阳萌,其实是一个公司提供给员工的基础设施。 放大个人的力量 在微软和在Google的人,或许和在很多的成功的大公司里的人一样,都有种交织在一起的幸运感和失落感,至少我是有的。幸运你的是,这个环境是如此的完美,干什么都有很多的工具,很多的知识库,还有很多团队在支持者自己。其中分工是如此之细,每个分工上都有最专业的人用最高效的方式提供支持。 比如在微软,最喜欢的一个内部网站就是http://toolkit,各种各样的内部的小工具,全是微软平台上的,工程师自己解决自己的问题写的;如果要建个有新的邮件地址,随便谁都可以马上在autogroup里面申请一个abc@microsoft.com这样的邮件,三分钟不要,就可以发布到互联网上去,接收邮件了;要解决问题,近百万篇知识库文章,找什么有什么的感觉;想学东西,内部的培训资料好像比发布出来的1000都多,看也看不完;就算找人,各种牛人一把一把的让你问。总之,很多人都会觉得在这个公司做一个工程师真幸福。 但失落感也同时在于此。优秀的公司是个系统,在系统里面,每个人都很伟大,离开了系统,离开了支持,自己头上的光环就立刻消失,才发现干什么为什么都这么难,干什么都没有现成东西支持着自己。所谓橘生淮南则为橘,橘生淮北而为枳。有自知之明的人应该知道,自己只是那一株橘子,而真正伟大的是土壤。 阳萌也有类似的感慨。Google内部的好的资源太多,外面有的,Linux阵营有的,Google内部都会自己实现一遍,让自己觉得这里什么都有,自己建立在这些平台上面可以做出来的东西,比自己不用这些资源的产出大不至百倍。这感觉就好像用汇编也能写东西,用Windows下的Visual Basic也能写东西,但是有了好的平台和工具,画同样一个窗口花的时间是完全不同的。这也就证明了Windows+VB是芯片+汇编好得多的平台。但问题就在于,所有这些好东西,根本没有办法拿出来用。 做加法还是做乘法的公司 一个好的公司,不能是做加法的公司。不是说一个人可以产生一块钱,是个人可以产生十块钱的公司。一个部门产生一块钱,加一个新的部门产生两块钱。 好的公司一定是做乘法的公司。4个人可以产生4块钱,5个人应该就可产生8块钱。这个乘法的基础,就是大家都在做基础设施,自己站在别人的肩膀上,也让别人站在自己的肩膀上。 微软和Google的不同 但很显然,微软和Google支持员工的基础设施还是有很明显的区别的。 微软更多的还是在包装好的软件的层面。这和微软过去30多年的积累有关。比如微软里的一个工具,可以方便的做出单机,或者局域网环境的好的系统 - 微软工具的快速开发是被业界称道的,但是他没有办法把自己的数据中心向员工开放,因为,从本质上来说,微软不是一个围绕着数据中心起家的公司,微软的数据中心的成本,也不足以支撑这个体系。毕竟,在微软诞生的年月里,现在规模的数据中心的概念还无法想象。 而Google更多的是在于服务上面。Google从第一天就是建在数据中心基础上的公司,他的基础设施显然也是对于所有的员工开放的。一个普通的工程师获取的支持,不是一段代码,而是跑着一个服务的上万台电脑。有种说法,Google已经成为世界头几大的PC制造商了,只不过他们的PC都是自己用,而不销售而已。 如果从这个角度上来说,微软的支持是一节电池,一个发动机,可以组装成一个个玩具车;而Google的支持更像一个交流电网,一个电话系统,可以做出基于这些网络的应用。而没有这些模块支持的人,好似在森林里赤手空拳的找到了一根木棍。 所以微软依然会在他擅长的软件领域取得巨大的成功,无论是安装在桌子里的电脑,放在硬件设备上的软件,而Google则会在围绕互联网数据中心的领域取得成功。这些,都是可在公司的DNA里面的。 给我们的启示 无论是程序还是公司,架构很重要,就是如何把人员和资源搭成梯子,文化上有让别人更伟大的导向,让一个刚刚进公司的人,可以迅速的做到比他进入其他公司的同龄人获得更多的支持,这才是一个公司的结构上的成功。 好的公司,尤其是非常成功,并且长久成功的公司,一定是在基础机构上面投资最多的公司;一个好的公司,一定要让员工站在自己的肩膀上。 Posted by Jian Shuo Wang at February 13, 2008 09:33 PM
关键词(Tag): 管理