Limbo: 混沌位面 ———— 这里既空虚又充实,没有规则,没有约束,创造来自思考,生存依赖想像,现实源自梦想。
首页 给我发Email! 订阅 跟踪我的twitter信息

分类“代码”中的存档

以国家之名

change-1.jpg从我的Gmail里翻出的记录:

Mon, Feb 4, 2008 at 5:16 AM

subject: 注册信息

尊敬的用户,您的用户信息注册成功!用户名:dexter_yy

Thu, Feb 14, 2008 at 2:14 AM

subject: ICP备案审核通知(审核拒绝)

尊敬的用户:dexter_yy,很遗憾的通知您,您的ICP备案申请不能通过审核,拒绝原因是:您所备案的网站:请确认网站服务内容一栏填写是否准确.
接入商的核实意见:
(1) 信息不正确 请重新核对准确接入商

阅读全文 »

我觉得做NARUTO TV动画的人应该切腹

rock_lee.png虽然早在火影沦为四大民工漫之首的若干年前,我就已经没怎么追了(漫画偶尔看看),但是早期几个章节的tv动画(比如卡卡西vs再不斩,中忍考试李洛克vs我爱罗)曾经让我非常非常感动,我不是指那些纠结的人性和搅基的情感之类的玩意让我感动,是指镜头变化和速度感都非常华丽的打斗场面,最近的一部能让我有类似热血感觉的作品是BONES的SOUL EATER。

那段时期大概也是西尾铁也和他手下那帮超强的作画人员还在全力参与的阶段,西尾铁也这个人在国内不算出名,但是他参与过原画的几乎全是神作:《攻壳机动队SAC GIG》,《交响诗篇eureka7》,《精灵守护者》,《东之伊甸》(刚完结,前段时间最喜欢的),押井守最近的剧场动画《空中杀手》(The Sky Crawlers)的人设也是他,主要人物的脸和身体就像火影里一样圆润…… 阅读全文 »

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

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

picture-2.pngpicture-3.png

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

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

bw.jpg好罢这篇本来是我私下做的笔记,我特别喜欢在Evernote上做备忘的笔记,虽然上次看到漏屋老师的文章里说我现在的年龄才刚刚进入记忆力的巅峰期……但是我的自信心仍然屡受打击!比如跟别人讨论The Dark Knight里小丑在医院对检察官说了什么让他变成双面人,我一句对白都想不起来,还有big bang theory s2里penny玩age of conan时的人物名字是”Queen Penelope”,我看的时候印象很深,一个月后就连奥德赛都想不起来了。留份笔记总觉得心里踏实些……啊又跑题了

本文整理了一些最重要(或者说人气比较高罢)的新标准,虽然它们多数还只是w3c的草案,离Recommendation级别还早,却已经成为新一轮浏览器大战中备受追捧的明星,开发者社区里也涌现出大量相关的demo和API封装,有些已经进入生产环境(比如google在iphone上实现的gmail离线应用),其实我觉得如今的web领域里,从厂商私有技术转换成委员会标准再转换成通用技术产生杀手级应用的周期已经显著的加速了 阅读全文 »

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

picture-4.png首先要补充一些MacVim的配置,其实写上篇文章的时候我还在用已经过时的基于Carbon界面的vim for osx,更接近传统的unix版本,但是好久没更新,只支持vim6.0,soureforge上有一个7.2的版本,bug诸多,其中的乱码和字体抗锯齿的问题让我完全无法忍。而MacVim是基于Cocoa开发,支持到7.2,还含有很多讨好mac用户的设计,比如对标签的良好支持,华丽的界面(背景颜色支持透明度,字体抗锯齿更漂亮,几乎跟TextMate的效果没区别)……非常后悔以前没仔细试用这个版本!目前为止只发现行高linespace的设置会无法生效,不过这个bug在最新的快照版里已经修正了。

插播一个道歉:由于spam太多,我前段时间在wordpress黑名单里加了一个很苛刻的条件,把所有评论都挡到待审核列表里去了,好像还直接删了一部分……咳…… 阅读全文 »

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

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

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

rhino-a-5001.jpg原本是小麦的文案,被我改的啰嗦了,虽然最近在地铁上读了The Elements of Style,但是文字要写的简洁真的需要足够冷酷,我热血而且贪婪,不忍心漏掉一个信息点,所以简洁与我无缘……这篇JD发到其他地方的时候可能会删减很多,我先自己留一份……另外虽然这份JD仅仅提出了对雇员的要求,没有介绍雇主,但如果你仍然有兴趣,可以直接给我发email。

职位:Javascript开发工程师

简单的说,我们需要的是能“正确”使用Javascript的开发者。不同情况下,“正确”的标准也不尽然相同,作为土豆的javascript工程师,我们希望你大致符合如下的描述: 阅读全文 »

写javascript是否要“预留退路”

cloudbook.jpg早上收到一封邮件,问的正好是我一直如哽在喉的事情:

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

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

rockstar.jpgJohn 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和异步的跨域请求,结合土豆网的实例

tudou_frame.jpg这篇文章将会探讨一下在网页里做异步的跨域请求,以及借助iframe来获取数据的方法。

呃,本来我觉得这个话题没什么好说的了,因为如今好像没有几个web应用能离开这类request,google和facebook用iframe来做comet的时候也基本上把能hack的都hack遍了,所以我估计开发者社区里应该早就形成所谓的”最佳实践”(best practices)了罢。不过最近看到有一些关注前端技术的blog(比如realazy)在讨论相关的话题,发现还是有一些东西值得写下来。 阅读全文 »

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

刚才在IBM DW上看到这篇《JavaScript 技巧与高级特性》,其中关于arguments.callee的部分有一个用递归来求斐波那契数列的例子,简化一下是这样的:

  1. //经典递归
  2. function fibonacci(n) { 
  3.     return (function(n) { 
  4.         if (n == 1 || n == 2) 
  5.             return 1;
  6.         return arguments.callee(n - 1) + arguments.callee(n - 2);
  7.     })(n);
  8. } 
  9.  
  10. fibonacci(4); //result: 3
  11. fibonacci(5); //result: 5
  12. fibonacci(10); //result: 55

这种教科书式的写法出镜率很高,在很多文章里都可以看到,但是速度也特别慢,曾经看到过有些人就拿这种例子来说明“递归的效率低”或者“用javascript做函数式编程效率低”,然后给出迭代的写法……

更新:我今天老老实实的读了SICP的第一章之后发现书中对这个问题其实有很严谨的解释,为了防止自己被骂成民科,赶紧修正了一些说法,加了删除线的文字都是有错误的,新增加的文字用粗体。 阅读全文 »

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

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

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

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

那么来改写一下,首先还是用hash表来存放缓存数据: 阅读全文 »

GOSPEL OF YY

    正义必胜,不,唯我得胜方为正义!

    -- 药师寺凉子