MSN的Cartoon图像制作服务,从Morgan那里看到的,挺好玩儿,不过不是很像,确实偏胖。
嗯,做一套还是很有用的,可以做Live Messenger和Google Talk的图像:P。
Popularity: 50%
Popularity: 50%
MSN的Cartoon图像制作服务,从Morgan那里看到的,挺好玩儿,不过不是很像,确实偏胖。
嗯,做一套还是很有用的,可以做Live Messenger和Google Talk的图像:P。
Popularity: 50%
Popularity: 50%
真难受啊,早晨11点爬起来感觉很不舒服。很久不熬夜了,不像在学校的时候,唉,年轻真好。
说说看过的几场比赛:
德国 vs 哥斯达黎加 - 德国战车不错,不过后卫线有点儿问题。两个中卫配合意识不好,最大的隐患在于右后卫弗雷德里希,两个球都是他拖在后面。 克劳思比起4年前真是进步了不少,脚下细多了。
英格兰 vs 巴拉圭 - 英格兰太烂了,我觉得要归罪于埃里克松的足球理念,这样一只英格兰历史上最强的球队,被他搞成了这样。可怜的杰拉德。。。
瑞典 vs 特 - 昏昏欲睡,后来都睡着了
阿根廷 vs 科特迪瓦 - 身为阿迷,当然不能错过这场比赛,哈。里克尔梅绝对有马拉多纳的影子,无论是长相还是球技。上半场是这届世界杯我看过最棒的上半场,下半场把俩前锋换下,感觉有点儿被动。阿根廷的教练从来都是偏执狂,上届的贝尔萨就是不要里克尔梅,这届的佩克尔曼放弃萨内蒂和萨莫埃尔。科特迪瓦还真有黑马的影子,个人技术真棒,不过无球的时候就体现出战术素养的差距。唉,要是放在别的组,我觉得特很有可能出现。
今晚得休息一下,就看荷兰对赛黑吧,其实葡萄牙也应该看看的。。。
Popularity: 53%
Popularity: 53%
前一段,Blogsphere里面关于WebOS的大讨论甚是激烈,如果说Web2.0的时代,整个Web将会是一个大大的WebOS的话,将各个应用和服务联系在一起的就是两个东西:
RSS
Web Service
以前RSS说的太多了,今天就来说说Web Service。Mac OS最新的Tiger里面的Dashboard,里面的每个小Widget都是由简单的HTML、CSS以及Web Service组成的,你可以用这些Widget来查询股票,天气,以及其它很多事情。这些Widget的核心组件,就是调用外部的Web Service。我以前曾经说过的Google IG、Live.com中的Gadget,也都是这个道理。
说到Web Service,就不能不说到RPC(远程系统调用)。所谓的远程,包括进程外,甚至本机外,经典的RPC协议包括DCOM、CORBA以及ICE等等。我觉得,对于RPC来说,最重要的就是两点:
将过程调用的参数和返回值序列化(Serizialize)成一系列的数据 - marshalling,中文翻译成“列集”这个怪怪的名字;
用某种方式来传递这种数据。对于进程外RPC来说,可以采用共享内存、管道等等。而不同机器之间,则多是用专署协议了,比如DCOM和CORBA,现在有更轻量级的ICE。
Web Service解决以上两个问题的办法是:
采用XML来进行数据的Marshalling;
采用HTTP来进行数据的传递(SOAP的新标准中也支持了其它协议,比如SMTP);
记着2000年我刚刚接触Web Service的时候,对采用HTTP来进行数据传输这点很是不以为然,觉得穿透防火墙这些Feature绝对是宣传上的噱头。那时的自己还醉心于对桌面平台的COM、DCOM以及CORBA的研究。现在我慢慢认识到,采用XML(明文、可读)、HTTP(最常用的网络协议),绝对是Web Service得以成功的两个重要的因素。
现在比较流行流行的Web Service主要有三种,分别来说说:
1)SOAP
SOAP,全名是Simple Object Access Protocol,是Microsoft提交给W3C的Web Service协议。我觉得SOAP的两个最大的好处是:
协议的可扩展性(Extension Mechanism)
良好的工具支持
SOAP的消息称为一个SOAP Envelope,包括SOAP Header和SOAP BODY。其中,SOAP Header可以方便的插入各种其它消息来扩充Web Service的功能,比如Security(采用证书访问Web Service),SOAP BODY则是具体的消息正文,也就是Marshall后的信息。
SOAP调用的时候,也就是向一个URL(比如http://ws.invesbot.com/stockquotes.asmx?WSDL)发送HTTP Post报文,调用方法的名字在HTTP Request Header SOAP-Action中给出,接下来就是SOAP Envelope了。
服务端接到请求,执行计算,将返回结果Marshall成XML,用HTTP返回给客户端。
SOAP的工具支持非常好,比如在.NET里,可以用WSDL.exe非常方便的为一个Web Service生成本地Proxy(Proxy模式),这样,你的程序就像调用本地API一样了,而由Framework为你完成Marshall和传送的工作。
2)XMLRPC
XMLRPC ,我记着看过一段Don Box的采访,他说当时Microsoft费了7年的时间(大概,记不清楚了)才成功的把SOAP提交给W3C,而Dave Winer(眼熟吧,RSS’s Father)借鉴SOAP实现了一个更轻量级的协议,那就是XMLRPC。以前曾经大概看过XMLRPC,XMLRPC就是SOAP的简化和改进,比如说:
Marshall类型的支持有限
取消HTTP Header中的SOAP Action,而将Method Name也放到XMLRPC的Body中
传送的XML信息中没有Header,只有Body。
XMLRPC相比于SOAP最大的优势就是它的简单,弱点就是扩展性弱,另外,工具支持也不如SOAP那般正规,感觉起来,一个像正规军,一个像游击队。不过,游击队才有作战灵活的特点 :P。
XMLRPC在社区中非常流行,我这篇Blog是在Writely写的,通过WordPress的XMLRPC接口发布到我的Blog上。
3)REST
REST - Representational State Transfer, 是Roy Fielding的博士论文中提出的概念,其实,与其说REST是一种Web Service协议,不如说REST是一种Web based软件架构,一种基于Resource State的服务访问架构。
通俗的将,可以用你访问我的Blog的过程来描述REST的工作流程。当你访问我的Blog首页,其实就是对我的Blog的一个资源访问,那么Web Server会将这个资源的Representation返回给你,也就是我的Blog的首页的HTML。当你点击了这个HTML中的一个link,比如某篇Blog,你实际上就又对另一个资源发生了请求,Web Server会将新的资源Representation以HTML的形式发送给你。
REST的参数传递是采用URL […]
Popularity: 62%
那一年你正年轻,总觉得明天肯定会很美,那理想世界就象一道光芒,在你心里闪耀着