路飞:白痴!我根本就不会剑术!而且我也不会航海!更不会做菜!也不会说谎!如果没有他们的帮助,我根本活不下去!
恶龙:很少会有这样全面否定自己的人……有你这样无能的船长,做你的夥伴一定很累吧?那为什麼你的夥伴会拼命想救你呢你到底能做什麼?
路飞:我可以打败你!!

- 海贼王

  • 用synergy在Mac和双屏幕PC之间共享鼠标键盘

    November 25, 2008

    其实去年5月的时候我就在ibook和公司的PC上装过synergy,后来完全抛弃了windows环境,那台PC长期闲置,有没有键盘鼠标都无所谓,所以就没再装过这个工具。未想到风水轮流转——
    先是在封闭开发黑豆的时候,我只把macbook pro和宽屏显示器带进了小黑屋,完全不用PC测试,自以为凭借经验和美学智慧已经足以预判和规避一切浏览器兼容问题……结果测试阶段被ie里relative定位的一系列渲染问题折腾得很囧。
    然后是testing team抛弃了Bugzilla,开始“严肃的”使用Mercury QC,虽然它繁复的操作和用activex开发的客户端都让我很不屑,但是这玩意的可怕之处在于严谨的(或者说死板的)权限和缺陷状态管理,没有哪个testing team的姐姐能帮我绕过流程,由于我长期不接受也不关闭任何bug,每周五邮件里的统计结果就很不好看。
    再加上最近又开始大萧条,为了遵从开源节流现金为王的教诲,我也只好腆着脸登陆公司里那个界面更烂的OA系统申请报销手机费。
    这些事情都让我越来越离不开IE,对了,windows上的软件也越来越有吸引力,比如httpwatch和chrome,相反mac上有吸引力的软件却恰好不能在我的工作环境中使用,比如textmate和coda,eclipse 3.4也经常假死或者弹一些莫名其妙的报错窗口。

  • 递归和递推:javascript求斐波那契数列的尾递归方法

    November 22, 2008

    刚才在IBM DW上看到这篇《JavaScript 技巧与高级特性》,其中关于arguments.callee的部分有一个用递归来求斐波那契数列的例子,简化一下是这样的:
    //经典递归
    function fibonacci(n) { 
        return (function(n) { 
            if (n == 1 || n == 2) 
                return 1;
            return arguments.callee(n – 1) + arguments.callee(n – 2);
        })(n);

     
    fibonacci(4); //result: 3
    fibonacci(5); //result: 5
    fibonacci(10); //result: 55
    这种教科书式的写法出镜率很高,在很多文章里都可以看到,但是速度也特别慢,曾经看到过有些人就拿这种例子来说明“递归的效率低”或者“用javascript做函数式编程效率低”,然后给出迭代的写法……
    更新:我今天老老实实的读了SICP的第一章之后发现书中对这个问题其实有很严谨的解释,为了防止自己被骂成民科,赶紧修正了一些说法,加了删除线的文字都是有错误的,新增加的文字用粗体。

YY in Limbo (混沌海狂想) © Dexter.Yy

Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution - NonCommercial - ShareAlike 3.0(署名-非商业性使用-相同方式共享).
Creative Commons License