关于作者

用户名:yinwm
笔名:眼镜
地区: tianjin-beijing
行业:其他

日历  

快速登录

+ 用户名:
+ 密 码:

在线留言



大学时光

中学记念

friends

同事

java

访问统计:
文章个数:44
评论个数:17
留言条数:9




Powered by BlogDriver 2.1

Thinking in ......

 

我思, 故...... 姑且算是我在吧

文章

搬家了
最近搬家到新的地方
http://my.donews.com/yinwm
开始写JavaScript连载

- 作者: 眼镜 2006年06月16日, 星期五 10:15  回复(0) |  引用(0) 加入博采

Start to learn Linux
终于配置好了Ubuntu,可以开始我的Linux之旅了。
加油!

- 作者: 眼镜 2005年11月2日, 星期三 23:36  回复(0) |  引用(0) 加入博采

Oracle 收购 InnoDB
Oracle 收购 InnoDB,Mysql还怎么混啊,Oracle真狠。
这也是我第一次看到这个题目的一个观点。

现在想想,其实不然吧,Oracle为什么要让Mysql死掉呢?这样对他有什么好处。就好像Oracle收购消化仁科一样,他会做的是把竞争对手搞成自己的一部分才对啊。

我觉得,Oracle这一举措是为了占领低短企业市场。试想,Oracle费劲的在权衡自己的服务器和市场关系的情况下,推出了Oracle Lite,为了抢占低端市场,没必要啊。现在只要把Mysql做成自己的战略合作伙伴多好。直接从InnoDB下手,然后加上一点可以平滑移植数据的功能,那么Oracle不就高低通吃了?

仅仅是我的一些想法,我觉得这样也许会更说得过去把。

- 作者: 尹伟铭 2005年10月14日, 星期五 08:48  回复(0) |  引用(0) 加入博采

Callback in JS

最近在做AJAX,感觉爽啊,同样功能的一个部分,一种传统的B/S实现方法,一种使用AJAX的方法,感觉真的事不一样的,AJAX给用户带来的感观效果要明显的好。

昨天也是写程序最爽的一天了。呵呵

我们采用的AJAX engine是java的DWR,很不错的一个engine。只是在使用的时候,觉得在一些场合还不是很好。
他的所有调用都是通过一个callback,一个以server端返回值作为参数的callback。这里也就出现了问题。愚以为,他的设计目的是在这个callback当中真正的去做一些改变页面显示的事情。但是有的时候我却只是想让他拿到一些东西,比如getName,以备后用。

那么其他的对这个name的页面 js object的访问何时开始呢?如何才能够保证在我使用这个name的时候,他已经从server端拿到了数据,并且已经在页面上初始化了呢?无法保证

比如
var name;
var _getName = function(result) {
    name = result;
}
DWR.getName(_getName, uuid);
alert("name:" + name);

因为DWR是采用新建立的一个线程去做事情,所以alert和_getName的运行是在两个线程,我们也就无法保证他们的先后顺序了。这是一个很头疼的问题。

最终我们写了一个resource Monitor,来检测资源锁,在使用一些方法的时候,先要从Monitor里面checkout一个资源锁,如果是独占的话,下一个checkout将等待前面锁的checkin这样就好了。
改写后的代码是
var name;
Monitor.register("name");
var _getName(result) {
    name = result;
    Monitor.checkin("name");
}
var __alert(name) {
    alert(name);
    Monitor.checkin("name");
}
var runGetName(uuid) {
    DWR.getName(_getName, uuid);
}
Monitor.checkout("name", runGetName, uuid);
Monitor.checkout("name", __alert, name);

注:以上很多都是伪代码,只是想说明一下问题。还有这个Monitor的版权问题,因为是在公司写的,那么他的版权应该数据公司。我和公司商量一下,如果可能的话,我还是极其想和大家分享的。

- 作者: 尹伟铭 2005年10月12日, 星期三 09:57  回复(0) |  引用(0) 加入博采

刚刚见到的一句话
老僧三十年前未参禅,见山是山,见水是水。及至后来亲见知识有个入处,
见山不是山,见水不是水。而今得个休歇处,依前见山只是山,见水只是水。

北宋僧人原道 《景德传灯录》

- 作者: 尹伟铭 2005年08月12日, 星期五 12:29  回复(0) |  引用(0) 加入博采

接触python,想到javascript
刚刚接触python
感觉比听说来得更加的强烈。这个东西真的不错。
以前用js很多。如果单纯的从语言的角度,我觉得这两者很相似,或许是所有的动态语言的共性。
我很喜欢js,但是却不明白为什么js一直被简单的认为是一种门外汉的语言。
比较起来,现在的js,在类库和组件上要远少于python。也许作为恶性循环,以后使用js的人,也就更少了。

其实从这里,也就看出来,一个语言是否流行,很大程度上取决于使用的人数,而不是语言的优劣。
用的人多了,自然各种组件就多起来了。

看到一个好消息。rhino要被加入到java6里面了,不知道这样会不会使js更加的流行一些。

不过,语言就是语言,技术也就是技术。
思想才是最终要的。


- 作者: 尹伟铭 2005年07月20日, 星期三 23:36  回复(0) |  引用(0) 加入博采

mysql 4.1.2 开始可以多于32个key了
mysql啊,还真不少事情。
在4.1.2之前每个table只能最多32个key.
解决的办法就是recompile mysql
.......

呵呵,
以后注意吧。

- 作者: 尹伟铭 2005年07月7日, 星期四 11:36  回复(1) |  引用(0) 加入博采

开始翻译cxc
就算是学习了,这样的学习记忆会很深的。
开始翻译Create XPCOM Component

- 作者: 尹伟铭 2005年06月15日, 星期三 01:38  回复(0) |  引用(0) 加入博采

fun with JUnit
JUnit已经存在了不少时间了,但是一直没有仔细的使用过。这几天要对SAT(公司自己的ORM工具)进行一些refactoring,并且要fix几个的bug。
如何能够在保证开发效率的基础上,保证开发和修复的质量呢?当然是unit test。以前的unit test使用的都是beanshell作为engine。它的好处就是快速,坏处就是需要自己用肉眼去观察正确与否。也许你会说为什么不写一些判断条件的方法呢?起初,我也是这么想的,但是这样不就是自己写一个简易的Unit Test工具了么。有现成的JUnit为什么不用呢?价格便宜量又足。
JUnit的学习门槛不高,照着它给的例子,很快就能抄一个出来 :)

使用JUnit作测试框架,虽然写test case的时候会消耗一点时间,但是比较节省的大量的、可能不安全的、也许存在漏洞认为的检查,效率有大幅的提升啊。

用了JUnit,还真对得起这堆代码。

- 作者: 尹伟铭 2005年06月15日, 星期三 01:37  回复(0) |  引用(0) 加入博采

upgrade to svn 1.2
svn1.2很早就下来了,但是一直没有升级。关键是我以前使用的是svn1.1.*,它默认的repository采用的是bdb。而到了1.2则最好使用fsfs。
文档上说,可以不用升级repository,可是我试验了,未果。
今天下决心省级repository,在网上找了一些文章。具体的方法还是很简单的。

我使用svn1.1.4完成的操作
首先新建一个fsfs的repository
svnadmin create new_repos --fs-type fsfs
然后把原来的bdb的数据dump出来,在load到新的repos就可以实现数据的顺利迁移。

svnadmin dump old_repos | svnadmin load new_reops
或者
svnadmin dump old_repos > data_file
svnadmin load new_repos < data_file

为了让已经创建的本地工作区能够顺利的工作。我们还要使用新的repository替换老的repository
rm -rf old_repos
mv new_repos old_repos

这样,以前创建的工作区就可以继续使用的。

svn 1.2新增的lock功能还没有试验,主要是一个人,工作区也只有一个。:)

可以顺利的升级了。

- 作者: 尹伟铭 2005年05月27日, 星期五 02:34  回复(0) |  引用(0) 加入博采