MYERS的diff算法
最近想做前端js代码的增量下载,需要用到这个算法,看了一遍,为了加深理解,顺便翻译一下。
论文原文件下载: 链接(后边有的图我就忽略了,可以去pdf里边看)
以下为译文:
摘要
对于两个序列A、B,寻找其最长公共子序列的问题与寻找其最短编辑过程(从A到B)的问题一直被认为是一对对偶问题。本文证明了它们等价于在一个编辑图中找到最短/最长路径。基于这个观点,我们找到了一个简单的O(ND)时间与空间复…
最近想做前端js代码的增量下载,需要用到这个算法,看了一遍,为了加深理解,顺便翻译一下。
论文原文件下载: 链接(后边有的图我就忽略了,可以去pdf里边看)
以下为译文:
对于两个序列A、B,寻找其最长公共子序列的问题与寻找其最短编辑过程(从A到B)的问题一直被认为是一对对偶问题。本文证明了它们等价于在一个编辑图中找到最短/最长路径。基于这个观点,我们找到了一个简单的O(ND)时间与空间复…
用c实现了一个语言的解释器,包括词法分析、语法分析、解释执行。
https://github.com/nighca/lang
目前没有依赖第三方库。
特点包括
动态类型
函数式
支持闭包
垃圾回收(还没完成)
语法参考了Lisp,如
(\
($ a 1)
($
adda
(lamda
i
(+ i a)
)
)
($
…
如果有这样一个简单的事件实现:
function MyEvent(){
this.list = {};
}
MyEvent.prototype.bind = function(name, handler) {
(this.list[name] = this.list[name] || []).push(handler);
};
MyEvent.prototype.unbind = f…
对比两篇文章,判断是同一篇(更新内容)或是两篇&…
对我来说,a标签的target属性,是众多功能单一,一看很熟很常用,其实不是很了解的html属性之一。
大部分时候的a都不需要带target,用到的场景无非是要在新标签页/窗口中打开的链接,加一个target="_blank"的属性。
<a href="..." target="_blank">...</a>
我觉得,其实了解到这,平时基本上够用了。我也确实好长时间,只是知…
此前经常遇到一个问题
npm install xxx -g
不带sudo会报权限的错误,只好每次都
sudo npm install xxx -g
但是很多人也知道,这样不是那么正确的,原因见此:http://howtonode.org/introduction-to-npm。尽管如此,一直到发现带了sudo无法安装spm包,不得不正视这个问题。当时的情形就是,不带sudo装不上,报错,权限…
nireader的项目始于五月份,迫于进度,google reader关闭之时勉强上线。未经好好思考组织的结构迅速暴露出大把问题,痛定思痛之下,开始相对很彻底的重构。直至最近才算结构基本成型,reader本身也具备一定的可用性,我自己现在就用着。
链接:
(测试账号 test:123456, chrome, please)
整理最初的原则:
Single-page ap…
这个问题是在测试个人信息控件的时候发现的,后台返回测试账号的头像图片url为"%I0O96S]I6X9S(66CICZ1)N.jpg"
将头像图片的src设置为该值时IE下报错,导致后续代码无法执行,控件未能渲染。
IE8、9、10下对imgsetAttribute('src', str)
时,若str为非法url(如'%B'),则报错“参数无效。”
结果就是值会被设置上去。document.ge…
有一些带input的页面,会用js帮助将foucs设置到第一个input,如登录页面的用户名;我自己也干过这样的事,所以我知道这样的开发人员的心理(一般这么细节的地方未必是产品的需求,也许是前端自己的心血来潮),理想状态下,用户过来,焦点到第一个input去,这样甚至不用自己鼠标点击一下input,就可以直接输入,听起来很nice的“用户体验”。
事实是,当以下几种情况只要遇上一样,体验就会变得…
地址:
https://github.com/nighca/saveas
功能: