你知道打架的基本常识吗?
就是先下手为强。

- Faye ValentineCowboy Bebop

'代码' Category

  • iframe和异步的跨域请求,结合土豆网的实例

    December 31, 2008

    这篇文章将会探讨一下在网页里做异步的跨域请求,以及借助iframe来获取数据的方法。
    呃,本来我觉得这个话题没什么好说的了,因为如今好像没有几个web应用能离开这类request,google和facebook用iframe来做comet的时候也基本上把能hack的都hack遍了,所以我估计开发者社区里应该早就形成所谓的”最佳实践”(best practices)了罢。不过最近看到有一些关注前端技术的blog(比如realazy)在讨论相关的话题,发现还是有一些东西值得写下来。

  • 递归和递推: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的第一章之后发现书中对这个问题其实有很严谨的解释,为了防止自己被骂成民科,赶紧修正了一些说法,加了删除线的文字都是有错误的,新增加的文字用粗体。

  • 新项目”YyOPML”——把OPML转换成web界面——大家一起来晒feed订阅列表吧!

    May 31, 2008

    首先要说一下目前的矛盾现状:一方面feed订阅和在线阅读器都还不够普及,多数普通网民就算经常访问blog网站,也还没养成订阅的习惯,主要还是通过门户媒体获取资讯,另一个方面,较早开始接触RSS订阅的人——特别是那些blogger和互联网geek们——不但已经对各种在线或离线的阅读器了如指掌,把阅读feed变成了上网的主要活动和习惯,而且很多人收集的feed已经多到让自己烦恼焦虑的程度。后者努力的整理删减自己的订阅列表,前者却经常抱怨不知道怎么寻找可订阅的信息来源…………这种不平衡于是引发了一种禁断的活动——朋友之间交换OPML订阅列表……

  • JavaScript Memoization:让函数也有记忆功能

    April 27, 2008

    realazy在blog上给出了一个JavaScript Memoization的实现,Memoization就是函数返回值的缓存,比如一个函数参数与返回结果一一对应的hash列表,wiki上其实也有详细解释,我不细说了,只讨论一下具体实现的问题,realazy文中的代码有一些问题,比如直接用参数拼接成的字符串作为查询缓存结果的key,如果参数里包括对象或数组的话,就很难保证唯一的key,还有1楼评论里提到的:[221,3]和[22,13]这样的参数也无法区分。
    那么来改写一下,首先还是用hash表来存放缓存数据:

  • iPhone App开发笔记

    March 8, 2008

    第一,标题里的app指的是根正苗红老实本分的Web App,昨天的这个时候,对是在昨天,iPhone Web App就等同于iPhone App,咳咳,虽然现在不是了,但我这笔记是两个星期前的……
    第二,不全,主要是我关心的一些细节,以及我自己理解的一些东西……

  • 在Leopard里配置rails+php+apache+mysql

    November 14, 2007

    上上周在lex的怂恿下升级到了Leopard,最后花了3天时间,备份数据用了一台macbook pro加一只80g移动硬盘,重装4遍,到现在总算稳定下来了,不过还有一个bug未解决(期待10.5.1补丁)……
    在Leopard里,很多开源代码都升级到了最新版,比如Python 2.5.1,PHP 5.2.4,Ruby 1.8.6,Apache 2.2,更棒的是,这次系统里直接集成了ruby on rails,包括Mongrel和Capistrano,据说还做过优化……
    以前在mac里配置ROR,我是按照Dan Benjamin的《Building Ruby, Rails, Subversion, Mongrel, and MySQL on Mac OS X》来做的,安装ruby,gem之类的东西都是依靠MacPorts(osx里的包管理系统),而MacPorts安装的程序都在/opt/local里,独立于系统环境……
    作为一个完美主义者,一定不能容忍自己心爱的系统里有任何兀余的代码,所以,这一次我希望能在leopard已经集成的代码基础上,搭建rails+php+apache+mysql的开发环境……

  • DOM加载事件的终极解决方案

    April 19, 2007

    今天被土豆网的lex鄙视了,因为我的BLOG在Safari里根本无法浏览——loading永远不会结束,很明显,这意味着webkit引擎不支持上次提到的判断DOM加载完成的方法。
    既然开了新文章,就干脆重新回顾一下这个问题:如今的javascript编程非常依赖DOM(文档对象模型),对HTML和XML来说,DOM是一个应用程序接口 (API) ,对JS来说,DOM为文档创建了程序可以使用的对象和方法,DOM把前端程序和内容结合在一起,就好像ORM(对象-关系映射,比如PEAR库里的DB_DataObject)把后台程序和关系数据库结合在一起,形象点说它是一颗节点树,没有这棵树的支撑,很多JS方法就无法使用。

  • 奇幻大辞典online版完工!

    April 14, 2007

    A Long Time Ago in a Galaxy Far, Far Away… Linkcd老爷用FoxPro做了一个辞典软件,虽然没有金山糍粑那样的取词功能,但“奇幻大辞典”拥有专业的奇幻游戏术语词库,成为了广大玩家和苦力翻译们必备的神器,如今回想起来,辞典的最后一次更新居然已经是四年前的事……
    时代已经不同了!如今linkcd老爷在惠普搞.net,FoxPro、Delphi这类玩意都早已成为过时的技术,基于Web的应用取代桌面软件成为一种越来越明显的潮流,单机PC游戏陷入低谷,”online”的后缀出现在所有经典名词的后面比如魔戒DND科南战锤大航海……其实我想说的就是,奇幻大辞典也与时俱进发布全新的在线版了!

  • YY专用Wordpress主题终于完成了……

    April 4, 2007

    上次Blogger被GFWED的时候,我说过坚决不转移到WORDPRESS是因为它太迎合我把东西做复杂的欲望,现在实践证明确实如此……
    由于形势所迫(不仅因为GFW),我不得不放弃Blogger重新建立一个稳定的BLOG,熟悉WP的插件加上制作这个主题花了4天时间,超乎想象了……时间主要浪费在设计、浏览器兼容上面……本帖我将用来发牢骚,并且分享一些经验教训,没兴趣的同学可以跳转到其他地方去了……

  • 新作品:可以自由编辑的Google地图,700行javascript+70行php

    March 13, 2007

    以前在龙骑士城堡提过一种想法,就是用GOOGLE MAPS来做桌面游戏玩家的主题地图。当时推荐的是EEMAP的服务,然则这个网站的注册一直需要邀请码,很不方便,而且界面难看,速度也很慢……
    当时就想过自己来做一个GOOGLE MAPS API的应用,但一直没时间看API文档。这几天总算有空闲(辞职就是好哑),把想象中的东西基本上做出来了,我把它叫作Free Map Folio v1.0(取自DND设定集的名字),可以像维基百科那样自由编辑,前端是静态的HTML,数据库用xml,方便部署,而交互操作的程序完全用Javascirpt来写

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