shuai's profile娱乐精神PhotosBlog Tools Help

Blog


    7/31/2006

    X的悲剧和Y的悲剧

    最近一口气看完了X的悲剧和Y的悲剧
    这是奎恩的推理名篇
    这两个小说的共同之处
    就是都有一个无法想到的凶手
    这个凶手属于不被人关注的角落角色
    所以当我看到迷底时被深深震撼了
    而这种震撼
    是不同于看了行人的馆系列后的被骗之感
    是彻底的折服和赞叹
     
    同Y的悲剧相比
    X的悲剧更有可读性和故事性
    所以非常具有阅读时的吸引感
    和可重复阅读性
    当小说已经进入尾声
    而我仍还在云里雾里
    当看雷恩化妆成死者隆斯崔戏剧性的抓到凶手后
    我真是被突然出现的凶手震撼
    原来是他,那个角落角色
    我无论如何无法想到
    而雷恩早在隆斯崔被杀后就知道了
    我却没有注意到那个细节
     
    Y的悲剧的故事性相比就逊色一些
    奎恩故意把让读者引向了错误判断:
    凶手误杀错了人、死者儿女们的遗产纠纷
    以及那位值得怀疑的身份的家庭教师
    在最后,雷恩说凶手已经死了,并揭露迷底时
    我被压抑了几章的不爽之感彻底喷发
    由此Y的悲剧更像是黄金时代的推理小说
    (本来就是黄金时代的推理小说)
    ----用19章的压抑换来一章的畅快
    现在我非常期待奎恩的另一名篇
    希腊棺材之谜
    7/24/2006

    Endless Sadness

    上次看完NANA
    我的心理就出现了问题
     
    今天又听到Endless Story
    NANA的插曲
    我觉得比中岛的Glamorous Sky有力量多了
    青春的残酷
    辗转迷茫
    温暖而坚定
    全部浸入在那曲子的每个音符中
    我的心理就又出现了问题
     
    是不是因为追逐而放弃的太多了
     
    if you haven't change your mind
    想要你在身边 tonight
    早已疲倦了逞强
    曾经太过年少 everytime i think about you baby
    直到现在才能说出口 i miss you
    it is hard to say i'm sorry
    不为任何人 只为你
    唱这首歌
    永不完结的story延续在这光芒之中
    always 想要告诉你
    memories of our time together
    不要忘记 留在此刻 don't go away
    用温暖融化 只为了确定
    点滴的温柔 泛起心中的涟漪
    如此的痛苦 i'm missin'you
    握紧的手 不要放开
    如果可以 希望再次为你 唱这首歌
    永不完结的 story 从未消逝的想念
    tell me why 请告诉我 直到永远
     
    7/20/2006

    反向键索引

      Oracle会自动为表的主键列建立索引,这个默认的索引是普通的B-Tree索引。对于主键值是按顺序(递增或递减)加入的情况,默认的B-Tree索引并不理想。这是因为如果索引列的值具有严格顺序时,随着数据行的插入,索引树的层级增长很快。搜索索引发生的I/O读写次数和索引树的层级数成正比,也就是说,一棵具有5个层级的B-Tree索引,在最终读取到索引数据时最多可能发生多达5次I/O操作。因而,减少索引的层级数是索引性能调整的一个重要方法。

      如果索引列的数据以严格的有序的方式插入,那么B-Tree索引树将变成一棵不对称的"歪树",而如果索引列的数据以随机值的方式插入,我们将得到一棵趋向对称的索引树

      既然索引列数据从序列中获取,其有序性无法规避,但在建立索引时,Oracle允许对索引列的值进行反向,即预先对列值进行比特位的反向,如1000,10001,10011,10111,1100经过反向后的值将是0001,1001,1101,0011。显然经过位反向处理的有序数据变得比较随机了,这样所得到的索引树就比较对称,从而提高表的查询性能。

      但反向键索引也有它局限性:如果在WHERE语句中,需要对索引列的值进行范围性的搜索,如BETWEEN、<、>等,其反向键索引无法使用,此时,Oracle将执行全表扫描;只有对反向键索引列进行 <> 和 = 的比较操作时,其反向键索引才会得到使用。

     

    7/14/2006

    谁能摆脱时间
    就在那吻的一瞬间


    紧紧蔓延着我
    牵动我的弦

     

    看时光闪过
    过去也无法被淹没


    像燃烧的烟火
    绚烂的无法用言语概括


    结局仍是沉默
    我依然等着奇迹出现


    你一声不语掩着面
    胜过了千言

     

    7/7/2006

    未生先死

    今天突然想到用DynamicProxy实现ActiveRecord
    就是在运行时跟据数据库字段动态生成对象属性
    心中不免一喜
    然后想到为DynamicProxy又想到一个除AOP的应用
    心中不免又一喜
     
    可是发现这种方法无法实现编码时的智能感知
    心中不免一寒
    回想上星期调试DynamicProxy时,也发现了这个问题
    还为了看生成的il,把Emit出的对象存为DLL
    然后用Ildasm看过发现空空如也,就些罢手
    心中又不免一寒
    如果要把它存成DLL再引用
    每次数据库结构修改都要重新运行
    这同做个生成代码工具有什么区别
    心中再不免一寒
     
    二喜三寒
    于是我的ActiveRecord框架未生先死了
     
     
    7/3/2006

    .net组件导成COM

    今天走了不少弯路,容易嘛我,留个纪念:

     

    1。先生成强名:

    sn -k key.snk
    [assembly: AssemblyKeyFile("key.snk")]

     

    2。导出类型库

    Tlbexp c:\windows\system32\imagewatermark.dll

    注意这个命令是SDK里才有,就算是复制到没有安装SDK的机器也转不出来

     

    3。注册啦
    regasm imagewatermark.dll  /tlb:imagewatermark.tlb

     

    4。注到GAC里,才能用
    gacutil -i imagewatermark.dll

     

    5。最后,比如在vbs中调用:CreateObject("名字空间.类")