五月天山雪

五月天山雪,无花只有寒。笛中闻折柳,春色未曾看。晓战随金鼓,宵眠抱玉鞍。愿将腰下剑,直为斩楼兰。 ——李白《塞下曲》
posts - 8, comments - 53, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

2005年11月21日

8月过得颇为不顺,发生的最大一件事情是窃贼入室偷走了笔记本电脑(还是在深夜家中有人熟睡的情况下!),丢失了1个多月的工作量。因为招收的程序员尚未到位,因此也没有想过准备一个cvs服务器或者备份到其他机器,就算备份也仅仅在本机上留下一个副本。
我当时的心,就和石头里的那个Mike差不多,我顶你个肺啊。按照赵泽欣的话来说,如果他的笔记本丢了,他连自杀的念头都有了。
除此之外没有丢失其他任何东西,窃贼的目的性很强,就是偷走笔记本电脑,看来已经被盯上多时了。报案两个多星期了,至今没有收到公安局的任何消息,追回的希望非常渺茫。其实财物都是小事(即使平白丢失1万元,我也不会感到多么心疼),主要还是里面的资料和工作。三年多来收集的电子书,还有以前的工作内容和文档资料,全部丢失,等于是三年的记忆被整个抹去了。

随后做的事情就是想办法补救和挽回损失。购买了新的笔记本电脑。在公司的服务器上配置好了ssh server、rsync server和cvs server,所有的工作和重要的资料全部通过两种方式备份:
1. 使用rsync备份到服务器上。
2. 所有的代码都提交到cvs服务器中。

随后就是两周多艰苦的工作。

对于一个公司的经营者来说,重要数据的异地备份是一件非常重要的工作。911事件发生后,很多公司很快恢复经营,就是因为他们一向重视备份工作。否则,突发事件造成的后果对于公司来说是毁灭性的。这次意外同样也为我们敲响了警钟。

今年总是发生一些最坏的情况,因此不可再存有任何侥幸心理,做好备份是最佳的防范措施。老天不厚待我,自己更要谨慎小心。

posted @ 2006-08-27 22:29 dlee 阅读(2156) | 评论 (4)编辑 收藏

Ajax in Action这本书的翻译工作量是非常大的,英文原版就有680页,中文版印刷出来也有520页。这本书的内容在目前所有Ajax著作中是最深的。作者在很多地方的英文用法比较怪(也可以说是很有特色),还特别喜欢使用俚语。工作量大、内容深、古怪的语法都增大了我们的翻译难度。这本书的翻译团队于去年12月底成立,到最后第10章翻译、校对、润色完成提交给出版社(每一章翻译、校对、润色完成后即提交给出版社,以便翻译团队与编辑并行工作)是4月3日,4月4日我又写了译者序。出于对翻译质量的严格要求和本着对读者负责的精神,我最后完成任务比合同中的期限晚了半个月。按照以前参与翻译J2EE without EJB的经验,我预计这本书肯定要在一个月之后,即到了五一长假之后才有可能面世。然而,大大出乎我的意料,两个星期之后,他们就已经印出了样书,并且在4月25日之前完成了第一次印刷的8000本书(实现了出版社对读者的郑重承诺:五一之前让读者见到这本书)。除了翻译之外,这本书的编辑和排版的工作量同样是巨大的。他们加班加点,任劳任怨地完成了工作。虽然第一次印刷有一些错误,但是总的说来,第一次印刷是高质量的。我作为翻译团队的总负责人,可以保证这本书的译文不存在任何大的技术差错。经过了出版社编辑的进一步润色,使得这本书阅读起来又流畅了很多。

我感觉我这一次是在与一个英雄的群体共同工作,这是一次非常愉快的体验。除了共同参与翻译的几位译者(他们的名字印刷在最后一页“译者简介”中)之外,请记住图灵公司这些英雄的名字:责任编辑傅志红、主编刘江、销售总监谢工,还有一些我不知道姓名的同志。除去了春节休息的半个月时间,我们仅仅只花了3个半月时间就高质量地完成了一本680页的译著(在此期间,我们还共同主办了国内第一个Ajax大赛)。在国内的出版单位来说,可以说是非常高的效率了。我感觉图灵公司是一个非常棒的出版单位,因为他们的工作效率是非常高的,对于工作有很强的紧迫感,对于市场有着敏锐的感觉,但是对于图书质量仍然保持着严格的要求。

我很喜欢与这样的团队合作,国内多一些这样的出版单位,就是读者的福气。

posted @ 2006-05-26 20:37 dlee 阅读(4011) | 评论 (7)编辑 收藏

《实战Struts》(Struts in Action中文版)是Struts核心开发人员写的一本非常好的书,但是这本书的中文版翻译的问题比较多,如果不对照着原文来看,很多地方的理解就会误入歧途。相比之下,我们的《Ajax实战》的翻译质量真的是很值得自豪的。

posted @ 2006-05-26 16:21 dlee 阅读(1559) | 评论 (4)编辑 收藏

前不久我们所建立的社区:中国 Web 标准化计划
http://www.agilefaith.com/webstandards/
原意是为了在中国推广真正的 Web 标准。
最近我看到国内已经有热心的朋友建立了类似的社区:
http://www.w3cn.orghttp://www.sharkui.com
由于我们目前正在写作和翻译 Ajax 方面的著作,我们的核心任务是宣传和普及 Ajax 技术。宣传 Web 标准当然也非常重要,不过相对来说是一个次要的目标,而且我们可以通过和国内的已有社区合作来达到这个目标。
由于以上的考虑,所以我今天又注册了 ajaxcn.org 这个域名。并且把社区的名称改为“Ajax 中国”。以后可以直接通过这个网址来访问:
http://www.ajaxcn.org

我们将把这里建设成为中国一流的 Ajax 技术和交互设计的讨论中心,这个社区是值得大家期待的!

posted @ 2005-12-09 23:18 dlee 阅读(2991) | 评论 (6)编辑 收藏

按照前两天的计划,建立好了这个计划的网站。网站地址为:
http://www.agilefaith.com/webstandards/

这个网站使用 SnipSnap 来建立,这是开源软件,同时具有 blog 和 wiki 的功能。功能还是很强大的,而且安装起来非常容易,不过没有提供所见即所得的编辑器,使用起来不大方便。pLog 和 .Text 都是更好的 blog 软件,不过没有 wiki 的功能,而且我也不熟悉 PHP 和 ASP.NET。

使用上有任何不便,都是我的责任,如果能解决我会尽量解决。有使用问题的可以点击欢迎进入信息的最后到 usage 页面的链接,在后面跟帖,我会尽快解答的。

这里将成为一个讨论 Web 标准、Ajax 技术和交互设计的地方,欢迎跟我们有相同理念的朋友加入。如果对于 Web 标准完全不感兴趣,那就不必参与了。我们的时间也非常宝贵,不想过多浪费在争论之中。小平说:不要争论。中国这么大,应该可以容的下不同的观点的。

Have fun!

posted @ 2005-11-28 23:02 dlee 阅读(2392) | 评论 (2)编辑 收藏

不要误解,我们不是想去参与制定 Web 标准。我们只是希望把和我们具有相同理念的 Web 开发人员、设计师组织起来,促进真正的 Web 标准在中国的应用。

为什么会有这个想法呢?因为 Web 标准目前在中国的应用现状实在是非常差的。一些大型的网站意识到了这个问题,采取了一些努力,但是情况仍然很不乐观。我来举个例子,新浪的邮箱以前是可以 很好地支持 Firefox 的访问的,但是自从他们的邮箱界面改版了之后,Firefox 就无法正常访问了,那些按钮对于 Firefox 全部都失灵了!
最近我读了很多国外 Ajax 方面的书籍和资料。一个共同的特点是老外都非常重视采用真正符合标准的方式来做开发,因此他们开发的网站和 Web 应用可以支持所有主流的浏览器,可用性达到了非常高的程度。随便你使用 IE、Firefox、Opera ... 都是一样愉快的使用体验。而国内的很多网站,都强迫用户只能使用 IE 来访问,甚至只能使用 IE 6.0 来访问!
中国有没有 Ajax 高手?在我看来即使有也是很少的。没错,中国有很多 JavaScript 的高手,但是要是把他们称作 Ajax 高手,他们是不够格的,因为他们根本就不懂 Web 标准。他们对 IE 追随的太紧了,把他们称作 JScript(一种 M$ 模仿 JavaScirpt 创造出来的私有页面脚本语言)绝顶高手是最符合实际的。

这是不是一种落后和愚昧?至少在我看来是的。浏览器大战早已硝烟散尽,如今的浏览器都已经可以很好地支持 Web 标准。完全采用符合 Web 标准的方式做开发,从成本上已经完全可行,甚至大部分情况下成本还会更低。

Designing With Web Standards 的作者 Zeldman 在 90 年代末成立了 the Web Standards Project(www.webstandards.org)。正是在这个组织的推动和努力下,结束了 90 年代末的浏览器大战。其实主要还是说服了 M$ 走向真正顺从标准的道路,M$ 和 W3C 的关系是非常僵的。

我们希望为改变目前的现状,改善国内 Web 应用的可用性和交互设计而做些事情,所以我们决定成立一个中国 Web 标准化组织。这个组织完全是一个民间组织,由渴望取得进步的 Web 开发人员和设计师组成,并且向所有赞同我们理念的人开放。

这个组织的创始成员为庄表伟、赵泽欣、李锟。他们是在 JavaEye 论坛(forum.javaeye.com)结识的好友,就是论坛中的庄表伟、醒来、dlee。网站的访问方式将在随后几天公布。

posted @ 2005-11-26 14:52 dlee 阅读(3502) | 评论 (15)编辑 收藏

在 WebWork 对于 Ajax 支持的 presentation 中,作者说了这么一句耐人寻味的话:
AJAX is really just a bunch of JavaScript, HTML, and sloppy logic smashed together in a big train wreck!
并且作者还用粗体加重。
看不懂吗?我来翻译一下:
Ajax 其实不过是一堆 JavaScript、HTML 和膨胀的逻辑混合在一辆巨大的失事火车里面。

嘿嘿,这就是 WebWork 开发者们对于 Ajax 的看法,那么他们对于 Ajax 的支持方式也就不难理解了。
基本上,传统的 J2EE 开发者对于基于 JavaScript 的技术持有一种发自内心的轻视。他们也不相信 Java 开发人员可以写好 JavaScript —— 所以,不应该由开发人员自己来写 JavaScript,而应该由框架来自动生成 JavaScript。封装在 tag 中就成了一种非常自然的选择。

现在我要问的问题是,我们是否应该依赖这么多自动生成的 JavaScript?万一遇到了复杂的情况,这些 tag 不适用,我们是不是还是要去找到源头,修改生成 JavaScript 的代码?
更进一步,过于依赖这些自动生成的代码可能会阻碍我们采用更先进的 Web 技术。例如完全基于 CSS 的布局、structure/presentation/behaviour(分别由 XHTML/CSS/DOM 规范代表,位于 html/css/js 文件中)完全的分离以实现最大限度的页面重用。

现在 POJO 这个词相信已经深入人心,我们是否应该再考虑一下 Plain HTML、Plain JavaScript 了?

posted @ 2005-11-21 19:46 dlee 阅读(3029) | 评论 (5)编辑 收藏

看完了 WebWork 支持 Ajax 的 presentation
(http://wiki.opensymphony.com/download/attachments/2179/AJAX.ppt),感觉相当的失望。
WebWork 对于 Ajax 的支持主要是通过引入新的 tag 来实现的。但是根据目前的文档看来,这几个 tag 的能力还相当有限。这些 tag 能做几件事情:
1、动态刷新页面中的某一部分。这一部分封装在一个 div 中,通过轮循方式或者事件触发的方式来改变其内容。理论上可以在 div 内放入任何内容。
2、通过一个 a 超链接或 submit 按钮来执行一段 JavaScript,并且可以触发一个事件。事件模型是由 DOJO 库来定义的。
3、可以生成 tabbed pane,使用 tab 切换不同的内容,也可以在切换的同时触发一个事件。
4、还有一个 tree 控件,同样使用 WebWork 新增的 tag 来生成和配置。

目前看来基本上只能做这几件事情。如果要做更复杂的事情,只能自己编写 JS 代码调用 DOJO 或者第三方库的功能。这几件事情都是相当容易的 Ajax 技巧,没有一件是必须要使用 tag 这样丑陋的方式来实现的。我们来看看 WebWork 作者的一段实例代码:
<#list categories as cat>
  <#if cat.children.size > 0>
    <#assign icon="plus"/>
  <#else>
    <#assign icon="square"/>
  </#if>
  <@ww.a notifyTopics="children_${cat.id}"
         href="toggle.action?id=${cat.id}">
    <img src="${icon}.gif"/>
  </@ww.a>
  [EXAMPLE CONTINUED]
</#list>
这是 WebWork 支持的一个 tree 控件的一部分代码。
在我看来这段代码实在是难看的要死。本来我要把页面中的逻辑,就是 behaviour 分离到独立的 js 文件中的,现在又多了这么一堆服务器端的逻辑!我就是很讨厌在 html 里面嵌入一大堆逻辑,无论是服务器端执行的还是浏览器端执行的。html 里面应该只有 structure!

WebWork 使用的 Dojo 库目前还缺少很重要的一块——对于 DataGrid 的支持。DataGrid 是 B/S 架构企业应用表示层的核心组件,也差不多是开发量最大的组件。没有对于 DataGrid 的支持,怎么看都像是个玩具。目前已经有开源的 ActiveGrid(http://www.activegrid.com)可以做这件事情,如果熟悉 JavaScript 的话可以直接调用。
还有一个问题,WebWork 的 tag 生成的代码中含有大量的 table,如果想用 CSS 做布局,看来是不太可能了。
怎么样?看上去很美,Java 程序员不需要学习任何 JavaScript,全部使用 tag 就可以达到 Ajax 的效果。问题就是这个目标是否真的现实。况且,还有大量根本就不喜欢使用 tag 的 Java 程序员呢?

posted @ 2005-11-21 16:46 dlee 阅读(6223) | 评论 (10)编辑 收藏