9/27/2005

Laszlo Bug?

// Moves the current event to the next or previous day
// Assumes updateEventDate has fixed any incorrect start tag data
// Get current date info
var year = Number(currenteventDP.xpathQuery('start[1]/@year'));
var month = Number(currenteventDP.xpathQuery('start[1]/@month'));
var day = Number(currenteventDP.xpathQuery('start[1]/@day'));
var tempDate = new Date(year,month-1,day);
//Change day
tempDate = new Date(tempDate.valueOf() + whichWay * 86400000);
year = tempDate.getFullYear();
month = Number(tempDate.getMonth())+1;
day = tempDate.getDate();
moveEvent(year, month, day);

这段代码的原始形态见于cal-data.lzx的325行。原来的代码其实并没有太大的不同,但是在"今天=8月31日" 或者"今天=10月31日"的时候,滚动日期到下一天,再下一天时跳到第三个月。
比如10.31->11.1->12.2这个问题我在以前写了类似的代码时,也出现了。
今天看到如此熟悉的代码,我把系统时间改为10.31后,果然是这样。而我随便改了一下,甚至再改回去以后,都可以正常的工作。

9/26/2005

Crawling

Otto最近对我格外的关注,我想,多半是因为看了我的演示吧。最近又是给我算命又是请我吃饭的。在他眼里,我势必可以在月底结束这个刚刚开始的无边无际的系统开发。嗯,到时候我的日子就不好过了吧。
我盯着上周阅读过的laszlo calendar的代码,我估计很可能结束在了cal-data.lzx这个部分。我怎么也想不起来什么时候看过了。
上周5,我仿佛是在重建CVS吧,
<为什么要做>因为更换lps中间件的工作每每会让CVS近乎瘫痪,每次都有1800个左右conflict的文件,而且每次去比 较着nk的不需要去比较的内容也是造成工作成员不愿意去频繁同步的原因。于是我把openlaszlo-*-servlet.war放在了项目里,又写上 了一段ant脚本,哈,自动分布就搞定了,可是需要调整好cvs才perfect。
<为什么要这么久>
我实在是不会把Version Control的东西再变成.cvsignore的,只好mstsc去改cvsroot里边的东西,好不容易折腾让我自己去同步项目的时候不会出现错误 了,另一个也频繁同步的同事可以成功同步,但是在其他并没有频繁同步的同事的上边就出现了问题。……折腾了后来的一个下午也没有搞定,决定等待一个稍有性 能的cvs服务器...
上周4,仿佛我也没有做我自己的工作,项目里到处出现的硬写在项目中的webapps的名字,我决心把他们都改掉。于是先开始简单学习了一下javascript的相关部分,于是写了一个小方法获得项目发布后的url
function baseUrl(){
var flag=0;
var baseRef=location.href;
for(var i=0;i<4;i++){
flag=baseRef.indexOf('/',flag+1);
}
return baseRef.substring(0, flag+1);
}
然后把原来确定不下来的相对地址 引用用document.write加上这个方法串起来就好了。这么简单的工作居然长久以来都没有人做,害得我每次因为必须把我的tomcat也要输出到 "triz-link"而非常的不爽。更重要的,是因为中间这个"-"带来了很多麻烦,我发现laszlo的右键菜单仿佛就会因为这个"-"而工作或者不 工作。
周三么,仿佛在研究这个laszlo的右键菜单,就是因为Otto一句话。
关于右键菜单,虽然现在搞定了应用的环境,但是我最终还是决定不使用它了,Flash就应该是只点左键的。尤其是手机上使用的时候未必可以支持到右键。也许和swf6,7,8也有关系。我可不想让我的东西这么挑剔。
那么,我上周只是用了2天时间来读代码吗?不,我仿佛是周1给他做的演示,演示完了就下班了。那么,难道是周2?周2好像Robbin来过,我记得Robbin来的时候我一直在玩Ajax的项目,meebo还有netvibers之类的。后来在学习Venkman吧……

9/22/2005

AFLAX?

转眼就快10.1了,我仍然坐在我的位置上,不再考虑做laszlo的传教士,虽然那几个demo程序早已写好了。我不得不承认我极度缺乏对别人的耐心,并且更重要的是,我自己也没有完全的认识。
同事发来了meebo的网站,看过后甚为震惊。同时,通过它,找到了许多其它的ajax项目。
我很开心看到这样的技术如今铺天盖地的阵势,因为我觉得我也是体验以及应用这样的技术的一员。
在wikipedia上对ajax有很多的解释,而同时有一个字眼也映入眼帘:AFLAX
开始困惑了。
ajax的概念在于在客户端多出一层专门做数据的传输和处理,而以Flash为基础的客户端技术本身就必须包含处理数据的这一层,而不是让服务器去产生业的代码,aflax的提法让人觉得十分得牵强。
我想不出不使用类似ajax概念的话如何使用flash,难道直接使用swf-lib.jar?
其实,ajax也只是RIA概念在html时代的绝唱而已。当然这样的开发手段在具有足够开发理论的今天,还是具有十分的划时代意义的,他让许 多html,xslt,dhtml,js的拥趸有了继续发展的可能。(webwork,spring-web,jsf,以及一堆有助于逻辑分离的工具在扮 演着同样意义的另一个角色)。
那么这种Aflax就是一种和ajax的对立咯,只是强调了客户端载体的不同。
可是,在我心里过滤的结果,答案更加的唯一了,那就是 Laszlo !当然我认为它也属于一种A.+ax
Ajax:
  • 仍然是一个概念,众组织给出了解决方案,但是极为不统一。
  • 客户端变为更重要的编程对象,但是它的代码无法得到保护是一个问题,整理和理解在项目管理上是一个问题,需要面向n种不同的载体更加是一个问题。这些问题的结果就是:复杂度变高了
  • 需要为了跨平台特性付出很多时间。
Laszlo:
  • 是一个完整的独立的解决方案,可以方便的在任何已有项目中使用。
  • 核心仍然是a.+ax,服务器程序不会因为客户端改变而改变(太大)。
  • 封装了一套界面元素对象,和逻辑对象,有调试器和编辑器,可以使项目容易规范和扩大。虽然一样有动态语言的不利之处。
  • 完全的跨平台,甚至是任何支持flashlite的手机。
起来倒了一杯水,忽然看见周围同事们正在做的flash客户端。
我才想见刚刚一文中有过于武断的言辞,那就是,用flash只能用xml交互不错,但是运用方法呢?
我相信Ajax中也包含了运用方法的信息,如果把大量的xml从服务器拿过来,自己在填充到客户端的组件中,每一次查询方式改变了,就又从服务器查一次,再填,……
这样完全抹杀了Ajax,多出来的那一层除了增加难度没有别的意义。
没错,同事们正在这么做,致力于把flash仅仅当做浏览器中的浏览器。
所以我再多一个断言,Ajax必然包含一组恰当应用的理念
这样想来,Aflax的确是有他的意义了。
不过,这样的断言正确么?
用Laszlo一样可以写出来这样的坏味道,而且我可以随手就写出来这样的例子。一项语言是无法避免别人是如何去使用它的。所以如果断言正确,我应该写的是ALAX吧