OS X下使用Homebrew来管理服务

使用Homebrew时,经常有一系列的服务要安装启动,通常的做法是copy一个plist文件到~/Library/LaunchAgents目录下再launchctl load一下,比较麻烦。

今天发现了一个不错的玩意-brew services

  1. 安装: brew tap gapple/services
  2. 使用: brew services restart mysql

下面是我的brew services list

$ brew services list
influxdb   started      658 /Users/khsing/Library/LaunchAgents/homebrew.mxcl.influxdb.plist
dnsmasq    started    34881 /Users/khsing/Library/LaunchAgents/homebrew.mxcl.dnsmasq.plist
nginx      started    39552 /Users/khsing/Library/LaunchAgents/homebrew.mxcl.nginx.plist
postgresql started      676 /Users/khsing/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
php56      started    45046 /Users/khsing/Library/LaunchAgents/homebrew.mxcl.php56.plist
redis      started      668 /Users/khsing/Library/LaunchAgents/homebrew.mxcl.redis.plist
mysql      started    34225 /Users/khsing/Library/LaunchAgents/homebrew.mxcl.mysql.plist

而且这个还可以帮助清理brew services cleanup,居家旅行必备。

参考来源:Starting and Stopping Background Services with Homebrew

在OS X里不同域名用不同的域名解析器

由于公司内网的特殊原因,github.com以及pypi.python.org甚至gmail.com和google.com等网站被IT给劫持到了一个代理上去,本来是好事帮助大家翻墙了,但是这是实现我就不吐槽了。

带来的问题是这些网站都会有https的访问,尤其是以下客户端和命令行,证书是内网下发的假证书(听到这里,是不是很熟悉呢,没错这就是man-in-the-middle attack,#此处可以有呵呵

曾经反应过这样的问题总是不能奏效,只能自己动手了,Mac下可以这么搞

/etc/resolver/目录下放上域名为名的文件,比如/etc/resolver/python.org内容如下

nameserver 8.8.8.8
nameserver 8.8.4.4

命令行下的代理设置

为了科学上网,访问github之类的快一些,总要在命令行工具下用代理,于是就有了如下设定

# Setup commandline proxy
_proxy="http://127.0.0.1:16888"
_noproxy="localhost,.sina.com.cn,.weibo.com"
alias proxyon="export http_proxy=${_proxy} https_proxy=${_proxy} no_proxy=${_noproxy}"
alias proxyoff="unset http_proxy https_proxy no_proxy"

这个no_proxy是为了让本地内网的repo不要走代理.sina.com.cn代表了该域名下的内容都不走代理。

sudoers里写上环境变量的保持,

Defaults    env_keep += "http_proxy https_proxy no_proxy"

启用Akismet

趁着收拾blog系统的时候,升级到了MovableType 6,同时也好好处理了一下之前的comments,发现即便是在启用验证码的情况下,依旧有不少Spam。

于是就启用了Akismet,不过我是下载回来之后些许改动,都放在了github/mt-plugin-akismet.

安装很简单,

  1. 建立一个软链接到mt-plugin-akismet/plugins/akismet
  2. 进入 System Overview -> Tools -> Plugins -> MT-Akismet -> Settings
  3. 在API Key的位置上写上在http://akismet.com申请的API Key就好了。

自己试一下,看看Activelog有没有报错,如果没有点进新的Comments应该可以看到如下界面

另外也可以在akismet站上看得到统计信息。

家庭无线打印搞定

最近给家里添了几个物件,基本实现了在家的无线打印需求。

关于佳能CP910,使用的感觉很不错,属于是热升华技术,相纸的成本比较高,但是家庭使用,也不是大批量打印,成本忽略了吧,打印出照片的喜悦完全淹没了成本问题,而且在TB还可以买到日本代购的相纸,相对稍便宜些。所以家里还缺了一个东西就是照片墙。

拿910配合来打印很方便,需要注意的就是它的dpi是300,在通过Aperture之类的打印的时候一定要选好了DPI,否则默认可是按72dpi打印的,那就糟烂透了。

Airport Express有点问题了,本想拿它作Wifi Repeater,但是这货只能和水果的东西做Repeater,一下子就变成了只和HP 1020打印机配合的AirPrint服务器了,功能减半啊,有点亏,现在开始考虑要不要给家里添一个水果的高端路由器(麻痹啊,苹果毁一生啊

其实CP910就是因为Ricoh GR买的,很不错的相机,成像很好,28mm定焦,有乐趣。不过我拍的比较差。

用https代替git-ssh来push

最近发现推送代码到github总是要账户名和密码,大多给出的解决办法是用ssh代替https就解决了,而且说是just simply。鄙人觉的这简直就是不负责任的解决办法(虽然之前我也是这么解决的),我忍你很久了。正确的方法是在家目录放一个.netrc的文件(win用户自动绕开,我不会告诉你们是在家目录放_netrc的),内容如下

machine github.com
login <user>
password <password>

REF: StackOverflow:Git push requires username and password

Update: 前面的方法请绕行,目前的做法是git config --global credential.helper osxkeychain.