小窍门

在Mac上,管理命令行软件包,使用Homebrew,它的原理主要就是将软件安装在一个固定的目录,然后将二进制文件的路径,加入到系统的PATH中,

这样,系统就可以正确识别到命令。PATH的顺序会影响到系统搜索命令的顺序。

brew使用的/usr/local/bin默认已经在Mac系统的PATH里了,但是在最后面。通过 echo $PATH命令可以查看。

Keep Reading — 246 words totally

& 这个符号在C语言和PHP里都是取地址的意思,我们通常怎么念这个东西?“and符”,估计很多人跟我一样念吧,因为在英文里,这个符号表示“and”这个含义。

* 这个符号,在C语言里表示指针,怎么念?“星号”,大概这么着吧,哈哈

# 这个符号,在C语言里,表示预编译指令的前导符,也是Linux环境的注释,怎么念?“井号”,有了C#,念C Sharp,但是没人管#念Sharp,哈哈

Keep Reading — 364 words totally

一般在开发大型系统的时候,都免不了要分库分表,一种常见的分表方案,就是按照用户的id来进行分库分表。

我们的产品id,是数字,因为传统和一些习俗原因,很多数字对中国人有着特殊含义。比如大家不喜欢4和喜欢8,当然只是个例子。然后我们项目开发就遇到了一些麻烦,就4和8这个例子来说,就会产生这么一个麻烦。如果按照模100分表,那么4号表里是空的,8号表里压力很大。然后,就有了各种办法,比如模256。再比如,md5以后,取后两位。这两种都是分了256个表了。

结果有一天,我看到一个系统,分表方案是模97。我就觉得这个数字很蹊跷,问了下开发。这个97很完美地解决了4和8那个案例。原来,这个97是个素数。我有一种当头一棒的感觉,原来如此啊……

昨天晚上,我给服务器更新shadowsocks,发现其Python版本已经改为了package,使用pip安装了,这下好了。我可以不用以前git的更新方案了,改为使用pip直接安装最新的release就可以了。算是一种进步吧。所以,我果断把服务器版本和客户端版本都改为了用pip安装的python软件包。

然后,在Mac上,更进一步,我配置了使用launchd来在开机自动启动shadowsocks客户端。下面给出配置文件和配置方法。

<?xml version="1.0" encoding="UTF-8"?>

Keep Reading — 247 words totally