狄烁STEC的试验场

hello earth

导航

2011年10月9日 #

Team Foundation 使用第三方比较工具

摘要: 在“工具”菜单上单击“选项”。在“选项”对话框中找到“源代码管理”,将其展开,然后单击“Visual Studio Team Foundation Server”。单击“配置用户工具”。在“配置用户工具”对话框中单击“添加”。在“配置工具”对话框中进行设置即可。我懒省事儿,直接指定“.*”扩展名了。参数设置可以参考下面的表格:比较工具软件命令参数TFS defaultdiffmerge.exe%1 %2 %6 %7 %5 /ignorespaceWinDiffwindiff.exe%1 %2DiffDoc (for Word files)DiffDoc.exe/M%1 /S%2WinMerge 阅读全文

posted @ 2011-10-09 17:46 狄烁STEC 阅读(434) 评论(0) 推荐(1) 编辑

2011年9月16日 #

Scrum笔记整理

摘要: Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。在线文档http://dishuostec.sinaapp.com/boogunote/scrum.htm 阅读全文

posted @ 2011-09-16 16:28 狄烁STEC 阅读(144) 评论(0) 推荐(0) 编辑

2011年9月7日 #

计算颜色的亮度值

摘要: 有时候我们需要知道某个颜色的亮度值,比如文本的背景色。当用户可以修改文本的背景色时为了使用户能够看清文字,需要根据背景色的亮度实时调节文本的颜色(黑色或白色)。这里我使用Lab色彩空间的亮度。具体算法是由RGB色彩空间转换到XYZ 色彩空间再转换到Lab。函数如下:返回值为0到100function getLight(rgbHex){ var color = parseInt(rgbHex, 16); var y = (0.2973769 * ((color & 0xff0000) >> 16) + 0.6273491 * ((color & 0xff00) > 阅读全文

posted @ 2011-09-07 18:22 狄烁STEC 阅读(2046) 评论(2) 推荐(1) 编辑

2011年8月15日 #

生命游戏

摘要: 生命游戏其实是一个零玩家游戏。在一个二维世界中,每一个格子看作一个细胞,每个细胞都有生和死两种状态。每个细胞周围有8个邻居,这个细胞时刻关注着这些邻居的状态。一个细胞在下一个时刻生死取决于相邻八个方格中活着的或死了的细胞的数量。如果相邻方格活着的细胞数量过多,这个细胞会因为资源匮乏而在下一个时刻死去;相反,如果周围活细胞过少,这个细胞会因太孤单而死去。:如果一个细胞有2个邻居为生,则该细胞保持当前的状态(生死不变);如果一个细胞有3个邻居为生,则该细胞为生(生不变,死转生);其他情况下,该细胞为死(死不变,生转死)。作为上帝,你可以通过点击一个细胞使其为生(或者按着鼠标左键乱画一通)。绿色,表 阅读全文

posted @ 2011-08-15 16:47 狄烁STEC 阅读(647) 评论(1) 推荐(0) 编辑

2011年8月3日 #

整理QUnit API

摘要: QUnit是JQuery团队开发的单元测试工具,JQuery内部也在使用它。在线文档http://dishuostec.sinaapp.com/boogunote/qunit.htm 阅读全文

posted @ 2011-08-03 13:09 狄烁STEC 阅读(739) 评论(1) 推荐(0) 编辑

2011年7月11日 #

Levenshtein Distance算法

摘要: 优化空间复杂度由O(mn)到O(min(n,m))。function levenshtein(s, t){ if (s === t){ return 0; } var m = s.length, n = t.length; if (!m || !n){ return Math.max(m,n); } if (m < n){ var tmp = s; s = t; t = tmp; tmp = m; m = n; n = tmp; tmp = null; } var d = [], i,j; for (j = 0; j <= n; j++){ d[j] = j; } var pre, 阅读全文

posted @ 2011-07-11 17:12 狄烁STEC 阅读(370) 评论(0) 推荐(0) 编辑

2011年7月2日 #

制作JavaScript选择器(2)查询链

摘要: 上回实现了将选择器解析为令牌,下面就要实现轮子的核心:令牌转换为查询链。在描述查询链之前先定义伪代码: 操作解释 getNode()获取全部节点filterAncestor()过滤祖先节点childNode()获取子节点filterParent()过滤父节点nextNode()获取后一个紧邻的兄弟节点filterPrev()过滤前一个紧邻的兄弟节点nextAllNode()获取后面的兄弟节点filterFront()过滤前面的兄弟节点uniqueNode()去除重复简单的查询链有两种,即从左到右和从右到左。从左到右:对每一个选择器子组进行以下操作解析最左边的简单选择器,getNode如果右边还 阅读全文

posted @ 2011-07-02 12:11 狄烁STEC 阅读(226) 评论(0) 推荐(0) 编辑

2011年6月29日 #

制作JavaScript选择器(1)解析令牌

摘要: JavaScript选择器有很多,大到sizzle小到mini,再加上各种框架各种库,可以说高低胖瘦各有不同。一直以来都想亲手做一个选择器,虽说现成的轮子到处都有,但不懂造轮子的前端不是好攻城师啊。可是无奈精力有限,而且现成的轮子都很好使,这个想法就被一拖再拖。闲话不多说...选择器的原理大致如下:分析得到的 selector 文本,如果是分组的选择器则拆开;根据 selector 从左向右依次查询,然后去重(或从右向左依次过滤,不需要去重);对剩余的选择器组执行第2步,合并结果;结果去重。我的轮子设计如下:将得到的 selector 文本解析为令牌数组及对应的参数数组;根据令牌生成查询语句串 阅读全文

posted @ 2011-06-29 17:43 狄烁STEC 阅读(389) 评论(0) 推荐(0) 编辑

2011年6月15日 #

一道面试题

摘要: 在James Padolsey的博客里看到一篇面试题。Replace the string "The quick brown fox jumps over the lazy dog" with the string "The1 quick2 brown3 fox4 jumps5 over6 the7 lazy8 dog9".自己写了几种方案:var foo = "The quick brown fox jumps over the lazy dog";var bar = "The1 quick2 brown3 fox4 ju 阅读全文

posted @ 2011-06-15 18:12 狄烁STEC 阅读(197) 评论(0) 推荐(0) 编辑

2011年5月16日 #

为目标数字添加逗号分隔,由 baidu.number.comma 想到的

摘要: 2011.05.17更新:测试数据还不够广泛,在同事的机器上用IE8测试时出现 baidu.number.comma 比 comma 耗时更少的情况,等有时间了还要进一步测试。逛博客的时候看到了《JavaScript 散记:Tangram》这篇文章,其中提到了给数字添加逗号分隔符的算法。算法如下:baidu.number.comma = function (source, length) { if (!length || length < 1) { length = 3; } source = String(source).split("."); source[0] 阅读全文

posted @ 2011-05-16 15:56 狄烁STEC 阅读(370) 评论(2) 推荐(0) 编辑