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

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工程师,我们希望你大致符合如下的描述: 阅读全文 »

twitter like和传统论坛

picture-5.png以前字符姐姐说我和绯雨叔叔都是彼得潘,另外我还以腹黑正太闻名,但是我也不得不承认,时间既是最难战胜的敌人也是最有价值的财富。如今面临的困扰,就是上网习惯变化很大,虽然firefox的书签工具栏上依然保留了很多论坛的链接(不常上的网站我都放到delicious里),但是别说跟人论战,就连踩遍各大论坛的时间也没有叻。我现在更习惯阅读feed(通过google reader和igoogle,后者类似报纸的体验)以及twitter模式的推送信息(通过桌面客户端和像friendfeed那样实时更新的网页)。

但是支持这种阅读习惯的环境却不是很理想(对国内而言)——SNS/twitter里的信息价值不高,多数都是缺少上下文的唠叨和零碎的感悟,以及只有熟人会感兴趣的琐事和闲扯;个人博客的内容同质化严重,而且热度早已降温,更新频率普遍下降(我除外喔,我更新一直都这么少XD)。大量有价值的信息仍然深藏在论坛和社区网站(其中我最反感的形式是通过积分或虚拟货币的形式设定阅读权限,人为阻止信息传播和再利用),没有进入社会化网络。 阅读全文 »

每个成功的社区背后都有一个教主——评solidot的浏览器连接数事件

我就一直很羡慕国外技术社区redditslashdot的评论,无论数量还是质量,无论趣味性还是信息含量,都让国内的网站相形见绌——先声明一下我绝对没有拿国内评论方面最火的cnbeta来比较喔,它们看上去根本不属于同一个位面……

我也经常看国内的solidot,时间长了都能猜出某篇文章会不会有评论,从google reader里点过去看,命中率相当高,这些文章通常就涉及那么几个话题,比如操作系统,比如国内it企业的丑闻,比如抨击zf针砭时弊,这种现象很好理解喔,毕竟年纪大点的人都更关心跟自己生活关系紧密的东西,而且这些话题的门槛也比较低,对国内网民来说,太geek的东西相当于太阳春白雪,应者寥寥,那是宿命~

但是今天我对solidot的印象大为改观!就在我下午昏昏欲睡不抱期望的点开一个帖子之后,意外的发现了非常娱乐非常有信息量的评论——说的更直接点,是发现了一个有教主潜质的用户 阅读全文 »

写javascript是否要“预留退路”

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

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

Dragon Age: Origins其实就是冰与火之歌+博德之门?

啊啊啊我现在对这部作品的热情超过辐射3了,Dragon Age: Origins的主旨是“回归原初(Origins)”,Bioware在战术和队友系统上确实是在回归博德之门,但是在剧情和设定方面,完全是在向乔治RR马丁那部被认为能以一抵四(四大名著)的《冰与火之歌》致敬哑!以下是《冰火》里的关键元素和对应的DAO设定:

被认为已经灭绝的巨龙开始重新出现,还以此背景来给游戏命名

异鬼

难以理解的黑暗生物大军(Darkspawn)每隔几百年就大举入侵文明世界,被称作the Blight,而且同样跟远古异神(the Old Gods)有关,入侵方向好像也是由北向南?好像同样是从地下钻出来的?(有人认为《冰火》里的异鬼是野蛮人寻找冬之号角时从古代陵墓里挖出来的……) 阅读全文 »

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)在讨论相关的话题,发现还是有一些东西值得写下来。 阅读全文 »

徐家汇战记

cerebellum.jpg今天星巴克人满为患找不到地方看书,我便去bestbuy给新ipod买硅胶套子,在地铁站入口处感觉耳机线被扯到了,回头在4点钟方向隐约看到白色的线和半个身体,再摸右边口袋,意识到里面什么都没有,立刻吓呆了,脑子里蹦出一大串想法,但其中最大最醒目最闪耀的是:啥时候买新的?

我以前在头脑里推演过这种事件,但是没想到现实中一切都发生的这么快,4点方向已经没有人影,在拥挤的人群中追上小偷大概也只有好莱坞动作片主角才能做到,所以我只是发呆,不知道下一步该做什么,而身体却在下意识的行动,不知不觉已经转到10点钟方向,几步远前方有一个穿黑衣的走过,被我一把抓住

这个人说他没拿,我当时继续发呆,心想我能怎么办,我有啥办法知道他拿了还是没拿……我居然没反应过来一个人被陌生人抓到衣服之后第一句话不该说我没拿!但是身体仍然在行动,手没松开,还把他拉到路边。我还在想其他事,没听见他又说了什么,他却突然把ipod还给我了,想来是被我的表情骇到了 阅读全文 »

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

picture-3.png其实去年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求斐波那契数列的尾递归方法

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

GOSPEL OF YY

    There is no room for '2' in the world of 1's and 0's, no place for 'mayhap' in a house of trues and falses, and no 'green with envy' in a black and white world.

    -- Ravel the night hag
    Planescape: Torment