踏踏实实干工作,推进开源大发展!

我的最新日志

  • PHP开发框架的现状和展望

    2008-5-09

      Ruby on Rails催生变革

      在RoR流行之前,PHP领域也有不少开发框架,例如Mojavi、WACT、PHPMvc和Seagull等。这些框架虽然也采用了MVC模式、数据库抽象层等技术。但由于当时PHP本身不像现在这样流行,所以这些框架都没有得到大量应用,最终归于沉寂。

      而在感受到RoR提供的快速开发能力后,PHP社区像被注入了兴奋剂。各种应用技术和开发框架层出不穷。

      新一代框架的诞生

      PHP社区在被RoR震晕后,没有陷入过多的争论。而是立即行动起来,开始了新一代框架的设计。首先出现的第一批框架几乎都是RoR的克隆。例 如PHP on Trax(连名字都借鉴Ruby on Rails)和TaniPHP、Akelos等。这些框架最大的特点就是力求100%克隆RoR,不管是采用的架构、设计模式,还是使用方法。

      这几个框架一开始确实吸引了开发者的注意,但随着开发者的深入了解,这些框架头上的光环逐步褪色。晦涩难懂的架构、糟糕的性能,以及太多的限制,让这些框架难以在实际项目中运用。

      此时,许多PHP开发者认为可以借鉴RoR的设计思想,但不应照搬RoR的结构和实现。为此,一些同样推崇快速开发的框架开始在PHP社区出现。这些框架中,CakePHP和Symfony可谓佼佼者。

      CakePHP(http://www.cakephp.org/)

      CakePHP充满了RoR的影子,从ActiveRecord模式到视图的布局管理都和RoR非常相似。而且CakePHP一开始也尝试实现与 RoR一样的许多东西。但CakePHP的开发团队后来发现PHP语言和Ruby语言存在巨大区别,因此RoR中的许多设计即便能够在PHP中实现,也是缺乏实用价值的。

      CakePHP在发展中逐步走出了RoR的阴影,开始探索更能发挥PHP语言本身优势的架构和实现。因此有一段时间CakePHP的API发生了剧烈的变化,以致其他开发者纷纷停下脚步处于观望状态。

      但由于前期一些架构的不合理和对RoR太多的模仿,导致CakePHP的核心部分越来越难以理解,运行性能也不尽人意。而且CakePHP将一个庞大的数据库操作对象作为所有业务对象的基础。这虽然利于快速开发,但却导致对业务逻辑对象的测试非常困难。

      对于较小型的项目,CakePHP非常理想。出色的快速开发能力、丰富的API和详尽的文档都可以帮助开发者很快完成工作。但随着项目规模的增加,CakePHP的局限性也变得突出。

      Symfony(http://www.symfony-project.com/)

      Symfony是一个非常成熟的框架,大量利用了已有的开源项目。Symfony使用Mojavi的核心代码实现了框架的MVC模式,利用 Propel作为数据库抽象层。Symfony不仅功能强大,而且对Ajax有全面的支持。加上官方网站提供的大量文档和教程,并拥有一个活跃的社区,因 此受到许多开发者的欢迎。

      但是,Symfony最大的问题也在于使用了太多风格迥异的开源项目来组合成框架。由于Mojavi和Propel本身都相当复杂,因此Symfony的结构非常复杂,难以理解和学习。

      不过对于希望选择一个框架作为企业内部系统基础架构的企业来说,Symfony的成熟度、丰富的文档和活跃的社区都是值得考虑的。毕竟企业内部系统更为看重的是稳定性和长期的支持。

    商业利益与大道至简

      看到PHP开发框架的潜在商业价值后,Zend.com联合IBM宣布将要推出一个真正能够发挥PHP优势的开发框架。一时间,这个消息在整个PHP社区引起了地震。大家都开始期盼这个具有“官方”背景的开发框架能够为PHP开发者指出一条正确的道路。

      不过世事难测,就在Zend Framework团队公布几个代码片断后,立即就有开发者指出这些代码片段是不可能实现的。事实证明这些代码片段不过是美好的理想。限于PHP语言本身的能力,Zend Framework最终没有实现当初承诺提供的类似RoR中ActiveRecord模式的实现品。

      Zend Framework(http://framework.zend.com/)

      Zend Framework大量应用了PHP5中面向对象的新特征:接口、异常、抽象类、SPL等等。这些东西的应用让Zend Framework具有高度的模块化和灵活性。同时,因为严格遵循“针对接口编程”和“单一对象职责”等原则,让Zend Framework很有希望成为一个出色的企业应用开发框架。

      但不幸的是Zend Framework直到今天,也没有做出更多的突破。在使用Zend Framework开发时,框架对应用程序自身最重要的领域逻辑分离没有提供任何帮助。如果希望开发出真正健壮的企业应用,仍然需要开发者做出相当的努 力,并且在Zend Framework之上建造自己的基础设施。

      针对这点,批评者指出Zend Framework虽然大量应用PHP5的新特征,但却没有将这些相对于PHP4的优势转化为能够为开发者提供帮助的东西。

      对于简单和小型的项目来说,Zend Framework不但不能提高开发效率。反而因为在框架中应用了大量面向对象设计和PHP5的新特征,对开发者提出了更高的要求,间接增加了项目的开发成本。而对于较大的项目和企业应用,Zend Framework倒是一个不错的基础。但要创建一个成功的应用,仍然需要付出不小的努力。并且要时刻注意Zend Framewok的性能问题。

      Code Igniter(http://www.codeigniter.com/)

      Code Igniter可以说是一匹黑马。Code Igniter出现之时正是Symfony和CakePHP大行其道、Zend Framework万众期待的时刻。可凭借着独特的设计思想,Code Igniter吸引了大批开发者。这点从其火爆的官方论坛就可得到证实。

      Code Igniter推崇“简单就是美”这一原则。没有花哨的设计模式、没有华丽的对象结构,一切都是那么简单。几行代码就能开始运行,再加几行代码就可以进行输出。大部分日常开发中用到的东西都可以立即找到,并且可以很容易的使用。Code Igniter可谓是“大道至简”的典范。

      但是,Code Igniter本身的实现不太理想。内部结构过于混乱,虽然简单易用,但缺乏扩展能力。因此在发展到1.5系列版本时,作者不得不通过增加各种hooks来为框架提供扩展能力。

      国内PHP开发框架

      国内虽然过去也曾有开发者发布过一些框架,但这些框架要么太过简单,要么和某一类型的应用紧密耦合,缺乏通用性。直到进入2006年,随着PHP在国内的大量应用和追捧,真正的国产PHP开发框架才陆续发布。

      FCS(http://fcs.org.cn/)

      FCS是从Java的Struts 结构移植过来的中文PHP开发框架,使用面向对象的开发结构和MVC模式,并且模拟实现了Struts的标签库,借鉴了国外一些不错的思想,尤其是Java框架方面,因此熟悉Java的开发人员相对比较容易上手,其模版引擎、缓存机制、认证机制和扩展性方面均表现不凡。

      在借鉴国外优秀思想的同时,FCS也更多地考虑了国内的应用开发需要。PHP4兼容、完全支持UTF-8,以及PATHINFO支持等,更加有利于国内的主机环境和开发需要。秉着易用和易扩展的原则,FCS采用容易理解的项目、模块和操作机制加上内置的一些自动化操作方法,让应用开发变得更加简单,其功能可以通过基类库以及各种插件的形式灵活扩展,从而满足日益增长的业务需求。正是因为具备良好的开发结构,使得FCS在开发大型应用的时候并不会显得有很多障碍,基于构件的方式,以及配合框架的项目管理机制同样可以让你在处理大型应用的时候一展所长。

    FCS力求精简的代码和全中文化的文档、注释,有利于国内PHP开发人员学习和掌握,不过根据目前的情况来看,官方的文档和社区支持目前还比较缺乏,而且对Ajax的支持还不够全面,因此国内的应用成熟度还不够。

      FleaPHP(http://www.fleaphp.org/)

      FleaPHP从发展上看,是一个具有一定历史的框架。在过去三年中,FleaPHP是作者发布了从PFC1到PFC3系列和flea1试验框架后,推出的第一个真正成熟、稳定的开发框架。

      与许多其他框架不同,FleaPHP设计之初,就是围绕快速开发和充分利用PHP自身优势两个重点展开的。因此FleaPHP最大的特点就是极高的模块化程度和扩展能力。

      FleaPHP框架的核心非常小,但通过灵活的配置,可以组合出各种类型的基础架构。对于简单的脚本页面,FleaPHP不需要载入MVC模式,只需要为应用程序提供业务逻辑和数据库服务。而对于复杂的应用程序,FleaPHP可以完成从MVC模式调用、访问控制、数据验证到文件上传、图片处理等各种各样的任务。

      正是因为这种出色的定制和扩展能力,FleaPHP真正接近了“满足从简单应用到企业开发的各种需求”这个目标。而且与许多其他框架不同, FleaPHP是一个完全在实际开发中精炼出来的框架。因此伴随着FleaPHP的发展,各种各样的实际应用也相继出现。在FleaPHP官方网站上,可以看到各种各样的实际应用。从最简单的企业宣传网站,到复杂的社区网站、企业内部系统等等,不一而足。

      FleaPHP作为一个完全国产的框架,具有完全中文化的文档、代码注释,并且在扩展功能上也注重考虑国内开发者的实际需求。因此相对于国外的各种框架,FleaPHP更容易被国内开发者所接受。

      但是,也正因为处在国内,FleaPHP面临比国外同行多得多的困难。缺乏足够的贡献者、无礼的责难,以及充满怀疑的眼光,这些都让 FleaPHP的开发团队成员需要更多的奉献精神。而且由于缺乏足够的贡献者,FleaPHP框架目前在文档和扩展功能方面,与其他成熟框架相比还有不小的差距。

      并且与其他所有的PHP开发框架一样,FleaPHP也没有找到帮助开发者分离应用程序领域逻辑的途径。虽然有指导文档,但对于初级开发者来说,一个可以拿来就用的领域逻辑基础会显得很实用。

      反思与进取

      RoR带来的冲击波还远为平息,但PHP开发者们已经在开始反思一味追随RoR的脚步是否真的能够为PHP开发带来质变?

      RoR之所以能够取得如此巨大的成功,除了RoR本身的设计思想外,还有一个重要原因就是RoR充分利用了Ruby这种语言的特长。将Ruby 动态语言的优势发挥得淋漓尽致。而在PHP中如果只是单纯照搬RoR中设计,则要处处遇到PHP语言本身的限制。为了绕开这些限制,开发者不得不用一些难以理解的技巧来解决问题。但这样一来通常会导致框架的结构变得晦涩难懂、性能受到损害。

      在这种反思中,Code Igniter、FleaPHP等框架就是对这个问题的最好回答。只有充分利用PHP语言本身的优势,才能真正让PHP开发变得更简单、更有趣。

      发展到今天,各种PHP开发框架虽然具有各自的特色,但几乎都是为了提高开发效率而努力。但是,虽然其中部分框架注意到了提高应用程序可维护性的问题,但都没有为领域逻辑分离这个至关重要的问题提出解决方案。而这正是这些框架在未来的发展目标。

      对于简单的Web应用和复杂的企业应用,两者之间的差别就注定了采用一种固定的架构是无法满足需求的。因此像FleaPHP这样能够提供自定义架构能力的框架,可以让开发者尝试用一个框架的不同组合来解决从简单到复杂的不同程度的需求。

      未来,PHP将成为Web开发领域中越来越重要的平台。因此我们相信会出现更多更好的开发框架。虽然作为开发者来说,并不一定需要采用某一个框架来解决问题。但正是因为这些不断出现的框架,我们对使用PHP开发Web应用的理解和把握得到了一次次的推动。  
  • Google CEO Eric Schmidt 访谈录续

    2008-5-08

    新闻来源:翻译自CNBC  作者:35公里

    这是 Google CEO Eric Schmidt 接受 CNBC 记者 Bartiromo 专访的第三部分,谈到了 Google 的福利,Google 广告业务的优势,谈到了创新,最后再次谈到微软对Yahoo!的收购。

    Bartiromo:
    长期以来,人们说,看,Google 有那么令人难以置信的园区,舍得花钱,舍得给员工提供福利,确保人人都快乐。你是否开始对员工的增长以及开销有新的管理办法,或者比以前更甚。

    Schmidt:
    每天我四处看看,都能看到我们为员工提供的新福利,这是 Google 文化的一部分,我们乐于这样做。当然,我们的毛利率也允许我们这样做。出于几个原因,我们已经放慢新员工的招募速度,最大原因是我们目前想不出让他们做什么。但今年我们仍然会雇佣一千人左右。

    Bartiromo:
    让我们再回过头谈谈 DoubleClick 的收购,你的广告客户有没有对此有抗拒心理?他们可能说,看,我们已经在 Google 的搜索广告中花了这么多钱,为什么还要在搜索之外的地方再投入?你是什么让他们在搜索之外的其它广告媒介上花更多钱?

    Schmidt:
    因为他们能挣得回来,也能看到效果。我们从不要客户花看不到效益的钱,也不是好生意。所以,当我们进入这些市场,我希望说,我们有一些工具,可以向你证明,如果你将钱放在那里,你确实会获得销售收入。所以,我们的创新模式在各种广告领域,非独文字广告,都可以带来真实的销售收入,我们能做到,如果我们能做到,就是好生意,如果做不到,就不该做这样的生意。

    Bartiromo:
    因为能看到效果,所以,即使在现在的经济衰退中你仍然没有看到广告业务的萎缩。

    Schmidt:
    ...

    Bartiromo:
    你同意吗?

    Schmidt:
    那时我们的希望。我们的希望是,即使在衰退中,人们也说,我们会把钱放在那些值得花的地方。现在,我看不出我们在衰退。

    Bartiromo:
    你以前说过,增长速度需要放缓,那什么是合适的幅度?

    Schmidt:
    我不知道,但很显然,我们不会设定一个增长幅度,我们会设定一个创新幅度。我们的观念是,持续投资新的事物,让它尽可能成长,而我们也有能力将这些新产品交给消费者。当然,他们必须学习如何使用,我们会和他们交谈,这里面牵扯到很多市场营销的事情,它们不会自己去做。有了新主意,人们必须感到满意,一旦他们感到满意了,我们发现增长就会...

    Bartiromo:
    作为一个从事技术的人,创新就是你终身的事业。你能告诉我最创新的事是什么吗?从你的角度看,下一个巨大创新会是什么?

    Schmidt:
    我一直觉得理解知识,语言翻译是最大的创新。如果我不知道一些东西,看着电脑,读读英文,分析一下那是什么,把它翻译成另外一种语言,说那种语言的人看了,说,啊,真难以相信。对我来说,这很神奇,但实际上不是,这只是好的计算机科技,我们现在就出在这个水平。而真正让我折服的东西是,计算机做一些人不不能做的事,同时将事情翻译成00种语言,帮我做出总结,为我找到一些我不知道但感兴趣的东西,我们目前还达不到这个程度。

    Bartiromo:
    Eric,你的股票在很短的时间内从750美元跌到450美元,你认为这是什么引起的?


    Schmidt:
    我不知道。我们不会盯着短期内的股票价格。我们说过,因为公司已经上市,我们走上漫漫征途,我们需要股东和我们在一起。短期的波动不是我们所关心的,我们也不谈论它。我们关心我们前面的巨大机会,那是个数万亿美元的广告市场,我们不会全部吃下,但我们会得到其中非常可观的一部分。我们的目标是将这些变成持久的东西,这就是这个领域中最大的技术创新。

    Bartiromo:
    所以,你们当前的首要任务仍然是继续追逐那个巨大的广告市场,还有别的吗?


    Schmidt:
    我们第一位任务是最终用户满意。比如,人们对 Google 搜索结果满意吗,每天我们都推出新的改进,更多的分类,更多内容,这些是使 Google 成为伟大公司的基础。这是我们的首要任务,甚至比广告还重要。

    我们的下一个大动作是进入应用领域,在这个领域,人们每天都花大量时间在信息上,我们可以帮助他们,比如,Email,还有很多别的,如,他们的个人数据,他们的电子表格,日历,我们可以帮他们搜索,帮他们生活在数字时代,如果我们做得好,也可以在移动设备上实现这一切。

    Bartiromo:
    对消费者来说这很精彩,它们免费,他们已经可以使用这些,不必付钱,但...

    Schmidt:
    这是非常好的模式。

    Bartiromo: Yeah.

    Schmidt:
    工作得很好。

    Bartiromo:
    但那些企业用户怎么样?我知道现在正进行一些测试,你们从企业用户听到了什么?

    Schmidt:
    我们正在企业网络的内部做一些我们已经在消费用户中做过的事情。企业用户和消费用户不同,他们对可靠性有更高的需求,所以我们签署了一些协议保证一定层级的服务质量,然后我们向企业收费,在这些情形,用户会付钱得到一些免费用户得不到的东西。他们还有其它需求,他们需要更高的安全,他们需要同他们已有的系统进行集成,这是一个漫长的过程,但很有价值,这些用户会花费20,30或40年进入我们的模式,我们喜欢这个模式,这是企业市场,是我涉足已久的市场,一个最终会对 Google 非常有利的领域。

    Bartiromo:
    你是否曾回首看一下 Google 成长历程,我的意思是,长期以来,Google 是最受艳羡的公司之一,然后变成一个庞然大物,接着当 Google 越来越大,人们就会感到害怕,就象当初微软一样。你是否害怕这种感觉?

    Schmidt:
    我们确实害怕这种感觉,因为我们要保证自己的这种感觉和我们所做的一致。Google 有一套准则,每个公司都如此,我们的准则是不做恶,这个准则为最终用户服务。我们的创始人之一,Larry Page,曾写过一篇关于如何做一个大公司的文章,比如,他写到,我们永远不会窃取用户的数据,如果你对我们不满意,你可以很容易投奔我们的对手,很多公司做不到这一条。我们会在公司的结构,可预知性以及我们的真正使命间达到平衡。如果我们拿你当最终用户提供服务,而你对我们不满,我们就对你做手脚,那是不对的,我们不是这样,我们会让你选择别人。

    Bartiromo:
    最后一个问题,Eric,我们不得不面对这样的现实,微软需要Yahoo!,如果它们走到了一起,你认为 Google 会处于什么样的不利境地?

    Schmidt:
    很多人为此争论,我们内部也有很多争论。一方面,有人说,我走我的阳关道,他们走他们的独木桥;另一方面,也有人想到前车之鉴,我前面提过,还有这种合并的可能性。所以,我不知道,我们一直为此争论。

    Bartiromo:
    Eric,你还有补充的吗?

    Schmidt:
    没有,我很好。谢谢。

    Bartiromo:
    谢谢你接受我们采访。
  • Linux手机研发要过五大难关

    2008-5-08

      Linux手机的前途似乎很少有人怀疑过。曾经做过的,现在正在做的,即将打算做的,在国内估计不下数十家公司。大家都想从中淘一桶金,不过大多是乘兴而来败兴而归,少则损失几百万,多则数千万,有的甚至整个公司因此一厥不振。在真正意义把Linux手机做成功的,在国内可以说曲指可数。本来以为可以靠开源软件与国外大公司站在同一起跑线上的,结果还是起了大早赶了晚集。

      Linux手机研发是一项浩大的工程,据说国外一般的估计是,Linux手机平台的研发至少要耗资2000万美元,历时3-5年时间才可能取得成功。当我们开始broncho项目时,有个Trolltech公司的老外发邮件给我们说,不要把你们的时间和资金浪费在GTK上了,MOTO和XXX(忘记了)公司耗资几亿美金,结果还是买了QT才搞成功的。

      有那么多开源软件可以免费使用,看似只需要做下简单的集成就行了,为什么还会那样难呢?据笔者的经验来看,国内Linux手机研发要过五大难关:

      人才关:人无疑是软件开发中最重要的因素,而国内Linux开发方面的人才稀缺,真正参与到开源项目中的人更是凤毛麟角。据这几年的面试经验来看,很多在简历上号称有N年工作经验,精通N多技术,面试之前让我都诚惶诚恐的牛人,面试之后才发现其水平实在让人难以恭维。后来听人说高手是不会出来找工作的(都是工作机会找上门的),我才死心了,静下心来做人才培养和团队建议。即使有机会把一些高手聚集一起,以国内的企业文件和高手的特质来说,让他们溶合为一个团队不是不可能,至少也是要花相当的时间才行。另外一方面就是团队成员的稳定性,Linux手机研发相对门槛比较高,换人代价相对比较大,如果团队没有凝聚力,那就别想把它做成功了。在前一家公司,我见过一个日程模块换了四个人,代码乱七八糟,膨胀到3W多行,维护两年后达到数百个BUG,整个模块无人敢碰。

      时间关:软件工程里关于时间比喻,用得最多的莫过了女人怀孩子了,一个女人十月怀胎可以生一个BABY,但十个女人不可能一个月把BABY生下来。软件项目一样,时间是必不可少的因素,人多只能在一定范围内缩短时间。在国内,无论是个人还是公司,心浮气躁的居多,半年以上的研发时间都是不可接受的,很多水货手机正常项目周期是45天,要做3到5年时间,恐怕没有老板愿意去投资。结果大家都把计划订得相当短,我见过一些搞笑的计划,我私下里说,他们能厉害到能在这么短时间内搞定,我可能只有转行了。计划时间短了,老板同意立项了,接下来以进度为维一的目标,拼命赶工,计划还是一再延期,老板给的压力越来越大,所谓欲速则不达,结果可想而知。我见过一个名片模块,从设计到提交测试只花了两周时间,结果调试了两年多时间,其中发现600多个BUG。(我非常庆幸broncho有老魏这样高瞻远瞩的领导者,我们才能始终坚持质量第一进度第二的原则,每走一步都是真正前进了一步。)

      稳定性:有位大师说过,要评估增加一个新特征需要多少时间相对容易,但很难评估将充满BUG的代码修改成最终发布的产品需要多少时间。实际几乎所有Linux手机都把功能做出来了,多半是以牺牲质量为代价的,东西是出来了,但到出产品的时间没有人可以估计。听说几个公司把Linux手机做出来了,小批量生产之后,再也不敢生产了,原因就在于稳定性太差了。把这么大项目通过调试和测试变稳定,可以说比推倒重来代价更大。有次和一个芯片厂家的销售总监聊天,他见多识广,开门见山就问我们项目的稳定性如何,他说现在大家做智能手机,面临最大的问题是稳定性,特别是Linux智能手机,如果不能解决这个问题,什么都白做了。前期我们在设计和编码投入的大量精力没有白费,经过这两周的压力测试,修改一些BUG之后,稳定性已经达到不错的程度了。

      扩展性:我的上司老魏有句口头禅,做一款产品不容易吗,闭着眼睛也可以搞定,做一个平台,在平台上建立一个产品线那才叫有挑战。这话也是源自于前一家公司的一个项目,老魏是那个项目的事实上的负责人,历时两年多把那个项目做完了,到产品化时,几个最基本的手法,调整屏幕大小,横屏和国际化,居然都非常困难,原因是在设计时根本就没有考虑到产品化的问题。后来我写过一篇<建立手机平台的产品线>的BLOG, 没有引起什么反响,甚至连评论都没有一条。不过让我非常高兴的是,收到了台湾著名的开源软件高手黄敬群老师的来信,说想在他的报告中引用那篇BLOG。国内关于这方面的考虑实在太少了,部分原因可能是很多Linux手机的开发人员都是传统嵌入时开发(动则就是几W行汇编)转过来的,还没有意识到Linux智能手机与传统嵌入式开发的不同吧。

      特色关:现在水货手机大部分都用MTK和展讯的方案,除了手机外观之外,里面的东西基本上都是一样一模的,最多换一下铃音和图片而已。没有特色就意味着软件失去价值,只能拼硬件,从PC的经验的来看,硬件的利润是透明的,除了上游的芯片厂家外,下游的集成商只能赚点蝇头小利。所以大家除了拼了价格之外还是拼价格,已经进入微利时代了,有什么办法呢,没有研发实力,最终只能沦为代工厂。如果没有特色,Linux手机的研发成本将无法消化,根本不可能与MTK的水货机和Windows mobile等智能手机去竞争。

    作者联系方式:李先静 <xianjimli at hotmail dot com>
  • Google CEO Eric Schmidt 访谈录

    2008-5-05

    来自:solidot 作者:35公里

      CNBC 的 Maria Bartiromo 周二在洛山矶的 Milken Conference 上对 Google CEO Eric Schmidt 博士做了一次访谈,谈到 Google 的成长,美国经济的衰退,微软对 Yahoo! 的收购,在线广告等话题。

    Maria Bartiromo:
    Eric, 谢谢接受我们的访谈。

    Eric Schmidt:
    谢谢再次采访我。

    Bartiromo:
    华尔街正在酝酿一场关于 Google 增长率的争论,Google 第三季度增长46%,第四季度增长40%,接着是30%,以后每个季度的增长率会有1.5%的下滑,在目前经济衰退的大环境下,你认为 Google 能独善其身吗?

    Schmidt:
    你刚才提到的是 Google 在美国的增长数字,在全球来讲,我们有很好的增长率,而且,美国的数字要考虑以下因素,一年前,我们有一个非常强劲的季度增长率,所以我们在美国的真实增长率是不错的。虽然总体增长在减慢,但将就我们的规模,我们的业务仍旧是很好的。

    Bartiromo:
    当你们到达一定规模,已经拥有70%的市场份额,再争取更多份额就不是那么容易了。

    Schmidt:
    但我们保持增长的渠道有多种,现在有更多的人使用 Internet,更多人使用电子商务,更多人点击广告,而我们的广告技术也越来越好,这些因素中任何一种都可以让我们保持增长。我们对宏观经济环境不是那么敏感,至少现在是这样。我们对经济倒退也不是非常敏感,但我们对新产品的改进是很敏感的。

    Bartiromo:
    comScore 的数据让所有人的预测都不容乐观,人们也争论这些数据是否准确。你如何保证你们的增长,在人人都捂紧钱袋的时候,你们的广告客户也许会减少预算,我的意思是,2004年到2007年的增长已经不再了。

    Schmidt:
    我说过,如果你拿5,6或7年做一个考量点,那增长是趋缓的,所以我不觉得那是多么大的变换,你知道,很多事情今天是一个样,明天是另一个样。就我们而言,我关注质量,而且我们的业务模式非常简单。如果我们少投放一些广告,那那些广告被关注的就会多,那些广告的价值就更高,所以,我们目前处于这样一种奇妙的境地,我们投放的广告少反而更砖钱,因为我们的广告的质量高,这是 Google 的一个秘密。

    Bartiromo:
    是的,Mary Meeker 也这样说,她曾经说,你们其实是从经济衰退中受益,因为这样你们可以把广告做得更好。

    Schmidt:
    你知道,如果你经营一个公司,你需要非常谨慎地支配你的市场营销开支,我们认为,你应当把这些开支放在一些你可以测算效果的地方,这样你才会知道自己的广告是否有效,我们所做的就是这个。

    Bartiromo:
    我们来说说 DoubleClick,你们收购了这个公司,目前合并工作进展得怎么样?

    Schmidt:
    工作才刚开始。大约3周前我们才着手做这些事,我们正在将他们的产品和我们的产品进行融合,让用户得到更好的工具,广告客户可以部署更多广告,出版者可以有更多地方可以投放他们的信息,这是我们长期以来一直等待的一种融合,现在正在进行,大约要6个月的时间才能将所有这一切集成到一起。

    Bartiromo:
    你认为融合过程要6个月,是吗?

    Schmidt:
    我们是这样要求的,当然,在 Google 任何事都是一种尝试,我们尝试这个,尝试那个,前期的一些迹象表明我们很有可能在这个时间内完成这些工作。

    Bartiromo:
    Google 拥有搜索广告,这不是秘密,但,那些视觉广告的情形是怎么样?我们可以说那个市场还有待争夺吗?你们得到了 DoubleClick,微软有 aQuantis,你们会争夺那个市场吗?

    Schmidt:
    可以说,Google 在视觉广告领域不是领先者,但我们的客户需要同时购买文字广告,视觉广告以及其他的广告模式,我们正在开发的一系列工具,加上 DoubleClick 会让我们为这样的客户提供一套简单的方案,这将加强我们在视觉广告上的竞争力。我认为我们的技术更好,我们现在需要做的只是赢得客户的尊重与认知。

    Bartiromo:
    你怎样保证那是一项正确的收购,而不是让它自行其事,或你们自己来做。

    Schmidt:
    我们自己尝试过。但客户很喜欢 DoubleClick。我们的观察也表明,有时候,其它公司可以做出更好的产品,DoubleClick 就是这样的产品,这是我们进行这项收购的原因。

    Bartiromo:
    就测试而言,你们在 Yahoo! 那边做了些什么?你上次说,你们正在 Yahoo! 那里部署广告,进展得怎么样?

    Schmidt:
    我们做了两个星期的测试,现在已经结束,Yahoo!将他们的一小部分广告换成我们的,这是我们商业对话的一小部分,很显然,我无法进入,但我相信这是目前 Yahoo! 正在考虑的一个战略选项。

    Bartiromo:
    事情过去之后,我猜想司法部认为那是一次询价,你听说过司法部关于此事的说法吗?

    Schmidt:
    任何人可以对任何交易进行评论,如果收购 Yahoo!,司法部也会做出评论,反托拉斯法允许政府对商业交易和收购都进行观察。

    Bartiromo:
    你和 Yahoo! 有什么可以融合的,你希望看到一种什么样的伙伴关系。

    Schmidt:
    我们喜欢和 Yahoo! 一起共事,我们之间也有竞争,他们是一家运行良好,令人印象深刻的公司。我们非常关注微软对 Yahoo! 的收购,鉴于微软的历史,鉴于 Yahoo! 资产的价值,我们担心这样的优秀资产进入一个错误的买家手中,会步入歧途。

    Bartiromo:
    你说微软的历史,你的意思是?

    Schmidt:
    我想人们知道10年前的反托拉斯案,微软在这方面是有前科的。

    Bartiromo:
    关于微软和Yahoo!我们知道什么?我们正在等待消息,也许是个不怀好意的消息,我们不知道接下来会发生什么,但微软同Yahoo!的组合对 Google 将是一个什么样的挑战?

    Schmidt:
    目前而言,我们还不知道会发生什么,我们从新闻中看到一些讨论。如果最终的合并顺利实现,对微软而言,将是一些产品的合并,同时也消除了用户的选择,尤其是电子邮件,即时消息,以及那些他们已经拥有80%到90%市场的东西,微软乐于看到用户失去选择。

    Bartiromo:
    Google 也有这些杀手级的应用,不管是 Gmail 还是地图,或者电子表格,最终的游戏将是你们直接和微软竞争?

    Schmidt:
    Google 其实是一个创新者,我们一直重视竞争。我们发现,如果我们可以开发一种简单的全新产品,解决一些让你头疼的问题,我们就可以得到你的生意,得到你的关注,得到你的流量。我们正在尝试一种叫做云计算的技术,这是一个强大的Web服务,可以做一些常规的任务,如电子邮件,字处理,而数据却是保存在“云”里,被别的地方的其他专业人员保存,管理。你不必关心将信息放在哪里,我们非常喜欢这个模式,对其它公司,这是一个技术威胁,是一种技术突破。

    Bartiromo:
    如果微软恶意收购,你会任何反应?

    Schmidt:
    那要看他们的战略最终是否成功。简单讲,我们已经指出了坏结果的可能性,但那确实要看发生了那些恶意行为。

    Bartiromo:
    你知道事情会如何进展吗?我的意思是他们可以到公开的股票市场,购买 Yahoo! 的股票,接着开始一场股东代理权争夺战。

    Schmidt:
    我所知道的和媒体所说的一样,实质上就是你取代董事会,然后强迫交易。

    Bartiromo:
    让我们谈谈 YouTube 和 MySpace。YouTube 的发展非常快,你觉得是什么推动了它。

    Schmidt:
    视频是很强大的东西,也很令人着迷。你知道,我们一开始是做滑稽视频,但现在,因为人们有那么多数码相机,他们可以上载任何东西。将来,我们会在 YouTube 上看到一些专业视频,人们在使用这个平台,因为它有非常大的受众,他们在学习如何接近这些受众,我们目前还没有在赢利方面获得突破。虽然我们有很大的流量,我们有很多有趣,有创意的人,以及争议,我们在一些国际被封杀,我还没有找出一个完美的赢利模式,我们在做,这是今年头等重要的事。

    Bartiromo:
    很多人觉得这是你们的一个绝佳机会,那么让 YouTube 赢利会花多长时间,会是1年,还是5年,你有没有一个时间框架?

    Schmidt:
    我相信今年就会出现最好的产品,它们是新产品,我们尚未宣布,它们不仅仅将广告放到人们正在用的那些内容中,我们还有很多,当然,Google 是个创新的地方(Schmidt 讲话从来都是语无伦次 - 译者)。Yahoo! 团队正在尝试各种不同的广告形式,一些更容易参与其中,更有创意,更有趣的形式。Google 相信广告有其自身的价值,对客户受众也有价值,不仅仅是广告发布者,还包括受众。

    Bartiromo:
    人们就是想看。

    Schmidt:
    当人们看到自己想要的广告,看到他们关心的事情。

    Bartiromo:
    但是,你知道,这让我想起 MySpace,我想知道,入股 MySpace 包含着收入方面的期许,那会影响未来两年的利润吗?

    Schmidt:
    我们已经指出,我这里再重复一遍,整个的社会网络空间对我们来说,要在其中实现赢利,比起其他我们已经涉足的领域要难。这与人们的出发点有关,当你在社会网络中,你在看人们的照片,你在想你的朋友在哪里,你可能不会想着要买辆新车,买件衣服或书。所以,在这里开发广告,比我们想的更难,但我们在做,并且充满希望。

    Bartiromo: 你们现在有120亿现金,是吗?

    Schmidt: 还稍多一点。

    Bartiromo:
    这些钱你计划怎么花?很多人说,看这个公司经营良好,增长依然强劲,尤其是全球增长,为什么不派发红利,为什么不回购股票?

    Schmidt:
    我们喜欢看着那些钱躺在银行里。

    Bartiromo:
    所以你可以干脆地排除派发红利的可能?

    Schmidt:
    首先,我们从来没有排除任何事情。但现在,我们很高兴看到我们的现金在积攒,现金代表未来的战略可能,你知道,我们甚至可以参与无线频谱的竞拍,虽然我们失败了,但我们的财务资源允许我们参与一场46.5亿美金的竞拍,如果没有现金,这是不可想象。

    Bartiromo: 你从中获得了什么?

    Schmidt:
    从一个公司的角度讲,我们参与了一项重要的活动。从消费者的角度看,我们知道,我们的参与证明了网络仍然是公开的,消费者仍然有选择的权利,还有比这更好的吗?

    Bartiromo:
    是,FCC 也为此高兴。关于移动,我记得你曾在一次会议中称移动是一个公司头等重要的事,你对此的预想是什么?

    Schmidt:
    我所认识的任何人,你所认识的所有人都有手机,在每个国家都这样。

    Bartiromo:
    我平时并不带着自己的电脑出门。

    Schmidt:
    在发达国家,手机的覆盖率几乎是100%,所以这是一个很庞大的人群,在未来三五年,将有另外的超过10亿的新手机用户出现,最终世界上将有50到60亿手机用户,这种规模是空前的。所以,这是一个我们可以利用的平台,我们的手机应用,不管是搜索还广告都发展迅猛,我觉得人们会利用手机做越来越多的有趣的事,我指的是所有小手机,大手机,大屏幕手机,那些不象手机的东西,那些可以移动的设备。

    将来,通讯业我帮助我们活得更好,因为他们把数以十亿的钱用来在各地建设网络,不管我去哪里,打开 iPhone 或BlackBerry,都可以立刻进入我自己的世界,即使我去的是一个完全陌生的国家,这是了不起的成就。

    Bartiromo:
    你刚才说的那个世界,我们怎么才能进入?换句话说,我们需要他们提供不同屏幕吗?我的意思是,你是否需要一个更大一点的屏幕来访问那些数据?我们怎样才能实现?

    Schmidt:
    其中一个问题是我们还不知道如何改变指尖的大小。

    Bartiromo: 对。

    Schmidt: 这个是没有什么方案可以解决的。

    Bartiromo: 对。

    Schmidt:
    我们需要一定尺寸的屏幕。但有另外的技术,比如,手机的处理器变得更快,电池持续的时间更久,屏幕变得更亮,整个设备遍得更轻,在我们谈论这些的时候,这些事正在发生,我们知道现在已经有这样的设备,因为我们知道地图的使用在剧增,Google Maps 获得巨大成功。这些手机带 GPS,所以如果我要找一家星巴客,我只要输入星巴客,就会告诉我那边有一家。在我看来,这是非常巨大的进步,而且这些服务在几乎全世界都可以得到。

    Bartiromo:
    真的很神奇。全球变成 Google 的一个热点,请告诉我你是如何保持这些东西继续发展,对 Google 而言,美国之外的最大机会是什么?

    Dr. Schmidt:
    首先,Internet 在美国之外的国家发展得比美国都快,另外,美国之外在线广告的增长率也高于美国,我们现在实行弱势美元策略,因为美元变得很弱,这对我们也有帮助,基于所有这些因素,美国之外的收入在显著增长。

    就我们而言,美国市场和美国之外的市场最大的区别,其实是唯一的区别,是语言。除此之外,很简单,任何人的需要都是一样的,他们需要时装,信息,需要产品,需要电子商务,他们现在就要,他们需要乐趣,要使用信用卡或借记卡。所以我们努力工作以在全球实现这些。我想,如果美国绝大多数大型公司都这样做好自己的全球年定位,都可以实现这样的成长。

    Bartiromo:
    你环目四望,什么是最重要的,是那些最富裕的地区吗?

    Schmidt:
    对我们来说,当然欧洲是最重要的,而我们的欧洲市场非常好,我们在那里有相对更高的市场占有率。那里有非常老练的消费者,有非常成熟的广告使用率。如果你放眼全球广告市场,美国,日本,中国,英国,法国,欧洲,它们是最大的5个或6个市场。当然,我们在欧洲做得非常好,在日本做得非常好,而我们也一直在进入中国市场,我们在那里的成长也不错。

    Bartiromo:
    那里是怎么了?你们在所有市场都是第一名,除了亚洲的一些国家。你们怎么打破这个局面并站稳脚跟?

    Schmidt:
    不同情况不同对待,在中国,当然,那里有制度和审查,我们没有及时进入,现在,我们在那里不是第一名,在其它一些国家,我们存在一些语言方面的问题,亚洲语言在断句上很莫名其妙,比如,在泰语中,所有单词都放在一个长长的句子中,他们没有断句,所以,开发针对这种语言的搜索和索引技术对我们来说需要稍微长一点的时间。

    Bartiromo:
    那你现在遇到的最大的挑战是什么?

    Schmidt:
    是 Goole 内部的事,我们管理创新过程的能力,管理一个这样大公司,进人而言,什么人该做什么事。我们全球有50个开发中心,人们位于不同时区,你在做这个吗,你在做那个吗,我在和你一起工作吗,我如何提交代码,诸如此类的事情。
  • 高效使用Linux的七个习惯

    2008-5-04

      刚开始使用Linux时你也许会感到不习惯,许多高手也都有这样的经历。毕竟,曾经他们也都是新手。但是现在Linux团体已经在为新用户提供有关指南,手册和基本的技术文档来使他们尽快上手方面做的相当出色。三年前我首次接触Linux,很多人通过论坛,在线聊天和电子邮件等帮助我,这些“企鹅”们真是相当热心。

      对此,我深感应该为无私帮助我的团体做一些力所能及的贡献,我应该给刚使用Linux的朋友写点什么。这里我编译了七个当我刚入门时别人告诉我的七个习惯。我相信如果你运用了这七个习惯,在你使用Linux时你会感觉更安全,便利,学到很多实用的东西,最终你会发现使用Linux也是那样的愉悦。

      1-不要以根用户登录

      这是你首先应该注意和遵守的。以前我们可能已经习惯了Windows,我们一直以为权限越高越好,所以我们喜欢以管理员帐户登录。但是这也许是Windows经常被病毒骚扰和不安全的重要原因,现在太多人都在用根用户登录。

      权限越高责任越大,拥有管理员权限你需要谨慎对待你所做的任何事情,但是错误还是不可避免。我记得我最先使用的是Suse Linux,有很多事项需要管理但是没有图像用户界面我不知道如何做,于是我天真的注销并登录到了根用户的图形界面。根用户图形界面的默认壁纸是一排排的高亮地雷。这些符号在我脑海里盘旋,我很小心没有终于没有做错什么。

      那么以根用户登录有那些危险那?

      1.你可以想象你在没有保护网的情况下打秋千,会不会感到害怕?这和你以根用户登录的道理是一样的,你会不经意间毁掉你的系统。

      2.你可能会不小心运行恶意软件。通常在根用户模式下任何程序的启动都默认给予所有权限的。

      3.如果你的系统有安全漏洞没有修补,你就可能被别人完全控制。

      4.这是使用Unix的惯例,除非必须那么不要轻易在根用户下运行任何东西。如果一个不是自己触发的程序请求根用户权限,那么你就要小心了。

      通常,我们不必登录根用户界面,下面是几条技巧:

      *使用“sudo”或“su”命令,并在你完成管理时退出

      *如果你不知道如何使用命令行完成这些,你可以使用“gksu”或“kdesu”。比如,按 Alt+F2并打出“gksu nautilus”,并在你完成时马上结束程序。

      2-合理的命名你的文件

      Linux环境下,你可以按照你的意愿命名文件,但是以下两点是不允许的:1)“/”是根目录专用的;2)不要使用无效字符。其它的在技术上都是可以的,但是为了避免以后的麻烦这里有几点经验你可以遵守:

      *经验上,只使用字母、数字、连接符(-)和下划线(_)

      *避免使用美元符($),括弧和百分号(%)等特殊字符,这些字符对于shell有着特殊意义,可能会引起冲突

      *避免使用空格,在终端上处理含有空格的文件是很愚蠢的。你可以用连接符或下划线来代替空格。

      这些已经基本上成为我的习惯,并且我在使用Windows和MAC时也不自觉的遵守这些准则。

      3-将你的home目录放在一个独立的分区上

     这样做会给你很大的灵活性。将home目录放在一个独立的分区上,可以在你重装系统甚至升级你的整个版本而不会丢失你的数据和个人设置。你可以在根目录下重新设置你所需要的而保留home分区。现在你可以将你需要的随意分类而不必担心的数据和个人设置,你可以随时使用它们。

      如果碰巧在你安装系统之后才懂得这一点,不要失望。你可以按照Carthik在ubantu Blog上的一片名为“Move /home to it’s own partition”的指导道一步步的完成。

      4-合理的灾难管理

      Linux是比较强大和稳定的,但是任何系统都会崩溃。在你CTRL-ALT-DEL,重启之前,你应该学会如何处理你遇到的事故。你需要知道如何在不重启的情况下轻松恢复你的系统。我个人认为这种情况分为几个不同的层次,如果前一步不奏效的话请转向下一步:

      1.我将“强制关闭”程序放在我的任务栏上,如果哪个程序出现问题可以单击“强制关闭”图标并结束该程序

      2.如果上一步不奏效,调用终端,用“ps -A”,记下那个出问题程序的进程号,结束它

      3.使用“killall”命令,比如“killall firefox-bin”

      4.如果整个图形界面都冻结,你已经不可能调用终端,按CTRL-ALT-F1,这样可以转到另一个终端,这样你就可以使用步骤2和3来结束出问题的程序。

      5.还不行的话,你可以使用CTRL-ALT-Backspace组合重启你的图形界面,但是要注意的是,这样会结束你正在运行的GUI程序。

      6.调用CTRL-ALT-F1再使用CTRL+ALT+DEL这样不会立即重启你的系统,只是按照正常模式重启,所以是安全的(假定你想要重启并且CTRL-ALT-F1可用)。

      7.如果这一切都不管用,也不用记着按强制重启按钮,尝试Raise a Skinny Elephant 。

      5-主动尝试

      你可能对朋友给你设置设计的当前版本和配置很满意,这适合你。这很好,但是可能会有比这更好的。为什么不尝试下Linux和开源的灵活性和丰富性呢?不要害怕尝试不同的程序,图形管理和桌面。实验直到你找到最适合你的。你可以这样想,你现在居住在世界上最好的地方,但是环球旅行也不会有什么坏处的?或许说不定你还可以找到一个更好的居住地,就算不能,你旅行的时间也值得好好品味,你对其它国家,它们的人和风俗,思考方式了解的更多,最终说不定你会喜欢上这样的尝试。你尝试的任何新事物都会增加你的学识,一年左右的时间你将会对Linux和开源世界有一个很好的把握。

      我个人曾尝试过至少10种分配方式,4种桌面和五种桌面管理。我最近的文章《 Etymology of A Distro》使我对更多的分配感兴趣,象Zenwalk, Foresight和 Sabayon等。朋友,主动尝试,这对你有好处。

      在你尝试之前,你可以参考以下几点:

      *设置好你感觉最舒服的系统,因为你需要一个时刻工作的系统。这样你就可以按照下面的几点进行尝试

      *你可以利用虚拟机来完成。安装一个Vmware或Virtualbox,用它们来做测试

      *如果你不知道如何运用虚拟机,你可以设置一个独立分区来尝试

      *最好的,你可以用一个设置好的PC,再有一个当作测试用。这样你就可以随心所欲的进行尝试

      6-熟悉使用你的命令行

      虽然我不提倡你一定要学习命令行,有太多的文章一直强调学习命令行的重要性。这里我假设你已经知道他的重要性并且已经知道怎样用它处理一些简单的管理任务。你可以按照指导书和手册做相应的配置。但是不要一味的复制和粘贴。就是说,不止不加思考的执行命令许多有自由天性的人劝诫你要尽量深刻的理解每条命令行的含义,它能做什么。为什么手册上这样做的,而不是那样做?理解你所做步骤的基本原理。

      过了一段时间你就会感觉你已经能很好的运用它了。最后你会发现它仅仅是种伪装的语言。每条命令可能只是一些词语的首字母,或一个单词的缩写。你希望你的狗理解“Spike fetch ball”这样的长句,为什么不尝试理解下“sudo mv /file1 /file2”那?

      7-为你的用武之地做些准备

      我有过很多这样的经历,当有个朋友请求我在他的电脑上做些东西,但是由于他所选择的操作系统会出现糗事。有时候我有急事但是仅有的电脑有很挫的操作系统。不必痛苦,随身戴上你的linux系统,不管是存储在 U盘或CD上。有相当多的linux版本很方便的,象Knoppix, DSL和 Puppy Linux等。很惭愧,事实上我自己还没用上这个习惯,我想我也需要言行一致。 
  • 解答Ubuntu 8.04 中gvfs-fuse-daemon的疑惑

    2008-4-30

      这两天很多刚刚装好Ubuntu 8.04 的朋友给我反映说,他们打开系统监视器后在文件系统中看到一个叫 gvfs-fuse-daemon 的“奇怪”设备,其挂载点为"~/.gvfs",类型为"fuse.gvfs-fuse-daemon"。

      gvfs-fuse-daemon 还“占用“了大量的磁盘空间,而且更奇怪的是 gvfs-fuse-daemon 这个设备的磁盘空间占用的情况和“/”目录是一样的,进入到这个“奇怪”磁盘的挂载点去里看,里面没有任何文件。种种疑惑我都会在下文给大家解答!

      什么是GVFS

      GVFS是GNOME新一种虚拟文件系统。GVFS是用来代替过时的Gnome VFS虚拟文件系统。GVFS算是Gnome 2.22中一个比较大的改动,也Gnome 2.22中一个主要的新特性。而Ubuntu 8.04 也把这一新的特性集成了。  
      gvfs-fuse-daemon 怎么在这里



      细心的Ubuntuer可能已经发现了系统监视器里多出来了一个gvfs-fuse-daemon的“奇怪”设备,在以前的发行版里都没有见过个设备,而且这个设备还“占据”了很大一部分磁盘空间。这是因为让不支持 gvfs 的一些程序也能利用 gvfs 的强大功能, gvfs-fuse-daemon 把 gvfs 上的文件挂载到 ~/.gvfs目录下.我们在系统监视器看到的它占用的空间都是虚拟出来的,它并没有占用这么大的物理空间。

      GVFS包括两个部分

      GIO,是一个新的共享库,其为GLib中的一部分,负责为GVFS提供API接口

      GVFS本身,这是一个新的软件包后端封装载有各种类型的文件系统和协议,比如sftp, dav, smb, obexftp等等.
     
      GVFS有什么用

      GVFS带来了一系列的新功能,由于篇幅有限我就说几个大家平时常用的。 gvfs-fuse-daemon 可以把网络连接挂载在本地系统的"~/.gvfs"目录上,让你在操作是时候就像是在本地上系统上操作一样。同时你所挂载的网络以及别的文件系统将会被保存在"~/.gvfs"目录下。你还可以在最新的Nautilus中,你可以直接使用cdda://协议来访问CD,CD音轨将以WAV文件的形式可以直接得到。下面常用的FTP协议为例简单介绍GVFS的作用。




      在Nautilus中输入ftp://ftp.ubuntu.com后,FTP的目录就挂载在了 /home/ownlinux/.gvfs 目录上了(即为“~/.gvfs 目录”)。



    远程的FTP目录也被自动挂载到了桌面上

     


    卸载该目录也很新简单,只需要点击鼠标右键然后点卸载

     


    同时也被挂载到了computer:///目录上,即为文件浏览器中“计算机”的那个目录

      后记:我只是简单的给大家介绍了一下 gvfs-fuse-daemon ,主要目的就让大家对 gvfs-fuse-daemon 有一定的了解。其实系统监视器告诉你它”占用“的空间都是虚拟出来,不要被它“庞大”的体积吓倒。GVFS的功能远远不止我说的这些,由于篇幅有限,我就是一一介绍了。我会在以后的使用过程中给大家进一步的讲解。 
  • 女人最喜欢问题的标准答案

    2008-4-30

    想要生活要和谐,社会要先进——此教程不学好,已婚的容易搞分,未婚的容易终生,喜欢泡妞的容易发春,打算结婚的容易踹蹬,不想离婚的容易被扔~~~~ 回复可看标准答案(绿色部分)和相关分析



    问题一:你爱我吗?   

    错误答案A:“爱。”

    错误答案B:“这还用问吗?”

    错误答案C:“你烦不烦啊?

    标准答案:

    ==============================

    目光怜爱的望着对方三秒,然后神情的点一下头,同时发出“嗯”的声音,然后一把把她揽在怀里......

    解析:答案A会让她觉得你太不严肃了,纯粹胡弄她;答案B会让她觉得你对她的爱不够坚定,而且她一定会喋喋不休的问到底,让你给她明确的答案,够你烦的;答案C过后一定是一顿大架或冷战。其实女人对男人是不是爱她这件事儿心里特有数,她这么问纯粹就是撒娇调情,你抱抱她亲亲她比回答什么都让她高兴。

    ==============================

    问题二:你看我这件衣服好看吗?(衣服也可以换成新剪的头发、新修的指甲等。)

    错误答案A:“挺好看的。”

    错误答案B:“还行。”  

    错误答案C:“真好看,我老婆穿什么都好看。”   

    标准答案:

    ==============================

    “来来来,转一圈让我看看......”待她害羞的转完一圈后,把她拉过来,拉着她的手微笑的看着他说:“真挺好看的。”
    解析:答案A会让她觉得你应付她;答案B会让她觉得没自信,在她心里她穿什么你都应该觉得好;可是如果真说好看,像答案C一样她又会觉得你花言巧语不真诚。所以啊,你要表示出对她提的这个问题的认真程度,必须要仔细的看看再说。

    ==============================


    问题三:在她把她的闺蜜介绍给你认识之后,回到家她问:“你觉得我这朋友怎么样啊?”  

    错误答案A:“挺漂亮的。”

    错误答案B:“不怎么样,比你差远了。”

    错误答案C:“我都没怎么注意她。”   

    标准答案:

    ==============================

    “我觉得她对你挺真诚的,应该好好珍惜这样的朋友。”如果那闺蜜确实人品不怎么样,你就说:“你呀,就是傻孩子一个,交友要慎重,以后交朋友一定要让我见见,我给你把把关。”  

    解析:答案A纯粹是没事儿找抽型的,女人是绝不能允许你在她面前说别的女人好的(当然,母亲除外。);答案B听着就太假了;答案C你一定觉得回答得挺高明的吧,她压根儿就不会信,而且她会展开想像分析你为什么不愿意对她的朋友进行评价。所以,要避开问题,转个弯儿回答,让她觉得你一切都是为她着想,连见她的朋友都是为她把关,她会有被呵护照顾的感觉。

    ==============================


    问题四:你觉得我胖了吗?

    错误答案A:“没胖。”

    错误答案B:“好像是胖了。”

    错误答案C:“呦,是不是最近太累啊,怎么都瘦成这样了?”   

    标准答案:

    ==============================

    “过来让我抱抱”,等抱过之后你再说:“我就喜欢你这样的,有点肉的,摸着舒服。”  

    解析:答案A回答得太干脆了吧,她听着不过瘾。答案B纯属找骂,女孩子怎么能喜欢听别人说她胖呢?即使你再三强调你喜欢胖的,她还会不高兴;答案C听着都那么虚伪,现在的女人哪那么好蒙啊。其实,在女人的心里,她还是希望男人不在乎她的胖瘦,虽然嘴上说为了你减肥,其实是为了自己更漂亮,能穿更多好看的衣服。所以你用肢体语言表示出你喜欢她有点儿肉就可以了。

    ==============================


    问题五:我和你前女友比起来,你更喜欢哪一个?   

    错误答案A:“废话,当然是你了,要不然干吗跟你在一起。”

    错误答案B:“嗯,怎么说呢,如果让我说实话,各有千秋吧。”

    错误答案C:“她比你差远了。”   

    标准答案:

    ==============================

    狠狠的咬她一口或亲她一下或捏她的小脸蛋,等到她撒娇的嗷嗷叫的时候你就说:“下次再问这种无聊的问题,还得这么惩罚你。”

    解析:答案A也太生硬直接了吧,她接下来就会问:“那你以后碰见比我好的是不是也得把我踹了啊?”答案B您就等着分手吧,忒实在了也。答案C听上去还不错,但你这不是抽自己嘴巴嘛,你说自己前女友不好会让女人很得意而降低了你自己的身价。其实在女人心里,她特别希望你的前女友是个特别优秀的女人,而偏偏是你不愿意跟她好了,这样女人心里会有成就感的。可是你又不能直接说前女友有多好,所以就用她喜欢的方式来回避问题吧(至于她是喜欢你捏她的脸蛋儿还是咬她一口我们就不知道了)。

    ==============================


    问题六:如果我和你妈妈同时掉进水里,你会救哪一个?   

    错误答案A:“你有聊无聊啊?”

    错误答案B:“一块儿救。”

    错误答案C:“宝贝儿,别难为我,再说这种情况也不会发生的。”

    标准答案:

    ==============================

    1“哦,我没告诉你吧,我妈是游泳健将。” 标准答案:2“走,咱现在去买泳衣,我教你游泳去。”

    解析:虽说问这个问题确实很无聊但你也不能像答案A那样,这会引来喋喋不休的争吵;答案B她一定会不甘心的追问下去,你不想清静清静吗?答案C听上去还不错,但还是很牵强。不如就幽默一回,别让她一天到晚的老杞人忧天没事儿找事儿了。

    ==============================

    问题七:如果我老了难看了你还会爱我吗?

    错误答案A:“不可能,你老了也好看。”

    错误答案B:“女人不同的年龄段有不同年龄段的魅力......”

    错误答案C:“没事儿,你老了我也好不到哪儿去,咱俩谁也别嫌弃谁。”  

    标准答案:

    ==============================

    “我巴不得你难看点儿老点儿呢,这样放在家里多放心啊。”   

    解析:答案A她听着也高兴,但心里知道这是绝对不可能的;答案B就赶紧打住吧,唐僧来了;答案C不就说她老了肯定不好看了嘛,她怎么能接受呢?所以啊,最聪明的答案就是既让她打消顾虑又让她知道你特别在意她特别怕失去她。
  • IBM对抗微软的新王牌:廉价Notes/Domino软件

    2008-4-29

      对比Windows,Linux平台最大的弱项是通讯/协作软件。MS Outlook 加Exchange是一对非常好的组合,为多数商业公司所信赖,Linux平台没有相匹配的应用程序——无论是服务端还是客户端。在该领域能与微软一较高下的是IBM的Lotus Notes / Domino,只是它的名声不佳——昂贵、臃肿和不友好,小型公司多数只会考虑微软的产品。

      但是最新的Domino Express Licensing和Notes 8却出人意料,它提供了Mac和 Linux平台的原生服务端和客户端版本。Notes 8,基于Eclipse,整合了办公组件Lotus Symphony,可以让用户依靠一款软件完成所有工作。服务端和客户端组件的许可证只需100美元/用户(对小公司来说可能还是太贵),适合1000人或更少员工的商业公司。

      IBM扔下一只银弹对付一群MS产品,不知道以后它还会搞什么大动作?
  • 用Java快速开发Linux GUI应用

    2008-4-29

      1、为什么要用Java开发Linux GUI应用

      1.1 Linux GUI应用开发现状

      目前Linux操作系统在市场上呈现一种"叫好不叫座"的局面,在一定的程度上与在其上运行的好用的应用程序数量太少有着的密切的关系。尽管能在Linux上运行的应用程序已经很多,但大多数都较难安装与使用,而且很多不是很稳定。

      要改善Linux应用程序的易用性,大量采用GUI(图形用户界面)是一个必然的趋势。但是目前Linux平台GUI应用程序的开发仍然不太容易。尽管有不少的开放源码开发工具在极力增强其GUI应用程序开发能力,但是由于标准不统一、资料太少等原因很难推广。Kylix等商业开发工具尽管具有大公司的技术实力支撑,但由于价格等因素也难以很快推广。这种局面不尽快打破,Linux的应用就不可能得到很快的普及。

      综上所述,目前Linux应用软件开发领域急需一种容易学习、成本低、效率高的GUI应用程序开发方法。

      1.2 Java的特点

      自1995年Sun Microsystem推出Java语言以来,Java语言与Java技术均得到了飞速的发展。因其强大的网络功能、良好的跨平台特性、较高的开发效率成为国内外软件开发领域的一种强大工具。

      目前Java程序已经能运行在从Windows系列、Unix系列、Mac OS系列到Linux等几乎所有操作系统平台上,而且特别重要的是它已经能做到"一次编写,到处运行";另一方面,与C++等传统程序设计语言相比,用Java来开发GUI应用程序的难度已经大大降低;加上Java语言所具有的纯面向对象、网络功能强大等特性,使得Java非常适于用来编制应用软件。

      1.3 用Java开发Linux GUI应用的优点

      正由于Java语言的特点以及Linux操作系统的发展现状,使得用Java语言来开发Linux平台GUI应用程序成为了一种很好的方法。

      一方面,用Java语言在Linux平台上开发GUI应用程序对于习惯了在Windows平台上用Java编程的程序员来说无须改变编程习惯。因为Java有良好的跨平台特性,在Linux下编程与在Windows下编程没什么两样,如果用纯Java编程,则程序中使用的类、属性、方法等等都不用改变,甚至还可以在Windows下编辑、编译好Java程序再直接移植到Linux下执行。

      另一方面,由于在Linux平台上存在大量的优秀的开放源代码软件开发工具,包括用于Java程序开发的如NetBeans等工具,这样如果在Linux平台上用这些开放源代码软件开发工具进行Java软件开发,其所需的成本可以比在Windows下进行开发低得多。当然在Linux下也存在像Borland Jbuilder、IBM Visual Age等商业Java软件开发工具,它们都具有强大的功能、完备的文档,更有利于在Linux上进行Java软件开发。

      2、用Java开发Linux GUI应用的基本方法

      2.1 开发环境的安装与配置

      *JDK的安装

      要Linux平台上开发Java应用,最基本的方式需要下载一个JDK,这是由Sun公司免费提供的一个Java软件开发包。下载得到的文件一般形如j2sdk1.3-linux.rpm.bin,首先将其拷贝到合适的目录(如/usr/src或/usr/local等)下,执行. /j2sdk1.3-linux.rpm.bin,会产生一个j2sdk1.3-linux.rpm文件,这是一个典型的RPM软件包,再用RPM软件包管理工具就可直接安装JDK,在安装过程中会提示许可信息,同意其协议就可很顺利地安装了。

      *路径的配置

      为了做到在任意路径下均可直接执行Java编程相关命令,需要修改/etc/profile文件,在其中设置路径。具体方法是在其中加入这样一行:

      PATH="$PATH/usr/jdk1.3"

      这里/usr/jdk1.3是JDK的安装路径。

      2.2 基本开发过程

      ①编辑源程序

      在Linux下有很多优秀的程序编辑器软件,例如在控制台下有著名的Emacs、vi、 jed等,在X window下有Xemacs、gedit、kedit等,这些软件通常都有语法着色、自动缩进等非常适合于程序编辑的功能。要在Linux系统下开发 Java程序,首先需要用这些编辑器编辑Java源程序。至于具体用哪种编辑器要依个人的喜好而定,反正可用的软件很多。

      ②编译源程序

      正确的编辑好Java源程序后,需要对其进行编译,以生成字节码文件。假定源程序文件名为Test.java,则可用如下形式:

      javac Test.java

      ③调试运行程序

      执行守编译命令后,对于源程序中的每一个类,系统将产生一个字节码文件,文件名为对应的类名,而其扩展名为class。一般地,每一个Java程序中应该有一个主类,该类是整个程序的入口。开发Java程序的下一步就是调试运行,仍以上面提到的情况为例,运行该Java程序的方法为:

      java Test

      事实上解释器将解释执行Test.class文件并按其中的调用解释执行其它字节码文件。

      2.3 基本开发方法

      其实无论在什么平台下,GUI应用程序的基本开发方法都是相似的。一般都包括下面这样四个步骤:

      ①创建容器

      首先要创建一个GUI应用程序,需要创建一个用于容纳所有其它GUI组件元素的载体,Java中称为容器。典型的包括窗口(Window)、框架(Frame/JFrame)、对话框(Dialog/JDialog)、面板(Panel/JPanel)等。只有先创建了这些容器,其它界面元素如按钮(Button/JButton)、标签(Label/JLabel)、文本框(TextField/JTextField)等才有地方放。

      ②添加组件

      为了实现GUI应用程序的功能,为了与用户交换,需要在容器上添加各种组件/控件。这需要根据具体的功能要求来决定用什么组件。例如,如果需要提示信息,可用标签(Label/JLabel);如果需要输入少量文本,可用文本框(TextField/JTextField);如果需要输入较多文本,可用文本区域(TextArea/JTextArea);如果需要输入密码,可用密码域(JPasswordField)等等。

      ③安排组件

      与传统的Windows环境下的GUI软件开发工具不同,为了更好地实现跨平台,Java程序中各组件的位置、大小一般不是以绝对量来衡量,而 是以相对量来衡量。例如有时候,程序的组件的位置是按"东/East"、"西/West"、"南/South"、"北/North"、"中 /Center"这种方位来标识的。因此,在组织界面时,除了要考虑所需的组件种类外,还需要考虑如何安排这些组件的位置与大小。这一般是通过设置布局管 理器(Layout Manager)及其相关属性来实现的。事实上上述按方位来安排组件就是采用了Java中多种布局管理器里的BorderLayout布局管理器。

      ④处理事件

      为了完成一个GUI应用程序所应具备的功能,除了适当地安排各种组件产生美观的界面外,还需要处理各种界面元素事件,以便真正实现与用户的交 换,完成程序的功能。在Java程序中这一般是通过实现适当的事件监听者接口来完成的。比如如果需要响应按钮事件,就需要实现 ActionListener监听者接口;如果需要响应窗口事件,就需要实现WindowListener监听者接口。

      3、开发实例

      下面是一个在Linux下用Java开发GUI应用程序的实例。该程序的主要功能是提供一个用于输入用户名与密码以登录到某一系统的界面,如果 用户输入相关信息后单击"登录"按钮,系统将在窗口的下半部分显示所输入的用户名与密码信息,如果单击"退出"按钮,程序将停止运行。如下图1所示:

      本程序没有提供很强的功能,目的只在于介绍在Linux上用Java编写GUI应用程序的基本方法。以下是程序的源代码,其中的注释说明了GUI应用具体的创建步骤:

      //以下三行用于引入添加组件、设置布局管理器及处理事件所需的软件包

      

          import java.awt.*;

      import java.awt.event.*;

      import javax.swing.*;

      //下行说明主类派生自JFrame/框架类,要实现ActionListener接口以处理动作事件

      class LoginFrame extends JFrame implements ActionListener {

      //以下四行用于声明要加到框架窗口中的所有组件

      JLabel UserLabel,PasswordLabel,UserResult,PasswordResult;

      JTextField User;

      JPasswordField Password;

      JButton LoginButton,ExitButton;

      public LoginFrame() {

      super("登录");//调用父类构造方法,设置窗口标题

      setSize(300,200);//设置窗口大小

      getContentPane().setLayout(new GridLayout(5,2,10,10));//设置布局管理器,将窗口分成5行2列,行、列间保留10个像素的空白

      //以下8行具体创建组件实例

      UserLabel=new JLabel("用户名称:");

      PasswordLabel=new JLabel("用户密码:");

      UserResult=new JLabel(" ");

      PasswordResult=new JLabel(" ");

      User=new JTextField(10);

      Password=new JPasswordField(10);

      LoginButton=new JButton("登录");

      ExitButton=new JButton("退出");

      //以下两行设置用于保存结果的标签的前景色属性

      UserResult.setForeground(Color.blue);

      PasswordResult.setForeground(Color.blue);

      //以下两行为"登录"按钮与"退出"按钮注册监听者

      LoginButton.addActionListener(this);

      ExitButton.addActionListener(this);

      //以下八行将所有组件加入到框架窗口中

      getContentPane().add(UserLabel);

      getContentPane().add(User);

      getContentPane().add(PasswordLabel);

      getContentPane().add(Password);

      getContentPane().add(LoginButton);

      getContentPane().add(ExitButton);

      getContentPane().add(UserResult);

      getContentPane().add(PasswordResult);

      //以下一行用于窗口事件监听者注册

      addWindowListener(new WindowManager());

      setVisible(true);//使框架窗口变为可见

      }

      //以下函数用于处理按钮动作事件

      public void actionPerformed(ActionEvent evt)

      {

      if(evt.getSource()==LoginButton)//表明按下了"登录"按钮

      {

      UserResult.setText("用户名称:"+User.getText());

      PasswordResult.setText("用户密码:"+Password.getPassword());

      }

      else

      if(evt.getSource()==ExitButton)//表明按下了"退出"按钮

      {

      dispose();

      System.exit(0);

      }

      }

      //以下为系统主函数,是程序的入口

      public static void main(String args[]) {

      LoginFrame mainFrame = new LoginFrame();//创建框架窗口实例

      }

      }

      class WindowManager extends WindowAdapter//窗口事件监听者类

      {

      public void windowClosing(WindowEvent evt)//本方法用于窗口关闭事件

      {

      JFrame frame=(JFrame)(evt.getSource());

      frame.dispose();

      System.exit(0);

      }

      }

      4、总结

      用Java语言来开发Linux平台的图形用户界面应用程序,容易理解、容易学习、环境要求低、开发效率高,而且开发出来的应用程序可移植性 好,可以直接移植到其它平台上运行而不会发生多大变化。这对于快速开发Linux GUI应用软件,丰富Linux平台应用软件的种类,增强Linux应用软件功能,从而更好地普及Linux系统的应用都有巨大的推动作用。

    来自:IT专家网
  • 2007年度中国软件盗版率数字正式发布

    2008-4-28

      由国家知识产权局组织专家评审组召开的“2007年度中国软件产业盗版率调查”课题评审会今天上午在京举行。会上此专项课题研究成果通过了专家评审,并正式对外发布2007年度中国软件盗版率数字。中国软件盗版率年度调查是国家知识产权战略制定过程中的一个重要课题,由国家知识产权局委托互联网实验室承担课题研究任务。2007年度软件盗版率调查是在2005年、2006年专项研究的方法论和数据积累基础上,连续第三年开展的专项研究。据互联网实验室发布的《2007年度中国软件盗版率调查报告》的研究结果表明,2007年盗版软件折算为市值计算,则相对于软件产业的盗版率由2006年的24%下降为20%,相对于全部软件产品的盗版率由2006年的36%下降为31%,相对于计算机软件的盗版率由2006年的52%下降为41%。按当年安装的计算机软件总套数计算,盗版率由2006年20%下降为13%;按当年安装的收费计算机软件套数计算,盗版率由2006年的63%下降为56%,其中单位用户由39%下降至35%,个人用户由78%下降至69%。

      盗版率下降的主要原因在于,一方面政府部门和企业推广的软件正版化工作已取得成效;另一方面收费计算机软件比例明显下降,免费、开源软件和预装正版软件快速发展。

      调查结果也揭示了软件盗版行为发展趋势。首先,政府的有关措施成效显著,盗版行为及其损失均明显下降。其次,用户安装软件的总套数水平有所上升,显示计算机用户软件需求的增长趋势。另外,涉及收费的软件安装数量基本没有变化,但是收费软件占全部安装软件的比例明显下降,说明软件安装数量的增加主要源自于合法免费资源,反映了免费软件和开源软件的快速发展。最后,与上一年对比,正版软件销售数量和销售额呈现持续增长趋势,而套数盗版率与价值盗版率均有明显下降,尤其是价值盗版率下降幅度更为显著。

      与会的评审组专家认为本课题的研究成果非常有价值、有意义,不仅可以让全球公众了解中国软件盗版的真实情况,而且为有效调整和实施软件产权保护政策,发展中国软件产业提供了决策依据,必将有效促进中国软件产业的发展。建议有关部门持续开展年度盗版率调查工作,并加大支持力度,逐步建立并健全软件盗版的信息监测体系和专业队伍,使研究结果的质量得到不断提高,从而为开展软件产权保护工作提供强有力的决策支持。

我的最新图片

Open Toolbar