Ray's profileRay HouseBlogGuestbookNetwork Tools Help

Ray House

游走于天地之间
Tech Room Whiteboard
Please wait...
Sorry, the comment you entered is too long. Please shorten it.
You didn't enter anything. Please try again.
Sorry, we can't add your comment right now. Please try again later.
To add a comment, you need permission from your parent. Ask for permission
Your parent has turned off comments.
Sorry, we can't delete your comment right now. Please try again later.
You've exceeded the maximum number of comments that can be left in one day. Please try again in 24 hours.
Your account has had the ability to leave comments disabled because our systems indicate that you may be spamming other users. If you believe that your account has been disabled in error please contact Windows Live support.
Complete the security check below to finish leaving your comment.
The characters you type in the security check must match the characters in the picture or audio.
June 10

(转)算法与追MM

本文转自网络
本来不想在这里发娱乐的东西,不过这篇实在好玩,就转过来了
 
////////////////////////////////////////////////////////////////////
    
     动态规划,基本上就是说:
     你追一个MM的时候,需要对该MM身边的各闺中密友都好,这样你追MM这个问题就分解为对其MM朋友的问题,只有把这些问题都解决了,最终你才能追到MM。
    该方法适用于聪明的MM,懂得“看一个人,不是看他如何对你,而是看他如何对他人。”的道理,并且对付这样的MM总能得到最优解。
    该方法的缺点是开销较大,因为每个子问题都要好好对待。。。。

////////////////////////////////////////////////////////////////////

    贪心法,基本上就是:
    你追一个MM的时候,从相识到相知,每次都采用最aggressive的方式,进攻进攻再进攻!从不采用迂回战术或是欲擒故纵之法!目标是以最快的速度确立两人关系。
    该法优点是代价小,速度快,但缺点是不是每次都能得到最优解。。。。。

////////////////////////////////////////////////////////////////////

     回溯算法,基本上就是:
     追一个MM,但也许你还是情窦初开的新手,不知道如何才能讨得MM的欢心,于是你只好一条路一条路的试,MM不开心了,你就回溯回去换另一种方式。当然其间你也许会从某些途径得到一些经验,能够判断哪些路径不好,会剪枝(这就是分支估界了)。你也可以随机选择一些路径来实施,说不定能立杆见影(这就是回溯的优化了)但总的来说,你都需要一场持久战。。。。
    该算法一般也能得到最优解,因为大多数MM会感动滴!!但其缺点是开销大!除非你是非要谈一场恋爱不可,否则不推荐使用。特别是你可能还有许多其他的事情要做,比如学习,比如事业。。。。

////////////////////////////////////////////////////////////////////

WSDL学习笔记

本文内容转载自网络,为本人学习WSDL的笔记,方便阅读之用

WSDL 指网络服务描述语言 (Web Services Description Language)。

  • WSDL stands for Web Services Description Language
    WSDL 指网络服务描述语言 
  • WSDL is written in XML
    WSDL 使用 XML 编写
  • WSDL is an XML document
    WSDL 是一种 XML 文档
  • WSDL is used to describe Web services
    WSDL 用于描述网络服务
  • WSDL is also used to locate Web services
    WSDL 也可用于定位网络服务
  • WSDL is not yet a W3C standard
    WSDL 还不是 W3C 标准

    The WSDL Document Structure
    WSDL文档结构

    A WSDL document describes a web service using these major elements:
    WSDL 文档是利用这些主要的元素来描述某个 web service 的:

    Element
    元素
    Defines
    定义
    <portType> The operations performed by the web service
    web service 执行的操作
    <message> The messages used by the web service
    web service 使用的消息
    <types> The data types used by the web service
    web service 使用的数据类型
    <binding> The communication protocols used by the web service
    web service 使用的通信协议

    WSDL Example
    WSDL 案例

    This is a simplified fraction of a WSDL document:
    这是某个 WSDL 文档的简化的片段:

    <message name="getTermRequest">

    <part name="term" type="xs:string"/>
    </message>

    <message name="getTermResponse">
    <part name="value" type="xs:string"/>

    </message>
    <portType name="glossaryTerms">
    <operation name="getTerm">
    <input message="getTermRequest"/>
    <output message="getTermResponse"/>
    </operation>
    </portType>

    In this example the <portType> element defines "glossaryTerms" as the name of a port, and "getTerm" as the name of an operation.
    在上述案例中,<portType> 元素将 "glossaryTerms" 定义为一个端口的名称,将 "getTerm" 定义为一项操作的名称。

    The "getTerm" operation has an input message called "getTermRequest" and an output message called "getTermResponse".
    "getTerm" 操作包含一条名为"getTermRequest" 的输入信息和一条名为"getTermResponse".的输出信息

    The <message> elements define the parts of each message and the associated data types.
    <message>元素定义了每个元素部件以及相关的数据类型。

    Compared to traditional programming, glossaryTerms is a function library, "getTerm" is a function with "getTermRequest" as the input parameter and getTermResponse as the return parameter.
    对比传统的编程,glossaryTerms 是一个函数库,而 "getTerm" 是带有输入参数 "getTermRequest" 和返回参数 getTermResponse 的一个函数。

    Operation Types
    操作类型

    The request-response type is the most common operation type, but WSDL defines four types:
    请求-响应是最普通的操作类型,不过 WSDL 定义了四种类型:

    Type
    类型
    Definition
    定义
    One-way The operation can receive a message but will not return a response
    此操作可接受消息,但不会返回响应
    Request-response The operation can receive a request and will return a response
    此操走可接受一个请求并会返回一个响应
    Solicit-response The operation can send a request and will wait for a response
    此操作可发送一个请求,并会等待一个响应
    Notification The operation can send a message but will not wait for a response
    此造作可发送一条消息,但不会等待响应

     

    One-Way Operation
    One-Way 操作

    A one-way operation example:
    一个 one-way 操作的例子:

    <message name="newTermValues">
    <part name="term" type="xs:string"/>
    <part name="value" type="xs:string"/>

    </message>
    <portType name="glossaryTerms">
    <operation name="setTerm">
    <input name="newTerm" message="newTermValues"/>

    </operation>
    </portType >

    In this example the port "glossaryTerms" defines a one-way operation called "setTerm".
    在这个例子中,端口 "glossaryTerms" 定义了一个名为 "setTerm" 的 one-way 操作。

    The "setTerm" operation allows input of new glossary terms messages using a "newTermValues" message with the input parameters "term" and "value". However, no output is defined for the operation.
    个 "setTerm" 操作可接受新术语表项目消息的输入,这些消息使用一条名为 "newTermValues" 的消息,此消息带有输入参数 "term" 和 "value"。不过,没有为这个操作定义任何输出。


    Request-Response Operation
    “请求—回复”操作

    A request-response operation example:
    下面列举一个“请求—回复”操作的案例:

    <message name="getTermRequest">
    <part name="term" type="xs:string"/>

    </message>

    <message name="getTermResponse">
    <part name="value" type="xs:string"/>
    </message>
    <portType name="glossaryTerms">
    <operation name="getTerm">
    <input message="getTermRequest"/>
    <output message="getTermResponse"/>
    </operation>
    </portType>

    In this example the port "glossaryTerms" defines a request-response operation called "getTerm".
    这个案例中的端口"glossaryTerms"定义了一个名为"getTerm"的“请求—回复”操作。

    The "getTerm" operation requires an input message called "getTermRequest" with a parameter called "term", and will return an output message called "getTermResponse" with a parameter called "value".
    "getTerm" 操作会请求一个名为 "getTermRequest" 的输入消息,此消息带有一个名为 "term" 的参数,并将返回一个名为 "getTermResponse" 的输出消息,此消息带有一个名为 "value" 的参数。

    WSDL bindings defines the message format and protocol details for a web service.
    “WSDL 绑定”可为 Web service 的定义信息格式和协议细节。


    Binding to SOAP
    绑定到 SOAP

    A request-response operation example:
    一个 请求 - 响应 操作的例子:

    <message name="getTermRequest">
    <part name="term" type="xs:string"/>
    </message>

    <message name="getTermResponse">
    <part name="value" type="xs:string"/>
    </message>
    <portType name="glossaryTerms">
    <operation name="getTerm">
    <input message="getTermRequest"/>
    <output message="getTermResponse"/>
    </operation>
    </portType>
    <binding type="glossaryTerms" name="b1">
    <soap:binding style="document"
    transport="http://schemas.xmlsoap.org/soap/http" />
    <operation>

    <soap:operation
    soapAction="http://example.com/getTerm"/>
    <input>
    <soap:body use="literal"/>
    </input>
    <output>

    <soap:body use="literal"/>
    </output>
    </operation>
    </binding>

    The binding element has two attributes - the name attribute and the type attribute.
    Binding[绑定]元素 元素有两个属性 - name 属性和 type 属性。

    The name attribute (you can use any name you want) defines the name of the binding, and the type attribute points to the port for the binding, in this case the "glossaryTerms" port.
    name 属性定义 binding 的名称,而 type 属性指向用于 binding 的端口,在这个例子中是 "glossaryTerms" 端口。

    The soap:binding element has two attributes - the style attribute and the transport attribute.
    soap:binding元素 元素有两个属性 - style 属性和 transport 属性。

    The style attribute can be "rpc" or "document". In this case we use document. The transport attribute defines the SOAP protocol to use. In this case we use HTTP.
    Style[样式] 属性 style 属性可取值 "rpc" 或 "document"。在这个例子中我们使用 document。transport 属性定义了要使用的 SOAP 协议。在这个例子中我们使用 HTTP。

    The operation element defines each operation that the port exposes.
    Operation [操作] 元素定义了每个端口提供的操作符。

    For each operation the corresponding SOAP action has to be defined. You must also specify how the input and output are encoded. In this case we use "literal".
    对于每个操作,相应的 SOAP 行为都需要被定义。同时您必须如何对输入和输出进行编码。在这个例子中我们使用了 "literal"。

    Universal Description, Discovery and Integration (UDDI) is a directory service where businesses can register and search for Web services.
    UDDI 是一种目录服务,企业可以使用它对 Web services 进行注册和搜索。

    UDDI,英文为 "Universal Description, Discovery and Integration",可译为“通用描述、发现与集成服务”。

    The full WSDL 1.2 syntax as described in the W3C Working Draft is listed below.
    在W3C工作草案中所描述的全部WSDL1.2的语法,具体罗列如下:


    <wsdl:definitions name="nmtoken"? targetNamespace="uri">
    <import namespace="uri" location="uri"/> *
    <wsdl:documentation .... /> ?
    <wsdl:types> ?
    <wsdl:documentation .... /> ?
    <xsd:schema .... /> *
    </wsdl:types>
    <wsdl:message name="ncname"> *
    <wsdl:documentation .... /> ?
    <part name="ncname" element="qname"? type="qname"?/> *
    </wsdl:message>
    <wsdl:portType name="ncname"> *
    <wsdl:documentation .... /> ?
    <wsdl:operation name="ncname"> *
    <wsdl:documentation .... /> ?
    <wsdl:input message="qname"> ?
    <wsdl:documentation .... /> ?
    </wsdl:input>

    <wsdl:output message="qname"> ?
    <wsdl:documentation .... /> ?
    </wsdl:output>
    <wsdl:fault name="ncname" message="qname"> *
    <wsdl:documentation .... /> ?
    </wsdl:fault>

    </wsdl:operation>
    </wsdl:portType>
    <wsdl:serviceType name="ncname"> *
    <wsdl:portType name="qname"/> +
    </wsdl:serviceType>
    <wsdl:binding name="ncname" type="qname"> *
    <wsdl:documentation .... /> ?
    <-- binding details --> *
    <wsdl:operation name="ncname"> *
    <wsdl:documentation .... /> ?
    <-- binding details --> *
    <wsdl:input> ?
    <wsdl:documentation .... /> ?
    <-- binding details -->

    </wsdl:input>
    <wsdl:output> ?
    <wsdl:documentation .... /> ?
    <-- binding details --> *
    </wsdl:output>
    <wsdl:fault name="ncname"> *
    <wsdl:documentation .... /> ?
    <-- binding details --> *
    </wsdl:fault>

    </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="ncname" serviceType="qname"> *
    <wsdl:documentation .... /> ?
    <wsdl:port name="ncname" binding="qname"> *
    <wsdl:documentation .... /> ?
    <-- address details -->

    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>
    下一步应转至SOAP

  • 近段时间的一些安排

    6月-7月
     
    考试月,准备IBM主机竞赛设计文档
     
    7月-10月
     
    IBM主机竞赛实现阶段(未确定)
     
    SOA开源框架
    学习ServiceMix,推荐先学习一下技术:
    Maven,ant,xfire(CFX)
    wsdl,soap,javascript
    web Service
    Spring,eclispe
     
    实习(?)
     
    或许还可能去趟别的地方
    May 24

    (转)Java中的十大人物

    James Gosling : Java之父
    文/陶文
    作为Java之父,James Gosling的名字可谓是耳熟能详。当人们评论一种编程语言时,总喜欢捎带着把下蛋的母鸡一起带上。Java做为中国的编程语言学习者餐桌上有限的那么几样餐点中的流行款式,自然是让James Gosling风光不已。虽然James Gosling现在已经不是领导Java发展潮流的领军人物了,做为Sun的开发者产品组的CTO,怎么算来也是身居高位了,俗事缠身吧,但是这并不妨碍其对于Java一如既往的爱护,表达着各式各样鲜明的观点,引发一场又一场的争论。
    James Gosling是很爱Java的——是啊,哪有当父母的不爱自己的孩子的呢。James Gosling也是很爱Sun的——是啊,哪有当领导的不爱自己的公司的呢。于是我们在批评.NET的安全性的队伍前头,在褒扬Java性能的队伍前头,在抨击SWT开倒车的队伍前头,在给NetBeans大唱赞歌的队伍前头,我们都看到了James Gosling的身影。无论对错、偏见或者固执,至少说明了Gosling的鲜明个性丝毫没有受到年龄的影响。也许也只有这种天才而偏执的人物才能创造出Java这般伟大的语言来吧。
    Bill Joy : 软件业的爱迪生
    文/徐昊
    Joy生于1954年,1982年与Vinod Khosla, Scott McNealy和Andy Bechtolsheim一起创建了Sun Microsystems,并从那时起担任首席科学家,直到2003年离开。他是一位令人崇敬的软件天才,他在软件和硬件的历史上留下了无数令人仰止的传奇。
    在上个世纪80年代早期,DARPA与BBN达成协议,准备将Vinton Cerf和Bob Kahn设计的TCP/IP协议添加到Berkeley UNIX中。Bill Joy被委派来完成这项任务,然而他却拒绝将BBN的TCP/IP协议栈添加到BSD中,因为在他的眼中BBN的TCP/IP实现还远不够好,于是他就写了一个高性能的TCP/IP协议栈。John Gage回忆道,“BBN和DARPA签署了巨额合同来实现TCP/IP协议,然而他们的员工所编写的代码远没有一个研究生所做的好。于是他们邀请Bill Joy参加他们的一个会议,这位研究生穿着一件T-Shirt就出现了,他们询问他,‘你是如何做到的呢?’Bill回答说,‘这是非常简单的一件事,你读一下协议然后就可以编码了’”。除了TCP/IP协议,基于分页的虚拟内存系统最早也是由Bill Joy添加到Berkeley UNIX内核当中的。同时他还是vi、csh、早期Pascal编译器的作者。
    关于Bill Joy惊人的软件才能流传最广的一个传奇是,据说他在上研究生的时候,想看看自己能不能写一个操作系统出来,于是就在三天里写了一个非常简陋,但是可以使用的Unix系统, 传说就是BSD的前身。虽然如此夸张的才情令人难以置信,但是考虑到主角是Bill Joy,还是有一定的可信度的。Bill Joy硕士毕业之后,决定到工业界发展,于是就到了当时只有一间办公室的Sun, 他作为主要设计者参与了SPARC微处理器的设计,负责设计最为关键的一部分电路。这样兼精软硬件的天才实在是让人不得不佩服啊。1995年,Sun发布了轰动世界的Java语言。当然,Bill Joy对Java也作出了不少的贡献,首先是JINI——一种针对分布式服务的基础连接技术。任何可以内嵌JVM的电子设备都可以通过JINI相互连接;JXTA是基于Java的P2P协议,允许互联网上的软件进行点对点交流和协作。
    这个其貌不扬的瘦高个,有着凌乱的亚麻色头发,被《财富》杂志誉为“网络时代的爱迪生”的技术狂人,在短短的二十年间,创造了无数令人心动的软件。在MIT的BBS上曾有一个帖子,说微软电话面试有一道题,问“Who do you think is the best coder, and why?”虽然回复的帖子中大家都声明列举的best coder排名不分先后,然而大多数人仍把Bill Joy列在第一位,或许可以从一个侧面验证Bill Joy在广大Programmer心目中的地位吧。
    Joshua Bloch :  Java 2 元勋
    文/莫映
    早在1996年,适逢Java刚刚崭露头角,年内好事连连。先是1月份发布JDK 1.0,然后是5月底在旧金山召开首届JavaOne大会,年末又是JDK 1.1紧跟其后。正是在Java技术如火如荼、大展拳脚的背景之下,Joshua Bloch来到了Sun,开始了他带领Java社区步入“迦南美地”的漫长历程。
    很快,他被从安全组调入核心平台组,从事底层API设计。至此以后,每逢JDK的重大版本发布,总能在其中见到Joshua的“妙笔”。JDK 1.1中的java.math、1.4中的assertions,还有大家所熟识的Collections Framework皆是Joshua一手打造。其中的Collections Framework还获得了当年的Jolt大奖。到了J2SE 5.0研发阶段,身为平台组构架师的Joshua接掌了Tiger大旗,其核心地位已然无人可以替代。作为Tiger的代言人和领路人,没有谁比Joshua更清楚Tiger。相信大家一定还记得Joshua当年仿效英国诗人William Blake所做的咏Tiger诗八首,优雅的笔调,透出大师深厚底蕴的同时,也道出了Tiger的几大重要特性,这些特性是自JDK 1.1引入Inner Class以来,Java最大的语法改进。
    Java风雨十年,从JDK 1.1到J2SE 5.0,Joshua实在功不可没。难怪有人戏言,假如将James Gosling比作Java之父,那么Joshua就是一手将Java “哺育”成人的Java之母。Joshua对Java的贡献还不止于JDK,提起他的大作《Effective Java》(Addison Wesley, 2001),相信Java粉丝们一定耳熟能详。该书荣膺2002年度Jolt大奖,且备受James Gosling推崇。书中57条颇具实用价值的经验规则,来自Joshua多年来在JDK开发工作中,尤其是Collections Framework设计中的实践心得,各个有理有据,剖析深入,也足见其深厚功力。该书对Java社群的影响,犹如C++社群中的《Effective C++》。Joshua对JCP的贡献也不小。他是JSR201和JSR175的领导者,前者包含了Tiger四大语言特性,后者则为Java提供了元数据支持。此外,他还是JSR166的发起人之一(该JSR由Doug Lea领导),并且是许多其他JSR的参与者。Joshua目前是JCP为数不多的几个执行委员会成员之一。
    Joshua Bloch给人的印象是谦逊平和,行事低调而不喜抛头露面,一个典型的技术人员和实干家。不过即便如此,也丝毫不会减弱他对Java技术的卓越贡献和对Java社区的绝对影响力。有人说,如果他能更彰显一些,就很有可能成为Java开发者中的领军人物,就有如Don Box之于微软社群。
    2004年7月初,就在Tiger发布在即之时,就在Jusha Bloch刚刚荣获Sun“杰出工程师(Distinguished Engineer)”的称号之时,他突然离开Sun而去了正值发展态势迅猛的Google。当他离开Sun的消息在TSS发布之后,众多拥趸表达了怀念与不舍之情。一年过去了,我们还没有获知Joshua的任何近闻,似乎又是他行事低调的一贯作风所致,不知他在Google状况如何。希望Joshua依然能继续“摩西未尽的事业”,以他的影响力推动Java社群继续前行。据称,《Effective Java》的下一版会加入Java 5.0的部分,让我们翘首以待吧。
    Bruce Eckel : 功勋卓著的机会主义分子
    文/孟岩
    Bruce Eckel原本是一位普通的汇编程序员。不知道是什么因缘际会,他转行去写计算机技术图书,却在此大红大紫。他成功的秘诀不外乎两点:超人的表达能力和捕捉机会的能力。他最早的一本书是1990年代初期的《C++ Inside & Out》,随后,在1995年他写出了改变自己命运的《Thinking in C++》。如果说这本书充分表现了他作为优秀技术作家的一面,那么随后他写作《Thinking in Java》并因此步入顶级技术作家行列,则体现了他作为优秀的机会主义分子善于捕捉机会的另一面。写作中擅长举浅显直接的小例子来说明问题,语言生动,娓娓道来,特别适合于缺乏实践经验的初学者。因此《Thinking in Java》俨然成为天字第一号的Java教科书,对Java的普及与发展发挥着不可忽略的作用。不过公允地说,Bruce Eckel的书欠深刻。比如在“Thinking in…”系列中对设计模式的解说就有失大师水准。这一方面是因为书的定位非常清晰,另一方面也是因为Bruce太过分心赶潮流,未能深入之故。TIJ之后,他预言Python将火,就匆匆跑去写了半本《Thinking in Python》。后来Python并未如期而旺,于是他也就把书稿撂在那里不过问了,机会主义的一面暴露无遗。我们也可以善意的猜测一下,他的下一个投机对象会是什么呢?Ruby?.NET?MDA?总之,是什么我都不奇怪。
    Rickard Oberg :J2EE奇才
    文/熊节
    Oberg的作品很多,流行的代码生成工具XDoclet和MVC框架WebWork都出自他的手笔。这两个框架有一个共同的特点,即它们的功能虽然简单,但设计都非常优雅灵活,能够很方便地扩展新功能甚至移植到新环境下使用。优雅的设计源自Oberg的过人才华,简单的功能则折射出他玩世不恭的人生态度。正是这两种特质的融合,才造就了这个不世出的奇才。
    1999年,JDK 1.3发布,其中带来了一个重要的新特性:动态代理(Dynamic Proxy)。当所有人都还在对这项新技术的用途感到迷惑时,Oberg发现用它便可以轻松攻克EJB容器实现中的一些难关。这一发现的产物就是一本《Mastering RMI》,以及大名鼎鼎的JBoss应用服务器。但Oberg很快又让世人见识了他的玩世不恭。由于和总经理Marc Fleury在经营理念上不合,Oberg抱怨“法国的天空总让我感到压抑”,甩手离开了自己一手打造的JBoss。此后的几年里,他和老友Hani Suleiman不断地对JBoss的“专业开源”模式和Marc Fleury的商人味道冷嘲热讽,让众人为他的孩子气扼腕叹息。
    2002年10月,微软推出Petstore示例应用的.NET版本,并宣称其性能比Java Petstore高出数倍。正是Oberg深入分析这个示例应用的源代码,在第一时间指出它大量运用了SQL Server专有的特性,性能对比根本不具参考价值。后来Oberg又先后关注了AOP和IoC容器,两者都成为了J2EE架构的新宠。
    Doug Lea : 世界上对Java影响力最大的个人
    文/KIT
    如果IT的历史,是以人为主体串接起来的话,那么肯定少不了Doug Lea。这个鼻梁挂着眼镜,留着德王威廉二世的胡子,脸上永远挂着谦逊腼腆笑容,服务于纽约州立大学Oswego分校计算器科学系的老大爷。
    说他是这个世界上对Java影响力最大的个人,一点也不为过。因为两次Java历史上的大变革,他都间接或直接的扮演了举足轻重的脚色。一次是由JDK 1.1到JDK 1.2,JDK1.2很重要的一项新创举就是Collections,其Collection的概念可以说承袭自Doug Lea于1995年发布的第一个被广泛应用的collections;一次是2004年所推出的Tiger。Tiger广纳了15项JSRs(Java Specification Requests)的语法及标准,其中一项便是JSR-166。JSR-166是来自于Doug编写的util.concurrent包。
    值得一提的是: Doug Lea也是JCP (Java小区项目)中的一员。
    Doug是一个无私的人,他深知分享知识和分享苹果是不一样的,苹果会越分越少,而自己的知识并不会因为给了别人就减少了,知识的分享更能激荡出不一样的火花。《Effective JAVA》这本Java经典之作的作者Joshua Blosh便在书中特别感谢Doug是此书中许多构想的共鸣板,感谢Doug大方分享丰富而又宝贵的知识。这位并发编程的大师级人物的下一步,将会带给Java怎样的冲击,不禁令人屏息以待。
    Scott McNealy :SUN十年来的掌舵者
    文/KIT
    McNealy,Sun的CEO、总裁兼董事长。他曾经狂傲的说:“摧毁微软是我们每个人的任务。”这位英勇的硅谷英雄,似乎带头起义,试图组织一个反微软阵线联盟,以对抗微软这股庞大的托拉斯恶势力。他时常口出惊人之语,在公开场合大肆的批评微软,并曾经说微软的.NET是.NOT。
    Scott McNealy先后毕业于哈佛大学及史丹佛大学,分别持有经济学学士学位及企管硕士。1982年MBA毕业的他和三个同学共同合伙创建了Sun,并于1984年成为Sun的执行官。“要么吞了别人,不然就被别人吞了”是Scott McNealy的名言录之一。他擅长以信念带动员工,鼓舞士气。极富自信的他,对于认定的事,总是坚持自己的想法,因此有人形容他是一个刚愎自用的决策者。
    身为Sun这艘船的掌舵者,Scott McNealy能够看多远,Sun就能走多远。Scott McNealy认为将来软件界是一个只有服务,没有产品的世代。他希望打造出Sun不是一个纯靠硬件赚钱的公司。从Open Source到Open Solaris,Sun希望可以成为提供整合性解决方案的服务厂商。Solaris 10 + UltraSPARC是否可以像Scott McNealy希望的是下一匹世纪黑马呢?Sun是否能以股价来证明华尔街分析师及普罗大众的诽短流长?Scott McNealy是否能带领着Sun成为继微软之后的下一个巨人,一场场IT界的争霸战值得我们拭目以待。
    Rod Johnson : 用一本书改变了Java世界的人
    文/ 刘铁锋
    Rod在悉尼大学不仅获得了计算机学位,同时还获得了音乐学位。更令人吃惊的是在回到软件开发领域之前,他还获得了音乐学的博士学位。有着相当丰富的C/C++技术背景的Rod早在1996年就开始了对Java服务器端技术的研究。他是一个在保险、电子商务和金融行业有着丰富经验的技术顾问,同时也是JSR-154(Servlet 2.4)和JDO 2.0的规范专家、JCP的积极成员。
    真正引起了人们的注意的,是在2002年Rod Johnson根据多年经验撰写的《Expert One-on-One J2EE Design and Development》。其中对正统J2EE架构的臃肿、低效的质疑,引发了人们对正统J2EE的反思。这本书也体现了Rod Johnson对技术的态度,技术的选择应该基于实证或是自身的经验,而不是任何形式的偶像崇拜或者门户之见。正是这本书真正地改变了Java世界。基于这本书的代码,Rod Johnson创建了轻量级的容器Spring。Spring的出现,使得正统J2EE架构一统天下的局面被打破。基于Struts+Hibernate+Spring的J2EE架构也逐渐得到人们的认可,甚至在大型的项目架构中也逐渐开始应用。
    Rod Johnson的新作《Expert One-on-one J2EE Development without JEB》则更让人吃惊,单单“Without EJB”一词就会让大多数J2EE架构师大跌眼镜了。不过Rod Johnson可能仅仅是想通过“Without EJB”一词表明应该放开门户之见。这也是Rod Johnson一贯的作风,。也许正是这种思想,促使得Rod Johnson创建了Spring,真正改变了Java世界。
    Alan Kay :Java的精神先锋
    文/徐昊
    Sun的官方Java教材中有一句话,说Java是“C++的语法与Smalltalk语义的结合”。而Smalltalk的创造者就是Alan Kay。
    Alan Kay于1970年加入Xerox公司的Palo Alto研究中心。早在70年代初期,Alan Kay等人开发了世界上第二个面向对象语言Smalltalk,因此,Alan Kay被誉为Smalltalk之父。2003年,Alan Key因为在面向对象程序设计上的杰出贡献,获得了有计算机界的诺贝尔奖之称的ACM Turing Award。
    Alan Kay成名于Smapltalk和OOP,而Java虽然在语言上类似于C,但是在语义上非常接近Smalltalk,很多Java中的设计思想在Alan Kay的文献中找到根源,也有些人将Alan Kay尊为Java思想的先驱。不过遗憾的是似乎Alan Kay老先生对Java并不买账,反倒攻击说Java是存在致命缺陷的编程语言,Java的成功不是由于Java本身的内在价值,而是其商业化的成功。Alan Kay欣赏的是Lisp,他认为Lisp是软件的麦克斯韦方程,其中的许多想法是软件工程和计算机科学的一部分。看来拥有Alan Kay这样一位重量级的Java先驱仍是我们Java一厢情愿的单恋吧。
    Kent Beck : 领导的敏捷潮
    文:刘铁锋
    Beck全家似乎都弥漫着技术的味道。生长在硅谷, 有着一个对无线电痴迷的祖父,以及一个电器工程师父亲。从小就引导Kent Beck成为了业余无线电爱好者。
    在俄勒冈州大学读本科期间,Kent Beck就开始研究起模式。然而在他最终拿到计算机学位之前,他却是在计算机和音乐中交替学习。似乎Java大师都能够有这样的能耐,另一Java大牛Rod Johnson同样也拥有音乐学的博士学位。
    Kent Beck一直倡导软件开发的模式定义。早在1993年,他就和Grady Booch(UML之父)发起了一个团队进行这个方面的研究。虽然著有了《Smalltalk Best Practice Patterns》一书,但这可能并不是Kent Beck最大的贡献。他于1996年在DaimlerChrysler启动的关于软件开发的项目,才真正地影响后来的软件开发。这次的杰作就是XP(极限编程)的方法学。
    和软件开发大师Martin Fowler合著的《Planning Extreme Programming》可谓是关于XP的奠基之作。从此,一系列的作品如《Test Driven Development: By Example》,《Extreme Programming Explained: Embrace Change》让更多的人领略到了极限编程的精髓,也逐步导致了极限编程的流行。
    Kent Beck的贡献远不仅如此。对于众多的Java程序员来说,他和Erich Gamma共同打造的JUnit,意义更加重大。也许正式这个简单而又强大的工具,让众多的程序员更加认可和信赖极限编程,从而引起了Java敏捷开发的狂潮吧。

    May 23

    SVN

    这几天开始用SVN进行协助开发。刚开始用,有点郁闷。配置阶段有点繁琐,还出了点问题,不过原因是自己太粗心,没留意注释。不过SVN的协助开发还是不错的,开发成员之间的文件共享变得很方便,继续学习。
    May 17

    两本算法经典著作

       Introduction to Algorithms
     
    Authors: Thomas H. Cormen ,Charles E. Leiserson ,Ronald L. Rivest ,Clifford Stein
     
     
      The Art of Computer Programming
     
    Author:Donald.E.Knuth
     
    April 29

    Java开源 JEE框架

    Java开源Java EE框架介绍
     
     

    Ray Zhang