-webkit-overflow-scrolling 带来的「bug」

重写了博客样式后,已经有好几个朋友说在 Mobile Safari 下 pre 代码块盖住了顶部的导航栏。还有热心的、前端的同学直接告诉我应该是 z-index 导致的 bug。这个 「bug」我也看到了,起因为由于 Mobile 下我给 pre 都加了: -webkit-overflow-scrolling: touch; 不过因为元素如果不设置 position 的时候,默认的值都是 static,所以这理论上与 z-index 是擦不上边。理论告诉我们是这样的,但事实上真的是这样吗? Google 了一圈,W3C Spec 上关于 poistion 的渲染有一段话是这样写的: Each box belongs to one stacking context. E...

Continue reading →

JavaScript 函数、作用域和继承

关于函数、作用域和继承,可以写的非常多。不过和JavaScript 类型浅解一样,是写给初学者看的,我们着重从简单的来。当然,即使用「简单」来描述,这也是 JavaScript 中最不容易懂的点之一。 一、函数 如你所见,function fn(){},像这个声明式函数。这几乎是函数最常见的内容。一个函数可以有多种形式。虽然初学看起来有点乱,不过我想说的是,你总会知道如何用的,现在知道就可以了,它们除了在 hositing (后面说)表现会有一些不同,其他的都差不多,后面你总会知道如何合理地使用他们的。 声明/匿名函数 当声明函数没有 name 的...

Continue reading →

JavaScript 类型浅解

对于 JavaScript 类型,可以简单地概括为:相对于强类型语言来说,它是弱(松散)类型的语言;有基本类型和引用类型,他们是区别是一个有固定空间存在于栈内存中,一个没有固定空间保存在堆内存中并且在栈内存中保存了一个指向实现位置的指针。 市面上很多书都有不小的篇幅在讲。这篇文章会讲几个方面,这些方面可能会需要你对 JavaScript 已经有了一些简单的了解,特别是 JavaScript 的类型。如果还不一解,可以随手拿起一本关于 JavaScript 的书翻翻,再来看本文。 一、基本类型与引用类型 基本类型:Undefined / Null / Boolean / ...

Continue reading →

创办一家什么样的公司

走着走着,突然停下来回想一下这是不是自己想走的路。用旁观者的心态不全面地看到别人的生活,特别是自己欣赏的人,总觉得他们路走的特别坚定并且纯粹,爱恨坚定。关于创办一家公司也是。以前一直在假设,团队应该是如何的,公司可以是如何的。而现在我就在这条路上,能做成怎样,首先得知道想做成怎样。变通的、文艺的、二叉的都好,至少得知道是怎样的。 首先应该是能盈利,保证一切运转的。这也是不谈的。要谈的在下面列出几点,这也是对我有巨大吸引力的。 一、做酷的事情 不一定是有趣的,也不一定是轻松的,但一定是酷的。当然...

Continue reading →

设计中的设计

刚看完《设计中的设计》,属于慕名而读,作者原研哉(目前在无印良品设计委员会)。刚好是一本好书,我对好书的判断基本上有两个,一是带来信息代表适合;一是引发思考。这本书开始尝试解决一个问题,「设计是什么?」,由此引入「设计」这一概念的原点和历史。并根据自已给了解释: 我的专业是信息传达,但我觉得信息传达的目的并不是通过强烈的视觉冲击来吸引人们的注意,而是要慢慢地渗透到五官中支。在人们还没有注意到其存在时,成熟 、隐秘、精密、有力的传达已经完成了 … 设计绝不仅仅是制造技术 … 设计是从生活中...

Continue reading →

美国B1/B2签证的一些经验

据说现在 B1/B2 的已经卡的不是很严,只要没有移民倾向一般都没有问题。面签当天楼梯大家在讨论,基本上都会有两个问题,「为什么去美国」和「有没有去过其他国家」。问我的问题则是,Kijiji 是哪个国家的语言(因为我是百姓网的员工,她似乎很了解 eBay 和 Kijiji),结果我忘记了,然后跟她笑聊了几句,就说「OK,没问题」,然后就莫名其妙地出来了,还担心会不会通过,不过事实上只要不要拿小红条应该就算过了。 整个过程很简单,如果你也有兴趣出去美国人民的「水深火热」也可以支申请: 周日填 DS-160 申请表,顺路网上付款(记...

Continue reading →

「程序八卦」第一期

自动 Google 宣布要关了 Reader 后就很少盯 RSS了,一直在寻找比较稳定的获取信息的渠道,结果假期在家看《程序员》杂志觉得不错,即使内容有点慢。不过 iPad 上的排版实在是太烂了,于是决定自己尝试一下做杂志的感觉。结果就是有了这一本「程序八卦」。算是第一期吧。这本的目标是: 这本是一本免费,且将永远免费的杂志,叫「程序八卦」。如其名,内容将会围绕程序,而非程序员本身,所以会包括源码、视觉和交互体验,当然也会 有程序员。期望像狗仔一样有「抛根问底」的八卦精神;也期望像标语所描述的「 to read, think, and hav...

Continue reading →

5月25:W3CTECH 上海交流会

休假回来,看了一下后台的报名数,122 位同学,就在这周六,玉伯、沉鱼、Hax、Goddy 等这一群人,将会在「上海市 徐家汇 广元西路55号 浩然科技大厦 2楼 百姓网 2013/5/25」聚在一起,免费酒水,轻松的环境,没有广告,没有招聘,只有技术和技术生活。 周六的时候邀请的邮件已发出,你确认了吗?上次说了「这次嘉宾很强大我们随便说吗?」,看了报名的数据后想补充一句「这次报名的同学很强大我会随便说吗?」。这周会开始准备 Review 分享的 Keynote,准备会场需要的东西。参与的同学,如果能确认一下邮件,将能帮我们更好地准备这一...

Continue reading →

Qcon 北京:做一件事

去 Qcon 北京,主要是随同事去听听、聊聊大家在做些什么事,如何做。几场分享,几个饭局,聊了一些生活、技术和团队上的事。或深或浅,对我来说,大家都在做一件事,一件值得记下来的事。 一、做自己擅长的事 听了 Jing.fm 创始人的演讲,他们在做一件事,解决生活中最基本的,市面上所有音乐提供商却都没做或者做不了的服务:语义搜索。比如我们最常见的一个需求,「想听适合阅读的音乐」,Jing 可以帮助你挑选,并且播放。想想之前一直有这样的需求,但却没办法轻松实现的方法,而虾米音乐有很多人提供了「精选集」这个折衷方案,所...

Continue reading →

给一个表单做前端验证

昨天中午帮朋友解决了一个表单验证的问题。他说怎么使用你做的 validator.js 总是调不通,看了一下他的代码,大概是这样的: $('.form').validator({ errorCallback: function(unvalidFields){ // 写了一大段操作 DOM 的东西 } }) 后来我把他的代码删了,改成了这样一行,事情解决了: $('.form').validator() 其实这是很多验证程序所做的事情就是配置,所以朋友脑中第一反应是,这事不会这么简单。当然,通常来说他们都不简单,但运行的正常。是不是能做得更简单?刚好最近重构完百姓网的发布,说说自己的一些想...

Continue reading →