网站恢复正常style

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

为所有的死难者默哀

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

Did you know?

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

加油,中国

是的,加油,中国!

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

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

IE中奇怪的status code 1223

又是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的常见的兼容性问题

让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有什么区别

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的应用。

一个人的泰山

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

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

泰山

读《Don’t Make Me Think》

The book <Don\'t make me think>一本很薄的书,关于Web的可用性的书籍。这本书讲的还是一些最本质的东西。关键的还是从用户,咳,Web用户的角度来看问题,了解一个浏览Web页面人的行为到底是怎么样,从而来对现有的网点做一些改善。改善也是回归本质,就是用最直接的方式来提供最有用的信息给用户。特别喜欢的一个部分是如何来进行可用性测试,平时我们在每日每夜干,却并不知道自己的东西到底怎么样,经常觉得这个东西不可用呀…还是需要平时花点滴时间来做这样的可用性测试。另外,特别想从“救命!老板想我要…..”得到点什么,hoho,似乎也没有特别的地方。

在lab里面做的东东和这个里面所讲的可能还是有很大的区别的。这里面讲的主要的还是基于content的website,而我们的项目都是基于Web的工具了。下面把该书用在本website来看看自己的website还有哪些需要改善的地方。一个巨熟悉本website的人的测试:

  1. 导航到其他页面,为什么选中的导航部分没有被高亮呢?比如到了点导航的About后,出现About的页面,并没有将about在导航条中高亮;
  2. 我需要在导航条中添加home吗?(我的考虑,对于这种小型的个人主页,用户可能会习惯性点击名字来回到主页,多了home可能多余…)
  3. blog的导航条中就是到homepage,为什么需要这个呢?(奇怪,需要思考为什么有这个一不一致的行为?)
  4. 点击projects,labs,出现是File Not Found。(的确是没有去做,但是为什么要留在上面呢?最简单可以加一个标题,写暂没有内容)
  5. music部分没有title,也不知道这个页是干什么的。(就算是放音乐,也应该有一两句话来进行介绍。)
  6. 中英文混合,习惯吗?(这个是一个问题,我不清楚。。。给点意见?)
  7. 我怎么加留言?(我需要先点文章,或者日期旁边的comments,到新的页面后才可以留言,这样容易吗?自己没有找到好的办法)
  8. 右边栏中第一个是什么?(我需要加注释吗?可能对国内用户来说没有用,那么我需要去掉吗?)(P.S.:对该website进行bookmark的快捷方式!)
  9. 右边栏接这下来两个图标是什么意思呢?(国内用户有多少用feed的呢?为什么需要两个呢?我怎么知道哪个是我想要的呢?似乎一个好的办法是在icon的下面加一行字。比如订阅文章,订阅留言)
  10. 为什么Search要和输入框换行呢?(的确不好,不知道我在哪里写错了)
  11. Search是否用中文的‘搜索’要好一些呢?(not sure,自我感觉search比搜索要舒服些)
  12. 在最后来翻看‘以前的文章’方便吗?(有更好,更直接的办法吗?)
  13. Archives好吗?(自我觉得这个英文不是很好懂,还是换成中文好?)

还有什么?

Projectzero的版本管理是一个大问题

每次看projectzero论坛的帖子,经常有这样的帖子:为什么我的东西跑不起来了呀?为什么XXX找不了到?XXX有问题?接着就有人回答,你需要重新下载包,或者重新下载plug-in,或者重新使用最新的版本,或者重新resolve….

现在projectzero使用的版本管理是Apache Ivy,一种动态的dependecy管理。可惜用的过程中却不是那么的理想。尤其是用户在使用几个milestone的版本的时候,问题就出现了,这总会带给新手非常大的挫败感。我并知道到底还有什么更好的版本管理的办法,似乎对于这种在community中快速变化的软件需要这样动态的依赖管理。但是能不能更好的解决不断出现的种种问题,等待ivy的不断完善?

Zero的更新也是一个大的问题,Eclipse的zero plugin需要更新,包依赖也需要更新,对于中国用户完全是不可以忍受的速度。以后sMash如果要买的话,最好能推出一个sMash All in one的软件包。不要在resovle,这个词总让我觉得太多余了。