删掉 macOS 的 app 的启动项

之前在脑残安装了一个很胃痛的 app,很快感觉很不好用,直接丢垃圾箱居然还失败,于是直接 sudo 然后把这个 app 强行删掉了。然后手动解析 pkg 一个一个删文件。teamviewer,对,说的就是这位。

过了几天检查系统 log 的时候,发现系统 log 还在报 teamviewer 启动失败什么的。这才记起来忘了删 launchctl 的启动项了。 (more…)

scala 读写文件

scala 一般用于网络上消息的处理,比如读写 mongodb, 处理 http request. 但偶尔写个 script, 还是要读写个文件的.

scala 包装了一个 Source 类,可以读取各种来源的数据, url, file 都可以. 但似乎并没有对写数据做什么处理.

(more…)

fstab 文件格式检查

我们通常编辑 /etc/fstab 来确定启动时候挂载的硬盘, swap 等. 若文件内容有误, 重启后的效果就是直接挂了, 然后必须通过安全模式或者单用户模式进去修改, 这很麻烦.

可否不重启就检查下 fstab 呢? 答案是可以的. (more…)

如何rsync同步非标准SSH接口

一般情况下,我们用rsync可以很容易的同步一个远程目录.

$ rsync -avzh --progress --delete \
    name@remote_host:source_dir target_dir

这样就把远程的一个目录同步回来了.

但是现在问题来了,当 port 为非标准的 22 端口时, 我们应该怎样加参数呢?比如有时候我们会 NAT 到 2222 端口.

(more…)

SELinux 配置文件属性

所谓测不准定理是说,两个相关的物理变量,你对变量A要求越精密,那变量B的精度越差.反之,若对B要求越精密,那变量A精度就越无法测准. 安全也是这种屎一样的节奏,安全越高的东西,那么它往往越发的麻烦,反之,若你想把事情变得简单,那么安全往往会变屎.

SELinux是一个不错的权限管理系统.在公网跑的机器上,为了保证不会没事被人攻进来耍一波,还是被迫稍微用点心配置一下. (more…)

bower unable to connect to github.com

bower install 遇到错误如下:

bower angular-scenario#>=1.2.*          resolve git://github.com/angular/bower-angular-scenario.git#>=1.2.*
bower bootstrap#~3.1.1                  ECMDERR Failed to execute "git ls-remote --tags --heads git://github.com/twbs/bootstrap.git", exit code of #128

Additional error details:
fatal: unable to connect to github.com:

(more…)

Trie树

有一堆key-value的数据,有人输入一个key的子串,我们希望很容易的得到前面那个key-value中所有key包含该子串的pairs.Trie树是一个不错的解决方案.

如名字所示,Trie树是一个字典树,它的大致方向是构造一个如下图所示的字典树:

Trie

它被用来存储to,tea,ted,ten,A,in,inn等若干字符串. (more…)