移动端页面中的定位

本来页面中定位是一件很单纯的事,直接调用HTML5接口就是。

navigator.geolocation.getCurrentPosition(
    function (position) {
        // ...
    },
    onerror,
    options
);

但是这可能是浏览器的原生接口中最脆弱的一个,会因为各种原因失败,会提供不了足够的信息。然而对于移动…

Full Article

在git中使用differ-cli

differ-cli 是基于nodejs的文件diff工具,相比系统/git自带diff工具,优化了排版,并进行更智能的多行逐词比较。

要替换git自带的diff,在每次git diff时自动使用differ-cli,很方便:

  1. 安装differ-cli

    npm install -g differ-cli
    
  2. 包装适用于git调用的可执行文件differ-cli-wrapper

    vi ~/bin…
Full Article

一塌糊涂的睡眠以及各种奇怪的梦

最近没有一天早上醒来不是昏昏沉沉的,大概是赶上各种事,脑袋有点转不过来,夜里边的闲时计算资源于是也被利用起来,躺在床上一闭眼睛就跟搁电影院似的,画面、人物依次闪过,竟然还能凑成狗血情节。

所以如果能让自己少想点东西,应该会是个不错的技能。

MYERS的diff算法

最近想做前端js代码的增量下载,需要用到这个算法,看了一遍,为了加深理解,顺便翻译一下。

论文原文件下载: 链接(后边有的图我就忽略了,可以去pdf里边看)

以下为译文:

摘要

对于两个序列A、B,寻找其最长公共子序列的问题与寻找其最短编辑过程(从A到B)的问题一直被认为是一对对偶问题。本文证明了它们等价于在一个编辑图中找到最短/最长路径。基于这个观点,我们找到了一个简单的O(ND)时间与空间复…

Full Article

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

进京赶考拾

有一天的城铁比往日晚到了了十多分钟,还有一天早上根本没有来,举着喇叭的工作人员在站口的高处使劲说着什么,我被人潮挤到离入站处隔了百米长队伍的地方。前方的人都在努力往更前方挤,更前方的靠在横栏上翘首以盼。身旁的穿黑色羽绒服的女人对着电话大声说,“我觉得自己被糊弄了!”然后四周的人挤得越发厉害,黑色羽绒服举着电话的手落下来捂住了包,“不过没关系,这不是第一次了。”

我后来听说那天好久都再没有列车来,…

Full Article

Nireader的问题

有待解决的问题:

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

有待实现的算法:

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

Full Article

乱说

它的时间,脾气,耐心,能做的,终究有限的,本来也没人做的周全。

它偏要学了偶像,它执了心念,无缺的偶像,尽美的心念。于是重负了,紧绷了。于是自我了,沉寂了。喜不能泣,怒不能斥,痛不能言,言不可诳,性不可乱,乱不可形于色。于是如履春河,如步悬丝,纵是应付了,免不得日渐不支,精疲力竭了;然后失手了,摔落了,还要回头望冰河长索上未及消散的英姿,反复念或曾有的无私的宏伟的心愿,终了想来也必长叹奈何。

只…

Full Article