摘要:上个星期终于把 Ghost in the Wires 看完了,现在就抽时间来写写书评吧。尽管我一向懒得写书评,不过这本书真的是超级推荐!最初我是在 Audible 上面买了这本书的有声读物,然后发现朗读得超级好,尤其是 Kevin 知道危险逼近时心中的独白——「Fuuuuuuuck!」朗读的语气掌握得非常好。后来我决定买 Kindle 版来仔细读一下,因为有声读物不会专心听,只能把我到大意。随后我边听边读把整本书看完了。这本书整体上分为 4 大部分。第 1 部分讲述 Kevin Mitnick 是如何入行的——他父亲和叔叔都是商人,这使得他很小的时候就意识到通过言语可以驱使他人做一些对自己有利 阅读全文
前端工程师的职业发展路线在哪?
2011-12-14 08:40 by Cat Chen, 16043 阅读, 20 推荐, 收藏, 编辑
摘要:我猜想国内很多前端工程师都想过这个问题吧。前端工程师往往属于产品研发团队,但却很容易被边缘化——后端工程师觉得自己才是主力,没有后端工程师产品就不存在了,但没有前端工程师产品还能有,只是界面非常糟糕而已。这时候前端工程师就开始感觉自己像是个外包似的,只是来帮别人完成一些任务而已,对产品没有归宿感。这时候前端工程师的职业发展路线在哪?成为一个更好的外包吗?要做关键任务我觉得,要别人重视你的工作,不仅仅是你做得好就行了,还要求你的工作对别人来说足够重要。这跟产品定位有关——例如说对搜索引擎来说,前端对产品的影响不会非常大,用户只要能搜索到自己想要的结果就行了。搜索引擎最复杂的交互可能就是搜索框的自 阅读全文
看对的书 (Part 1 - Tribal Leadership)
2011-12-13 09:27 by Cat Chen, 7468 阅读, 7 推荐, 收藏, 编辑
摘要:很久很久之前(准确来说是两年前),我开始了一个系列叫做「看对的书」,然后只写了一篇 intro 就没有写下去。背后的原因包括,我确实越来越懒了,同时写书评也不容易——剧透太多了,大家觉得没必要去看原书;剧透太少了,大家觉得看不出书的吸引力在哪里。如何把握剧透多少,怎么剧透才能吸引大家取看原书,我还没有想好,不过我可以先尝试着写。我今天想要推荐的书是《Tribal Leadership》,也就是《部落领导力》,不过这本书暂时没有中文版。尽管这是一本讲「领导力」的书,但里面说的并不是你要做什么事情才能拥有领导力。书中说得更多的是部落——只有在你理解到部落的 5 个阶段后,你才能够使用你的能力把你的 阅读全文
工具:开发者使用,企业埋单
2011-12-04 21:18 by Cat Chen, 2421 阅读, 4 推荐, 收藏, 编辑
摘要:我喜欢写一些小工具来简化我的工作,通常是一些小组件。利用这些小工具我可以提高自己代码的可读性,同时维持我的 DRY (Don't Repeat Yourself) 洁癖。工具对我来说很重要,因为时间对我来说很宝贵。能够用工具自动化完成的事情绝对不手工反复操作,能够用工具避免人为错误的地方一定让工具来确保质量。使用工具节省下来的时间用于玩游戏的话,绝对是值得的!过去我主要做工具给自己用,或者是给自己所在的团队使用,所以觉得自己就是用户,自己设计产品给自己用肯定是没问题的。然而做工具给更多人用呢?看起来就不那么容易了。之前在百度经历过 Tangram 的需求分析与设计阶段,每个产品线都派出 阅读全文
「云端 JavaScript 漫游指南」
2011-08-09 00:00 by Cat Chen, 4049 阅读, 4 推荐, 收藏, 编辑
摘要:7 月 30 日在 w3ctech 的 JavaScript 活动广州场 讲了一节「云端 JavaScript 漫游指南」,实质上就是 Node.js 入门讲座。希望通过这一节讲座,让原本熟悉 JavaScript 的前端工程师尝试使用 Node.js 开发一些应用,探索 Node.js 为 Web 开发带来的可能性。这场讲座上主要使用了两个小 demo 来解释 Node.js 的一些基础概念,并且展示了如何把自己的应用部署到云端。需要使用 Node.js ,最起码你要知道 CommonJS Modules 的概念,然后你才能在一个 js 文件里面使用另一个 js 文件实现的功能。这是通过 r 阅读全文
为什么 script 标签不能写成自关闭形式
2011-07-08 13:50 by Cat Chen, 5387 阅读, 4 推荐, 收藏, 编辑
摘要:今天早上在 Stack Overflow 看到了这个问题: Why don't self-closing script tags work? 。答案给出的解释是,在 XHTML 的标准里面规定非 EMPTY 标签不能使用自关闭形式。注意这里使用的是全大写的 EMPTY ,所以我不把它翻译为「空白」。那么 EMPTY 到底是什么呢?写过 DTD 的人应该知道它是个关键字,用来指明一个标签的内容必须是空白,而不能包含文本内容或子节点。看看具体的例子就很容易明白了:<!ELEMENT img EMPTY><!ATTLIST img %attrs; src %URI; #RE 阅读全文
在 JavaScript 中监听 IME 键盘输入事件
2011-05-29 22:26 by Cat Chen, 10192 阅读, 5 推荐, 收藏, 编辑
摘要:在 JavaScript 中监听用户的键盘输入是很容易的事情,但用户一旦使用了输入法,问题就变得复杂了。输入法应当如何触发键盘事件呢?是每一下击键都触发一次事件,还是选词完毕才触发事件呢?整句输入又该如何触发事件呢?不同的操作系统和不同的浏览器对此有不同的看法。在最糟糕的情况下,用户使用输入法后浏览器就只触发一次 keydown ,之后就没有任何的键盘事件了。这对于 Suggestion 控件的实现来说是个大问题,因为 Suggestion 控件需要监听文本输入框的变化,而事件是最准确也最节省计算资源的做法,如果换成轮询的话性能就可能受到影响。 首先,要监听启用输入法后的击键事件应当使用 ke 阅读全文
Tangram 前端库通过 Github 开源了
2010-12-24 16:20 by Cat Chen, 8471 阅读, 9 推荐, 收藏, 编辑
摘要:Tangram 是百度内部一直在开发和使用的前端库之一,功能与 jQuery 、 Prototype 等库类似,主要功能是简化 DOM 操作,并且扩展 JavaScript 语言。这部分功能准确来说属于 Tangram Core ,另外一个叫做 Tangram Component 的库提供一些类似 YUI 、 Sencha 这个级别的组件。之前 Tangram 说要开源很久了,一直卡在流程上,并且也有人觉得必须把库做得足够好了才好意思拿出来开源。我个人的看法是,跟 John Resig 的一样,前端库应该从第一天开始就开源,因为就算你不开源别人也一样能看到,所以还不如开放出来接受别人的贡献。如 阅读全文
Tech·Ed 2010 及动手实验室资源下载
2010-12-15 13:55 by Cat Chen, 2922 阅读, 2 推荐, 收藏, 编辑
摘要:今年是第二年以讲师身份参加 TechEd 了,没有了往年的兴奋,认真把工作做好才是关键。 TechEd 对我来说,更多是一种年度聚会,能够跟国内 Microsoft 及社区的朋友见面聊天。课程第一天下午到得比较晚,来到的时候 Keynote 快要开始了,赶紧领了讲师的书包和衣服后就去听 Keynote 了。今年的 Keynote 对我来说没有什么吸引力,因为主要是面向 Azure 和 Windows Phone 7 的内容,这两样东西都是面向企业用户的,自己一个人玩没什么意思。 Keynote 后,两个基础课程都没去听,主要还是基于上面所说的原因,自己回到了讲师休息室,继续调整 PPT 。今年 阅读全文
John Resig 见面会视频
2010-11-23 00:28 by Cat Chen, 3497 阅读, 4 推荐, 收藏, 编辑
摘要:上个星期 John Resig 来到了中国,谋智网络跟 CSDN 组织了一场 John Resig 见面会。 John Resig 在大会上介绍了 jQuery 的两个新特性(暂时还是插件): Data Link 以及 Templates 。引入这两个插件后,前端的数据呈现及交互将变得更简单,开发数据驱动型 Web 应用的成本也会随之而降低,估计将来我们能够见到更多基于 jQuery 的数据交互型... 阅读全文
如何让你的网站支持 IE9 Pinned Site (Part 2 - 实战)
2010-11-17 00:02 by Cat Chen, 3200 阅读, 3 推荐, 收藏, 编辑
摘要:该如何展示 IE9 Pinned Site 呢?我可以写一个新的应用,完全是为了展示 Pinned Site 的特性,但这样就像是为了实现这些特性而利用这些特性。所以我想还是升级一个现有的网站好了,这样更能说明 Pinned Site 是如何起到优化用户体验的作用的。我选择了 hack 现在的百度地图。由于 IE9 正式版还没有发布,所以我 hack 的代码暂时也不能发布到线上,只能私下玩玩。在这... 阅读全文
如何让你的网站支持 IE9 Pinned Site (Part 1 - 理论)
2010-11-16 19:19 by Cat Chen, 3824 阅读, 3 推荐, 收藏, 编辑
摘要:Windows 7 任务栏有何不同自从 Windows 95 开始,任务栏就一直没什么变化,都是一个个长条表示正在运行的应用程序,直到 Windows 7 。 Windows 7 的任务栏发生了巨大的变化,这个变化其实就是更像 Mac OS X 的 Dock 了。无论是否在运行的应用程序,都可以在任务栏上占一个位置,并且这个位置可以固定下来,让用户可以更方便的操作这个应用程序。从此,任务栏由单向地... 阅读全文
百度前端技术交流会视频及讲稿下载
2010-11-07 20:35 by Cat Chen, 13305 阅读, 17 推荐, 收藏, 编辑
摘要:10月份的最后一个周末,百度前端研发部尝试了第一次的对外技术交流活动,尽管只是在官方博客上做了宣传,仍然收到近 200 人的报名。考虑到场地限制,发出去了 100 个邀请,最终来参加的有 130 人。活动邀请了来自豆瓣、新浪、腾讯、百度前端研发团队的4位工程师来做演讲,内容涉及前端框架、开发流程以及团队合作方式。以下是他们演讲的视频及讲稿下载。百度前端基础平台与架构分享Youku 高清版本豆瓣前端... 阅读全文
中国移动开发者大会 2010 及视频资源
2010-11-03 14:07 by Cat Chen, 3755 阅读, 5 推荐, 收藏, 编辑
摘要:这个星期去参加了 CSDN 和创新工场举办的中国移动开发者大会( CMDC ),感觉最大的收益是认识了一些做移动开发的人,同时了解了各家公司在做移动开发时积累的经验。《植物大战僵尸》成功的秘密最有趣的一个 session 是「《植物大战僵尸》成功的秘密」,演讲者是 PopCap Games 亚太区总裁 James Gwertzman 。这个如此成功的游戏经过了4年的开发,进行了多次迭代,才做出了我... 阅读全文
用 JavaScript 对 JSON 进行模式匹配 (Part 2 - 实现)
2010-07-15 14:58 by Cat Chen, 3703 阅读, 3 推荐, 收藏, 编辑
摘要:在上一篇文章里,我们完成了 Dispatcher 类的接口设计,现在我们就来考虑一下如何实现这个类。Notify & Capture要实现 notify 和 capture 就太容易了,我们只需要把 capture 传入的 handler 都保存下来,然后在 notify 里面找到匹配的 handler 就可以了。var filterHandlerBundles = [];Dispatch.cap... 阅读全文
用 JavaScript 对 JSON 进行模式匹配 (Part 1 - 设计)
2010-07-13 14:04 by Cat Chen, 4348 阅读, 4 推荐, 收藏, 编辑
摘要:在《从 if else 到 switch case 再到抽象》这篇文章里面说到,解决 if else 和 switch case 分支过多的一个方法,就是做一个专用的 dispatcher ,让它来负责进行筛选与转发。至于筛选条件的描述,模式匹配是一种很常见也很好用的方式。在 JavaScript 里面,用 JSON 来描述模式又是相当方便的事情,所以我们来做一个 JSON 模式匹配工具吧。用例设... 阅读全文
从 if else 到 switch case 再到抽象
2010-07-05 14:04 by Cat Chen, 16012 阅读, 41 推荐, 收藏, 编辑
摘要:大家觉得在接手遗留代码时,见到什么东东是最让人感到不耐烦的?复杂无比的 UML ?我觉得不是。我的答案是,超过两个 else 的 if ,或者是超过两个 case 的 switch 。可是在代码中大量使用 if else 和 switch case 是很正常的事情吧?错!绝大多数分支超过两个的 if else 和 switch case 都不应该以硬编码( hard-coded )的形式出现。复杂... 阅读全文
MVP Summit 2010 Trip (CA)
2010-05-16 15:33 by Cat Chen, 2647 阅读, 1 推荐, 收藏, 编辑
摘要:跟张诚、马志文飞抵 San Francisco 以后,我父亲的朋友来机场接我们到酒店。我们住在 Hilton ,当初 bid 这个酒店是想看看五星级酒店如何,确实是 bid 到了很好的价格,但是网络、早餐都不免费。相比之下,之后住的那些三星四星酒店都有免费的网络和早餐。当晚安顿好之后,父亲的朋友开车带我们到 Bay Bridge 对面的 Oakland 吃晚餐──到美国之后... 阅读全文
MVP Summit 2010 Trip (WA)
2010-03-14 23:17 by Cat Chen, 2839 阅读, 1 推荐, 收藏, 编辑
摘要:简单记录一下今年的 MVP Summit 之旅。上半部分是在华盛顿州的一个星期,下半部分是在加州的一个星期。MVP Summit 期间,我住在 Bellevue 的 Westin 。第一天和第四天的会议在 Hyatt 举行,而第二天和第三天则在 Microsoft Campus 。经历了前年的「 too much salmon 」和去年的「 no salmon 」之后,今年三文鱼又被请回来了,而且... 阅读全文
Apple 谈论产品 vs Microsoft 谈论技术
2010-02-07 21:02 by Cat Chen, 4250 阅读, 3 推荐, 收藏, 编辑
摘要:看了一下 Jeff 的《李笑来激起千层浪,赵姐夫力拒众强敌》,回顾了一下之前 Twitter 上的讨论。我个人觉得, Apple 观点和 Microsoft 观点是不同的,所以才造成了如此之多的争论。很多人在使用 Microsoft 技术的同时,由于 Microsoft 铺天盖地的宣传信息,自然而然地也接纳了 Microsoft 观点。使用这种观点去跟持有 Apple 观点的人争论是没有意义的,因... 阅读全文
欢迎加入 iPhone / iPad 开发小组
2010-02-03 19:35 by Cat Chen, 6341 阅读, 7 推荐, 收藏, 编辑
摘要:刚刚看到博客园的 iPad 专题上线了,于是我就跟 dudu 讨论要不要开一个 iPhone / iPad 开发小组或者团队博客。 dudu 说,先开个小组并发到首页推广一下吧,于是就有了一个 iPhone / iPad 开发小组。如果小组人气足的话,我们就再开一个团队博客。 阅读全文
程序员的品味
2010-02-01 12:04 by Cat Chen, 10926 阅读, 23 推荐, 收藏, 编辑
摘要:上个月跟刘江以及一些《程序员》的热心作者读者吃了一顿饭,刘江让大家谈谈《程序员》的内容以及未来的方向。在激烈的讨论之后,我觉得我应该把自己的想法写下来,但那篇文章在我的草稿箱里躺了一个月了,就是无法结尾。那篇文章想要表达的意思很简单,我认为《程序员》应该提供一流的阅读体验。至于作者和编辑手上的内容,就如同程序员手上的代码一样,都只是为了实现特定体验的手段而已。就拿《Avatar》来做例子吧,它的内... 阅读全文
能承载移动 Web 应用的唯一浏览器: Mobile Safari
2010-01-30 14:02 by Cat Chen, 5303 阅读, 1 推荐, 收藏, 编辑
摘要:最近拿 iPhone 、 Android 、 Windows Mobile 这三个平台上的内置浏览器来做了一番对比,结果是只有 iPhone 的 Mobile Safari 能够承载现代化的移动 Web 应用,其他移动浏览器的设计思路还停留在上个世纪──能看网页就行,不存在移动应用一说。我用来做对比的平台是 iPhone 2.0 、 Android 2.0 、 Window... 阅读全文
看对的书 (Part 0 - 何谓对错)
2009-12-21 00:02 by Cat Chen, 5098 阅读, 2 推荐, 收藏, 编辑
摘要:在《老赵书托》里面,Jeff把人脑比喻为「寄存器」,而我则更倾向于把人脑比喻为「神经网络」。但是「神经网络」的定义本身就源自人脑啊,这不是循环引用了吗?其实我的意思是,我们应该参考训练神经网络的方式来优化人脑的思维方式。我们都知道,训练神经网络应该用对的数据,这样才能让神经网络逼近于我们期望的行为模式。如果使用错的数据进行训练,结果将是不可预知的,而且往往意味着偏离我们期望的行为模式。基于同样的道... 阅读全文
《程序员羊皮卷》书评
2009-12-19 19:03 by Cat Chen, 4434 阅读, 4 推荐, 收藏, 编辑
摘要:拿到Leo送来的《程序员羊皮卷》,看到封面上写着的话,确实让我很崩溃——是不是困惑自己投的简历石沉大海,找到好工作的总是另有他人?是不是痛苦自己每天工作闷闷不乐,像所有的人都在和自己作对?是不是不解自己努力工作好似黄牛,别人却加薪升职或另有高就?是不是苦恼自己每天工作重复单调,只见曲折现在不见美好未来?如果上述问题的答案都是“否”,请您把这本书直接放... 阅读全文