• 生活不可能像你想象得那么好,但也不会像你想象得那么糟。我觉得人的脆弱和坚强都超乎自己的想象。有时,我可能脆弱得一句话就泪流满面,有时,也发现自己咬着牙走了很长的路。——莫泊桑

    1.
    但以这样的一句话作为开头,看高木直子的《一个人住第五年》的时候还在国内,那时觉得那样的生活根本不可能发生在我身上,连吃饭都要人陪着的我无法忍受一个人吃饭的感觉。所以后来,有很长的一段时间里我都没能适应一个人吃饭,一个人旅行,现在想想其实也没什么,这个世界运转速度那么快,没有人会在意你是不是一个人。以至于后来一个朋友问我是不是也得了社交恐惧症,我笑笑,其实不是,只是自己慢慢地变得懒了,懒得去经营一份感情,至于朋友,有那么几个就足够了,有些人天天在一起,也不见得是朋友。

    好像这样久了,倒是会忘记开始遇到的困难,渐渐地变成自己生活的旁观者,看着生活平静地流淌。都说人是慢慢成长的,其实不是,人是瞬间长大的,就像是突然间沉淀一般,突然不会谈恋爱了或者说不想谈恋爱了,一个人生活单一却也不会觉得无聊,即便很多时候还是会迷茫却也不会觉得烦躁了。

    去年的今天我在不一样的城市,背着不一样的书包,留着不一样的发型,走着不一样的路,想着不一样的事情,有着不一样的心思,爱着不一样的人。谁说改变需要十年呢。

    2.
    身边的牛人倒是不少,像是神抵一样的存在,我也只是羡慕想着反正自己也不会变成那样的人,直到有一天一个学长跟我聊起来,才知道原来他也有看不进去书的时候也有写论文写到想撞墙的时候,我们都忘了他们是用怎么样的一个代价才换取来了这样的一个人生。他说,如果你想要去实现梦想,孤独是你的必修课。如果不能沉下心来,就没有办法去实现它,因为那绝对不是一件容易的事情,孤独能让你更坚强,你必须找到自己的生活节奏。

    有一个朋友喜欢每天喝一点酒,看一部电影然后准时睡觉;住在旁边的英国人神出鬼没有的时候早上才睡有的时候天刚黑就睡了;隔壁楼的一个男生每天天不亮就起来跑步,往往那个时候我才刚打算睡。

    最近迷上一个人到处走,算不上旅行只是周围的城市走一遭,倒也不会花上太多时间准备,提起包就走了。我不会带上相机只是有兴致了拿出手机拍一拍,音乐倒是我走到哪里都不能丢的东西,只有音乐,能让看似漫长的等待变成曼妙的旅程,似乎自己跟整个世界都没有关系,只想当一片没有名字的云,徜徉在不知道名字的风景里。

    正如上面说的,曾经无法想象一个人吃饭的感觉,同样的,我也不会去想象一个人去坐公交车是什么样的感觉。谁知道没过多久我就习惯了一个人坐车去学校,我离学校比较远所以每次上车的时候还没有多少人,坐最后的几排。有的时候看着窗外发呆,什么都想却又不知道自己在想什么。

    我们都会找到自己的生活节奏,然后沉溺其中无法自拔。

    3.
    很长一段时间里我都没有去书店,觉得那种“每个星期读一本书”对于我来讲是太遥远的东西。直到有一天我陪朋友去书店,他是一个买书就不会停的人,我也就跟着买了几本。回到家里看微博人人又觉得心里空拉拉的,索性就拿起书来看,也是在那一天我才发现,其实每个星期看一本书没那么难,那天我一下子把书看完,才觉得这样子的生活是充实的。

    要么读书,要么旅行,身体和灵魂,必须有一个在路上。

    我告诉自己现实容不得你拖延,拖延只会让我变得更焦虑而已,所以刚开始的时候我规定自己每天提早上床半小时,看上几十页书,很快就变成习惯了。有的时候我不得不感叹如果真的去做一件事情的话,那么这件事情没有那么难。当你真的想要做一件事情的时候,整个世界都会来协助你,就是这种感觉。

    一个骑过川藏线的朋友说,只要出发,就能到达,你不出发,就哪里也去不了。如果你不能沉下心来,就什么也做不到。出发永远是最有意义的事,去做就是了。一本书买了不看只是几张纸,公开课下了不看也只是一堆数据,不去看就没有任何意义,反而徒增焦虑,行动力才是最关键的。

    4.
    你也许也是这样,当你渴望找个人交谈的时候,你们却没有谈什么.于是发现有些事情是不能告诉别人的,有些事情是不必告诉别人的,有些事情是根本没有办法告诉别人的,而有些事情即使告诉了别人,你也会马上后悔。那么最好的办法就是静下来,真正能平静自己的只有自己。

    没有人能免得了孤独,与其逃避它不如面对它。孤独并不是一件那么糟糕的事情,与嘈杂相比,一个人生活倒显得自得地多,倒也可以变成一种享受。或许至少需要那么一段时间,几年或几个月,一个人生活,不然怎么能找到自己的节奏知道自己想要什么。这是属于你自己的东西,是你的一部分,你听音乐时,坐地铁时,一个人走在马路上时,它就会流淌出来,让我觉得这个世界似乎在以另外一种形式存在着,我能够清晰地听到自己。

    我们都生活在一个不那么如意的世界,当乌云密布我们就摇曳,但阳光总有一天会到来,等阳光照到你的时候,记得开出自己的花就行了,那个你与生俱来的梦想。有的时候梦想很远,有的时候梦想很近,但它总会实现的。我想一个人最好的样子就是平静一点,哪怕一个人生活,穿越一个又一个城市,走过一个又一条街道,仰望一片又一片天空,见证一次又一次别离。

    即便世界与我为敌,只要心还透明,就能折射希望。

    文:枚五迷

  • Apache组织一级开源清单

    1.  HTTP Server:
    HTTP Server是目前最流行的HTTP服务器软件之一。其优势主要在于快速、可靠、可通过简单的API扩展,Perl/Python解释器可被编译到服务器 中,完全免费而且完全源代码开放。如果需要创建一个每天有数百万人访问的Web服务器,Apache HTTP Server会是最佳的选择。

    2.  Abdera:
    Apache Abdera是Atom联合协议(Atom Syndication)和Atom发布(Atom Publication)协议的开源实现, Abdera项目的目标是建立一个功能完备,高效执行的Atom联合协议和Atom发布协议规格,它是一个由apache软件基金会大力推动发展的项目, 该项目目前尚处于孵化阶段,尚未得到ASF的完全认可。

    3.  ActiveMQ:
    ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。其优势在于速度快,支持多种跨语言的客户端和协议,同时充分支持JMS1.1和J2ee1.4的企业集成模式和许多先进的功能。

    4.  Ant:
    Apache Ant的全名是"Another Neat Tool",是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,用于开发 Java 程序。用 Apache Ant 进行 Java 程序项目开发或其它开源 Java 程序项目,已经成了 Java 界的一个共识。Ant有以下的优点:1.跨平台性。Ant是纯Java语言编写的,所以具有很好的跨平台性。 2.操作简单。Ant是由一个内置任务和可选任务组成的。Ant运行时需要一个XML文件(构建文件)。由于Ant构建文件是XML格式的文件,所以很容 易维护和书写,而且结构很清晰。3.Ant可以集成到开发环境中。由于Ant的跨平台性和操作简单的特点,它很容易集成到一些开发环境中去。

    5.  APR:
    APR任务的目的是建立和维护一个软件库以提供一个具体平台下的一致接口。APR提供了一组API,映射到底层操作系统。如果底层OS不支持某个特别的函数,APR自己会提供一个替代品。如此一来,APR可以确保程序的跨平台可移植性。

    6.  Archiva:
    Archiva 是一款远程资源库管理软件。它能够与Maven,Continuum和ANT等构建工具完美结合。Archiva提供的功能包括:远程 Repository代理,基于角色的安全访问管理,Artifact分发、维护、查询,生成使用报告,提供基于Web的管理界面等。

    7.  Beehive:
    Beehive 是一项开源软件计划,为基于J2EE和SOA的应用提供一个易用的跨容器编程模型和应用框架。Beehive计划包括:支持JSR 175元数据注释,用于构建和使用J2EE组件的Java 控件框架,简化的Web 服务编程框架,以及用于创建基于Web的用户界面和应用的、基于 Struts的Java 页面流技术.

    8.  Camel:
    Camel 是一个开源的企业应用集成框架。它采用URI来描述各种组件,这样你可以很方便地与各种传输或者消息模块进行交互,比如HTTP、 ActiveMQ、JMS、JBI、SCA、MINA或CXF Bus API。这些模块是采用可插拔的方式进行工作的。Apache Camel拥有小巧、依赖少等特点,能够很容易将其集成在各种Java应用中。

    9.  Cayenne:
    Cayenne 是一个强大而易于掌握的Java ORM 框架。它是开源且完全免费的。Cayenne 提供了 Java 对象到关系型数据库的持久化映射管理,单方法调用查询和更新(包括细粒度的更新所有被修改的对象),无缝隙的把多种数据库集成到单一虚拟数据源中。 Cayenne 已被成功部署在高负载的生产环境中

    10. Cocoon:
    根 据Apache官方定义,Cocoon是一项XML发布框架。它允许你定义XML文档和文档的转换,并最终生成你所选择的表示形式,例如HTML, PDF, SVG, VRML等等。在某种意义上,可将Cocoon视为一个基于XML的内容管理系统,因其提供了一种机制来描述Web信息项目(内容)的结构和语义、这些项 目的关系、它们如何随着时间的推移而发生改变(逻辑)以及在请求时如何向用户呈现(它们的样式以及格式)。另外,Cocoon使你能够在XML文件中加入 处理逻辑,从而使XML管道具备动态的特性。

    11. Commons:
    Apache Commons项目专注于开发可重用的Java组件,由3部分组成:Commons Proper-可重用Java组件库,Commons Sandbox-Java组件开发工作空间,Commons Dormant-sandbox中不活跃的项目存储库。Apache Commons使每个组件尽可能少的依赖其他的库,而不是需要将依赖的库依次部署,另外,Commons组件的接口尽可能的保持不变,这样可以在实现这些 组件的时候针对接口进行开发,确保兼容性。

    12. Apache Continuum:
    Apache Continuum是适合企业用的连续集成服务,它有诸多特点:原子构建,发布管理,基于角色的安全性,集成了流行的构件工具和资源控制管理系统。无论你 是有一个集中构建团队还是想控制开发项目的发布,Continuum可帮助提高质量和维护一个一致的构建环境。

    13. CouchDB:
    CouchDB 是一个"面向文档"的数据库,底层结构是为"存储"(storeage) ,以及多个"视图索引"(view indexs)。 "储存"用来储存文件, "视图索引"用于查询处理。CouchDB 能够适应非常广泛的应用场景,在某些偶尔连接网络的应用中,我们可以用CouchDB暂存数据,随后进行同步。也可以在Cloud环境中,作为大型的分布 式的数据存储。CouchDB提供了基于 HTTP的API的访问方式,这样,保证了所有的常见的语言都可以使用CouchDB。

    14. CXF:
    Apache CXF提供了一套创建SOA服务的基础设施框架,用户由此可以按照自己喜欢的编程模式,利用Apache CXF提供的简单易用工具(包括Maven插件),创建适合SOA环境的任何WEB服务,包括SOAP/HTTP服务及REST/HTTP服务。 Apache CXF可扩展的插拔式架构不但支持XML消息格式和HTTP通信协议,而且还支持基于其他通信协议如IIOP和非XML消息格式如CORBA CDL或JSON。

    15. Directory:
    Apache Directory项目提供完全用Java写的目录方案。包括一个经过了开方小组认证的目录服务器,和基于eclipse的目录工具。

    16. Excalibur:
    Excalibur是Apache软件基础的一个开源软件项目,其主要产品是一个由Java写成的,名字叫做Fortress(要塞) 的轻量级的可嵌入式反向控制容器。

    17. Felix:
    Apache Felix是一个OSGi 4版本规范的Apache实现,它包含OSGi框架和标准服务,同样提供和支持其它有兴趣的OSGi相关的技术。最终的目标是提供一个完全兼容的OSGi 框架和标准服务的实现,并支持围绕这个技术的一个社区。Felix当前实现了OSGi版本4规范的大部分,但是为了完全兼容附加的工作是必须的。尽管这 样,Felix提供的OSGi框架功能是非常稳定的。

    18. Forrest:
    Forrest是一个把来自各种不同的输入数据源转换成用一种或多种输出格式(比如HTML,PDF等)来统一显示的发布系统。它基于Apache Cocoon并分离了内容与内容结构,不仅可以生成静态的文档也可以当作一个动态的服务器。

    19. Geronimo:
    Apache Geronimo 是 Apache 软件基金会的开放源码J2EE服务器,它集成了众多先进技术和设计理念。Geronimo 最初的设计类似于 JBoss,JBoss 是一个经典的专注于 JMX 的服务器,专注于 JMX 的服务器往往因太过静态和高度耦合而告终。因此,与 JBoss 不同的是,Geronimo 项目使用现有的高质量开放源代码企业组件,例如 Tomcat、Jetty 和 OpenEJB。

    20. Gump:
    Gump 是Apache组织自己也使用的一个持续集成工具,它以Python写成,完全支持Apache Ant、Apache Maven等等软体组建工具。Gump特殊的地方在于,它根据以上软体设计计划最新版本来编译,组建软体。这让Gump可以在源码进入版本控制系统后几个 小时内,就侦测到软体可能发生的不相容点。

    21. Hadoop:
    Hadoop 是Apache软件基金会所研发的并行运算编程工具和分布式文件系统,与MapReduce以及Google档案系统的概念十分类似。 Hadoop原本是Apache Lucene下的子项目,它最初是从Nutch项目中分离出来的专门负责分布式存储以及分布式运算的项目。简单地说来,Hadoop是一个可以更容易开发 和运行处理大规模数据的软件平台。

    22. Harmony:
    Apache Harmony是Apache软件基金会的Java SE项目。这个项目的目标是营造一个大型的、健康的社区,该社区定位于:一个兼容的、独立的Java SE 5 JDK的实现,并根据Apache License v2发布; 一个由社区开发的模块化的运行时(包括Java虚拟机和类库)体系结构。该项目期望支持尽可能多的不同平台。一个特定的平台是否被支持,主要取决于参与者 能在这个平台上定期运行测试、报告编译安装的情况,以及为该平台清除BUG,等等。

    23. HttpComponents:
    HttpComponents 就是之前的HttpClient项目,改名字是因为它已经从一个单纯的http客户端组件转变成了客户端服务器通吃的组件。 HttpComponents项目包含HTTP协议的几个方面的底层库。在服务器或客户端通讯有高级需求的用户可能发现,对于建构定制的HTTP协议服 务,这是一个十分有用的工具集。

    24. Ibatis:
    Ibatis 是apache的一个开源项目。使用ibatis 提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象,ibatis与通过Hibernate实现ORM 而言基本一致,而对于具体的数据操作,Hibernate 会自动生成SQL语句,而ibatis 则要求开发者编写具体的SQL语句。相对Hibernate等“全自动”ORM机制而言,ibatis 以SQL开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间。

    25. Incubator:
    Apache Incubator是希望将某个外部工程变为完全独立的Apache 软件基金会工程的跳板。目前,来自外部组织的代码以及外部已有工程通过Incubator加入Apache组织。Apache Incubator有两个主要的目标: 1. 确保所有的工程符合Apache基金会规则;2.在apache指导的前提下,开发新的社区;

    26. Jackrabbit:
    随 着内容管理应用程序的日益普及,对用于内容仓库的普通、标准化API的需求已凸现出来。Content Repository for Java Technology API (JSR-170) 的目标就是提供这样一个接口。JSR-170 的一个主要优点是,它不绑定到任何特定的底层架构。例如,JSR-170 实现的后端数据存储可以是文件系统、WebDAV 仓库、支持 XML 的系统,甚至还可以是 SQL 数据库。此外,JSR-170 的导出和导入功能允许一个集成器在内容后端与 JCR 实现之间无缝地切换。Apache Jackrabbit 是由 Apache Foundation 提供的 JSR-170 的开放源码实现。

    27. Jakarta:
    Jakarta项目是在Apache软件基金会营运的公开源代码软件开发项目之一,它开发着面向编程语言Java的程序库、框架等,该项目又包括了很多子项目。Tomcat、Ant、Struts等等現在是Apache下的开源项目,也曾是Jakarta的关联项目。

    28. James:
    Apache James(Java Apache Mail Enterprise Server)是Apache组织的子项目之一,采用纯Java开发,实现了SMTP、POP3与NNTP等多种邮件相关协议。James也是一个邮件应 用平台,可以通过Mailet扩充其功能,如Mail2SMS、Mail2Fax等。James提供了比较完善的配置方案,尤其是关于邮件内容存储和用户 信息存储部分,可以选择在文件、数据库或其他介质中保存。James性能稳定、可配置性强,还是开源项目,所有源代码不存在版权问题,因此在项目中的应用 日益广泛

    29. Labs:
    Apache Labs是Apache软件基金会的创新实验室。在这里会员可以试验新想法,该项目的目标是在不加重Apache社区负担的前提下提供必须的资源以推动和维持技术革新力量的发展。

    30. Lenya:
    Apache Lenya 是Java的开源内容管理系统(Content Management System,CMS)。它的实现基于标准的技术比如XML与 XSLT, Lenya提供了任何一个需要CMS的组织所需要的功能,并且不像商业软件那样令用户感到难以采用或者因为预算的原因限制了某些功能。它毫无疑问值得用户 去关注,而且应该引起许多小型或中型的机构的注意。如果使用了现有的XML文档技术,或者找寻更好的方法来管理Web站点或其它文档库,那么Lenya应 该是一个很好的选择。

    31. Logging:
    Apache Logging Services项目创建并维护着与免费对大众发布的日志应用有关的开源软件。此项目的产品包括三个日志框架:应用于Java的log4j,应用于C++ 的log4cxx和应用Microsoft.NET框架的一个日志视图和分析工具:Chainsaw。此项目也推动着log4php孵化器。

    32. Lucene:
    Lucene 是一个高性能的基于 Java 的全文索引/检索引擎,它不是一个完整的全文索引应用,而是一个用 JAVA 写的全文索引引擎工具包,可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。Lucene提供了一个简单但强大的应用程式接口,能够做全文索 引和搜寻,在Java开发环境里Lucene是一个成熟的免费开放源代码工具;就其本身而论,Lucene是最近几年内最受欢迎的免费Java资讯检索程 式库。

    33. Maven:
    Maven 是一个基于 Java 的项目管理工具。Maven 已经为你准备好了一个开发项目所必需的流程考虑。它从项目的结构、编译、集成、测试和针对于这个项目的信息一体化发布的角度形成了一个项目开发环境。

    34. Mina:
    MINA (Multipurpose Infrastructure for Network Applications) 是一个网络应用程序框架,用来帮助用户简单地开发高性能和高可靠性的网络应用程序。它通过Java NIO,在不同的传输协议比如TCP/IP和UDP/IP上提供了抽象的,基于事件驱动的异步API。

    35. MyFaces:
    MyFaces 是 JSF (Java Server Faces) Web框架 (JSR 127)的一个实现。对JSF的框架实现还有Sun公司推出的JSF参考实现(JSFRI)。JSF作为一种新的基于MVC模型的web应用框架技术,在 概念和特征方面,尤其是组件方面,超过了著名的Struts框架。而MyFaces是Apache软件基金的一个项目,它实现了JSF框架。与JSFRI 相比,MyFaces进行了一些非常有意义的扩展,例如支持文件的上传和下载等。

    36. ODE:
    Apache ODE(Orchestration DirectorEngine,编制指导引擎)是基于Java 的开源Web服务编配引擎,它可以使开发人员根据以BPEL XML语法写成的过程描述来编配Web服务。ODE于2007 年7 月18 日从Apache 的孵化器中诞生成为一个顶级项目。它的主要功能就是执行使用BPEL 描述的业务流程,实现业务流程自动化,它支持长期运行和短期运行的过程。与另一著名的开源BPEL引擎ActiveBPEL相比, ODE的许可证是Apache 2.0,而ActiveBPEL则是GPL前者对于商业用途较后者更为友好。

    37. OFBiz:
    OFBiz 是一个非常著名的开源项目,提供了创建基于最新J2EE/XML规范和技术标准,构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、分 布式电子商务类WEB应用系统的框架。 OFBiz最主要的特点是OFBiz提供了一整套的开发基于Java的Web应用程序的组件和工具。包括实体引擎, 服务引擎, 消息引擎, 工作流引擎, 规则引擎等。

    38. OpenEJB:
    Apache OpenEJB是一个嵌入式EJB3.0的轻量级实现,它可作为标准的应用服务器使用,也可以嵌入到Tomcat, JUnit, TestNG, Eclipse, IntelliJ, Maven, Ant以及其它任何IDE或应用程序中。OpenEJB 被用于Apple的WebObjects与Apache的Geronimo应用服务器中。

    39. OpenJPA:
    OpenJPA 是 Apache 组织提供的开源项目,它实现了 EJB 3.0 中的 JPA 标准,为开发者提供功能强大、使用简单的持久化数据管理框架。OpenJPA 封装了和关系型数据库交互的操作,让开发者把注意力集中在编写业务逻辑上。OpenJPA 可以作为独立的持久层框架发挥作用,也可以轻松的与其它 Java EE 应用框架或者符合 EJB 3.0 标准的容器集成。除了对 JPA 标准的支持之外,OpenJPA 还提供了非常多的特性和工具支持让企业应用开发变得更加简单,减少开发者的工作量,包括允许数据远程传输/离线处理、数据库/对象视图统一工具、使用缓存 (Cache)提升企业应用效率等。

    40. Mod_perl:
    Mod_perl 将强大的Perl编程语言和Apache HTTP服务器结合在一起,你可以用Perl管理Apache,请求或响应网页或者做更多事。Mod_perl为你提供了一个嵌入在Web服务器中的持久 的Perl解释器。它使得你可以避免开启一个外部解释器的过重负担,也可以减少Perl开启时间,给予你超快的动态内容。即使你想进行Perl交流,这里 有成百上千为Mod_perl而写的模块,这些模块都来自于持久数据库连接,用来使系统模块化,用来完成Xml内容传递系统。

    41. POI:
    Apache POI是Apache软件基金会的开放源码函数库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能,通过POI可以让你使用Java来读写MS Excel ,Word、PowerPoint文件。

    42. Portals:
    Portal 是基于WEB的应用程序,它将不同资源进行整合并展现给用户,提供包括内容聚合、单点登陆、个性化制定和安全管理等服务的基础Web平台。 Protal 技术的出现,带给人们解决用户定制这个问题的曙光。Portal技术强调以用户为中心,重视流程及整体工作效能,提供统一登陆界面,实现信息的集中访问。 Portal 创建一个提供支持信息访问、传递,以及跨组织工作的集成化商务环境。

    43. Qpid:
    Apache Qpid (Open Source AMQP Messaging) 是一个跨平台的企业通讯解决方案,实现了高级消息队列协议。提供了 Java、C++ 两种服务端版本以及 Java、C++、.NET、Python和Ruby语言的客户端。

    44. Roller:
    Roller 是一个全功能的多用户博客平台。采用Java语言开发,设计得比较精巧,源代码是很好的学习资料。它支持Weblogging应有的特性如: 评论功能,所见即所得HTML编辑,TrackBack,提供页面模 板,RSS syndication,blogroll管理和提供一个XML-RPC 接口。

    45. ServiceMix:
    ServiceMix 是一个建立在JBI (JSR 208)语法规则和APIs上的开源ESB(Enterprise Service Bus:企业服务总线)。它包括一个完整的JBI容器,其主要是由标准化信息服务和路由器,JBI管理MBeans,JBI配置单元和Ant任务(安装组 件和管理容器)组成。新版本中集成了BPEL,增加了一个基于router的高性能目录,XPath转换引擎,Drools新规则,对RSS的支持与 JCA的完全结合等等。

    46. Sling:
    Sling 是第一个使用JSR-170内容存储规范(Java Content Repository)的Web框架。Sling支持OSGi,因此获得了所有OSGi的优势。在Sling中,并非是管理服务器“背后”的文件和文件 夹,所有的管理和开发都是通过REST类型调用来完成的。从其文档中可看出,Sling服务器可以被配置为仅使用curl命令来上传和操作该服务器。支持 上传服务器端的可执行脚本。通过基于Web的管理终端,开发者能够控制组成Sling服务器的OSGi程序块,其它部分则被加载到其嵌入式Apache Felix OSGi服务平台上。

    47. SpamAssassin:
    SpamAssassin 是目前最好的、最流行的开源反垃圾邮件软件之一。它是一个邮件过滤器,使用了多种反垃圾邮件技术,如:文本分析、贝叶斯过滤、DNS黑名单和分布式协同过滤数据库等。SpamAssassin最新版本SpamAssassin 3.2.5。

    48. Stdcxx:
    Apache 的C++ 标准库项目(代号stdcxx)是一个集算法,容器,迭代器等等功能的C++类库。STDCXX的目标是提供一个免费的ISO/IEC 14882国际标准的C++ ,在所有主要的硬件实现,操作系统和编译器提供开放源码的,使源代码具备可移植性和一致性的标准类库。Stdcxx另外一个目标是在每个平台上实现最大程 度的执行效率。

    49. Struts:
    Struts 是Apache基金会Jakarta项目组的一个开源项目,它采用MVC模式,能够很好地帮助Java开发者利用J2EE开发Web应用,减 少开发Web应用的时间,提高产品的重用度。Struts主要是采用Servlet和JSP技术来实现,它把Servlet、JSP、自定义标签和信息资 源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式。

    50. Synapse:
    Apache Synapse是一个易于使用、轻量级的XML与Web Services管理和集成中间件,可用于搭建SOA和ESB的基础平台。Apache Synapse支持多种标准包括:XML、XSLT、XQuery、XPath、SOAP、POX/REST、HTTP/S、JMS、、FTP、 SFTP、WS-RM、WS-Addressing、SMTP等,Synapse还提供非常多的开箱即用实用功能而不需要编程,但是也可以利用一些常用的 语言如Java、JavaScript、Ruby和Groovy对它们进行扩展。

    51. Tapestry:
    Tapestry 是一种基于Java的Web应用程序框架。Tapestry采用了组件的概念。程序员可应用现有的组建或自定义应用程序相关的组建来构建 应用程序。与现有的其他Web应用程序框架相比,应用Tapestry会让程序员从烦琐的,不必要的底层代码中解放出来。

    52. Tiles:
    Apache Tiles是一个JavaEE应用的页面布局框架。Tiles框架提供了一种模板机制,可以为某一类页面定义一个通用的模板,该模板定义了页面的整体布局。布局由可以复用的多个块组成,每个页面可以有选择性的重新定义块而达到组件的复用。

    53. Tomcat:
    Tomcat 是一款开源的Serlvet容器,它是Apache基金会一个核心项目,由Apache、Sun和其它一些公司共同开发而成。由于有了Sun 的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务 器的功能:处理Html页面。但是它处理静态Html的能力就不如Apache。我们可以将Tomcat和Apache集成到一块,让Apache处理静 态Html,而Tomcat处理Jsp和Servlet。这种集成只需要修改一下Apache和Tomcat的配置文件即可,十分方便。

    54. Turbine:
    Turbine 是一个基于Servlet的框架且允许有经验的Java开发人员去快速创建Web的应用程序。Turbine允许你个性化Web站点,允许 登录用户受限制地访问你的应用程序部分。Turbine是一个成熟的、构建良好的框架,可以用来作为很多其它项目的基础。Turbine对于面向服务架构 的应用程序开发是一个极好的选择。Turbine提供的一些功能包括一个安全管理系统、一个调度服务、XML格式的校验服务器和一个XML-RPC的 WEB服务。对于你的应用程序创建特定服务是一个简单的任务。基于表示层技术的Turbine核心没有任何依赖。Turbine支持JSP以及 Velocity。

    55. Tuscany:
    Apache Tuscany 提供全方位的开源SOA基础架构以利于开发, 组装, 发布,管理构件式应用服务(Composite Applications)及数据处理。 该项目实现服务构件体系(SCA: Service Component Architecture)和服务数据对象(SDO: Service Data Objects)等OASIS OpenCSA标准. Tuscany提供开放式可扩展的运行环境以支持现在和将来的各种技术,这将解除应用程序对底层技术的依赖和偶合,使得跨技术网络平台的组装成为可能并大 大简化。

    56. Velocity:
    Velocity 是一个基于Java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由Java代码定义的对象。 当Velocity应用于Web开发时,界面设计人员可以和Java程序开发人员同步开发一个遵循MVC架构的Web站点,也就是说,页面设计人员可以只 关注页面的显示效果,而由Java程序开发人员关注业务逻辑编码。Velocity将Java代码从Web页面中分离出来,这样为Web站点的长期维护提 供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。 Velocity的能力远不止Web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML,它也可以被当 作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。

    57. Wicket:
    Apache Wicket 是几年前引入的创新型 Java Web 应用程序框架。它通过彻底地分离开发人员与设计人员的角色,帮助简化 Web 应用程序开发。它将允许您从视图层中删除逻辑代码,消除使用 JavaServer Page (JSP) 的需求,提供以简单传统 Java 对象(Plain Old Java Object,POJO)为中心的开发模式,以及消除使用 XML 和其他配置文件格式的大量需求。这种简单的纯 Model-View-Controller (MVC) 开发方法与缺少 XML 配置文件的简单开发流程结合在一起,使 Wicket 成为一个功能强大的令人愉快的开发框架。它解决了多个开发挑战,允许您将注意力更多地集中在功能上,而不必过多地关注应用程序配置。

    58. Web Service:
    从 表面上看,Web service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web来调用这个应用程序,我们把调用这个 Web service 的应用程序叫做客户。Web services其实是建立可互操作的分布式应用程序的新平台,Web service平台定义了一套标准,规定了应用程序如何在Web上实现互操作性。你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web service ,只要我们可以通过Web service标准对这些服务进行查询和访问。

    59. Xalan:
    Xalan- Java是一套xslt处理器,用来将XML文件转换为HTML,TEXT和XML等其他类型文件格式,支持XSLT1.0和XPATH 1.0版。开发人员可以通过命令行方式或在JAVA APPLET和SERVLET中使用,并可以作为自己开发的应用程序的类库使用。Xalan-Java实现的是transformation API for XML(TRaX)接口,此接口为Jaxp1.2标准中的一部分。

    60. Xerces:
    Xerces 是由Apache组织所推动的一项XML文档解析开源项目,它目前有多种语言版本包括JAVA、C++、PERL、COM等。Xerces- C++ 的前身是 IBM 的 XML4C 项目。XML4C 和 XML4J 是两个并列的项目,IBM 将这两个项目的源代码让与 Apache 软件基金会(Apache Software Foundation),他们将其分别改名为 Xerces-C++ 和 Xerces-J。

    61. XML
    XML(Extensible Markup Language)即可扩展标记语言,与HTML一样,是SGML(Standard Generalized Markup Language,标准通用标记语言)。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言 XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,使用方便简易。

    62. XMLBeans:
    XMLBeans 是一个XML-Java绑定工具,利用它可以很方便地解析XML文档。XMLBeans 最强大的功能是可通过提供配置文件定制代码生成。在灵活性、可重用性、简化代码和维护方面,XMLBeans的功能带来了许多益处。因为任何企业应用程序 相当大的成本都在于维护方面,所以从长远来看,XMLBeans的配置功能能够节省企业成本和时间。

    63. XML Graphics:
    Apache XML Graphics Project 是 Apache Software Foundation 发展 XML 与图形进行转换的计划项目子,其目的是创建和维护与XML格式到图形输出转换相关的软件组件。

  • http://groups.google.com/group/vim-cn/msg/f72fba0645955101?

     

    这是篇每个 Vim 用户都应该阅读的文章,原文在这里

    http://www.rayninfo.co.uk/vimtips.html

    这篇文章很早被翻译过,好像是一个清华的哥们翻译的。我再原来的基础上又整理

    和新增了些内容--这是两年前做的,后来没有再更新。有兴趣的人可以继续更新。

    __BEGIN__

    ------------------------------------------------------------------------------

    # searching 查找

    /joe/e                      : cursor set to End of match

                                 把光标定位在匹配单词最后一个字母处

    /joe/e+1                    : cursor set to End of match plus 1

                                 把光标定位在匹配单词最后一个字母的下一个字母处

    /joe/s-2                    : cursor set to Start of match minus 2

                                 把光标定位在匹配单词第一个字母往前数两个字母的位置

    /^joe.*fred.*bill/          : normal

                                 标准的正则表达式

    /^[A-J]\+/                  : search for lines beginning with one or more A-J

                                 查找以一个或多个 A-J 中的字母开头的行

    /begin\_.*end               : search over possible multiple lines

                                 查找在 begin 和 end 两个单词之间尽可能多的行

    /fred\_s*joe/i              : any whitespace including newline

                                 查找在 fred 和 joe 两个单词之间任意多的空格,包括新行

    /fred\|joe                  : Search for FRED OR JOE

                                 查找 fred 或 joe

    /\([^0-9]\|^\)%.*%          : Search for absence of a digit or beginning of line

                                 查找

    /.*fred\&.*joe              : Search for FRED AND JOE in any ORDER!

                                 查找同时包含 FRED 和 JOE 的行,不分前后顺序

    /\<fred\>/i              : search for fred but not alfred or frederick

                                 查找 fred, 而不是 alfred 或者 frederick,也就是全字匹配

    /\<\d\d\d\d\>            : Search for exactly 4 digit numbers

                                 查找4个数字的全字匹配

    /\D\d\d\d\d\D               : Search for exactly 4 digit numbers

                                 查找4个数字的全字匹配

    /\<\d\{4}\>              : same thing

                                 同上

    # finding empty lines 查找空行

    /^\n\{3}                    : find 3 empty lines

                                 查找 3 行空行

    # Specify what you are NOT searching for (vowels)

    # 指定不要查找什么

    /\c\v([^aeiou]&\a){4}       : search for 4 consecutive consanants

    # using rexexp memory in a search

    # 在查找中使用正则表达式存储

    /\(fred\).*\(joe\).*\2.*\1

    # Repeating the Regexp (rather than what the Regexp finds)

    # 重复正则表达式

    /^\([^,]*,\)\{8}

    # visual searching

    # 可视模式下的查找

    :vmap // y/<C-R>"<CR>       : search for visually highlighted text

                                        查找被高亮显示的文本

    :vmap <silent> //    y/<C-R>=escape(@", '\\/.*$^~[]')<CR><CR> : with spec chars

    # searching over multiple lines \_ means including newline

    # 查找多行。\_ 表示包括新行

    /<!--\_p\{-}-->                : search for multiple line comments

                                        查找多行注释

    /fred\_s*joe/i                    : any whitespace including newline

                                        查找在 fred 和 joe 两个单词之间任意多的空

    格,包括新行

    /bugs\(\_.\)*bunny                : bugs followed by bunny anywhere in file

                                        bugs 后任意位置含有 bunny 单词的多个行

    :h \_                             : help

                                        帮助

    # search for declaration of subroutine/function under cursor

    # 查找光标下子程序/函数的声明

    :nmap gx yiw/^\(sub\<bar>function\)\s\+<C-R>"<CR>

    # multiple file search

    # 在多个文件中查找

    :bufdo /searchstr

    :argdo /searchstr

    # How to search for a URL without backslashing

    # 如何不使用反斜线查找 URL

    ? http://www.vim.org/        : search BACKWARDS!!! clever huh!

    ----------------------------------------

    # substitution

    # 替换

    :%s/fred/joe/igc            : general substitute command

                                  普通替换命令

    :%s/\r//g                   : Delete DOS returns ^M

                                  删除 DOS 回车符 ^M

    # Is your Text File jumbled onto one line? use following

    # 你的文本文件是否乱七八糟的排成一行?使用如下命令

    :%s/\r/\r/g                 : Turn DOS returns ^M into real returns

                                  转换 DOS 回车符 ^M 为真正的回车符

    :%s=  *$==                  : delete end of line blanks

                                  删除行尾空格

    :%s= \+$==                  : Same thing

                                  同上

    :%s#\s*\r\?$##              : Clean both trailing spaces AND DOS returns

                                  删除行尾空格和 DOS 回车符

    :%s#\s*\r*$##               : same thing

                                  删除行尾空格和 DOS 回车符

    # deleting empty lines

    # 删除空行

    :%s/^\n\{3}//               : delete blocks of 3 empty lines

                                  删除三行空行

    :%s/^\n\+/\r/               : compressing empty lines

                                 压缩多行空行为一行

    # IF YOU ONLY WANT TO KNOW ONE THING

    # 如果你只想明白一件事情

    :'a,'bg/fred/s/dick/joe/igc : VERY USEFUL

                                  非常有用

    # duplicating columns

    # 复制列

    :%s= [^ ]\+$=&&=            : duplicate end column

                                  复制最后一列

    :%s= \f\+$=&&=              : same thing

                                  同上

    :%s= \S\+$=&&               : usually the same

                                  同上

    # memory

    # 记忆,或叫引用

    :s/\(.*\):\(.*\)/\2 : \1/   : reverse fields separated by :

                                  反转以 : 分隔的字段

    :%s/^\(.*\)\n\1/\1$/        : delete duplicate lines

                                  删除重复的行

    # non-greedy matching \{-}

    # 非贪婪匹配 \{-}

    :%s/^.\{-}pdf/new.pdf/      : delete to 1st pdf only

                                  只删除到第一个 pdf

    # use of optional atom \?

    :%s#\<[zy]\?tbl_[a-z_]\+\>#\L&#gc : lowercase with optional leading characters

                                           不懂

    # over possibly many lines

    # 匹配尽可能多的行

    :%s/<!--\_.\{-}-->//        : delete possibly multi-line comments

                                     删除尽可能多的注释

    :help /\{-}                 : help non-greedy

                                  非贪婪匹配的帮助

    # substitute using a register

    # 使用寄存器替换

    :s/fred/<c-r>a/g         : sub "fred" with contents of register "a"

                                  用"a"寄存器里的内容替换"fred"

    :s/fred/\=@a/g              : better alternative as register not displayed

                                  更好的方法,不用显示寄存器内容

    # multiple commands on one line

    # 写在一行里的复杂命令

    :%s/\f\+\.gif\>/\r&\r/g | v/\.gif$/d | %s/gif/jpg/

    # ORing

    :%s/suck\|buck/loopy/gc     : ORing (must break pipe)

                                  不懂

    # Calling a VIM function

    # 调用 Vim 函数

    :s/__date__/\=strftime("%c")/ : insert datestring

                                   插入日期

    # Working with Columns sub any str1 in col3

    # 处理列,替换所有在第三列中的 str1

    :%s:\(\(\w\+\s\+\)\{2}\)str1:\1str2:

    # Swapping first & last column (4 columns)

    # 交换第一列和最后一列 (共4列)

    :%s:\(\w\+\)\(.*\s\+\)\(\w\+\)$:\3\2\1:

    # filter all form elements into paste register

    # 把所有的form元素(就是html里面的form啦)放到register里

    :redir @*|sil exec 'g#<\(input\|select\|textarea\|/\=form\)\>#p'|redir END

    :nmap ,z :redir @*<Bar>sil exec

    'g@<\(input\<Bar>select\<Bar>textarea\<Bar>/\=form\)\>@p'<Bar>redir END<CR>

    # increment numbers by 6 on certain lines only

  • “01年.com泡沫破灭的时候我曾经在东京的街头流离失所,我的上司把我招过来但很快他就没钱了,我不得不搬出公寓,一个人走在街头不知道该怎么办。但04年我们在日本占据了34%的搜索市场份额。”他如是说,“做任何事情都需要耐心和毅力,很高兴看到你拿到了这个机会,我也曾面临来东京还是去硅谷的选择,我最终选择了东京,但我不会说硅谷有什么不好,仅仅是个人的选择。希望你无论在哪儿都是一个优秀的挑战者。”那天下午一谈就是三个小时,我知道Terje很希望我能留下,“作为一个挪威人我以为我在美国不会遇到culture shock,但事实上我错了,我在印尼和在日本遇到的culture shock比起在美国遇到的都不算什么。”……其实我也很喜欢跟他说话,虽然高居执行役员的位置,他并没有日本人那种骨子里的上下级观念,说话一向很随和,可是他也知道自己没法改变什么,他曾经因为我辛苦的对抗过公司那些奇奇怪怪的ルール,也给了我足够的信任,可惜大环境使然,即便是公司里我最尊敬的人和我相谈,我也不得不走,此时真是感到万分抱歉。
    想起去年的这个时候,我结束了几个月的日语研修,短暂的回家休整后,收拾了自信和不自信以及种种牵挂和留念,有生第一次跨入一个陌生的国度,日本。日语一直说不好,一开始的时候,一听到日语第一反应还是说英语来应付——当然即便至今日语也没有能达到随心所欲的和他们交流的程度——后来接受三个月的日式新卒研修,算是一种对culture shock的适应,之后便配属进入了一个连日本人都不说日语的部门。如今一晃已是一年,平心而论这一年过得很是充实,惊心动魄如经历了罕见的地震和核危机,游山玩水如欣赏了富士山,去过了京都和大阪,学会了一些日语,也积攒了真正在日企中工作做事的经历,但始终感觉文化差异太大无法融入他们的氛围,细节琐事种种不想再一一摊开详述,结果是,离职。
    下一站,三藩山景。一直想去的地方,不为钱财名声,不为山水美景,仅仅是带着一颗朝圣的心,过去走走。好比哥廷根之于数学家,好比华尔街之于金融家,对一名码农来说,硅谷就是这么样的一个地方,またね日本、see you soon, the Valley.

  • Marty Cagan:产品管理与软件开发的关系


    文 / Marty Cagan  译 / 欧坤、孙洋
    Marty Cagan是享有世界声誉的产品管理专家,曾经担任网景副总裁、eBay产品管理及设计高级副总裁。本文是他回顾自己二十多年来从事软件产品管理工作的总结和经验分享,谈到了产品管理与软件开发的关系,以及软件开发人员如何转型做产品管理。
    产品管理与软件开发的关系
    如果说成功的产品是真实用户需求与现阶段可行性方案的结合,那么产品经理与开发团队之间(合作)关系的重要性自然不言而喻了。
    产品经理负责定义产品方案;开发团队最了解哪些产品设计是可行的,他们负责产品的开发与实现。作为产品经理,你很快能体会到,只有与开发团队融洽合作,才有可能开发出合格的产品,否则等待你的将是一段漫长难挨的日子。
    形 成合作关系的关键是双方承认彼此平等——任何一方不从属于另一方。产品经理负责定义正确的产品,开发团队负责正确地开发产品,双方相互依赖。你要 求开发团队完成任务,必须先取得他们的认可,确信为了达到产品质量标准必须这么做;开发团队也要留给你足够的空间设计有价值、可用的产品。
    产品管理和软件开发相互促进,开发人员可以帮助产品经理完善产品定义,别忘了他们最清楚你的产品设计是否可行。
    开发人员帮助产品经理完善产品定义的方式有如下三种。

    • 让开发人员直接面对用户和顾客,体会用户的困惑和疑虑,了解问题的严重性,好点子常常会随之而来,譬如,可以邀请一名开发人员参加产品原型测试。
    • 向开发人员了解最新的技术发展动向,讨论哪些新技术可以用到产品里。开展“头脑风暴”,看看目前已实现的技术或即将实现的技术能不能解决手头的问题。
    • 让开发人员(或主程序员)在探索(定义)产品的初期阶段参与评估产品设计,协助策划方案。产品经理常犯一类错误,即完成产品定义后,扔给开发团队便置之不理。这样做只会贻误协调需求与可行性的最佳时机,等到发现问题时,为时已晚。


    同样,产品经理也可以协助开发人员的工作,方式如下。

    • 产品经理关注产品的基本要求(核心功能)。产品经理应该意识到,自己定义的不是最终产品,而是满足基本要求的产品雏形。只有这样,产品管理与软件开发之间才能形成良好的互动。
    • 一旦产品进入开发阶段,要尽可能避免修改产品的需求和规划。虽然有些事情超出你的控制范围,变动是不可避免的,开发人员也能理解,但是千万不要在此时尝试突发奇想的点子。
    • 产品开发阶段难免会产生诸多问题,比如,用例丢失,或者用例设计考虑不周全等。这很正常,哪怕最优秀的产品团队也避免不了。产品经理应该迅速采取行动,在维持产品核心功能、尽量避免修改的原则上,给出解决方案。


    我经常鼓励出色的开发人员尝试产品管理工作。我告诉他们,如果产品没有市场价值,无论开发团队多么优秀也无济于事。很多优秀的产品是程序员抓住用户需求,自己创业研发出来的。放宽眼界不仅仅有利于开发人员自己的职业发展,也有利于产品、顾客和公司。
    如何与异地的开发人员沟通?
    如今产品经理与开发团队各处一方的情况很常见。除了印度软件外包业务,大型公司的分支机构之间,以及公司与被收购的子公司之间,都可能出现这种情况。
    如果开发团队不在你身边,沟通和执行的难度将进一步放大。异地开发出现的问题常常导致团队士气低落,有人甚至公开质疑异地开发能否真正节约成本。
    提高与异地开发团队之间的沟通效率,我有三条建议。

    • 开 发团队距离越远,语言、文化、时差带来的沟通难度越大,确定完善的产品说明文档就越重要。如果产品经理不确定开发什么样的产品(或者反复改变想 法),异地开发团队只能疲于奔命,白费力气。这简直就是一场灾难,丝毫不亚于医生开错方子。如果你与开发团队相隔很远,无论是沟通产品文档的内容,还是讨 论修改产品设计,一定要借助高保真原型进行交流。阅读文档毕竟不轻松,如果文档是非母语的,或者阐述不清楚,那沟通效率就更低了。
    • 本 地的开发团队很容易发现和解决各种冲突(比如,两个管理者给出相互抵触的指导意见)。异地开发团队则会发生很多意想不到的情况,往往过了好几个 月才发现问题。这是因为异地开发人员不得不揣摩各种不同的意见(但经常揣摩错)。因此,必须有人在本地负责与异地团队的协调工作。这并不是说所有沟通工作 都必须经过此人,而是应该明确异地开发团队只接受他的命令。这项工作可以由本地的项目经理、资深开发人员或者其他主管担任。
    • 如 今商业沟通手段很丰富,除了电子邮件和即时消息外,还有视频会议可供选择,此外,语音电话业务(VoIP)大大降低了国际长途通话费用支出。尽 管如此,当面交流的优势依然不可替代。每个季度,产品经理至少应该前往异地与开发团队见一次面,与软件架构师、管理者当面交流。面对面交流有助于改善(合 作)关系,提高沟通效率。此外,交换人员也是一种有效的沟通方式,可以让主程序员来本地与产品经理共同工作一段时间,或者让产品经理到异地工作一段时间。


    按照我介绍的方法与优秀的开发团队合作是一种特别的享受。如果是与印度外包团队合作,那么由于时差的原因这种合作会让人觉得更加惬意。每天早晨上班时,对方的项目进展已经摆在面前。你可以用白天(对方的夜晚)检查、测试代码,反馈信息,显著缩短项目的循环周期。
    请注意,如果是在异地开展与产品原型相关的工作,由于循环周期非常短(一天迭代好几次),你必须随时准备处理对方的问题,投入更多的精力。
    解决异地开发问题的另一种方式是在异地聘请产品团队。这种趋势正在兴起,我相信这种模式会被更多的公司采用。你大可不必为此担心。我们曾经用了10年时间在异地培养专业的开发和测试人员,培养专业的产品经理和设计人员很可能还要再花10年时间。
    程序员想重写代码?
    产品经理最担心听到开发人员这样抱怨:“不能再增加功能了!我们得停下来重写代码。代码库一团糟,就像纸糊的老虎,根本应付不了持续增加的用户。我们维护不下去了!”
    这 一幕在很多公司上演过,现在依然在不断重演。1999年eBay遭遇这一幕时,公司濒临崩溃的情形超出所有人想象。Friendster几年前也 发生过这种情况,当时他们正在向MySpace开放社交网络用户。网景与微软展开浏览器大战时,也发生过类似的事情,最后的结果大家都知道。事实上,没几 家公司能渡过难关。
    一 旦公司陷入这种困境,开发团队往往沦为替罪羊。经验告诉我,这类问题通常是由产品管理失误引发的。因为产品经理一直迫使开发团队满负荷工作,开发 尽可能多的功能。所有软件架构都存在功能极限,如果忽视产品的基础技术构架,一旦系统越过崩溃的临界点,就会造成无法挽回的结果。
    在重写代码的过程中,用户无法看到产品的任何改进。你可能认为重写代码至多也就几个月,但是实际花费的时间无一例外要多得多。你只能坐在一旁,眼睁睁看着用户投奔竞争对手,而这个时候,竞争对手恰恰在不断地改进产品。
    如 果你还没有遇到这样的情形,未雨绸缪很有必要——你需要预留一定的研发技术能力,在eBay被称为余量(headroom)。很多因产品迅速膨胀 产生的问题都与扩展规模有关,余量意味着避免触及技术能力的上限,为用户数量的增长预留空间,为事务增长预留空间,为新增功能预留空间,保证产品的基础技 术构架能够满足团队的要求。
    与开发团队合作应该遵循以下原则:在产品管理上为开发团队预留20%的自主时间,让他们自由支配。开发团队可以利用这些时间重写代码、完善架构、重构代码库中有缺陷的部分,或者更换数据库管理系统,提高系统性能,避免“我们需要停下来重写代码”的情形发生。
    如果你的糟糕处境已经初现端倪,应该拿出至少20%的资源进行调整,而我担心有些团队连20%都不愿意拿出来。
    如果你已经身陷重写的困境,说明公司危在旦夕,这里给出一点建议供你参考。
    第一步,针对开发团队确定的产品修改目标并制订切实可行的计划和时间表。通常,有经验的开发团队估计的开发时间八九不离十,但是重写代码是个例外,因为多数团队都没有重写代码的实际经验,估计往往过于乐观。你必须审时度势,仔细检查每处细节,确保计划切实可行。
    第 二步,只要有可能,最好把重写目标分成几大块,实现递增修改,让用户感受到产品的改进,哪怕会因此把9个月的工作时间延长至2年,也一定要采用这 种方式。重写代码时,保证让用户看到功能的改进——即使会占用少则25%,多则50%的开发资源——对保持产品(尤其是互联网产品)的市场占有率至关重 要。
    第三步,由于开发用户可见功能的资源有限,必须谨慎选择正确的产品特性,并确保产品定义的正确性。
    eBay 起死回生后,我们发誓绝不重蹈覆辙,马上开始新一轮的代码重写,把危机甩在身后。事实上,由于发展迅速,eBay已经重写了三次代码,最后 一次采用了完全不同的编程语言和架构。开发团队花了几年时间,大规模地改写了几百万行代码,同时在不影响用户群的情况下,开发了大量新功能。这是我知道的 最惊心动魄的中途重建网站的故事。
    临渴掘井不如未雨绸缪,为防患于未然,别忘了预留20%的余量。如果你从未与开发团队谈过这件事,今天就去找他们吧。
    软件开发人员如何转型做产品管理?
    我与开发人员接触,发现他们很关心这样一个问题:如何从软件开发向产品管理转型?
    开发人员希望向产品管理转型,有时是因为参与探索(定义)产品后,尝到了影响产品决策的甜头,不再满足于只做编程的工作。有时是因为对现有产品很失望,他们认识到如果产品没有价值,开发团队再优秀也无济于事。​
    我认识的很多优秀的产品经理都是开发工程师出身。接下来,我将探讨从软件开发转型到产品管理时可能遇到的问题和挑战。​
    开发人员转型做产品管理有其无与伦比的优势——对产品可行性的敏锐嗅觉。如果他们对用户行为进行深入分析,学习一些和产品管理有关的技巧,就能成长为出色的产品经理,打造出用户喜爱的产品。
    转型的第一步,是清楚地意识到自己和目标客户是截然不同的。花一些时间和真正的客户交往,就会很容易意识到这一点。不要想当然地认为,只要我喜欢这个产品,知道如何操作,用户也一定会喜欢这个产品,知道如何操作。
    第 二,学会“移情”(empathy),懂得站在用户的角度思考问题。其实,用户并非一无所知的菜鸟,只是他们的工作和擅长的领域与你不同罢了。要 做到换位思考,最简单的方法是花时间与用户做面对面的沟通。注意,这并不意味着用户能提出真正的产品需求;挖掘产品需求是产品管理的任务。
    第三,转变思想。作为开发工程师,你的任务是优化开发流程和效率。但作为产品经理,你的工作则是定义产品、优化用户体验,打造出用户喜爱的产品。这一点看似容易,只有当你面临一个两难抉择,比如项目发布时间与用户体验出现冲突的时候,你才能体会其中的困难。
    第四,保持谦逊的品格。向用户展示产品时,大多数人的反应可能会与你的预期背道而驰,这时谦逊就显得格外重要。仔细倾听来自用户的声音,日复一日,你的理解力会得到极大提升。但前提条件是必须拥有开放的心态来面对用户的批评。
    第 五,改变讨论风格。很多互联网企业中,工程师都喜欢围绕着某些决策争论不休,激情四射。可多数情况下,这些产品的技术决策有明确的判断标准,比如 运行速度更快、规模更合适、容错度更高、扩展性更好等等。而产品定义和用户体验的决策中并不存在这样的标准。这时候就需要你改变以前的讨论风格,提高说服 和辩论的技巧,让他人接受你的观点。
    最 后,处理好和原部门的关系。成为产品经理后,你和开发部门的关系会变得很难处理。他们会变得异常敏感且难以沟通,会采取各种各样的方式来挑战你, 质疑你的技术能力,不会轻易作出承诺。你需要学会放手,让工程团队做好他们的本职工作,并参与到产品开发的流程中来。产品管理的工作已经够让人头大了,相 关的技术决策就放手让他们来处理吧。
    我强烈建议公司建立畅通的渠道为开发人员的转型提供便利,一定会培养出许多杰出的产品经理。即使转型不成功,开发人员还是决定回去编程,但产品管理的观念也为他们树立了“科技以人为本”的思想,对他们今后的工作是极其有益的。
    作者简介:过去20年, Marty Cagan 作 为负责定义和开发产品的高级经理人为多家一流企业工作过,包括 惠普、网景通信、美国在线、eBay。他亲历了个人电脑、互联网、电子商务的起落沉浮,致力于通过写作、演讲、培训帮助客户打造富有创意的产品。为此,他 撰写了《Inspired: How to Create Products Customers Love》一书,创办了硅谷产品集团公司(SVPG)。在此之前,他的最后一份工作是担任eBay产品管理及设计高级副总裁,负责规划全球电子商务网站的 产品和服务。
    本文节选自华中科技大学出版社《启示录:打造用户喜爱的产品》一书和作者的博客。该书从人员、流程、产品三个角度介绍了现代软件(互联网)产品管理的实践经验和理念。特此感谢华中科技大学出版社与Marty Cagan先生授权。

  • 再翻译一篇,facebook的Questions系统,感慨一下基于SNS的推荐实在没有多少算法层面的问题。

    The Wisdom of Friends (and Others Too)
    https://blog.facebook.com/blog.php?post=10150110059982131

    Adrian Graham 于 2011年3月25日 4:03 发布
    Friends are often the best source of advice when you're trying new things: Where should I go to dinner? How do I go buy a car? What new music should I check out? Friends know your tastes, and you have confidence in their opinions.
    当你准备尝试新事物的时候,朋友往往会给你提供不错的建议,例如,“我应该去哪儿吃晚饭?”,“我应该买什么样的车?”,“最近有什么不错的音乐?”等等,因为朋友往往知道你的品味和风格,而你也相对信任他们。
    Like many of our products, Questions originated as people began using Facebook in a new and unexpected way. People would update their status with a question, and their friends would answer in the comments. We saw this and began thinking about how we could make this interaction more useful. Over the summer , we began testing Questions with a small group of people, and today we are beginning to roll it out to everyone.
    与 我们很多的产品类似,Questions源于用户使用facebook时的行为数据,许多用户在面对问题时会更新一个个人状态,而他的朋友们也往往会提供 对这条状态加以评论而给他提供一些建议。我们发现了这种行为,并开始思考怎样可以让这种用户行为变得更加有用。这个夏天我们开始在一小群用户中测试 Questions这个产品,而今天我们正式将其上线,为所有人提供服务。
    We noticed that people were frequently asking for opinions ("what are your favorite restaurants in New York?") or hoping to learn about their friends ("what was your favorite movie as a kid, something you watched over and over?"). For most of these questions, experts weren't going to be the best source for advice. The answers to these questions are meaningful or interesting because you know your friends and your friends know you.
    我 们发现许多人喜欢提出类似“纽约哪家餐馆你最喜欢?”这样的问题,以期望获得朋友的建议,或者提出类似“你小时候最喜欢的,并且之后反复看的电影是什 么?”这样的问题,以期望更加了解他的朋友们。在这种问题下,专家并不代表能提出不错的建议,或者这些问题的答案本身就具有不错的意义,因为他们让你更加 了解你的朋友,也让你的朋友更加了解你。
    We wanted to make questions easier and faster to answer. With the updated Questions you can agree with an existing answer with a single click, or you can add a different response. This makes it easy for many more people to respond to you. It also helps us show you the most popular responses.
    我们还希望能使回答一个问题的操作更为简单快捷,你可以点击一个已有的答案,或者增加一个不同的回复,这可以使你获得更多的回复,也能让我们告诉你更为常见的回复。

    https://fbcdn-sphotos-a.akamaihd.net/hphotos-ak-snc6/198999_10150184525706729_20531316728_8248985_3767456_n.jpg
    Quickly get answers to your questions.
    如图。
    Questions will also enable you to cast a wider net. Now, when your friends answer one of your questions, their friends can answer it too. For more unusual questions, you can get advice from a broader group of people, but to keep it most relevant we filter the answers to show you first what your friends think. You can see more responses by clicking "others" within the question.
    Questions还会帮助你拥有一个更广的交际网,因为一旦你的朋友回复了你的问题,他的朋友也可以回复这个问题,对于一些不太常见的问题,你可以从一个更广的圈子中获得建议,而为了使这些答案更为相关,我们将这些回复分为“你朋友的回答”和“其他人的回答”两类。
    Questions will be available to everyone soon, but you can try it now here and learn more .
    我们将很快推出Question,你可以通过链接先尝试使用。

    Adrian, a product manager for Questions, is wondering, "What's the first question you'll ask with new Facebook Questions?"
    Questions的产品经理Adrian很想知道,你使用Questions最先想问的问题是什么?

  • 刚回东京就听说了Cassandra0.8.0的消息,根据老大指示了解了一下,现在的Cassandra不再是NoSQL了,因为0.8.0开始有了CQL(Cassandra query language),另外还有了一个分布式的counter。

    Cassandra之前是facebook养起来,后又弃养的产品,现在主要有twitter,digg等公司在开发,

    http://www.slideshare.net/kevinweil/rainbird-realtime-analytics-at-twitter-strata-2011
    ↑↑↑↑  twitter用Cassandra进行实时分析的系统。

    之后找到facebook关于在MySQL,Cassandra和HBase之间进行选择的这篇文章,不过没找到中文的,于是试着翻译了一下。

    The Underlying Technology of Messages
    由 Kannan Muthukkaruppan 于 2010年11月15日 12:46 发布

    原文链接:http://www.facebook.com/note.php?note_id=454991608919


    We're launching a new version of Messages today that combines chat, SMS, email, and Messages into a real-time conversation. The product team spent the last year building out a robust, scalable infrastructure. As we launch the product, we wanted to share some details about the technology.
    我们正在开发一个实时Message交互平台,这个平台将集成聊天,短信以及电子邮件等服务。产品团队去年花了一年的时间构建了一个健壮灵活的实现,现在我们希望分享一些技术方面的细节。

    The current Messages infrastructure handles over 350 million users sending over 15 billion person-to-person messages per month. Our chat service supports over 300 million users who send over 120 billion messages per month. By monitoring usage, two general data patterns emerged:
    当前的Messages服务基于3.5亿用户每个月150亿的点对点消息发送的基础需求之上,我们的聊天服务可以支持3亿用户每个月1200亿条消息的需求,我们查看了这些服务的运作,总结出我们面对数据的两条特征。

      1. A short set of temporal data that tends to be volatile
      2. An ever-growing set of data that rarely gets accessed
      1,短文本,但种类繁多的临时数据的集合。
      2,始终增长却很少被访问的数据。

    When we started investigating a replacement for the existing Messages infrastructure, we wanted to take an objective approach to storage for these two usage patterns. In 2008 we open-sourced Cassandra, an eventual-consistency key-value store that was already in production serving traffic for Inbox Search. Our Operations and Databases teams have extensive knowledge in managing and running MySQL, so switching off of either technology was a serious concern. We either had to move away from our investment in Cassandra or train our Operations teams to support a new, large system.
    当 我们开始寻找当前Messages服务的替代品时,我们希望基于以上提到的两点数据特征,能有一个针对性较强的存储方案。2008年我们开源了 Cassandra,一个拥有“最终一致”特性的key-value系统,Cassandra在此之前已经用于我们的Inbox搜索模块中。我们的运维和 数据库组已经积累了许多关于MySQL的经验,所以将MySQL和Cassandra都抛弃是一个需要谨慎研究才能做出的决定,这么做意味着我们将停止对 Cassandra开源社区的投入,以及让我们的运维组接受一个全新的系统。

    We spent a few weeks setting up a test framework to evaluate clusters of MySQL, Apache Cassandra, Apache HBase, and a couple of other systems. We ultimately chose HBase. MySQL proved to not handle the long tail of data well; as indexes and data sets grew large, performance suffered. We found Cassandra's eventual consistency model to be a difficult pattern to reconcile for our new Messages infrastructure.
    我 们用了几周的时间去测试和评估MySQL,Cassandra和HBase,以及其他的一些存储方案,我们最终选择看HBase。首先MySQL对长尾数 据的处理相当不给力,当索引和数据集增大到一定程度,性能严重下降。另外我们发现Cassandra的“最终一致”特征难以运用到我们的Messages 项目中来。

    HBase comes with very good scalability and performance for this workload and a simpler consistency model than Cassandra. While we’ve done a lot of work on HBase itself over the past year, when we started we also found it to be the most feature rich in terms of our requirements (auto load balancing and failover, compression support, multiple shards per server, etc.). HDFS, the underlying filesystem used by HBase, provides several nice features such as replication, end-to-end checksums, and automatic rebalancing. Additionally, our technical teams already had a lot of development and operational expertise in HDFS from data processing with Hadoop. Since we started working on HBase, we've been focused on committing our changes back to HBase itself and working closely with the community. The open source release of HBase is what we’re running today.
    HBase 在可扩展性和存储性能上表现出色,而且其数据同步的模型也比Cassandra更为简洁。在过去几年里,我们在工作中和HBase打了不少交道,在这个过 程中我们发现HBase很符合我们的需求(数据的自动负载均衡和冗余备份,支持压缩,单机多数据片存储等等)。HBase的底层文件系统HDFS,提供了 许多优秀的特征,如数据冗余负载,端对端数据校验,以及自动数据均衡,而且,我们的技术团队中有许多专家在以往使用Hadoop进行数据处理的过程中也积 累了很多HDFS开发和运维方面的经验,既然我们决定使用HBase,我们将与这个开源社区紧密联系,并持续的将开发成果反馈到项目中,当前发布的 HBase也是正在我们的平台上运行的。

    Since Messages accepts data from many sources such as email and SMS, we decided to write an application server from scratch instead of using our generic Web infrastructure to handle all decision making for a user's messages. It interfaces with a large number of other services: we store attachments in Haystack, wrote a user discovery service on top of Apache ZooKeeper, and talk to other infrastructure services for email account verification, friend relationships, privacy decisions, and delivery decisions (for example, should a message be sent over chat or SMS). We spent a lot of time making sure each of these services are reliable, robust, and performant enough to handle a real-time messaging system.
    由于Messages将从多个不同的数据源获取数据,例如电子邮件和短信,我们决定基于scratch开发一个应用服务器,而不是使用我们通用的web架构来处理所有的用户消息,这个模块将为其他的众多服务提供接口:
    我 们在Haystack中存储附件,在ZooKeeper上写用户搜索服务,并且与其他的模块服务交互以进行邮件帐户验证,好友关系管理,隐私设置,消息发 送设置(例如决定消息是由聊天模块发送还是由短信发送)。我们在确认这些服务是否靠谱的工作上花费了许多时间,并且我们做了足够多的工作去将这些服务升级 到一个实时消息系统的高度。

    The new Messages will launch over 20 new infrastructure services to ensure you have a great product experience. We hope you enjoy using it.
    新的Messages系统将有20多个基础模块构成并发布,以确保用户拥有一个不错的产品体验,希望你们喜欢。

    Kannan is a software engineer at Facebook.
    Kannan现在是Facebook的工程师。

  • 四年前,我曾经用痛苦改变了我的命运。
    四年后的今天,我重新审视着自己,发现变了很多很多。

    穷忙的日子变得频繁,一天一天一周一周,时间不打照面的从我肩头滑过,理想变得飘渺,现实变得沉重,心绪变得浮躁,静心钻研也变为奢望,仿佛在某一刻突然变老,本应精彩的岁月提前进入垃圾时间。
    20岁,合肥,三流大学本科生。
    披星戴月的自习,热爱代码,热爱钻研paper,每天有详实的短期计划和远景理想,作息规律,懂得利用时间,知道拒绝诱惑,对未来充满希望,知道自己想成为什么样的人。
    24岁,东京,职业码农。
    朝9晚6上班,依旧热爱代码,但没有多少时间继续钻研paper,每天工作计划不稳定(低效的日本管理),没有远景理想,作息不规律,时间利用率不如以前,对游戏自制力下降,对未来忧心忡忡,常常梦醒时分不知身在何处。

    另,今天和中国的同事聊不能被SB的日企文化同化,因为一旦被同化将不能被任何地区的任何组织再接受。不过也正由于此,我来到这里的第一个目的得手——我用了6个月的时间站在尽可能客观的角度观察尽可能多的细节,并对各个特色细节做优缺点分析,优点可以直接进行嫁接,缺点则是教训。不局限于工作范畴的观察,并于之前呆过的国内企业进行平行客观的对比,我相信我做的这件事情一定会在未来某个时间发挥出它的价值。

    还有三两件事情没有做完,只希望我还能继续坚持一段时间,回到四年前已经是奢望,但是能做好几件有价值的事情,满分不足,及格有余。

    附上周逃难大阪京都的片子:


  • 瑟瑟芦荻不尽秋,纷纷落叶忆同游。
    梦回子夜无心醉,尘染布衣有孤舟。
    风中已然悲白发,日月何处照明眸。
    斯人未名逢斯世,湖光塔影乱云流。
    子夜归来瑟瑟秋,漂泊江湖谓我求。
    欲老南山忧贫病,曾经北大愧旧游。
    稻粱何谋唯生计,文笔所载不自由。
    晃悠立足方寸地,断肠人语说还休。
    一卷离骚一卷愁,十年往事十年秋。
    芭蕉叶上听冷雨,海棠风里梦红楼。
    怕人寻问强言笑,独自追思未解忧。
    晚来轻寒薄衫透,海上归来路悠悠。
    未名行人海上舟,长安别后忆同游。
    纷纷泪落红尘雨,瑟瑟寒生白露秋。
    万里归来犹是客,十年望尽未登楼。
    而今提笔成情语,赋到沧桑只恨愁。

  • 下雪了,于是想写文字,动动懒散而生锈的笔尖。
    时光如一首游离在尘世之外的曲子,古旧而不颓废,轻缓却没有休止符。

    想起你,
    也许正在某个平淡的日子里一身尘埃坐在壁炉边轻轻的哼唱,
    又或许在某个陌生的街头看着人来人往却只想站着歇一会儿,
    雪花也许此刻也在你身边片片坠下,你却总那么匆匆又匆匆,
    明明无欲无求的面对这个世界,却总被幽暗氤氲的梦们惊醒。

    也许你,
    并不曾发一声感慨,亦不曾思念故人旧事,
    甚至懒于理会过往的寸寸流年寸寸回忆,
    疯狂的世界围着你旋转,喧嚣却不能驱散一丝孤独,
    你只是任凭名为寂寞的野草在寂寞的音乐中恣意蔓延,
    在冰冷的寒蝉冬季,等待委婉的结局。

    也许什么时候,
    等这片片雪花攀上鬓角,等繁华的流景变得稀松平常,
    你才肯放下种种虚荣呀执拗呀顺着走来的足迹回来吧,
    故乡的袅袅炊烟,故乡的万家灯火,故乡的宁静朴实,
    当年你舍弃的,之后与你别离了仿佛几生几世的感动,
    其实从未放弃等你归来。

  • 春节呀春节
    春节的到来,才感觉到在外漂泊的疲惫,不过犹豫了很久还是决定不回家也不请假,入乡随俗吧,年三十也好大年初一也好统统当作普通的日子去过,记得从前春节经常抱怨会扰民的爆竹声和无聊的春晚,现在想想其实能和家人聚在一起度过那么几天也是一种幸福。

    会社和煮粥
    要问我日本人口密度最大的地方,我想我会回答说乐天13楼的食堂,每天中午这块神奇的地方会在2个小时不到的时间里填满20+层towel里绝大多数的员工的肚子,虽然大家都表现的矜持且体面,没有燕南食堂那样站立吃饭的场景,但是端着盘子等在你身后的情况还是会时时发生,自从和同组的n个同学们有了端盘子等10来分钟的尴尬经历后,现在大家都纷纷选择自行解决,窗口的单人座风景还是不错的,运气好的话,可以看见富士山。公司就是这么一锅粥,有时候我会觉得,我们被当成了点缀品,日本员工是米,而多国部队则是莲子、红枣之类的东西,技术员工还好,特意的从国际上招来几个人去做英语化和RGR,实在是很奇怪的行为,更为奇怪的是明明有不少中国员工,却偏偏不让他们参与中国市场的工作,虽然与百度合作,却不让熟悉国内市场的百度开发团队和产品团队介入,他们究竟想煮怎样的一锅粥呢?
    人与人是无法相互了解的,每每无法理解社长大人时,我都会想起浪潮之巅中说过的公司基因论。抱着这样有一丝阿Q嫌疑的想法,我开始放弃周末看代码,取而代之的是看看闲书,睡睡懒觉,以及自己煮粥。

    盒子里的梦想
    梦想是人活着的证据,每一天的浮标,有梦想是幸福的,不幸的是许多人随着时间的推移忘记了自己的梦想。在校内上看到朋友分享的《盒子里的梦想》,不顾日本登录优酷10k/s的速度下载下来又反复看了3遍,晚上睡不着的时候想起来历数了一下小时候的梦想。记得很小的时候受十万个为什么的影响想长大后当天文学家,这个梦想在高中时被理所当然的掐灭,至今也就停留在读读三体的份上了,或许过段时间会买个折反天文望远镜配合无敌兔玩玩,但怕是仅此而已了。如今生活趋于波澜不惊死水一潭的状态,即便多睡上10个小时怕是也做不出一个梦来。

    朝会朝会!
    朝会是痛苦的,这种让一个coder早晨6点多起床的仪式也可以算作日本和世界其他国家的不同之处了。当然比起北京员工我们还算是幸运了吧,在北京严寒的冬天5点多起床绝对是我这辈子都不想体验的经历。
    还有8小时30分钟。

  •        东京终于开始变冷,不过还是不比北京的严寒,听说二月份会下雪,还是有点期待的。
           研修终于结束,配属进岗1周,每天Lunch Report之类非技术日系特色工作骤然少了许多,精神上也轻松不少,由于组里面欧美的员工也挺多,日报也可以用英语写了,老大很nice,mentor也很nice,回归便装不用再穿西装皮鞋也是一件无比愉快的事情。
           一连四天都在熟悉环境玩各种Apache开源的项目,主要还是大名鼎鼎的Cassandra和Solr,之前只是听说过没研究过代码,不过看了十来篇文章后感觉快速上手使用问题不大,Javaeye、Csdn这样的中文技术社区上的牛人和资源还是很多的,不过信息量太大的另一个结果就是我得加班了。
           学日语之后渐渐有点理解为什么日本人英语都不咋地,这两种语言的确有点跷跷板的感觉,一种学好了另一种就会一定程度的被削弱,最近和mentor说话总觉得不顺溜,仔细一想才发现经常用英语去表达日语的语序,所以颠来倒去的别扭,一如我一开始听其他的日本人员工说英语。
           前段时间如愿读完了三体三,趁周末连读9个小时读完的,很累也很爽,当然读的是网版的,回国了一定补上这份书钱。看完这种科幻之后会感觉现实也变的虚幻,时间过得很快,事业啊爱情啊都变渺小,当下的幸福反而显得弥足珍贵。
           最近读完了《沧浪之水》,虽然自己一直刻意的在远离那个圈子,但是还是很想了解一下的,读完之后发现阎真还是北大毕业的,另一本《曾在天涯》也想读读了。看《沧浪之水》的时候经常的会想起父母那一代人的圈子,以前妈妈曾经在耳边唠叨过许多遍的话也时时的闪现,读完了有无奈也有感叹,但不管怎么样现实也好怪圈也好没有什么东西能够恒久不变,人总是在一代一代的变得睿智。
           远离祖国想去影院看贺岁片是不可能的了,好在电驴威武,让子弹飞,非诚勿扰2都下到了高清,非2的一段仓央嘉措诗朗诵很感人,配乐我居然之前听过,记得是新浪博客上一个人做的《夜的钢琴曲》中的一个,没想到被非2用去了。不太喜欢让子弹飞,发哥表现的有点差强人意,搞笑血腥暴力冷没问题,感觉稍过了一些。
           来东京三个月零九天,反而觉得东京比北京更清静了,就现在这般看书看代码的日子,若放在以前怕是早也腻歪了,不过想想在国内恐怕很难得有这样的机会去潜下心来积累自己,这些行为无所谓好也无所谓坏,只是随意的被选中的而已,其实我也是最近才注意到,时间已经足够人们把一条路走过去再走回来,可悲的只是那些徘徊在路口不敢走,久而久之浪费了时间却又开始抱怨命运的人们而已。

  • 日本新年,不出去拍片对不起自己对不起时光。

    另:心疼肉疼的上了无敌兔。

    鎌倉海边I。

    鎌倉海边II。

    鎌倉海边III。

    箱根、桃源台。

    初めまして、富士山!

    箱根の色

  • 还是那句话,你不能指望一部成本只有10万的电影能做到怎样的尽善尽美。然而或许是因为江南的原作,也因为是在园子里拍摄的缘故,无论是演员略嫌生 涩的表演,还是让人颇为遗憾的配音和字幕,都变成了无伤大雅的小瑕疵。所以在最开始,无论如何也要向影片的幕后人员致以由衷的崇敬与感谢。

    黄蓉与郭靖的故事,大约是《此间》里最欢乐也是最简单的一段了。我特别喜欢演黄蓉的那位师姐,把这个年纪的姑娘独有的鲜艳和清脆演绎得活灵活现。那种对自己 的美貌和聪明有意无意的卖弄,在喜欢的人面前略带造作的表现和试探——就好像是小王子种的那朵玫瑰,教人忍不住摇头哭笑不得,却又舍不得将目光从她身上移 开。

    郭黄的恋情在《此间》里如同在老金笔下一般纯粹。它的欢乐与美好近似童话,源于它与现实的距离。因此我在看到令狐冲的梦境中出现了两人 结婚的场景,甚至两人有了孩子后很是恍惚。黄蓉坐在郭靖自行车后座,笑得比春天还要明媚还要花枝乱颤——这样的场景该是同现实绝缘的。我无法想象郭靖和黄 蓉面对毕业,面对职场,面对买房,面对生活的柴米油盐。这对笑笑闹闹的情侣,还是定格在桃红柳绿的校园里,来得更好一些。

    至于穆念慈,演员 同样选得极好,墙角兀自开放又兀自凋零的水仙一般的感觉。片中她穿着黑色的小礼服裙,孑然一身坐在紫藤花架下,脱下高跟鞋又穿上,之后又再次脱下,堪称全 片最唯美的片断。她与杨康的故事,没什么好说的——谁年轻时没织过几件毛衣呢。片子里的杨康总是一副睡眼迷蒙的样子,或许他醒悟得再早一些,与穆念慈的结 局就会改写。然而没有或许。

    “穆念慈的一生中,曾经有一次如此勇敢。”所以即便穆念慈写在那本日记里的情绪难免有或多或少的伤春悲秋、孤芳自赏,然而没有人忍心笑话这样的文字是无病呻吟——有谁真正忍心笑话年少时的自己?

    在影片中的梦境里,穆念慈成了畅销悲情小说作家,杨康则是台下的摄影记者。大概年轻时的感情最后总是用来错过,无论当初是否勇敢是否足够勇敢,岁月变迁后终成路人,从前的遗憾散落在风中,早已微不可闻。

    令 狐冲是贯穿全片的人物。江南将这个人物塑造得很有意思,听着他说话,就立马不可抑制地想起北大里的许多男生,有些才华,更有些口才,喜欢谈论政事,多半有 些愤青,以及总想干一番大事业,却屡屡碰壁,不断被现实捏扁搓圆。江南说他当年就是一个令狐冲,我想每个人年轻时或多或少都有些令狐冲的影子,只是多年以 后有的人练成了独孤求败,有的依旧只是个半吊子。

    乔峰在毕业时将自己留下来的书本、练习册之类留给令狐冲时,想到了康敏当年毕业时的情形。 有或许过几年,当令狐中毕业时,又会想起乔峰毕业时的情节。就这样,一批人收拾铺盖离开这个园子奔向前途未卜而张牙舞爪的未来,又有一批朝气而稚嫩的面孔 怀揣着对这个园子的向往来到这里。

    十年,二十年以后,又会有多少人还会记得当初某某曾经在这个园子里挂过一次科,失过一次恋,打过一次架,醉过一次酒?

    这座校园里来来往往的人实在太多,而你我不过是沧海中的一粟,算不上惊鸿的一瞥。曾经是此间的少年,一转身,一切都只能成为过往,随着岁月的沉淀而慢慢褪色。只有园子里的那些银杏叶,年年如故。

    就如那句已经被无数次引用乃至泛滥的话:经不住似水流年,逃不过此间少年。

    所 幸在自己心中——再幸运一些,便在彼此心中,还存留着那时的记忆。所以无论这所校园里送走多少批人,无论它在多少人心中承载了怎样的意义,与未名湖、博雅 塔、图书馆、五四路、宿舍楼、松林、博实……所有这一切有关的影像,在你的心中都有无法复刻的一版。无论它是多少人的北大,在你的心中,它就只是你心中的 那个北大。那些多年以后看起来那样幼稚可笑,那样不值一提的琐碎,只需由你自己小心收藏,便已足矣。

    There they were.

    There we were.

    贴的音乐是影片的片尾曲《转身之间》,演唱者是片中阿朱/康敏的扮演者孙欣。

  • 时光固执。前世末日终与我无关,于是开始想念深冬路边的炭火,以及半冰块状态的啤酒。2010这一页已然翻过,如同轻慢的曲调,惆怅且宛转,记不得开端也没有结局,唇边啤酒花的余香也被寒风匆匆带走,于是不及回味故事的我们已经掉进另一个故事。
    寸寸流年。就这么不经意间,心中被她填满了失落。蓦地回首,来时的路上已经开满了鲜花,顿足的一瞥就能感觉到灿烂,只是我们总在憧憬彼岸,以及彼岸的彼岸。故事总是这样,幽幽的在心头提起,如同杯中的红酒在灯烛萦绕的空间轻摇,烛火灭了,故事便在一片苍茫中终结。记得来路吗?我们好像已经回不去了。
    彼岸彼岸!记得叫醒我,当温暖的太阳在地平线上升起,当深褐的陆地出现在船头,当落基山深邃的影子映入蓝天,大风天的我们,就装作再一次的邂逅吧。

  • HOMESICK
    每天5点半,总会在工位上听见一段似曾相识的曲子,后来回想起来那是每次寒暑假回家时Z73快要进站时放的音乐,一并的还有合肥城的介绍,每当那个时候我会揉着惺忪的眼睛在轻摇的车厢里看窗外的华东平原,当然曲子其实并非同一首,仅仅是相似的开头,然而即便如此每天的这个时候我还是会不由自主的停下手里的工作在椅子上休息一会儿,其实思念并不是一种病,思念无非是一种状态,将它视作病的人会努力的摆脱它战胜它,而将它视作一种状态的人则会努力的改变自己让自己适应这种状态……

    奔跑
    2010这一年我一直在奔跑,一整年。
    我时常想像我能像阿甘那样的跑,如果我能。
    因为这是我唯一的24岁,数十天后,这个数字将变成无非篡改的历史,如果等到某一天我人生将结未结且百无聊赖只能用回忆去消磨可能的光阴的时候,也许我会想起,24岁这年,其实我跑得很欢乐,也许我错过了更多,但我并不需要后悔什么。

    忆昔颜
    一直想再玩一遍仙剑4,再听一遍亘古谣,但是我不会,并不是因为没有时间或者没有游戏,而是害怕再玩一次会冲淡前一次沉淀下的感觉。总是寒冷的也是美好的,总是温存的也是暧昧的,如此的光阴漫漫,如此的影影绰绰,其实在我意识的某个角落,你总在那儿微笑着陪着我也等着我,我会慢慢老去,而你,却永远不会变。

  • 来东京一月有余,衣食住行渐渐熟悉乃至习惯,但语言关仍然没有过。
    东京有长长的秋天,雨天和晴天都很有魅力,但仍然会想念北京和家乡。
    香山的叶子应该红了吧?
    钓鱼台的银杏应该很好看吧?
    北京周边的燕山还有许多地方没有去呢……
    家乡的路边,应该可以闻到桂花香了吧?
    想起电影《东邪西毒》里面的台词:
    “每个人都会经过这个阶段,见到一座山,就想知道山后面是什么。我很想告诉他,可能翻过山后面,你会发现没什么特别。回望之下,可能会觉得这一边更好。但我知道他不会听,以他的性格,自己不走过又怎会甘心?”
    我知道终有一天,时间会突然狂飙起来,将我的一生突然变成回忆,如果我不能记住我昨天或者前天做过什么,遇到过谁,又或者我已经无法分辨每一天的区别,那么活着和死去已然没有分别。昨天已经不能再拥有,但不应被轻易的遗忘。
    附上周横滨的片片。

  •     宇宙起源的问题有点像这个古老的问题:是先有鸡呢,还是先有蛋。换句话说,就是何物创生宇宙,又是何物创生该物呢?也许宇宙,或者创生它的东西已经存在了无限久的时间,并不需要被创生。直到不久之前,科学家们还一直试图回避这样的问题,觉得它们与其说是属于科学,不如说是属于形而上学或宗教的问题,然而,人们在过去几年发现,科学定律甚至在宇宙的开端也是成立的。在那种情形下,宇宙可以是自足的,并由科学定律所完全确定。
        关于宇宙是否并如何启始的争论贯穿了整个记载的历史。基本上存在两个思想学派。许多早期的传统,以及犹太教、基督教和伊斯兰教认为宇宙是相当近的过去创生的。(十七世纪时邬谢尔主教算出宇宙诞生的日期是公元前4004年,这个数目是由把在旧约圣经中人物的年龄加起来而得到的。)承认人类在文化和技术上的明显进化,是近代出现的支持上述思想的一个事实。我们记得那种业绩的首创者或者这种技术的发展者。可以如此这般地进行论证,即我们不可能存在了那许久;因为否则的话,我们应比目前更加先进才对。事实上,圣经的创世日期和上次冰河期结束相差不多,而这似乎正是现代人类首次出现的时候。

        另一方面,还有诸如希腊哲学家亚里斯多德的一些人,他们不喜欢宇宙有个开端的思想。他们觉得这意味着神意的干涉。他们宁愿相信宇宙已经存在了并将继续存在无限久。某种不朽的东西比某种必须被创生的东西更加完美。他们对上述有关人类进步的诘难的回答是:周期性洪水或者其他自然灾难重复地使人类回到起始状态。

        两种学派都认为,宇宙在根本上随时间不变。它要么以现在形式创生,要么以今天的样子维持了无限久。这是一种自然的信念,由于人类生命──整个有记载的历史是如此之短暂,宇宙在此期间从未显著地改变过。在一个稳定不变的宇宙的框架中,它是否已经存在了无限久或者是在有限久的过去诞生的问题,实在是一种形而上学或宗教的问题:任何一种理论都对此作解释。1781年哲学家伊曼努尔·康德写了一部里程碑式的,也是非常模糊的著作《纯粹理性批判》。他在这部著作中得出结论,存在同样有效的论证分别用以支持宇宙有一个开端或者宇宙没有开端的信仰。正如他的书名所提示的,他是简单地基于推理得出结论,换句话说,就是根本不管宇宙的观测。毕竟也是,在一个不变的宇宙中,有什么可供观测的呢?

        然而在十九世纪,证据开始逐渐积累起来,它表明地球及宇宙拭其他部分事实上是随时间而变化的。地学家们意识到岩石以及其中的化石的形成需要花费几亿甚至几十亿年的时间。这比创生论者计算的地球年龄长得太多了。由德国物理学家路德维希·破尔兹曼提出的所谓热力学第二定律还提供了进一步的证据,宇宙中的无序度的总量(它是由称为熵的量所测量的)总是随时间而增加,正如有关人类进步的论证,它暗示只能运行了有限的时间,否则的话,它现在应已退化到一种完全无序的状态,在这种状态下万物都牌相同的温度下。

        稳恒宇宙思想所遭遇到的另外困难是,根据牛顿的引力定律,宇宙中的每一颗恒星必须相互吸引。如果是这样的话,它们怎么能维持相互间恒定距离,并且静止地停在那里呢?

        牛顿晓得这个问题。在一封致当时一位主要哲学家里查德·本特里的信中,他同意这样的观点,即有限的一群恒星不可能静止不动,它们全部会落某个中心点。然而,他论断道,一个无限的恒星集合不会落到一起,由于不存在任何可供它们落去的中心点。这种论证是人们在谈论无限系统时会遭遇到的陷阱的一个例子。用不同的方法将从宇宙的其余的无限数目的恒星作用到每颗恒星的力加起来,会对恒星是否维持恒常距离给出不同的答案。我们现在知道,其正确的步骤是考虑恒星的有限区域,然后加上在该区域之外大致均匀分布的更多恒星。恒星的有限区域会落到一起,而按照牛顿定律,在该区域外加上更多的恒星不能阻止其坍缩。这样,一个恒星的无限集合不能处于静止不动的状态。如果它们在某一时刻不在作相对运动,它们之间的吸引力会引起它们开始朝相互方向落去。另一种情形是,它们可能正在相互离开,而引力使这种退行速度降低。

        尽管恒定不变的宇宙的观念具有这些困难,十七、十八、十九甚至至二十世纪初斯都没有人提出过,宇宙也许是随时间演化的,不管是牛顿还是爱因期坦都失去了预言宇宙不是在收缩便是在膨胀的机会。因为牛顿生活在观测发现宇宙膨胀以前的二百五十年,所以人们实在不能责备他。但是爱因斯坦应该知道得更好。他在1915年提出的广义相对论预言正在膨胀。但是他对稳恒宇宙是如此之执迷不悟,以至于要在理论中加上一个使之和牛顿理论相调和并用于抗衡引力的因素。

        1929年埃德温·哈勃的宇宙膨胀的发现完全改观了有关其起源的讨论。如果你把星系现在的运动往时间的过去方向例溯,它们在一百亿和二百亿年前之间的某一时刻似乎应该重叠在一起,在这个称为大爆炸奇点的时刻,宇宙的密度和时空的曲率应为无穷大。所有的已知的科学定律在这种条件下都失效了。这对科学是一桩灾难。科学所能告诉我们的一切是:宇宙现状之所以如此是因为它是过去是处于那种形态。但是科学不能解释为何它在大爆炸后的那一瞬间是那个样子的。

        这样,许多科学家对此结论感到不悦就毫不足怪了。为了避免存在大爆炸奇点以及由此引起的时间具有开端的结论,人们进行了若干尝试。其中一种称为稳恒态理论。它的思想是,随着星不互相分离而去,由连续产生的物质在星系之间的空间中形成新的星系。这样宇宙就多多少少以今日这样的状态不但已经存在了,而且还将继续存在无限长时间。

    为了使宇宙继续膨胀并创生新物质,稳恒态模型需要修改广义相对论。但是所需要的产生率非常低:大约为每年每立方公里一个粒子,这不会和观测相冲突。该理论还预言了,星系和类似物体的平均密度不但在空间上而且在时间上必须是常数。然而,由马丁·赖尔和他的剑桥小组进行的银河系外射电源的普查显示,弱源的数目比强源的数目多得多。人们可以预料,弱的源在平均上讲应是较遥远的。这样就存在两种可能性:或许我们正位于宇宙中的一个强源不如平均源频繁的区域;或者过去的源的密度更高,光线在离开这些源向我们传播时更遥远的距离。这两种可能性没有一种和稳恒态理论相协调,因为该理论预言射电源密度不仅在空间上而且在时间上必须为常数。1964年阿诺·彭齐亚斯和罗伯特·威尔逊发现了从比我们的银河系遥远得多的地方起源的微波辐射背景,这是对该理论的致命打击。它具有从一个热体发射出的辐射的特征谱,尽管在这种情形下热这个字根本不适合,因为其温度只不过比绝对零度高2.7度而已。宇宙是一个既寒冷又黑暗的地方!稳恒态理论中没有一种产生具有这种谱的微波的合理机制,所以稳恒态理论难逃被抛弃的命运。
     
        1963年两位俄国科学家欧格尼·利费席兹和伊萨克·哈拉尼科夫提出另一种思想,企图用来避免大爆炸奇性。他们说,只有当星系直接相互接近或离开时,它们才会在过去的一个单独的点上相重叠,才导致无限密度状态。可惜的是,星系还多少具有一些侧向速度,宇宙早斯就可能存在过这样的一种收缩相,这时,星系虽然曾经非常靠近过,却能设法避免互相撞击。然后宇宙会继续重新膨胀,而不必通过一种无限的密度的状态。

        当利费席兹和哈拉尼科夫提出其设想时,我正是一名研究生,亟需一个问题以完成博士论文。因为是否有守大爆炸奇点的问题对于理解宇宙的起源关系重大,所以它引起了我的兴趣。我和罗杰·彭罗斯一道发展了一套数学工具,用以处理这个以及类似的问题。我们指出,如果广义相对论是正确的,任何合理的宇宙模型都必需起始于一个奇点。这就表明,科学能够预言,宇宙必须有一个开端,但是它不能够预言宇宙应如何启始的:正因为如此,人们必须求助于上帝。

        审察人闪对奇性看法的变化是十分有趣的。当我还是一名研究生时,几乎没人认真地看待之。现在,作为奇性定理的一个结果,几乎无人不信宇宙是从一个奇眯起始的,物理定律在该处失效。然而,现在我认为,虽然存在奇点,物理定律仍能确定宇宙是如何起始的。

        广义相对论是一种被称为经典的理论。也就是说,它没有顾及这个事实,即粒子不具备精确定义的位置和速度,由于量子力学的不确定性原理位置和速度的小范围内被抹平,不确定性原理不允许我们同时既测量又测量速度。因为正常情形下时空的曲率在和粒子位置的不确定性相比较时非常大,这些以我们没什么影响。然而奇性定理指出,在现在的宇宙膨胀相的开端,时空被高度地畸变,并且具有很小的曲率半径。不确定性原理在这种情形下变成非常重要。这样,广义相对论因预言奇性而导致自身的垮台。为了讨论宇宙的开端,我们需要一种结合广义相对论和量子力学的理论。

    那种理论便是量子引力论。我们尚未知道正确的量子引力论应采取的准确形式。我们此刻所拥有的最佳候选者是超弦理论,但它仍有许多耒解决的困难。然而,人们可以期望,任何有前途的理论都应具有某些特征。其中之一便是爱因斯坦的思想,引力效应由被物质和能量所弯曲甚至卷曲的时空来体现。物体在弯曲空间中沿着最接近于直线的轨迹运行。然而,由于时空是弯曲的。所以它们的路径就显得是弯折的,正如同被引力场所弯折的似的。

        另一种在这个终极理论中可以预料的要素是里查德·费因曼的设想,即量子理论可以表达成对历史的求和。该思想可以最简单的形式表达成,每颗粒子在时间中走过任何可能的路径或历史。每一路径或历史具有依其形状而定的概率。为了使这种思想可行,人们必须考虑在虚时间里发生的历史,而不是在我们感受生活于其中的实时间城发生的历史。虚时间听起来有点像是科学幻想的东西,其实它是定义得很好的数学概念。它在某种意义上可被认为是和实时间成直角的时间方向。人们把所有具有某种性质粒子历史,譬如讲在某些时刻通过某些点的历史的概率加起来。然后应把这结果延拓到我们在其中生活的实的时空中去。这不是量子力学的最熟知的手段,但它给出和其他方法得到的相同结果。

    在量子引力的情形下,费因曼的对历史求和的思想牵涉到对宇宙的不同的可能性的历史,也就是对不同的弯曲时空的求和。这些代表了宇宙和它之中的任何东西的历史。人们必须指明,在对历史的求和中,应包括哪些种类的弯曲空间。这种空间种类包括具有奇性的的空间,则该理论就不能确定这类空间的概率。相反的,它们必须以某种任意的方法被赋予概率。这意味着科学不能预言时空这类奇性历史的概率。这样,它就不能预言宇宙应如何运行。然而,宇宙可能处于由只包括非奇性弯曲空间的求和所定义的状态。在这种情形下,科学定律就把宇宙完全确定,人们就不必吁求宇宙之外的某物来确定宇宙如何启始。由只对非奇性历史的求和确定宇宙的状态有点像一名醉汉在灯柱之下找他的钥匙:这儿也许不是他遗失之处,但是这儿是他可能找到的仅有的地方。类似的,宇宙也许不处于由对非奇性历史求和定义的状态,但这是科学能预言应当什么样子的仅有的状态。

        1983年詹姆·哈特尔和我提出,宇宙的状态应由对一定种类历史的求和给出。这类历史由没有奇性的,而且具有有限尺度却没有边界或边缘的弯曲空间组成。它们像是地球的表面,只不过多了两维。地球的表面具有有限的面积,但是它不具有任何奇性、边界或边缘。我曾经用实验验证过这一点。我作过环球旅行,而没有落到外面去。

    哈特尔和我所做的设想可以被重新表达成:宇宙的边界条件是它没有边界。只有当宇宙处于这个无边界状态时,科学定律自身才能确定每种可能历史的概率。因此,只有在这种情形下,已知的定律才会确定宇宙应如何运行。如果宇宙处于任何其他的状态,则历史求和中的弯曲空间的种类就要包括具有奇性的空间。人们必须求助于已知科学定律以外的某种原理,才能确定这种奇性历史的概率。这种原理就会是外在于我们宇宙的某种东西。我们不能从我们宇宙之中将其推导出来。而另一方面,如果宇宙是处于无边界状态,在原则上,我们就能在不确定性原理容忍的限制之仙完全确定宇宙应如何运行。

        如果宇宙处于无边界状态,那对于科学而言就太好了,但是我们如何才能知道事情究竟是否如此呢?其答案是,无边界设想对宇宙应如何运行作出了明确的预言。如果这些预言不与观测相符合,则我们就能得出结论说,宇宙不处于无边界状态。这样,在哲学家卡尔·波普定义的意义上说,无边界设想是一种好的科学理论:它可被观测证伪。

        如果观测不与预言相符合,我们就知道在可能历史的种类中必须有奇性。然而,这就大致上是我们知道的一切。我们不能计算出这种奇性历史的概率,因此我们不能预言宇宙应如何运行。有人也许会认为,如果不可预见性只发生在大爆炸处,那不会太碍事,那毕竟是一百亿或二百亿年以前的事。但是,如果可预言性在大爆炸的非常强引力场中失效,那么只要恒星坍缩它也会失效。这种事件仅在我们的银河系中每周就会发生几次。我们的预言能力甚至按照天气预报的标准来说也是非常差劲的。

        当然,人们还会说,我们根本不必在乎发生在一颗遥远恒星处的可预言性的失效。然而,在量子理论中任何不被实际上禁止的东西都能够并将要发生。这样,如果可能历史的种类中包括奇性空间的话,这些奇性可在任何地方发生,而不仅在大爆炸处以及坍缩星之中。这意味着,我们不能预言任何东西。反过来说,我们能够预言事件的这一事实是反对奇性并赞同无边界设想的实验证据。

        那么无边界设想为宇宙做出什么预言呢?第一个预言是,因为宇宙的怕有可能的历史在广延上都是有限的,所以人们用来作为时间测度的任何量都必须有一个最大值和一个最小值。这样宇宙就有一个开端和一个终结。在实时间中的开端即是大爆炸奇点。然而在虚时间中这个开端就不再是奇点。相反的,它有点像地球的北极。如果人们把地球表面的纬度当作时间的类似物,则可以说地球的表面从北极开始。然而,北极是地球上完全普通的一点。它没有任何特殊之处,同样的定律在北极正如同在地球上的其他地方同样地成立。类似的,我们用来标志作撛谛槭奔淠谟钪娴钠羰紨的事件是时空中的一个通常的点,正如其他的点那样。科学定律在开端处正如在其他地方一样成立。

        人们从和地球表面的类比,也许会预料到,正如北极和南极相似一样,宇宙的终结会和开端相类似。然而,北南二极是对应于虚时间向实时间延拓,就会发现宇宙在实时间中的开端和它的终结可以非常不同。

        约纳逊·哈里威尔和我对无边界条件的含义作过一个近似计算。我们把宇宙当作一个完全光滑和均匀的背景来处理,在这个背景上存在密度的小微扰。宇宙在之前时间中从非常小的半径开始膨胀。最初的这种膨胀称作暴涨,也就是说,宇宙尺度在比一秒还要短暂非常多的每一时间间隔中得到加倍,这正如在某些国家中每一年价格都要加倍一样。第一次世界大战后的德国也许创下了通货膨胀的世界纪录,一捆面包的价格在几个月的时间内从一个马克涨到一百万马克。但是没有任何东西可与似乎在极早期宇宙发生过的暴涨相比拟,宇宙尺度在一秒的极微小的部分时间内至少增加了一百万亿亿亿倍。这当然是发生在当局政府之前的事。

        暴涨在如下意义上来说,是件好事,它产生了一个在大尺度上光滑而均匀的宇宙,而且这个宇宙以刚好避免坍缩的临界速度膨胀。它还能在相当严格的意义上把宇宙的怕有内容从无中创生出来,这是暴涨的又一好处。当宇宙像北极那样的一个单独点时,它不包含有任何东西。然而,在我们可观测到的宇宙部分至少有十的八十次方颗粒子。所有这些粒子从何而来呢?其答案是,相对论和量子力学允许物质从能量中以粒子反粒子对的形式创生出来。那么能量又是从何而来以创生物质呢?其答案是,它是从宇宙的引力能中借来的。宇宙亏欠了极大数量的负引力能的债务,它刚好和物质的正能量相平衡。其结果便是凯恩斯经济学的胜利:一个充满物质的、充满活力的正在膨胀的宇宙。引力能的债务只有在宇宙终结时才能偿付清。

        早期宇宙不能是完全均匀一致的,因为否则的话就会违反量子力学的不确定性原理。相反的,必须存在对均匀密度的一些偏差。无边界设想意味着,这些密度差别是从它们的基态开始,也就是说,它们是和不确定性原理相一尽可能的小。然而,这些差别在暴涨时被放大了。在暴涨时期结束之后,留下的宇宙是一些地方比另一些地方膨胀得稍快一些。在膨胀稍慢的区域,物质的引力吸引使膨胀进一步减慢。该区域最终会停止膨胀,并且收缩形成星系和恒星。这样,无边界设想可以解释我们四周看到的所有复杂结构。然而,它没有给宇宙作出单独的预言。相反地,它预言整整一族可能的历史,每一个历史都具有自己的概率。也许可能有这样的历史,工党在上次英国竞选中取胜,虽然这种概率很小。

    无边界设想对于上商在宇宙事务中的作用含义极其深远。人们现在广泛接受,宇宙按照定义很好的定律演化。这些定律可能是上帝钦定的,但是它似乎不去干涉宇宙去违反这些定律。然而,直到不久以前,人们都认为这些定律不能适用于宇宙的开初。那就要依赖上帝去旋紧发条,并让宇宙顺着它的意愿的方式去运行。这样,宇宙的现状是上帝对初始条件选择的结果。

        然而,如果某种像无边界设想的东西是正确的话,则情况就会大大改观。在那种情形下,物理定律甚至也适用于宇宙的开端,这样上帝就没有选取初始条件的自由。当然它在选取宇宙要服从的定律上仍然具有自由。然而,这里并没有许多选择的余地。也许只存在很少数目的定律,这些定律是自洽的,并能导致像我们自己这么复杂的生物的存在,他能询问什么是上帝的性质。

        甚至即使只存在唯一的一族可能的定律,它也只不过是一族方程。究竟是什么东西将生命之火赋予这些方程,使之产生一个受它们制约的宇宙呢?难道终结的统一理论是如此之咄咄逼人,以至于其自身的实现成为不可避免?虽然科学能解决宇宙如何启始的课题,它仍然无法回答这个问题:为何宇宙必须存在?我对此没有答案。

  •     很忙碌很忙碌的若干天,从羽田机场开始我开始认识这个国家。
        日语中的认真是“真面目”这三个汉字,这么几天下来如果谁问我日本给我的印象我想这三个字应该是再贴切不过了,当然还有许多,不过都是褒义词,我很想找一些贬义词,不过抱歉的是我至今还是无法总结出什么。
        认真到极小极小的细节、干净到满大街无尘、热情到让我感到抱歉,每一件事情都很让我惊讶:为什么他们有很多车却不会堵车?为什么他们人口密度很大可是我却看不到几个人?(至少在品川东京塔和银座都是如此,个别类似中华街的地方会比较热闹),为什么他们任何地方的窗子都那么明亮?——北京每天擦一次都不可能没有灰尘——为什么地铁就在楼群中间呼啸而过却不会影响写字楼里工作的人们?
        也仔细研究了一些问题,比如他们的交通灯比北京人性化许多,白天十字路口会根据两边的车流量调整时间,晚上会有设定按钮,需要过马路时先按按钮。(话说北京经常出现4个红灯的情况,我想大家应该懂的……)
        地铁系统很发达,分普通急行特急之类,停靠的站会有不同,但是非常准时——日本人可以在网上查到具体的时间(精确到分钟)然后根据自己需要过去坐就可以了,基本上2分钟一班车,另外似乎没有人家在某视频。网站上看到的那种情况呵呵,普通的一般进去都有坐,特急的会有点挤,但不会比北京1号线或5号线更挤。
        空气质量很好,水可以直接饮用(直接水龙头接下的水看不到任何沉淀物),垃圾分类扔大家很自觉,公共场所电梯会靠左站大家很自觉,一般的楼梯左边上右边下大家也很自觉,我不喜欢一一陈述这里好那里好,但是我着实为国内生活环境感到悲哀,北京上海这种集中全国资源的地方至今一团乱,现在要谈赶超这个邻居尚需时日。
        消费水平是很高,如果你初来日本,把什么价格都兑换成rmb的话,但是,我现在使用了另一种换算方法,就是直接除以100,于是我每个月的月薪就是3k左右,房租850,一顿快餐或者拉面大约是个位数,大餐也不过二三十,5D2是1400,交通费是2元(月票60),等等等等……如此一来工资水平和国内二线普通职工差不多,但物价水平感觉就很低了,生活质量自然也很高。
        ok准备早睡早起了~~贴几张照片休息。

  • 一、关于gcov工具
       gcov伴随gcc发布。gcc编译加入-fprofile-arcs -ftest-coverage 参数生成二进制程序,执行测试用例生成代码覆盖率信息。
       1、如何使用gcov
       用GCC编译的时候加上-fprofile-arcs -ftest-coverage选项,链接的时候也加上。
    fprofile-arcs参数使gcc创建一个程序的流图,之后找到适合图的生成树。只有不在生成树中的弧被操纵(instrumented):gcc 添加了代码来清点这些弧执行的次数。当这段弧是一个块的唯一出口或入口时,操纵工具代码(instrumentation code)将会添加到块中,否则创建一个基础块来包含操纵工具代码。

      gcov主要使用.gcno和.gcda两个文件。.gcno是由-ftest-coverage产生的,它包含了重建基本块图和相应的块的源码的行号的信息。.gcda是由加了-fprofile-arcs编译参数的编译后的文件运行所产生的,它包含了弧跳变的次数和其他的概要信息。


      gcov执行函数覆盖、语句覆盖和分支覆盖。

      举个例子,程序代码由main.c和tmp.c两个文件组成,编译、链接、运行程序
      编译:gcc -fprofile-arcs -ftest-coverage -o myapp main.c tmp.c
      运行:./myapp
      然后 输入
      命令: gcov main.c,gcov tmp.c

      这个时候当前目录下有了新的文档main.c.gcov,和tmp.c.gcov
      若想保存覆盖率文件,上述命令修改为:
      命令:gcov main.c >>yourfilename,gcov tmp.c >>yourfilename

    查看结果:
            -:   65:/***************************************************************************************
            -:   66: * name         : main
            -:   67: * return       : 0 OK
            -:   68: *                other ERROR
            -:   69: * history      : 2006-06-13
            -:   70:****************************************************************************************/
            -:   71:int main( int argc, char *argv[] )                                                      /* the entrance for program

    */
    function main called 4 returned 100% blocks executed 81%
            4:   72:{
            4:   73:        int loop = 0 ;
            4:   74:        int ret = OK ;
            4:   75:        int empty_line = 0 ;
            4:   76:        int code_line = 0 ;
            4:   77:        int annotation_line = 0 ;
            4:   78:        struct stat file_stat ;                                                         /* use for file state */
            4:   79:        char recu_name[256] ;
            4:   80:        char *pwd = NULL ;
            4:   81:        char *tmp = NULL ;
            -:   82:
            4:   83:        if( argc = MAX_FILE ){                                    /* file size larger than max size */
        #####:   98:                        printf( "file [%s] size is over 64K! \ncontinue....\n", argv[loop] ) ;
        #####:   99:                        continue ;
            -: 100:                }

    ##### 这就是表示没跑到的

       
    各个参数使用如下:    
    gcov [-b] [-c] [-v] [-n] [-l] [-f] [-o directory] sourcefile
    -b
        Write branch frequencies to the output file, and write branch summary info to the standard output. This option allows you to

    see how often each branch in your program was taken.
        //b(ranch),分支测试
    -c
        Write branch frequencies as the number of branches taken, rather than the percentage of branches taken.
    -v
        Display the gcov version number (on the standard error stream).
        //太简单了吧,我上面用了
    -n
        Do not create the gcov output file.
    -l
        Create long file names for included source files. For example, if the header file `x.h' contains code, and was included in the

    file `a.c', then running gcov on the file `a.c' will produce an output file called `a.c.x.h.gcov' instead of `x.h.gcov'. This can

    be useful if `x.h' is included in multiple source files.
    -f
        Output summaries for each function in addition to the file level summary.
    -o
        The directory where the object files live. Gcov will search for `.bb', `.bbg', and `.da' files in this directory.
    新版的是这么说的
         -o directory│file
           --object-directory directory
           --object-file file
               Specify either the directory containing the gcov data files, or the
               object path name. The .gcno, and .gcda data files are searched for
               using this option. If a directory is specified, the data files are
               in that directory and named after the source file name, without its
               extension. If a file is specified here, the data files are named
               after that file, without its extension. If this option is not sup-
               plied, it defaults to the current directory.
    其他的更有新版的-u,
         -u
           --unconditional-branches
               When branch counts are given, include those of unconditional
               branches. Unconditional branches are normally not interesting.
          -p
           --preserve-paths
               Preserve complete path information in the names of generated .gcov
               files. Without this option, just the filename component is used.
               With this option, all directories are used, with ’/’ characters
               translated to ’#’ characters, ’.’ directory components removed and
               ’..’ components renamed to ’^’. This is useful if sourcefiles are
               in several different directories. It also affects the -l option.
     

    二、关于lcov

    Lcov则是上的gcov 结果展现的一个前端,可以将覆盖率信息转换成html展现。
    1、如何使用lcov
    Makefile 在编译和link环节都加入 -fprofile-arcs -ftest-coverage 选项    

    收集覆盖率数据生成app.info文件
    命令:lcov --directory .  --capture --output-file myapp.info
    Capturing coverage data from .
    Found gcov version: 3.4.6
    Scanning . for .gcda files ...
    Found 1 data files in .
    Processing ./TestQuery.gcda
    Finished .info-file creation

    转换成html格式
    命令:genhtml -o results myapp.info
    Reading data file app.info
    Found 18 entries.
    Found common filename prefix "/home/search/isearch_yb/src"
    Writing .css and .png files.
    Generating output.
    Processing file cpp/core/basis/GlobalDef.h
    Processing file cpp/core/search/QueryCache.h
    ...
    Writing directory view page.
    Overall coverage rate: 117 of 514 lines (22.8%)

    2、查看html文件
    html包含代码覆盖的详细信息

    更多命令选项

    http://ltp.sourceforge.net/coverage/lcov/lcov.1.php?PHPSESSID=26d7173d1f492f5f691715ef8b7d0b40

    参考资料
    1、
    http://ltp.sourceforge.net/coverage/

     

  • 离开

    60多个小时后,我将离开这座小巧安静的城市,150多个小时后,我将离开呆了20多年的祖国,开赴未知。比起清点行李,我想我此刻更需要的是清点我的思绪。时间在我眼前冷漠的走过,桌子台板下压着我很久以前的照片,以及更久远的回忆,拉开窗帘的那一瞬间我恍惚了,疑惑了,犹豫了,窗外的阳光多好,为什么不能停下来享受这边的风景呢?

    心疼

    有时候,远大的抱负和自私的欲望之间并没有明晰的界限,只有平衡的命运法则自始至终的存在着,幸福和痛苦并存,得到和失去并存,如你我此时明明心痛难忍也要表现得如死水一般沉寂,默默的看着彼此煎熬。你知道的,我心疼着你,且心疼你因为心疼我心疼而心疼。

    沙漠

    很多年了,一直在追寻那场梦,沙漠和蓝天的梦。不知道为什么会执念这么久,也许仅仅因为我爱上了那场梦。很多次的我想,也许那片沙漠里其实并没有什么,蓝天也是平凡的蓝天,北京的秋天里,也很容易见到,可是你知道,那并不顶用,也许只有等我老了,我才会不去在意那些,被我称为年少的幻想。

    蛙跳

    蛙跳时代终于来临了,蛙跳由两个步骤组成——跳跃、和静止。静止是前一次跳跃的终结,也或许是下一次跳跃的开端,当然也可能是蛙跳的终点。蛙跳的过程中,方向会变,距离会变,会失去联系,也会短兵相接。但是记住,任何时候言谈成败都是愚蠢的——你知道的,这儿没有那个定义。

  • 忆锦里之——属于色彩

     

    忆锦里之——大家都在吃。

     

    奇梦缠我百余世,
    三千怪客访敝居。
    正待美酒对明月,
    一朝觉醒尽惘然。

  •     真希望这冷冷的雨水能将天地变得通荡透彻起来,这个骄阳似火的季节即将过去,眼睁睁的看着前天昨天今天浇铸成回忆,时间一点一点湮没过往,无奈的苦涩的残忍的冷漠的报复的你知道我知道。
        燕园处处是流景,然人非人物非物处处是陌生的喧嚣,竟似恍惚百年已汹涌而逝。
        于是停下脚步扳着手指数剩下的日子,爱着的日子,被爱的日子,还可以爱的日子。
        告别,不舍,最后的日子里我们似乎已经开始为曾经的无知爱慕分期付款,一片汪洋相隔你临风眺望,看不到我的背影会不会感伤?相逢数百日悠悠时光我们记得流年忘记喧嚣记得相知忘记相别,梦着醒着,醒着梦着,理解不理解以至沉默、无言以至离开。
        离别,就是明与暗交界处停留的一瞬,就是残忍的转身与无奈的啜泣,就是相别千日不能言喻的孤寂,就是遥遥无期的再会,你我间故事的休止符。
        曾经沧海难为水,
        除却巫山不是云。
        取次花丛懒回顾,
        半缘修道半缘君。
        如果,失去你,是我前世不修,如果,伤害你,是我今世为恶,如果注定我此生会因你而伤。可是,究竟为什么要走呢?如果若干年不见,竟忘记了彼此的容颜和声音;如果千里相隔,心灵不再可以相互包容,我们真的会变得比陌生人还有陌生吗?
        记起若干年以前,就曾经被困扰在一个想法中:如果某一天突然来到一个完全陌生的地方,没有一个相识的故人,也没有一件熟悉的事物,我是不是可以忘记所有的过去开始一次新生,甚至等同于成为第二次生命呢?那个时候是很不如意的日子,所以拼命的想逃避一些现实,这个想法在当时仿佛镇痛剂一样给我带来了短暂的快乐的幻觉,直到心理上产生了依赖,这个想法终于像病毒一样蔓延,以至于在几个月前第一次看到这条路的时候,我就知道我逃不了这个诱惑……
        后来,后来生活的很平静,简单到乏味的来往穿梭于那个城市中,平淡到即便努力回忆,也只能记起起同样的朝阳和夕阳,生活如同一阵风,吹过那个城市,再也不回头。
        你走之后,我每天会站在窗前发一会儿呆,梅雨一般的秋雨在空中连成一条条细线,坠落,汇聚,再升华,如此往复,或许这样,可以让我暂时忘记离别。

  •       纠结了很久还是决定在blogbus安家了,Hi空间的诸多不便不一一论述了,无论SNS、微博还是blog空间,对于创作者来说无非是展示自己的地方,但是人与人之间关系有远有近,实名或者匿名都有一部分需求,blogbus匿名做得很好,facebook、人人网实名做的也很好,但是,百度的定位却完全看不清楚,被匿名的非主流占了主流,偏偏又将页面做得和facebook雷同——我只是想有个地方静静的记录生活,我不需要开心农场,不需要“被搭讪”,不需要一堆鼠标装饰也不需要即时聊天——花费人力物力开发这些模块的同时,空间的整体设计品质却每况愈下,相册始终bug着,css模板编辑也找不到了,处处散发着非主流的气息(莫非空间的pm同学是?。。。),到最后逼得我这样需求的用户沉默以至于离开。用户有不同群体,我只能说Hi空间现在是在向tieba、51.com这样的用户群体看齐了,然而如果想把一个互联网产品做成瑞士军刀,那么结果就是死亡。如果只是在找用户群,那我想你们又错了,产品是死的人是活的,人的品位亦会上升,与其去找那群人,不如去改变并培养一群人。

          以上。

  • 读孟岩《理解矩阵》,算是给数年前几乎学烂忘光的线性代数补了一课;
    读熊节《重构》,受益良多,可惜没机会读完了,大型项目的重构是一门学问,可惜设计模式还是没理解透,否则读来必然功力精进;
    读吴军《浪潮之巅》,对硅谷向往之情油然而生,即便无法去工作,也希望以后能有机会去走走;
    想读《三体3》,无奈是等不到了,以后读电子版的吧;
    昨天刚看Inception,想象力和创造力是这个麻木世界的瑰宝,其实梦与不梦都不重要,我们的长久,也许只是外面的一瞬;
    前些天无意看到以前百度的同事生活作息,惊叹羡慕,电脑是我们这批人的魔魇,入道已是难上难,能摆脱电脑的控制出道的人,他是我遇到的第一个,希望我能成为第二个……
    同时想看《光耀生命》;
    收拾行李,七七八八的书很多很重,怕是带不走几本了,语言书不敢丢,4本标日1本托福就已经是一摞了,其他的,想来想去还是选择带几本偏文的书,高中背过的《时文选萃》陪我度过了许多年,这次决定带到东京,唐诗三百首也会带去,可惜燕子送的《苏东坡传》和《苏童作品精选》是带不走了,另有林语堂徐志摩等作品,也罢,读研期间钻研技术,偶尔翻翻三两页也不是读书的心情,持笔作文荒废已久,怕是走不到那个境界了。
    明天会回到那个小城市,熟悉且陌生的地方。

    See you soon

  • 1.产品思路要清晰,无论开发还是市场宣传,要有合力向一个方向打造品牌精神(Apple);
    2.不要盲目膨胀,员工与部门,人贵精,与其用市场价招聘5个人,不如用5倍的市场价招到/培养一个高手;膨胀的结果是高成本人力、臃肿的层级结构;
    3.企业亲和力不能仅依靠PR,群众的眼睛是雪亮的,任何时候被无端攻击的正常的,而隐忍则是美德;
    4.市场往往不会像看上去的那么平静,当你看到一个机会,你必须考虑如下三点:1,比你先看到的人为什么没去做(机会本身);2,比你后看到的人多不多,会怎么做(市场生态);3,自己能做到什么程度(自身能力)。
    5.要保持创业团队的执行力,管理层级不能太多;层级少,人如果太多领导者会疲惫;
    6.要紧盯技术革命风向,一个新技术可以轻易成就一批公司,也可以轻易让另一批公司关门;变化是必要的,但不能盲目;
    7.无论何时都要创新,无论是技术还是产品还是管理手段,书上的课堂的都是无数人走过的路,要努力去走别人没走过的路;
    8.轻视表面的现象,重视本质的问题。

  • 工作日很疲惫,周末睡到中午。然后突然发现百度空间改版成facebook了……

    还有4周国内语言培训结束,回家休养生息3周,9月底飞东京,再培训3个月,11年1月才回归民工本质正式开始干活儿,想来会是时间轻缓光阴平淡的数月。

    最近经常会想起以前的同学同事故人,一毕业少了许多联系,散落江湖不知道是在偷享清福还是在操劳奔命,抑或也会偶尔想起我。

    自从上次九寨回来,很久没出游了,相机也是许久没用,还是想去西藏,真是十分之遗憾。

  • 丹精を込める: たんせいをこめる        解释:竭尽全力
    罪を着せる:つみをきせる        
    解释:嫁祸于人
    泥中のはちす:でいちゅうのはちす         解释:出淤泥而不染
    天道様と米の飯は何処ににも在る:てんどうさまとこめのめしはどこにもある        解释:天无绝人之路
    遠き慮り無ければ必ず近き憂有りJ:とおきおもんぱかりなければかならずちかきうれいあり         解释:人无远虑必有近忧
    高木は風に折らる:こうぼくはかぜにおらる         解释:树大招风
    只の鼠でない:ただのねずみでない          解释:非池中物
    多勢に無勢:たぜいにぶぜい         解释:寡不敌众
    根を詰める:こんをつめる         解释:聚精会神
    滴り積もりて淵となる:したたりつもりてちとなる       解释:滴水成渠,积少成多
    下手につく:したてにつく      解释:甘拜下风
    恋に身をやつす:こいにみをやつす       解释:为伊消得人憔悴
    恋の鞘当て:こいのさやあて      解释:争风吃醋
    座上の空論:ざじょうのくうろん        解释:纸上谈兵
    雑魚の魚交じり:ざこのととまじり      解释:滥竽充数
    大海の一粟:たいかいのいちぞく       解释:沧海一粟
    光陰矢の如し:こういんやのごとし        解释:光阴似箭
    猫に小判:ねこにこばん        解釈:对牛弹琴
    目も当てられない:めもあてられない       解釈:惨不忍睹
    蛙の子は蛙:かえるのこはかえる      解釈:有其父必有其子
    三人寄れば文殊の知恵:さんにんよればもんじゅのちえ      解釈:三个臭皮匠赛过诸葛亮
    猿も木から落ちる:さるもきからおちる        解釈:智者千虑,必有一失

  •     毕业季的忙碌,居然可以像这几天暴雨一般的倾泻,铺天盖地袭到案前让人消极到麻木,最近的深居简出慷慨的把寂寞留给了我。
        上楼下楼都能遇见大包小包进出的同学,看看愈加清冷的楼道,才意识到又是三年结束。如果人生也有年轮,我想我会以三年为界标注一次,6年前高中毕业、3年前本科毕业,今天研究生生涯结束,以及可预见的未来,3年后,6年后……每个三年都会告别一些人,迎来一些人,遗忘一些人,重逢一些人。无数次的擦肩而过杂乱的组合,成就了一个又一个故事,也许生命本该如此,令人不舍却无力抗拒,无论是空间还是时间都义无反顾的载着我们向人生的下一站飞驰,曾经的霓虹,过往的流景,灯火阑珊的醉意,一幅幅鲜活的画面还不及回首就已变得遥远,我们只能默默祈祷期待在未来某个转角的偶遇。
        是的,因为有你们,曾经的风雨都会化为记忆中的阳光,离别的行囊中塞满了这三年的浮光掠影,也许将远方当作我们的归所会有一丝安慰,性格使然我不会拥有仰天大笑出门去的豁达,我只是不想回头,去听这在园中流弋着的离歌。
        今天以后,园子里不会再有我们忙碌奔波的身影,
        今天以后,我们的躯体和岁月都将被别人收购,
        今天以后,这里的一草一木将变得遥远陈旧,
        今天是你我人生路上的罅隙,岁月的裂痕,
        哦,千余晨昏即相别,往事如烟不可追。
        日之夕矣,熟悉的身影在朱红色的门口斜斜的站定,拖着长长不舍的影子依恋在门内,门外一片红彤,西门那条车水马龙的窄路竟变得悄无声息,不知是谁用京腔在咿咿呀呀的练声,很多双眼睛张望着门外的世界,是的,门外不再是象牙塔,门外是斑斓喧嚣的社会,门外是流离孤寂的命运,门外是我们扑朔迷离的余生……跨过这道槛,我们将分开各自的旅途,手里攒着一张张单程票开始满世界的奔波,也许会在某一天突然想起你我或是傻笑或是发呆或是玩世不恭的面孔,却无法向过去的彼此发一声问候,离别在一瞬间,遗忘却是一辈子,冥冥中也许正是命运在捉弄我们相忘江湖。
        暂别暂别,品岁月,阅众生,经生死,尝成败,也痛快!

  • 微软日语输入法 使用方法:

    输入时,当打上一个假名的罗马字时,它将自动变成对应的假名,如果是输入假名或标点,按回车即可。如果是输入日语中的汉字,那么就在输入汉字的假名以后按空格键。就像用汉字的拼音输入法一样,可能会有重码,再按空格键,它将切换到下一个,如果再按空格键,它将弹出选择框,选择好后,按回车确定。输入法有自动记忆功能,即最近选用过的词会自动列在最前面。

    微软日语输入法 假名-罗马字对照表:

    あ ア a い イ i う ウ u え エ e お オ o

    か カ ka き キ ki く ク ku け ケ ke こ コ ko

    さ サ sa し シ si/shi す ス su せ セ se そ ソ so

    た タ ta ち チ chi つ ツ tsu て テ te と ト to

    な ナ na に ニ ni ぬ ヌ nu ね ネ ne の ノ no

    は ハ ha ひ ヒ hi ふ フ fu へ ヘ he ほ ホ ho

    ま マ ma み ミ mi む ム mu め メ me も モ mo

    や ヤ ya ゆ ユ yu よ ヨ yo

    ら ラ ra り リ ri る ル ru れ レ re ろ ロ ro

    わ ワ wa を ヲ o/wo

    ん ン n

    が ガ ga ぎ ギ gi ぐ グ gu げ ゲ ge ご ゴ go

    ざ ザ za じ ジ zi/ji ず ズ zu ぜ ゼ ze ぞ ゾ zo

    だ ダ da ぢ ヂ ji/di づ ヅ zu/du で デ de ど ド do

    ば バ ba び ビ bi ぶ ブ bu べ ベ be ぼ ボ bo

    ぱ パ pa ぴ ピ pi ぷ プ pu ぺ ペ pe ぽ ポ po

    きゃ キャ kya きゅ キュ kyu きょ キョ kyo

    しゃ シャ sya しゅ シュ syu しょ ショ syo

    ちゃ チャ cya ちゅ チュ cyu ちょ チョ cyo

    にゃ ニャ nya にゅ ニュ nyu にょ ニョ nyo

    ひゃ ヒャ hya ひゅ ヒュ hyu ひょ ヒョ hyo

    みゃ ミャ mya みゅ ミュ myu みょ ミョ myo

    りゃ リャ rya りゅ リュ ryu りょ リョ ryo

    ぎゃ ギャ gya ぎゅ ギュ gyu ぎょ ギョ gyo

    じゃ ジャ zya/ja じゅ ジュ zyu/ju じょ ジョ zyo/jo

    びゃ ビャ bya びゅ ビュ byu びょ ビョ byo

    ぴゃ ピャ pya ぴゅ ピュ pyu ぴょ ピョ pyo

    微软日语输入法 用法说明:

    1、 拨音(ん/ツ)用“n”表示。如:新闻(しんぶん)sinbun、民族(みんぞく)minzoku。

    2、 促音(小つ)将后面的子音重写两个来表示。如:国家(こっか)kokka、雑志(ざっし)zasshi。但在つ的前面则加“t”来表示,如:発着(はっちゃく)hatchaku。(但在输入时仍应输入hacchaku)

    3、ぢ/ヂ其读音为ji,但在输入时应该输入di。而づ/ヅ的读音虽为zu,但在输入时应该输入du。

    4、要输入し/シ时可以输入si或shi。要输入じ/ジ可以输入ji或zi。

    5、は在作助词用时,读作wa,但输入仍为ha。 を/ヲ的读音为o,但输入时为wo。

    微软日语输入法 输入技巧:

    1.っ(促音)双打后一个假名的罗马字发音的第一个辅音,如“もっと”为“motto”。

    2.拨音ん用nn表示;促音用后面辅音字母表示,如:“はってん”为“hattenn”

    3.小写的あいうえお 用la,li,lu,le,lo即可。

    4.“コーヒー”中的“ー”是“P”右上方的“-”号键。

    5.片假名、平假名的转换可用:击F6键变成平假名,击F7键变成片假名。

    6.在日语输入法中有一个“IME Pad”,里面有手写输入。

    注:

    1."IMEパット"功能 :相当于手写板,可以反查日语汉字.不会读音时可以选用此功能.

    2.ALT+~ :可切换英文输入法Direct Input(图标A) 和日文输入法Hiragana(图标あ)

    3.快捷键:F6转换为平假名,F8转换为半角片假名,F9转换为全角英文数字,F10转换为半角英文数字

    4.F5偏旁发音输入大法:只要懂偏旁发音可以很快输出怪僻字,如“軾”用くるま+F5输入,出现输入板界面,并看到了该字,点击它就可以把它输入到文档。

    5.常用符号输入法:

    きごう+F5 得到所有记号

     たんい   得到所有单位符号

     すうがく   得到所有数学符号

     ぎりしゃ   得到希腊字母符号

     

    Convert to Hiragana F6 key Shift + F6 Ctrl + U Convert to Full-width Katakana F7 key Shift + F7 Ctrl + J Convert to half-width F8 key Shift + F8 Ctrl + O