lang

用c实现了一个语言的解释器,包括词法分析、语法分析、解释执行。

https://github.com/nighca/lang

目前没有依赖第三方库。

特点包括

  • 动态类型

  • 函数式

  • 支持闭包

  • 垃圾回收(还没完成)

语法参考了Lisp,如

(\
  ($ a 1)
  ($
    adda
    (lamda
      i
      (+ i a)
    )
  )
  ($
  …
Full Article

数组遍历的坑-Javascript

如果有这样一个简单的事件实现:

function MyEvent(){
  this.list = {};
}

MyEvent.prototype.bind = function(name, handler) {
  (this.list[name] = this.list[name] || []).push(handler);
};

MyEvent.prototype.unbind = f…
Full Article

Nireader的问题

有待解决的问题:

  • 最大的问题:重复抓取本来根据文章的链接地址检查唯一性,后来发现很奇葩的“一个”每天的三篇是同一个链接地址。于是加上文章标题,结果但凡后来修改了标题的,就会被认为是新的文章。好纠结。
  • 其次的问题:乱码本来还好,但最近发现某些频道尤其厉害,初步判断是node抓取时拼buffer前将内容自动转码导致的。应该可以解决。

有待实现的算法:

  • 对比两篇文章,判断是同一篇(更新内容)或是两篇&…

Full Article

说说a标签的target

对我来说,a标签的target属性,是众多功能单一,一看很熟很常用,其实不是很了解的html属性之一。

大部分时候的a都不需要带target,用到的场景无非是要在新标签页/窗口中打开的链接,加一个target="_blank"的属性。

<a href="..." target="_blank">...</a>

我觉得,其实了解到这,平时基本上够用了。我也确实好长时间,只是知…

Full Article

nireader的前端

nireader的项目始于五月份,迫于进度,google reader关闭之时勉强上线。未经好好思考组织的结构迅速暴露出大把问题,痛定思痛之下,开始相对很彻底的重构。直至最近才算结构基本成型,reader本身也具备一定的可用性,我自己现在就用着。

链接:

代码

nireader

(测试账号 test:123456, chrome, please)

整理最初的原则:

  1. Single-page ap…

Full Article

IE下img标签setAttribute的问题

这个问题是在测试个人信息控件的时候发现的,后台返回测试账号的头像图片url为"%I0O96S]I6X9S(66CICZ1)N.jpg"

将头像图片的src设置为该值时IE下报错,导致后续代码无法执行,控件未能渲染。

IE8、9、10下对imgsetAttribute('src', str)时,若str为非法url(如'%B'),则报错“参数无效。”

结果就是值会被设置上去。document.ge…

Full Article

想多做那就多想想

有一些带input的页面,会用js帮助将foucs设置到第一个input,如登录页面的用户名;我自己也干过这样的事,所以我知道这样的开发人员的心理(一般这么细节的地方未必是产品的需求,也许是前端自己的心血来潮),理想状态下,用户过来,焦点到第一个input去,这样甚至不用自己鼠标点击一下input,就可以直接输入,听起来很nice的“用户体验”。

事实是,当以下几种情况只要遇上一样,体验就会变得…

Full Article

SaveAs 2.0!

地址:

https://github.com/nighca/saveas

功能:

  1. 当前bucket的list,配置后在popup窗口中直接查看当前bucket中的文件列表(目前最多前100个)
  2. 文件的remove操作,popup窗口中点击文件左侧“x”号即可将该文件从bucket中删除
  3. accessKey与secretKey不会发送给远程服务器,而是一个临时的uploadToken,可以放心使用现有…
Full Article

我看javascript的面向对象

昨天看到一篇很老的文章,讲的是javascript的面向对象实现。

http://www.cnblogs.com/sanshi/archive/2009/07/08/1519036.html

不过作者给出的方案、以及文中列出的另外两个方案都很不能让人满意,于是开始思考怎么去实现会比较好。

文中的方案的共同点,也是一个让我不太舒服的点就是对于子类向父类继承属性的处理方式。基于js天然的protot…

Full Article