2010年10月11日星期一

Vim 爱好者联系资料收集


希望通过一些形式让 Vim 爱好者联系更紧密,于是收集 Vim 爱好者的联系资料,并通过
较好的形式展现出来。




目前是通过 面板形式 展现,并有计划通过 Google 地图展现全国 Vim 爱好者的分布情况。




资料收集方式:



  1. Fork Vimmer 项目(最好是 gh-pages 分支),并加入自己的资料到 vimmer.json 中。

  2. 填写 Google Spread Sheets GFW出没注意

  3. 邮件发送到 hotoo.cn+vim[AT]gmail.com ,请将 [AT] 替换成 @,保留 +vim

    常用的网络ID *
    必填,可以是中文或英文,例如我的:hotoo

    真实姓名
    选填

    昵称
    常用的网络昵称,例如我的:闲耘™。选填,默认与ID相同。

    电子邮箱 *
    建议使用 Gmail 邮箱,请使用 [AT] 代替 @ 符合,例如:hotoo.cn[AT]gmail.com

    博客/个人主页
    请输入完整的URL地址(以 http 或其他的协议开头),例如:http://hotoo.github.com

    Twitter ID
    在 twitter.com 上的 ID,可以不带 @ 起始。例如我的 @hotoo

    Flickr ID
    在 flickr.com 上注册的 ID,例如:hotoo

    Delicious ID
    在 delicious.com 注册的 ID,例如 hotoo

    Github ID
    在 github.com 注册的 ID。

    豆瓣(Douban) ID
    在 douban.com 注册的 ID

    其他网站上注册的 ID
    如果你其他网站上注册的 ID,并希望分享出来,请填写在这里。
    网站和ID以冒号分隔,多个站的 ID 请以分号分隔。
    例如 about.me:hotoo; blueidea.com:hotoo

    Gravatar ID
    在 gravatar.com 注册并上传头像,根据邮箱地址计算MD5的值就是 Gravatar ID。
    例如:2fdef0a77e4bf207e3ec30660e7896e8

    目前所在地
    可以输入简要的地址,例如:杭州(Hangzhou);
    也可以输入详细的联系地址,甚至卫星坐标,可以通过Google地图获得。

    其他
    你希望留下的任何资料信息。


2010年8月30日星期一

Diff 模式下,让光标直接跳转到被修改的文本处

Vim 的 Diff 功能非常优秀。有一个我非常喜欢的特性是:完全相同的地方, 会被折叠隐藏起来(上下文除外)。还可以很方便的在各个差异点之间做出修改合并和快速跳转。

不过默认的 [c]c 两种跳转方式,目前只能跳转到差异点的行首。对于只修改了 行内部分文本内容(一般底色是浅红色)时,我更希望直接跳转到有变化的文本(底色是 深红色的部分)上。

感谢 tocer ,我初步实现了两个版本 gits:556810

  1. v1: 仅支持跳转到 DiffChange 的第一个 DiffText
  2. v2: 支持 DiffChange 行多个 DiffText

参考

  1. :h synIDattr
  2. :h diff_hlID
  3. https://twitter.com/hotoo/status/22227282177
  4. vimdiff 的跳转
  5. vimdiff: Jump to next difference inside line?

2010年8月22日星期日

隐私权

团购的时候我在邮件和 Google Docs 向所有参与团购的团友公布了各自的详细信息 (包括联系信息)。

我的公布的理由有两个:

  1. 方便自己统一管理,和团友随时审阅;
  2. 方便同城团友可以合并快递单。

有团友很不高兴。于是我特地看了关于隐私权的一些资料。

根据 维基百科全书:隐私权 和一些其他相关资料上的描述,我似乎并没有侵犯任何隐私权。 我没有把大家的手机号写在电线杆子上,并附上“办证”之类的字样; 没有入侵并偷窥大家的电子邮件;也没有找到大家的收货地址后非法闯进去。。。
以上纯属玩笑话 :D

隐私权目前来说还是有一些模棱两可的地方,虽然我主观上是支持保护隐私权的。 我也有隐私,但只要不是把我和家人的资料公布在网上,或者提供给某些混蛋, 以至于我和家人会受到严重的骚扰和恐吓之外,还是没有什么的。

朋友和一些相对比较可靠的人知道我的联系方式,是件好事吧。虽然我小时候曾经很傻的 想住到深山老林里去隐居。

个人认为:有限区域范围内的个人或家庭联系方式,算不上是隐私。 你的邻居知道你家的门牌号码;公司、学校拥有你的详细资料; 商家索取买家发货地址;快递员直接打你的手机; 参加团购的成员知道你的联系资料。。。

好吧,虽然我可能没有犯罪,但是我错了。我只是想偷懒才使用群发邮件的方式的。

另外居然有蛋疼的律师控告电信说“来电显示”损害了其隐私权。

  1. 你没有号码怎么打电话给他人;你拿到他人的号码,是否就侵犯了其隐私?
  2. 你打电话给他人,这他人没有知情权,无权知道是哪个混蛋在骚扰他?

另外也有人控告移动、联通公司所谓的“恢复”收取来电显示的费用是单方面修改合同、 强制消费行为。想都不用想,最终败诉。

现在好了,你可以关闭来电显示,每月省了 6 块还是几块钱。也就是说现在开通来电显示需要 每月多付几块钱,而这在以前是免费的。

我有一个很不希望相信的“阴谋论”:这起官司是电信或移动公司幕后主使的案件。

我对隐私权的概念还是有点不清晰,希望有人能写出清晰简洁的资讯出来,比如翻译关于隐私权 的论文和辩论过程之类,而不要像法律条文一样直接给我们模糊不清的强制性规定和结论。

p.s. 希望有生之年不要看见“非法持有他人隐私”的罪名或者大帽出现。

2010年8月15日星期日

【已结束】 关于团购庆祝 Vim 7.3 正式发布的 Tee

我在 Twitter 上随意说了句相关的 意向, 便有不少回应表示也愿意加入,我本想最好由某个懂行或者牛人来发起活动,我参加就好了, 不过目前看来,我只能自己扛起这个重担。

关于 Tee

初步设想:
正面 :印 Vim 的 Logo。 投票
背面 :印 :wq! 或者 :help! 命令,下面还印上版本信息 :version投票
右手袖子 :印 :version 信息。
颜色 :商家唯一指定白色。
P.S. 还有网友提议将自己的 vimrc 打上去,创意不错,但这是一此集体活动。 不过大家还是可以提议一些非常具有 Vim 特色的代码。

商家答应可以有 3 种不同的图案,但是考虑到实际操作太麻烦,包括下订单,印刷和发货都非常容易出错, 所以我们最好是尽量少的使用不同图案。如果有喜欢但是没有选择的图案,各位可以各取所需自行单独印刷。

参考:

Tee 的质量

商家是阿阳推荐的,他之前有在这家定制过,说是材料“比较厚,质量还不赖的”。
而商家说:“我们这只有一种220克的,是属于好的,差的么就是180 200克的。那二种我们没有在做的。”

关于费用

跟淘宝一个定制 Tee 的 商家 联系,50件以上的话 双面印刷最低能到 28.00 26.00 25.00 元/件(单面 25.00),目前有 50 多人, 如果有更大的数量级,估计还可以更便宜,到时候我再商量,40 件估计需要一周才可以出货; Tee 可以直接发到每个人手中,考虑到运费,我提议同城的统一由一个人负责签收并发放, 这样顺便还可以线下认识几个朋友,同城运费最终 AA 制;自己愿意单独付运费的不在此列。

如果看中这店家的其他 Tee,参加团购的朋友也同样可以以团购的价格购买,直接在 店家商品上拍即可,记得给商家说明情况,另外还要报上我的旺旺ID(请来邮件索取)。

周六我会公布所有同城信息,到时候希望同城统一签收的可以联系我。
除非专门指定,默认情况下,均发或到个人签收。
学校老师或学生会稍晚发货,以确保各位能在学校签收。

目前不支持快递到国外,如果有国内的地址,请使用国内地址。
到台湾的快递费是 35.00 元,3 天之内可以到。

目前还没有确定最终购买人数和打折尺度,而且费用收取方式上也还没有确定,大家可以自由选择 预付定金,或者我先垫资金的方式,都没有关系的。下周末等情况确定后我会公布收款方式, 请大家静候佳音。

费用收取方式主要采取支付宝收款,或者银行卡汇款。

店家提供的快递运费对照表:

运输方式 1公斤内 加重/公斤 运送到
快递 8.00 5.00 安徽
快递 5.00 2.00 上海,江苏,浙江
快递 10.00 8.00 北京,天津,河北,山西,辽宁,吉林,黑龙江,福建,江西,山东,河南,湖北,湖南,广东,广西,海南,重庆,四川,贵州,云南,陕西,甘肃,青海,宁夏
快递 15.00 ? 大陆其他地区
速运 35.00 ? 台湾
默认使用圆通快递,台湾地区使用顺风速运,3天内可以到达。

【已结束】 关于报名

为避免报名时间过短,或等待时间过长,初步计划报名截止到下周末,如果中途有事没有时间也没有关系, 只要确认购买,我可以预付费用的。

一旦确定购买名单,我们就开始下订单订货。

由于我第一次搞这样的活动,有经验的老师请一定多多指导。

注意 :如果确定要购买,请务必将你 需要的尺码邮件地址 ,实际的 收货地址邮编收件人姓名
最好还有即时联系方式,比如手机,快递可能需要。
请确认这些信息能直接联系到你,收件人能收到货。

如果在截止时间之前没有给出详细联系地址导致无法发货的,一律认为不参加这次活动,请谅解。

如果有些没所谓的小失误的话请多多包含,大失误我会尽力承担的。

活动结束语

这次活动过程几经波折,把我、团友,和商家都折腾的够呛。主要是由于我经验不足造成,事先的准备工作 也不够,导致有数次变更,甚至有些不尽如人意。

不管怎么样,报名活动总算是结束了,我这里不再接收任何报名,仍希望购买的朋友可以尝试 这个链接,运气好的话还可以团购的 价格买到。

最后:这样的人生经历一次就够了,谢谢大家。

2010年8月13日星期五

SQL LIKE 查询的一个问题

在做用户管理的时候,用户表(users) 有一个字段(dept)用来存储用户所在部门的信息, 字段的值一般是这样的,各级部门间使用横杠分隔:

XX宝-技术部
XX宝-技术部-数据仓库

我们的系统有一个根据用户所在部门进行过滤的功能,所以我们用了类似下面的查询语句:

SELECT * FROM users WHERE dept LIKE "XX宝-技术部%";

这样的性能还好,但是今天发现一个问题是,当有两个部门名称很相似,比如:

XX宝-CEO
XX宝-CEO办公室

这时在查询 XX宝CEO 的时候就会把 XX宝-CEO办公室 的用户也查询出来。

于是想到正则表达式:

SELECT *
FROM users
WHERE REGEXP_LIKE(dept, "^XX宝-CEO$")
OR REGEXP_LIKE(dept, "^XX宝-CEO-[\w\-]+");

合并正则表达式的另一解:

SELECT *
FROM users
WHERE REGEXP_LIKE(dept, "^XX宝-CEO($|-[\w\-]+)");

杯具的性能问题。

突然想到

SELECT *
FROM users
WHERE dept="XX宝-CEO"
OR dept LIKE "XX宝-CEO-%";

于是简单有效的解决了这个问题。

2010年8月1日星期日

用 gvim 比较 git diff

for Windows

参考 gist:502217

1. 在用户目录下的 .gitconfig 中加入:

[diff]
external = git_diff_wrapper.bat
[pager]
diff =

2. 创建 git_diff_wrapper.bat 文件放到 $PATH 目录下,内容为: 注意其中的 path\to\ 要改为 gvim.exe 所在目录。

path\to\gvim.exe -d "%2" "%5"

for Linux

参考 Git Diff with Vimdiff

2010年7月29日星期四

遍历字符的性能

  1. s.charAt(i)
  2. s.split("")[i]

Test

在 IE7, Firefox3.6.8, Chrome5.0, Safari5.0, Opera10 上测试, 除了 Firefox 之外,所有的浏览器均是第 2 种表达式更快速。