Archive for May, 2008

Page as a mp3 player

Thursday, May 29th, 2008

SoundManager 2是一个Audio的javascript  API。可以到http://schillmania.com/projects/soundmanager2/上看看,有很多的demo,很是有意思。其中我非常喜欢第一个demohttp://schillmania.com/projects/soundmanager2/demo/page-player/
,和以前的那些flash的播放器很不一样。我不需要嵌什么,不需要那么复杂,只需要歌曲列在那里,我点击就可以播放了,就像看一篇文章一样,一切都是那么自然。

我准备把我的http://liwenbing.cn/music/整成这个样子,敬请关注吧。

一口气睡了15个小时

Monday, May 26th, 2008

一早上和mx和小猪爬完山,中午吃饭,悠悠地到了3点半开始睡午觉。这一睡就到了第二天的早上6点半。15个小时!哈,这也是工作以后最酣畅的一觉了。还是在读研的时候,每觉都睡的特别香。感觉都是躺着就着,一觉睡到自然醒。非常怀念。

网站恢复正常style

Friday, May 23rd, 2008

从黑白style中还原回来。愿死者安息,生者前进。加油加油。

为所有的死难者默哀

Monday, May 19th, 2008

让所有死难者的人得到安息,让这一刻在记忆中变成永恒。

Did you know?

Wednesday, May 14th, 2008

很有意思的video。
–quote–
In 10 years it is predicted that the number one Enlish speaking country in the world will be China.

加油,中国

Tuesday, May 13th, 2008

是的,加油,中国!

谁也不曾料到,这是如此艰难的一年。2008,我们热切期待的阳光和欢笑,却不料被一路风暴阻隔。
2月肆虐的雪灾,冻裂了中国大地;3月的拉萨暴力事件,烧伤了美丽的圣地;4月的奥运火炬传递受阻,刺伤了中国人向世界张开的双臂;善变的5月, 胶济铁路火车相撞,撞碎了多少旅人的梦;突然传遍全国的儿童手足口病,令全国父母心头纠结;震动传及东南亚的四川大地震,撼及整个中国的灵魂……
然而,中国在低头抱怨吗?没有,中国挺起了他的脊梁!全民一心,共同抗灾!

不知道为什么,看到这么多新闻,有一种想哭的感觉,为什么这么多的不幸?唉,希望一切都会好起来。
多难兴邦,而大难不死,必将雄起,天佑中华,中国崛起民族复兴之路指日可待!

IE中奇怪的status code 1223

Thursday, May 8th, 2008

又是IE,为什么老是你?今天处理一个IE和firefox不兼容的问题,最后的原因是因为IE的一个奇怪的HTTP status code 1223.原来,IE会将HTTP的204(No Content)转换成它内部的status code 1223,就会产生这个问题。本来期望dojo能屏蔽这个问题,但是看来它并没有按照期望的方式进行处理。status code还是1223返回,并且作为error来抛给Error callback给处理。

解决的办法可以是在error的时候去判断处理:(感觉不是很好)

1
2
3
4
5
6
7
error:function(err, ioArgs){
    if(dojo.isIE&&ioArgs.xhr.status==1223){
       //do something
    }else{
        //handle error
    }
}

Some links:
http://vegdave.wordpress.com/2007/11/05/1223-status-code-in-ie/
http://trac.dojotoolkit.org/ticket/2418
https://groups.google.com/group/jquery-en/browse_thread/thread/8136195c67c9819b

在dojo中处理IE和Firefox的常见的兼容性问题

Wednesday, May 7th, 2008

让javascript在不同的浏览器之间兼容就是一件pains-taking的事情,虽然dojo已经封装了不同浏览器之间的 大部分差异,在实际使用dojo进行开发的时候,仍然偶尔会遇到此类问题。
近一段时间又在做这个工作,也将这些tips记录如下。这些内容也是在组里人在处理这些问题不断总结的出来。

  1. Object的定义不严格(可以说最容易出错的地方):
    实例:

    var obj = {a:"ha",b:"he",}; //Error in IE

    原因:
    这个会在IE中出错,但是在firefox中work。原因就是在IE中Object后面不允许多一个逗号,其实ECMAScript上面的确定义这个是不合法的,只能说IE在这种地方还真是遵循标准。在新的JavaScript 5中,这个将会是合法。
    解决办法:
    去掉逗号,如上例{a:”ha”,b:”he”}。在Eclipse中可以用如下正则表达式来需找这种不合法的使用:,\s*}

  2. javascript 的Array的定义不一样
    实例:

    [1,2,3,].length === 3 //  FF
    [1,2,3,].length === 4 // IE

    错误原因及修正:
    这个麻烦的是IE并不会报语法错误,所以更要小心。注意在array的定义中请去掉逗号。在JavaScript 5中,IE将更正这个bug。

  3. 非显式局部变量声明
    实例:

    self = this;
    self.a = {};

    原因以及修改办法:
    IE中不允许隐式声明局部变量,任何局部变量必须通过类似var a = xx的方式进行显式声明

  4. 直接设dom节点的class属性
    实例:

    dom.setAttribute("class","xx")

    错误原因:
    并不是所有的属性都可以使用setAttribute来设置的。在IE中设置class实际上要使用className。这个link中给出了所有的不兼容的属性,要避免使用setAttribute设置这些属性。http://webbugtrack.blogspot.com/2007/08/bug-242-setattribute-doesnt-always-work.html
    解决办法:
    使用dojo,当然尽量使用dojo的方法出处理这些问题。或者按照上面的link给出的办法去处理。

  5. IE ,Firefox 的CSS 的hover机制不同
    描述:
    在Firefox中,css的hover可以针对所有的HTML节点 ,like DIV,SPAN…,但是在IE中,hover的对象是有限制的,现在是可以对hyperlike可以进行hover.

    错误原因及修正:
    尽量使用<a></a>来wrap所需要hover的元素。
    或者使用js中onMourseOver触发事件更改style

  6. IE 的table在创建时TR必须要append到tbody上
    描述:
    在Firefox中,TR可以直接append到table上面,但是在IE中,直接的append会导致TR显示不出来。
    错误原因及修正 :
    这个是一个IE DOM API一个不兼容的问题,具体细节可以看下面两个链接。解决办法当然是每次在东西创建table时,也需要创建tbody,然后见TR append到tbody中。

    具体可以看:http://www.quirksmode.org/dom/w3c_html.html#t03
    原因可以看:http://www.ericvasilik.com/2006/07/code-karma.html

  7. IE 6.0 以下版本Select Element问题
    问题描述:
    在IE 60 以下版本中的Select Element无论其z-index 设为何值,其均在任何Div之上,对于有拖动div的页面,应该考虑进行改进。
    详细的Test Case 请参见: [1] 中的4. Bug: SELECT elements ignore Z-index (“windowed element” problem)
    解决方法 :
    1.Dojo中使用 dojoType 为dijit.form.ComboBox的 Select Element会将其parse成为input Box,从而解决此问题。
    2.Google的GWT中将每个Div下添加一个iframe 元素,使其能够掩盖Select Element。

Projectzero和Websphere sMash有什么区别

Tuesday, May 6th, 2008

Get free Project zero这个两者的关系大概就是我们在做project zero的人也觉得难以区分。分享一下我的简单理解:Websphere sMash当然是一个商业的软件产品,需要花钱买license的;Projectzero正如其website上所说的,是sMash的开发社区(development community),在这里你可以拿到source code,可以在获取documentation,可以在forum,bugzilla进行交流等等。

P.S. 什么是projectzero/Websphere sMash?

官方解释:WebSphere sMash advances Smart SOA’s simplicity and accelerates the alignment of Business and IT by allowing Developers to quickly deliver dynamic Web 2.0 based applications.

我的水煮版:就是开发Web应用的平台,你可以想像成PHP,RoR…不过它更加关注在如何构建Web 2.0的应用以及对各种数据服务进行mashup,并且强调动态语言以及REST的应用。

一个人的泰山

Sunday, May 4th, 2008

一个人突然心血来潮要去泰山,一个人有点幸运买到去泰山的卧铺,一个人夜爬泰山,一个人看日出再一个人静悄悄地回来…我看到了什么,历史文化?风景?心情?I just don’t know.

至少看到了日出。清晨丝丝的云飘过,宛如仙境;当太阳慢慢升起的时候,如此美丽,霞光万丈映衬着云层也有了光彩;如果说世间还有什么龌龊,那至少这一刻是圣洁的;如果说还有什么凡尘琐事缠身,那至少这一刻微不足道、烟消云散;如此不可抗拒…

泰山