No remorse, no shame, no mercy.

- Arthas MenethilWorld of Warcraft

'JavaScript' Category

  • GrassMudMonkey: 浏览器里的草泥马程序解释器

    March 21, 2010

    一款具有划时代意义的产品隆重面世!来自中国民营企业土豆网的高级资深前端总工程师瀚主程序员瀚首席前端架构师德克斯特同志(Fellow Dexter the Advanced Senior Principal Front-end Engineer & Chief Programmer & Lead Architect)胸怀大志,以民族振兴和国家富强为己任,充分发扬自力更生自主创新的精神,在没看过龙书没读完SCIP的简陋条件下,敢打敢拼,艰苦朴素,不吃饭不喝水不晒衣服,终于研发出了可以在浏览器中运行草泥马程序的纯JavaScript实现的草泥马引擎GrassMudMonkey,这标志着中国自主知识产权的编程语言——草泥马语(GrassMudHorse Programming Language)——在核心技术上又取得了重大突破,打破了谷歌,魔斯拉等西方国家企业在浏览器内嵌脚本技术上的垄断,为三网融合瀚大中华局域网的发展创造了良好的技术条件,回首往昔,展望未来,完全基于汉字的编程方式的普及必将推动民族凝聚,促进和谐,有效抵制西方文化入侵乃至外星使徒入侵。

  • [内销转出口]寻找最好的JavaScript面向对象模式和封装结构

    September 20, 2009

    好久不见,这次发的不是笔记啦,是我在公司内部的前端wiki上更新的文档……这个抛弃所有wiki语法要求用户直接手写语义化html用json配置导航的wiki排版相当漂亮,让我这样的懒人也有了码字的欲望,发起人小麦实在系功德无量……

    这篇文章去年就准备写,想用循序渐进的形式推演出一个Module Pattern的最佳实践,不过想法越多,归纳总结表达出来的成本就越高,所以一直拖延……这次发的文档是一个简化版,去掉了各式各样乱七八糟的写法,只包含几个常用的,说明文字也不多主要看代码-__-b……初衷是作为给土豆前端team里新来的同事看的提纲(对了由于某人叛逃到产品设计部门,现在又空出一个名额,有兴趣的同学抓紧时间投简历,这次是魔都总部的职位,不是成都的),所以要解释一下

  • HTML5, CSS3, ES5…新的web标准和浏览器支持一览

    June 29, 2009

    好罢这篇本来是我私下做的笔记,我特别喜欢在Evernote上做备忘的笔记,虽然上次看到漏屋老师的文章里说我现在的年龄才刚刚进入记忆力的巅峰期……但是我的自信心仍然屡受打击!比如跟别人讨论The Dark Knight里小丑在医院对检察官说了什么让他变成双面人,我一句对白都想不起来,还有big bang theory s2里penny玩age of conan时的人物名字是”Queen Penelope”,我看的时候印象很深,一个月后就连奥德赛都想不起来了。留份笔记总觉得心里踏实些……啊又跑题了
    本文整理了一些最重要(或者说人气比较高罢)的新标准,虽然它们多数还只是w3c的草案,离Recommendation级别还早,却已经成为新一轮浏览器大战中备受追捧的明星,开发者社区里也涌现出大量相关的demo和API封装,有些已经进入生产环境(比如google在iphone上实现的gmail离线应用),其实我觉得如今的web领域里,从厂商私有技术转换成委员会标准再转换成通用技术产生杀手级应用的周期已经显著的加速了

  • 继续补充vim配置技巧——上次的vimrc还不够强力

    June 7, 2009

    首先要补充一些MacVim的配置,其实写上篇文章的时候我还在用已经过时的基于Carbon界面的vim for osx,更接近传统的unix版本,但是好久没更新,只支持vim6.0,soureforge上有一个7.2的版本,bug诸多,其中的乱码和字体抗锯齿的问题让我完全无法忍。而MacVim是基于Cocoa开发,支持到7.2,还含有很多讨好mac用户的设计,比如对标签的良好支持,华丽的界面(背景颜色支持透明度,字体抗锯齿更漂亮,几乎跟TextMate的效果没区别)……非常后悔以前没仔细试用这个版本!目前为止只发现行高linespace的设置会无法生效,不过这个bug在最新的快照版里已经修正了。
    插播一个道歉:由于spam太多,我前段时间在wordpress黑名单里加了一个很苛刻的条件,把所有评论都挡到待审核列表里去了,好像还直接删了一部分……咳……

  • 面向前端开发者和TextMate粉丝的vim配置

    May 30, 2009

    vim是编辑器中的神器,但是因为学习曲线比较陡,界面也仿佛从石器时代穿越,广大fashion的前端工作者们难免对其有距离感。其实vim最大的萌点有两个,其一是百科全书般的文本编辑功能,其二是可以随意定制,满足任何与编辑器相关的需求和偏好,比如下面这张便是我在macbook pro上运行vim的截图,不仅语法高亮可以冒充TextMate,功能也几乎一致。

  • 土豆招聘Javascript工程师的JD,终于谷出来一个

    May 16, 2009

    原本是小麦的文案,被我改的啰嗦了,虽然最近在地铁上读了The Elements of Style,但是文字要写的简洁真的需要足够冷酷,我热血而且贪婪,不忍心漏掉一个信息点,所以简洁与我无缘……这篇JD发到其他地方的时候可能会删减很多,我先自己留一份……另外虽然这份JD仅仅提出了对雇员的要求,没有介绍雇主,但如果你仍然有兴趣,可以直接给我发email。
    职位:Javascript开发工程师
    简单的说,我们需要的是能“正确”使用Javascript的开发者。不同情况下,“正确”的标准也不尽然相同,作为土豆的javascript工程师,我们希望你大致符合如下的描述:

  • 写javascript是否要“预留退路”

    January 20, 2009

    早上收到一封邮件,问的正好是我一直如哽在喉的事情:
    对于web开发中的预留退路问题,我一直犹豫不决。在安全方面,自然是不能完全相信JavaScript,这点是确定的。但在用户体验方面,是否真的需要处处”预留退路”,照顾那些不支持JS或者对JS支持不好的用户吗?而UED工程师们又一直在说,不”预留退路”会惹恼数量不少的用户,但却从没有人提起具体会是多少用户、多少比例。不知道YY大神手里有这方面的数据吗?记得YY您在建立Limbo混沌海的时候,就选择了”不预留退路”的方式,不知当初又是出于什么原因这样考虑的呢?非常想听听您对”预留退路”问题的看法,期待您的回信。

  • jQuery1.3和里程碑式的新选择器引擎

    January 15, 2009

    John Resig老爷在twitter上宣布jQuery1.3正式发布,直接把2加到3反映了这个版本的重要性不同以往,除了重写很多重要方法——比如offset(获取页面上的各种尺寸和位置数据),创建和插入DOM节点(比如append, before之类,这些方法是JQuery以前速度上的瓶颈之一,我就完全不用它们,但是现在速度提高了6倍)——最重要的改变是启用了全新的Sizzle引擎来实现CSS选择器。
    从“JQuery”这个名字就能看出,用CSS/XML选择器查询页面元素,是这个javascript库赖以起家的绝活,最早可以追溯到Dean Edwards的cssQuery,和Simon Willison的getElementsBySelector,但是在那个上古时代(史料记载中无正式名称,我们可以称之为“Age of the First Bubble”,或者“DHTML Era”,虽然也有学者认为希腊神话中描述的黑铁时代(Iron Age)就是指那段时间……dojo创始人Alex Russell,以及prototype创始人Sam Stephenson,都是来自那个时代地淫~),

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

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