Perfil de PENG不愿游泳的鱼FotosBlogListasMás Herramientas Ayuda

Blog


22 julio

Ganymede Around the World中我的名字:)

今天看了一下,我的名字果然出现在Ganymede Around the World中了:)这种推广方式很有意思,呵呵。
http://www.eclipse.org/ganymede/map.php

image

IE 8 Shining Features

IE 8 Beta 1 出来好久了,由于对IE7的使用仍然心有余悸(之前曾装了IE7又马上转向了Firefox阵营),我这次IE8的安装仍然忐忑不安。无奈经常需要使用代理浏览,而不知怎么搞的使用Firefox的about:config配置了N多遍了怎么也配置不好,每当别人嘲笑我说怎么还用老古董的IE6时,我就无可奈何。。。今天也要尝尝鲜了!
image
不看不知道,发现IE8的功能非常强大,其中最为耀眼的便是其强大的代码调试工具,跟火狐的Firebug可以有一拼了。除此之外,IE8还有两个令人眼睛一亮的功能:WebCast和Activity(为方便尝试,本文采用http://ie8.taobao.com/list.php作为示例,这是淘宝针对IE8New Features 提供的Preview 页面,支持Web Cast和Activity。)。

1. Developer Tools
Developer Tools 提供了三个Tab, HTML\CSS\Script,其中,HTML Tab显示DOM树,CSS Tab显示CSS样式表,Script Tab会提供页面源代码,并方便我们对JavaScript的调试。有人说:这有image什么稀奇的呢?先别急,我们先看看Debug的功能:

当我们点击了"Start Debugging"的按钮后,就可以设置在Javascript脚本中设置断点了,这令在IE中调试动态语言的梦想变成了现实。然后可以在右侧的窗口中查看系统中Local变量当前的值。同其他程序语言的调试工具一样,可以Step into, Step over, 查看调用栈以及添加查看的变量等。另外,Developer Tools还提供了Immediate Window允许开发者在当前的上下文环境中撰写Script代码并立即显示结果。

更为神奇的是HTML Tab。HTML Tab除显示DOM树之外,在其右侧窗口还会根据选择的DOM节点,显示每个标签使用的CSS样式表,当前标签的Layout模型,每个样式继承自何处,都可以非常直观的看到。而且,当我们想知道去掉某个CSS样式后的网页效果时,只需要将CSS表中相应项的check去掉,就可以立即在原始网页中观察到效果!

image image

除此以外,Developer Tools提供了View和OutLine两个Menu,OutLine菜单提供了对不同的HTML元素的高亮显示(同FireFox提供的功能类似),而View菜单对于网站设计者非常有用,提供了"IE5”,"IE7","IE8"3种不同的模式预览页面。开发者可以快速的检测页面的IE兼容性。(唉,如果IE或Firefox能够提供对对方产品的兼容性就更好了。。。不过应该是遥遥无期的事情)

2. Web Castimage
在淘宝的这个页面中,当鼠标移动到列表中的商品时,在左上方会出现一个小图标image ,该小图标提示使用者可以将此条目加入Web剪辑中。鼠标选择该条目,会弹出Web Slice的提醒页面,选择“Add”之后,在IE中便可以在Favorites中看到该Web Slice的导航标签了。单击该标签,便可以看到商品的信息。

这是怎么做到的呢?我们使用Developer Tools来查看一下HTML代码,发现所有的商品表格中都有类似这样的属性:image

 

 

 

<tr class="hslice" id="item_5">
    <td width="20%" valign="middle" align="center" height="90" class="entry-content">
        <img src="http://img08.taobaocdn.com/bao/uploaded/i8/T1n8RbXb0n_QxtXcfX_114424.jpg_sum.jpg" border="0" title="装饰画/无框画/客厅/ 手绘油画/版画//客厅/ 0705DM1314" /></td>
    <td width="60%" height="90" class="entry-title">
        <a target="_blank" href="http://auction1.taobao.com/auction/0/item_detail-0db2-ccabd3de2b21ee9744c062589e5be157.jhtml">装饰画/无框画/客厅/ 手绘油画/版画//客厅/ 0705DM1314</a>
    </td>
    <td width="20%" height="90" align="center" class="entry-content">
        一口价
        <span class="price"><sup style="color:#111;">¥</sup>59.00</span>
        <a style="display:none;" rel="feedurl" href="webslice/feed.php?itemID=ccabd3de2b21ee9744c062589e5be157&xID=0db2">订阅到 WebSlice</a>
    </td>
</tr>

  支持Web Slice Support的关键的属性为'class="hslice"', 'class='entry-content"',class='entry-title'。WebSlice 使用 hAtom Microformat 和 WebSlice 格式的组合来描述 Web 页面的可预订部分。订阅WebSlice后,WebSlice标签显示的标题为entry-title中注明的标题,在该例中,预览后显示的内容为entry-content链接的feed中最新的内容。请注意:Web Slice会自动更新状态。比如,拍卖的商品剩余时间会由于点击Web Slice的时间不同而自动更新。

3. Activities

在以前,我们使用复制和粘贴技术将一个网站有用的信息复制到另外一个网站。

比如,我们在网上看到了一个朋友的联系地址,想要使用Google Map的服务,我们的做法是这样:复制这个地址,打开google map,然后粘贴该地址用于检索。当我们想要再次进行查找时,又要重复一遍这样的过程。

再比如,我们在网上看到了一个QQ号,想要了解该QQ号的主人的相关信息。那么我们需要首先打开QQ,image然后查找QQ用户,输入QQ号码,得到搜索结果之后才能查看用户信息。。。

IE 8的Activities特性使用户不再如此繁琐。如果服务提供商能够遵循“OpenService 活动”XML格式来指定HTTP请求的格式,并且在网站中加入活动安装按钮,则不需要用户访问相应的网站,便可以使用服务了。

在淘宝IE8的页面中,选择右侧的安装Taobao Activity按钮,安装淘宝商品搜索Activity。然后,当选中某些相关的内容后,会出现Activity浮动Toolbaractivity_icon,选择该浮动Toolbar,下拉列表中将出现所有可用的服务。将鼠标移到“淘宝搜索”Item上,将会自动弹出前12个搜索结果的图片。可以直接点击图片以查看内容。

这是怎么实现的呢?同样非常简单。只要在原来已有服务的基础上,按照OpenService 活动XML格式来描述服务,并提供发布活动的方法就可以了。下面为淘宝的Open Service Definition代码:

<?xml version="1.0" encoding="UTF-8" ?>
<openServiceDescription xmlns="http://www.microsoft.com/schemas/openservicedescription/1.0">
    <homepageUrl>http://www.taobao.com</homepageUrl>
    <display>
        <name>淘宝搜索</name>
        <icon>http://www.taobao.com/favicon.ico</icon>
    </display>
    <activity category="查找">
        <activityAction context="selection">
            <preview action="http://ie8.taobao.com/activities/preview.php?query={selection}" />
            <execute method="get" action="http://ie8.taobao.com/list.php?query={selection}" />
        </activityAction>
    </activity>
</openServiceDescription>

如果要发布活动,需要运行如下javascript代码:window.external.addService('<path> /GetMap.xml');
淘宝是通过如下方法加入的:

<script type="text/javascript">
function addActivity() {
    if (navigator.userAgent.indexOf('MSIE 8') == -1) {
        alert('请首先安装IE8.');
    } else {
        window.external.addService('activities/taobao-search.xml');
    }
}
</script>

<!--HTML TAG-->
<button type="button" onclick="addActivity();">安装 Taobao Activity</button>

IE8当前已经支持的有下面这些活动服务(你可以很容易的用上面的方式添加自己的活动服务):
map:Windows Live Map、Google Maps、Yahoo!Maps、Mapquest
blog:Windows Live Spaces、Windows Live Writer、Blogger
define:Encarta、Wikipedia、Dictionary.com
add:Del.icio.us、Reddit、Google Reader
translate:Windows Live Translation、Babelfish、Google Translation
IE8中还提供了活动本地化的方法,可以根据用户的地域来提供不同内容的活动。
可从这个网站查看现有IE8支持的中文顶级活动:http://ie.microsoft.com/activities/zh-chs/default.aspx
该网站为IE8支持的英文顶级活动:http://ie.microsoft.com/activities/default.aspx

后记

IE8 Beta2在8月份就要出来了,不知会有什么更新更Shining的特性。但无论如何,从IE8 Beta1来看,IE8的整体设计中,对用户、代码开发人员以及服务提供商都提供了更为强大的支持,有理由期待IE8能走的更远。我们不希望一家公司垄断某个产品,我们希望的是,在互相的竞争中,能够最终给使用者带来更多的愉悦,实现软件本应实现的价值。

18 julio

我的书终于出了

呵呵,终于盼到了好消息,我的书终于出版了。据说我的样书已经在快递中了,过两天就可以收到,呵呵,好激动。不过,Eclipse发行版都已经到了3.4 版了,而我的书中使用的版本是3.2,不知道这会不会影响图书的使用。最可气的是,出版商将这本书定价定了75元,太黑了。。。成为了他们赚钱的工具咬牙切齿

这是图片:


下面是网上已有的链接。让人心烦的是,china-pub和dangdang都还没有货。。。不过已经不错了呵呵,知足吧!
第二书店链接:http://www.dearbook.com/book/248886
新风雨网络商城:http://www.cnforyou.com/query/bookdetail1.asp?viBookCode=4442
电子工业出版社:www.phei.com.cn/bookshop/bookinfo.asp?bookcode=TP054980&booktype=main
中关村书店:http://www.e-bookshop.com.cn/buzi/BookDetail.aspx?ID=21680
17 julio

Thoughts about Eclipse Ganymede(and Eclipse)

1. Eclipse 发行

Eclipse Ganymede项目是Eclipse3.4发行版,秉承了Europa项目的发行风格,为不同 的Eclipse用户提供了不同image的平台解决方案。这也是Eclipse庞大的插件式管理架构决定的,这种方式使用户不再需要自己下载一个个的Eclipse插件。想起以前使用GMF开发的时候,先下载Eclipse,然后下载GMF,接着下载EMF和GEF,再逐个下载EMF和GEF的依赖插件,整个下载过程需要大半天,非常琐碎。于是导致基于其上的工作很少更换版本,即使知道新的插件版本会极大的提高工作效率也不会去贸然尝试。

当然,这种做法也有其弊端。一个开发者很少只使用Eclipse做一种类型的项目,你可能在Eclipse 中开发Java EE程序,也可能同时需要使用Eclipse Modeling Tools解决方案来完成建模工作,还可能使用报表控件产生报表。这种情况下没有一体化解决方案可用。要么下载3个不同的Eclipse版本。。。要么使用从前那样的解决方式,从Eclipse站点上更新项目。这种更新很少能够一次不报任何错误的成功更新。What a tough work!

这应该就是插件机制的代价了吧。。。不过虽然这样,至少Eclipse可以针对每个不同的项目,提供插件级的All-in-one机制。而不应将Core Framework捆绑在其上。

2. RAP 项目

RAP项目是Eclipse3.2以后出来的项目,其目标是重用已有的Eclipse Rich Client Platform代码,将现有的RCrap_ganymedeP Application很容易的重用在Web浏览器中,并保持用户一致性体验。构建同时可以在Web浏览器和PC上使用的应用程序是一个很流行的话题,有助于现有软件资产的重用,并顺应Web2.0富浏览器端的趋势。

但是,RAP项目的出台也有过多争议。(忽略内部实现细节)它只是简单的将桌面系统迁移到了Web浏览器中,让人感觉更像是嵌套在浏览器中的桌面系统,不仅不美观,还有累赘的感觉。我想,Eclipse在这方面的投入应该比较多,但是个人认为这个东西更像是一块鸡肋,在实际中不会有大用途。

相反,Google使用Google Gears来支持线上线下(online/Offline)使用Web应用程序,而Microsoft也提出了自己相应的解决方案:Silverlight+WPF,以及.NET Framework。Silverlight和WPF在.NET Framework的集成,使浏览器端和桌面系统间的界限不再区分的那么清楚。这种技术尝试对用户来说应该是最为实用的。Eclipse Ganymede中目前还没有类似的意向。

可以通过此链接浏览该项目:www.eclipse.org/rap

3. Dynamic Language Toolkit

这个项目是我最为关注的,这意味着Eclipse终于可以非常方便的为动态语言提供支持了:

DLTK 是适合所有依赖动态语言(如 Ruby 和 Perl)的人使用的工具。DLTK 包含一组可扩展框架,旨在降低为动态语言(PHP、Perl 和 Ruby)构建全功能开发环境的复杂度。而且,除了作为框架集之外,DLTK 还提供可供立即使用的Ruby 和 Python等的 开发环境。在Ganymede发行版中,“从具有代码帮助和代码要点、类浏览器及代码浏览功能(如 Open Type 和 Go to 声明)、强大搜索功能(如查找引用)的代码编辑器开始,一直到交互式控制台和集成调试器,这些功能将给 Ganymede 带来一个强大的 Ruby 和 TCL 编程语言开发环境”。(Ganymede先睹为快

其它特性包括以任务为中心开发的Mylin项目,更强大的BIRT,走向成熟的CDT等。这预示着Eclipse向万能级的开发工具又迈进了新的一步。

注:这篇文章是为得到Eclipse的T-shirt而写的,哈哈。

03 julio

与青春有关的日子

看了《与青春有关的日子》。我不知道为何这种类型的电视剧一直让我情有独钟。也许,我在怀念那个我没有机会经历却又怀着一丝憧憬的时代。就像电视中那个《动物凶猛》的小说中写到的,(对于我们这些孩子来讲,)那一个自由奔放的时代。

时代是无法选择的,但不同时代生活得人们是相似的。我们依然渴望着自由奔放的灵魂,依然有着执着追求的梦想,依然在激进与颓废中寻找着自己人生的轨迹。我们还远未成为这个时代的领导者,心中想着如何塑造时代的同时仍然在被时代的潮流裹挟。我们不再盲从,却依然不知道到底什么是自己的坚持。我们在从单纯到成熟的转变过程中艰难的前行。我们怀念着已逝去的童年中那一个个单纯可爱的熟悉的身影,也正在一个个的选择中从相似的起点走向不同的终点。我们的步履逐渐从轻盈转向稳重,我们的思想从简单迈向复杂。

我们的白纸上已经勾勒出了我们希望的和不希望的轨迹。当我们回头时,发现不再像以前那样熟悉自己。也许正像电视的开头所说,今天,之所以区别昨天,恰恰是因为昨天的感受依然在我们心中。。。

“我们浪费掉了太多的青春,那是一段如此自以为是,又如此狼狈不堪的青春岁月,有欢笑也有泪水,有朝气也有颓废,有甜蜜也有荒唐,有自信也有迷茫。
我们敏感,我们偏执,我们顽固到底的故作坚强,我们轻易的伤害别人,也轻易的被别人所伤,我们追逐于颓废的快乐,陶醉于寂寞的美丽,我们坚信自己与众不同,坚信世界会因我而改变。
我们觉醒其实我们已不再年轻,我们的前途或者也不再是无限,其实它又可曾是无限的。
曾经在某一瞬间,我们都以为自己长大了。有一天,我们终于发现,长大的含义除了欲望,还有勇气,责任与坚强,以及某种必须的牺牲。在生活面前我们都是孩子,其实我们从未长大,还不懂得爱和被爱。”

(本文同时写在豆瓣日记中)

瓮安事件的疑虑

前些天对于网络不是很关注,都投入到乱七八糟的琐事之中去了。今天才发现有很多事情发生了。世界就是这样,每天你都感觉跟前一天好像没有什么两样,但这个世界上总有地方在起着一些变化。当时间久了,你对这些变化无动于衷时,也快到你的生活产生变化的时候了。

今天朋友给了一个链接,是瓮安事件整理的链接。我刚开始看的时候觉得很震惊,但越看心里越狐疑,觉得字里行间透露出一股邪恶:
http://docs.google.com/View?docid=dhskngnq_6c4z28fdg
我相信,瓮安事件应该是由一起真实的事件引发,而其中也必定有执法部门的失职。但是如果没有人从中趁机煽动,不会有如此大的声势。现在网络的力量越来越可怕,而且传统媒体的垄断性和不透明化使人们倾向于相信网络上的传言。在这样的环境下,低成本的新闻发布渠道将会成为具有不同目的的人传播消息的平台(当然,同时达到他们的目的)。对于传统媒体而言,还可以用新闻道德的舆论监督去约束它们,但是,对于这种全民广泛参与,并且不需为自己言论负责的网络环境而言,除过法律,除过越来越高明也越被诅咒的网警的监察,就只有依靠每个人的道德观念了。而这个世界又在不断的淡漠道德。这是摆在政府面前的一个难题:既要摆脱被扣上的剥夺知情权、言论自由权的专政帽子,又要打压煽动民心的危险分子。最主要的问题在于,你已经不再能够的到群众的足够信任了。

这个组织过的文档中有这样一个链接:

瓮安前女警沈雪博客有重要信息
http://blog.police.com.cn/more.asp?name=shenxue&id=4621

而打开此博客后,我们发现本文所指的博文是该女警一年前写的一篇心情日记。难道沈雪在一年前就已经预见到了瓮安事件的发生?可以看看这个:http://blog.police.com.cn/more.asp?name=shenxue&id=10717

文章处处在昭示所谓的“正义”。在这篇文章的最后,用这样的话结束:
“任何鄙视中国人的言论,我们都应该含泪忍受。因为我们确实是贱民。”

这真的很可笑,什么时候轮到你给整个民族定性了。如果你不想当中国人就算了,没有人勉强你。如果你揭示的是事实,你做了你该做的事情就可以了,人们会有自己判断的标准,你也可以发动当地乃至全国的人民一起来质问瓮安公安局,让人们尽快的了解到事情的真相。你顺带着连中国人一块骂,以为自己高明了?你自己贱了,在外国人面前抬不起头来,干吗把我们一块给拉上?

诸如此类的言论,不可能是平常人写出来的。这种文风越来越被人熟悉了,也越来越容易被人识破了。