Wednesday, July 22, 2009

trac代码阅读3 - upgrade database

重写IEnvironmentSetupParticipant中的三个方法, 然后记得在__init__.py中import 你的IEnvironmentSetupParticipant实现, 此时安装并启用插件之后, 就会出现: trac-admin /path/to/trac upgrade的提示

Saturday, July 18, 2009

trac代码阅读2 - yield expressions

例:
def test(value = None):
    i = value or 0
    while i < 100:
        yield i
        i += 1
=============>>>>>
>>> s.next()
0
>>> s.next()
1
>>> s.next()
2
>>> s.next()
3


由外部逻辑控制此generator function的执行,  we called it: Semi-Coroutine

Thursday, July 16, 2009

Tuesday, June 30, 2009

Automatic change your IP address in windows

netsh interface ip set address name="本地连接" source=static addr=192.168.0.8 mask=255.255.255.0
netsh interface ip set address name="本地连接" gateway=192.168.0.1 gwmetric=0
netsh interface ip set dns name="本地连接" source=static addr=202.106.0.20 register=PRIMARY
netsh interface ip add dns name="本地连接" addr=202.102.152.3 index=2
netsh interface ip add dns name="本地连接" addr=210.82.5.1 index=3
netsh interface ip set wins name="本地连接" source=static addr=none

Saturday, June 20, 2009

selenium 1.0发布了

一直关注selenium, 但是他的脚本录制功能对js的操作始终是无能为力, selenium 1.0发布之后, 通过试用, 对效果依然感到失望:(,
倒是HtmlUnit, 他的js支持, 包括js框架的支持都是相当不错的, 缺点就是要用java写UI测试用例:(, 
自己动手写一个?

Sunday, March 15, 2009

无废话谈项目经理 - 职责篇

项目经理的职责:
  1.    项目管理控制能力
  2.    每个项目组内部都是存在矛盾的,能够控制项目组的矛盾不被激化
  3.    团队建设

Friday, March 13, 2009

查看linux系统io状态

查看linux系统io状态 vmstat 1

Friday, February 27, 2009

Java编码转换核心

String encoding = "gb2312";
byte b[] = "你".getBytes("gb2312");

ByteToCharConverter convertor =
ByteToCharConverter.getConverter(encoding);
//将byte转到制定编码
char[] c = convertor.convertAll(b);

for (int i = 0; i < c.length; i++) {
System.out.println(c[i]+"--");
}

Saturday, February 14, 2009

Jennifer Love Hewitt

Jennifer Love Hewitt的两首好歌:
Take my heart back
Love will show you everything

Tuesday, January 06, 2009

Saturday, December 20, 2008

用jQuery.extend遇到的问题, 与大家共勉

官方接口: jQuery.extend( [deep], target, object1, [objectN] )

如果target未指定, 则jQuery名字空间接受extend后的属性, 但是, 如果object中包含dom属性, deep又设置为true的话, 则会出现recursively error, 因为dom树存在循环引用!
  • 看代码就很容易明白了,
  • extend函数的核心:
    if ( deep && copy && typeof copy === "object" && !copy.nodeType )
    target[ name ] = jQuery.extend( deep, src || ( copy.length != null ? [ ] : { } ), copy );
  • 可以看到这里copy.nodeType处理了dom node, 就是为了避免这种递归, 但是当我们自己有个对象, 此对象是互相引用的结构时, 这个情况就再所难免了, 所以一定要注意
  • 另外: $.ajax({param: ...}), 中的param, ajax函数内部就是一个jQuery.extend, 所以这里也要注意一下