分类 Other 下的文章

分析某手机号码归属地储存结构

逛v2ex的时候看到个手机号码归属地的开源项目,于是便分析了一下他的数据文件结构,与纯真IP数据库的结构无异。

lovedboy/phone

phone.dat

+------------------------------------+
| version(4 char) | start index(int) |
+------------------------------------+
                            |
                            v
                  +------------------------------------------------+
                  | phone(int) | record offset(int) | corp(1 char) |
                  +------------------------------------------------+
                                          |
                                          v
                  +------------------------------------------------+
                  | record detail                                  |
                  +------------------------------------------------+

使用homebrew安装axel

brew install axel

安装说是证书错误,然后就用Safari打开链接,信任了一下网址的证书,再次执行brew install,报SHA1不一样,继续用浏览器打开,结果发现页面不对,官网的下载地址失效了?无奈中是用google找到了axel的一个下载地址,macports的;

cd /Library/Caches/Homebrew
# http://distfiles.macports.org/axel/axel-2.4.tar.bz2
# 文件下载到该目录
brew install -vd axel

至此,安装成功!

02-19,注:

貌似使用pstree查看axel -n10的时候并没有使用多线程;于是就删除了他,换成了aria2

mac代理黑名单设置的问题

mac下启用代理的时候,发现设置的黑名单无效

屏幕快照 2013-07-24 上午10.02.53.png

貌似在中文版下面使用的是顿号,将顿号改为英文的逗号,设置就会生效,不过下次再改的时候,系统又会自动给你改成顿号,每次保存都需要手动修改。

SmartMarkdown插件bug

bug描述

SmartMarkdown是Sublime Text2的一个插件,该插件提供了smart table的功能,该功能在只有ascii字符的时候很完美,但当内容中出现中文,中文标点的时候就会产生错位,这是因为中文在屏幕上的显示占了两倍的英文所占有的位置。

bug修复

由于该插件里面计算的时候是按照字符的长度来计算的,所以他把中文字符串的长度也是计算为1的。我们要做的就是把非ascii字符串替换为两个占位字符,然后计算长度。找到插件目录下的table.py

# 21行添加
NONE_ASCII_PATTERN = re.compile(r'[^\x00-\xff]')
# 124行修改为
new_row.append(col + " " * (cols_length[i] - len(NONE_ASCII_PATTERN.sub('  ',col))))
# 163行修改为
col_len = len(NONE_ASCII_PATTERN.sub('  ', col))

修改过的文件:下载

Lua杂记

lua中与大部分编程语言不一样的地方

--不等于
~=
--注释风格:
--注释line1
--[[
注释line1
注释line2
]]
--字符串连接符号
..
--长度
#
--table,类似于php中的数组函数库

--比较运算符==,与php中的“===“类似,比较值的类型,当用引用比较的时候,仅两个变量表示的是同一个对象时才相等
==

--lua中,只有 false 和 nil 为假,0是真