Spiga

SD2C 2009 (Part 2 - Session & Forum)

2009-10-25 19:51 by Cat Chen, 1248 visits, 网摘, 收藏, 编辑
摘要:SD2C的第一天晚上,我在「开放平台」和「PPT制作秘诀」两者之间犹豫,最后选择了去听蔡学镛的「尼古丁+咖啡因...不瞌睡的PPT制作秘诀」,原因是我觉得如果蔡学镛能教别人写不瞌睡PPT,那么他自己的PPT至少也应该是不瞌睡的。事后证明我的选择是没错的——别人告诉我「开放平台」论坛成了平台和开发人员互相责骂对方的战场。蔡学镛把制作PPT比喻为制作生鱼片,要经过选材、处理、装... 阅读全文

SD2C 2009 (Part 1 - Keynote & Meal)

2009-10-23 00:13 by Cat Chen, 1588 visits, 网摘, 收藏, 编辑
摘要:一年一度的SD2C又来了,今年的时间由去年的两天半扩充到三天,第一天只设主会场,全部都是keynote。跟去年的情况类似的是,keynote环节基本上就是赞助商专场,每个赞助商都来从技术的角度说一下自己当前最重视的市场。例如说Microsoft开始重视Team Foundation Server的市场占有率了,于是就在Visual Studio 2010的keynote上介绍TFS的特性,所占比例... 阅读全文

十分钟内学会:控制浏览器是否缓存网页状态

2009-10-09 14:59 by Cat Chen, 3345 visits, 网摘, 收藏, 编辑
摘要:Question在Firefox等浏览器中,如果你打开一个页面并进行若干操作,例如在文本框进行输入,甚至点击按钮进行Ajax操作更新页面局部,这些操作的结果都会被缓存下来。在你点击链接离开这个页面后,如果你通过后退按钮回到这个页面,你会发现它仍出于你离开时的状态,而非页面刚刚加载好后的初始状态。在一些情况下,这样的缓存方式是符合我们预期的;但在另外一些情况下,我们更希望页面恢复到初始状态,或者说让... 阅读全文

你的网站「被兼容」了吗?

2009-09-17 15:35 by Cat Chen, 3117 visits, 网摘, 收藏, 编辑
摘要:一般情况下,我们只会讨论我们的网站如何主动兼容某某浏览器,被动地等待浏览器来兼容我们的网站是不切实际的幻想——哪个浏览器会那么伟大,原意主动为一个不兼容的网站而作出改变呢?IE8就是这样一个伟大的浏览器,Microsoft就是一家这样伟大的企业。故事是这样的,我们有一小段JavaScript依赖于userAgent属性,同样是用IE8进行浏览,在测试环境上userAgent... 阅读全文

jQuery is DSL (Part 2 - jQuery)

2009-08-17 00:01 by Cat Chen, 2481 visits, 网摘, 收藏, 编辑
摘要:jQuery的Internal DSL形式在上一篇文章里面,我们了解到了Internal DSL的具体形式,形如:/* Method Chaining */computer() .processor() .cores(2) .i386() .disk() .size(150) .disk() .size(75) .speed(7200) .sata() .end();然后我们在看看一段... 阅读全文

jQuery is DSL (Part 1 - DSL)

2009-08-10 23:47 by Cat Chen, 3880 visits, 网摘, 收藏, 编辑
摘要:jQuery刚刚出来的时候,我没有太多关注它,觉得这不过是Yet Another JavaScript Library。早期的jQuery专注于DOM节点的筛选与操作,不提供众多的基础类扩展,更不提供UI组件,因此体积能够做到很小。然而,我实在看不出它和我熟悉的Prototype比有什么明显的优势——jQuery能做的各项独立的操作,Prototype都能做。后来用jQue... 阅读全文

让 JavaScript 轻松支持函数重载 (Part 2 - 实现)

2009-07-02 15:51 by Cat Chen, 2811 visits, 网摘, 收藏, 编辑
摘要:在上一篇文章里,我们设计了一套能在JavaScript中描述函数重载的方法,这套方法依赖于一个叫做Overload的静态类,现在我们就来看看如何实现这个静态类。识别文本签名我们先来回顾一下上一篇文章中提到的Overload用例: var extend = Overload .add("*, ...", function(target) { }) .add("Boolean, *, ...", ... 阅读全文

让 JavaScript 轻松支持函数重载 (Part 1 - 设计)

2009-07-02 09:18 by Cat Chen, 3079 visits, 网摘, 收藏, 编辑
摘要:JavaScript支持重载吗?JavaScript支持函数重载吗?可以说不支持,也可以说支持。说不支持,是因为JavaScript不能好像其它原生支持函数重载的语言一样,直接写多个同名函数,让编译器来判断某个调用对应的是哪一个重载。说支持,是因为JavaScript函数对参数列表不作任何限制,可以在函数内部模拟对函数重载的支持。实际上,在很多著名的开源库当中,我们都可以看到函数内部模拟重载支持的... 阅读全文

写个 JavaScript 异步调用框架 (Part 6 - 实例 & 模式)

2009-07-01 21:59 by Cat Chen, 2628 visits, 网摘, 收藏, 编辑
摘要:我们用了5篇文章来讨论如何编写一个JavaScript异步调用框架(问题 & 场景、用例设计、代码实现、链式调用、链式实现),现在是时候让我们看一下在各种常见开发情景中如何使用它了。封装Ajax设计Async.Operation的最初目的就是解决Ajax调用需要传递callback参数的问题,为此我们先把Ajax请求封装为Async.Operation。我在这里使用的是jQuery,当然无... 阅读全文

写个 JavaScript 异步调用框架 (Part 5 - 链式实现)

2009-06-30 23:36 by Cat Chen, 2803 visits, 网摘, 收藏, 编辑
摘要:在上一篇文章里面,我们为异步调用框架设计了一种链式调用方式,来增强异步调用队列的代码可读性,现在我们就来编写实现这部分功能的代码。调用入口链式调用存在Async.go方法和Async.chain方法两个入口,这两个入口本质上是一致的,只是Async.chain方法在调用时先不提供初始参数,而Async.go方法在调用时提供了初始参数并启动异步调用链。Async.chain = function()... 阅读全文

拆分自然数:纯while实现 (Part 2 - 实现)

2009-06-28 15:35 by Cat Chen, 2583 visits, 网摘, 收藏, 编辑
摘要:在《拆分自然数:纯while实现 (Part 1 - 思路)》这篇文章里面,我提供了解答Jeff《编程小练习:拆分自然数》问题的一种解答思路,并且使用了两个例子来解释这种思路,不知道你是否已经成功利用这种思路解题了呢?首先,这道题的搜索域是什么?那就是[min, min, min, ..., min]到[max, max, max, ..., max],或者是它的子集。就算你完全不懂算法,我相信你... 阅读全文

拆分自然数:纯while实现 (Part 1 - 思路)

2009-06-24 13:38 by Cat Chen, 2419 visits, 网摘, 收藏, 编辑
摘要:关于Jeff的《编程小练习:拆分自然数》问题,在此我提供一种思路,希望大家理解这种思路后能够自己把答案写出来。我先问大家一个问题,写一个函数按顺序输出所有的4位二进制数(即:0000, 0001, 0010, 0011, ..., 1110, 1111),你会怎么写? 如果把固定4位变成任意n位,你又会怎么写?我知道那些会写高精度加法的人会跳出来说,就做一个高精度的二进制加法,Array的每一位保... 阅读全文

中国程序员有美国梦吗?

2009-06-15 02:40 by Cat Chen, 5169 visits, 网摘, 收藏, 编辑
摘要:Jeff最近转载了一篇名为《贺计算机成“就业最困难专业”》的文章,然后抛出了一个问题来,问大家对此看法如何,接着自然又引起了新一轮博客园首页发文热潮。对此,我站在我的角度说说我的看法。大浪淘沙,金子难寻1848年,美国爆发了加州淘金热潮,大量人口涌到加州进行淘金,其直接后果就是让一个叫旧金山小村庄的转眼间变成了一座大城市。在淘金热潮之初,你拿个筛子在河床里筛泥沙也能找到金子... 阅读全文

写个 JavaScript 异步调用框架 (Part 4 - 链式调用)

2009-05-09 23:46 by Cat Chen, 2209 visits, 网摘, 收藏, 编辑
摘要:我们已经实现了一个简单的异步调用框架,然而还有一些美中不足,那就是顺序执行的异步函数需要用嵌套的方式来声明。现实开发中,要按顺序执行一系列的同步异步操作又是很常见的。还是用百度Hi网页版中的例子,我们先要异步获取联系人列表,然后再异步获取每一个联系人的具体信息,而且后者是分页获取的,每次请求发送10个联系人的名称然后取回对应的具体信息。这就是多个需要顺序执行的异步请求。为此,我们需要设计一种新的操... 阅读全文

写个 JavaScript 异步调用框架 (Part 3 - 代码实现)

2009-05-07 14:54 by Cat Chen, 2469 visits, 网摘, 收藏, 编辑
摘要:在上一篇文章里,我们说到了要实现一个Async.Operation类,通过addCallback方法传递回调函数,并且通过yield方法返回回调结果。现在我们就来实现这个类吧。类结构首先我们来搭一个架子,把需要用到的似有变量都列出来。我们需要一个数组,来保存回调函数列表;需要一个标志位,来表示异步操作是否已完成;还可以学IAsyncResult,加一个state,允许异步操作的实现者对外暴露自定义... 阅读全文

写个 JavaScript 异步调用框架 (Part 2 - 用例设计)

2009-05-07 01:12 by Cat Chen, 2650 visits, 网摘, 收藏, 编辑
摘要:在上一篇文章里说到,我们要设计一个异步调用框架,最好能够统一同步异步调用的接口,同时具体调用顺序与实现方式无关。那么我们现在就来设计这样一个框架的用例。传递回调我们首先要考虑的一个问题是,如何传递回调入口。在最传统的XHR调用当中,回调函数会被作为最后一个参数传递给异步函数:function asyncOperation(argument, callback)在参数相当多的时候,我们可以把参数放到... 阅读全文

写个 JavaScript 异步调用框架 (Part 1 - 问题 & 场景)

2009-05-06 00:18 by Cat Chen, 3343 visits, 网摘, 收藏, 编辑
摘要:问题在Ajax应用中,调用XMLHttpRequest是很常见的情况。特别是以客户端为中心的Ajax应用,各种需要从服务器端获取数据的操作都通过XHR异步调用完成。然而在单线程的JavaScript编程中,XHR异步调用的代码风格实在是与一般的JavaScript代码格格不入。额外参数考虑一个除法函数,如果它是纯客户端的同步函数,那么签名会是这样的:function divide(operand1... 阅读全文

十分钟内学会:避免用户刷新导致重复POST提交

2009-04-03 11:56 by Cat Chen, 2440 visits, 网摘, 收藏, 编辑
摘要:Question在Web应用中,采用POST提交信息是非常常见的,然而如果目标页面打开得太慢,用户就可能会刷新页面,这时候之前已经提交过的信息就会被重复提交。即使用户成功打开了POST提交目标页,之后他通过链接导航到别处了,再退回到POST提交目标页时仍可能会重复提交页面(例如因为浏览器缓存已失效)。而且,只要碰到重复POST提交的场景,浏览器就会问用户是否确认重做此操作,用户并不一定能正确理解重... 阅读全文

ASP.NET AJAX 4.0 Preview 3 (Part 2 - ASP.NET AJAX Template)

2009-03-14 10:43 by Cat Chen, 3568 visits, 网摘, 收藏, 编辑
摘要:在上一篇文章里,我们说到了如何使用ADO.NET Data Service Client Library能够轻松访问到存在服务器端的数据,然而将数据展现出来仍需要人手拼接HTML这点就实在是让人难以接受,所以我们现在就来看看如何利用ASP.NET AJAX Template解决这个问题。文章中所用到的示例代码,可以在这里下载:ASP.NET AJAX 4.0 Preview 3 Demo,然后参考... 阅读全文

ASP.NET AJAX 4.0 Preview 3 (Part 1 - ADO.NET Data Service Client Library)

2009-03-11 00:18 by Cat Chen, 3188 visits, 网摘, 收藏, 编辑
摘要:自从Microsoft与jQuery合作以来,ASP.NET AJAX与jQuery就被定位为两个互补的AJAX库。既然jQuery已经实现了如此多轻量级的AJAX特性,自然ASP.NET AJAX会继续专注于富客户端所需的一些重量级特性。 在ASP.NET AJAX 4.0 Preview 3里面,开发人员能够接触到的两个重要的新特性就是ADO.NET Data Service Client L... 阅读全文

假如你愿意以原版或影印版价格购买翻译书籍的话

2008-12-12 12:00 by Cat Chen, 4358 visits, 网摘, 收藏, 编辑
摘要:这篇文章是接着Tony Qu的《批“觉得有必要记一下的东西——关于翻译”一文》写的,就讨论一个问题——你原意以原版或影印版的价格购买翻译书籍吗?为什么问这个问题?这源自Tony Qu批判的原文中的一句话:很多国内程序员看书就只看英文原版,开发就只用原版VS,就是这个原因。我承认,在英语能力相当的程序员当中,这句话说的是事实。能够看原版书的尽量看原版书,不仅仅因为看起来舒服,... 阅读全文

SD2C 2008

2008-12-08 00:01 by Cat Chen, 2936 visits, 网摘, 收藏, 编辑
摘要:这几天参加了SD2C,也就是“软件开发2.0技术大会”。规矩当然是照旧的,social第一,session第二。 Day 1 第一天想着12:00开始签到,于是慢吞吞地准备出发,去到九华山庄已经是11:00。这是我第一次在没有车接送的前提下一个人跑来九华山庄,路上浪费了不少时间。签到后开始乱逛,然后陆续找到了公司不同部门来的同事,发现大家都没吃午餐。虽然我自己从McDona... 阅读全文

WinHEC 2008 China

2008-12-03 20:28 by Cat Chen, 3266 visits, 网摘, 收藏, 编辑
摘要:今天是WinHEC第一天。WinHEC就是Windows Hardware Engineering Conference,中文名是做Windows硬件工程大会。昨晚紫柔告诉我9:00到场签到就可以了,因为9:30正式开始,但我早上还是忍不住多睡了一会儿,所以10:00才到场。当时还是张亚勤的演讲,我进入主会场后迅速找到剩余的几个空位坐下来了。张亚勤的演讲当然紧接着若干个demo,其中Surface... 阅读全文

《Introducing Microsoft Silverlight 2》书评

2008-11-23 21:54 by Cat Chen, 2010 visits, 网摘, 收藏, 编辑
摘要:和上次的《Microsoft SQL Server 2005: 数据库基础由入门到精通》书评一样,同样是MVP的书评活动。 这本书适合什么人看?适合好像我这样的,对Silverlight 2感兴趣但是又不知道从何入手的人。整本书非常完整地覆盖到Silverlight每一个技术细节,当然这是Microsoft Press的习惯做法了。如果你想用Silverlight 2来做点什么,却发现开发过程中困... 阅读全文

软件安装时到底是否应该让用户选择路径

2008-11-04 00:38 by Cat Chen, 4614 visits, 网摘, 收藏, 编辑
摘要:周末和Google UX Team的Junyu聊天,说到Google现在统一使用Google Installer安装软件了,点一下Web上面的链接就自动开始下载安装并运行,开头我还以为是Microsoft的ClickOnce呢。由于安装过程是全自动的,就如同Microsoft的ClickOnce和Adobe的AIR一样,所以是不允许用户选择安装路径的。到底不让用户选择安装目标好不好?我们认为用户分... 阅读全文