工具癖系列之 Jjgod

Jjgod 是国内知名的 Mac 软件开发者,之前也做过网页开发,对字体、TeX 和摄影也颇有心得。更难得的是他也是一个热心的读者,记得 iPhone 上的 Classics.app 推出后,他在博客上评点了其排版上的一些问题,开头大约是这样的(原文为英文,此处我凭记忆转译):「很高兴看到 Classics.app 的面世。这些书的中文版我小时候大都读过,现在能重读英文原版,不亦乐乎。」他翻译过《哥德尔·艾舍尔·巴赫——集异壁之大成》一书作者侯世达的「如聆巴赫」。本文刊行时,在体例上略有调整。—— 编者


凑个热闹,从 Mac 开发者的角度聊聊我的配置。

我目前用的是一台 MacBookPro2,2,也就是三年前,第二代的 2.16 GHz Core 2 Duo MacBook Pro,添加了内存 (=> 2 GB),更换了硬盘 (=> 320 GB),做开发还不算太慢。就是跑 Adobe Lightroom 之类的重负荷程序会卡得不行。计划是在明年年初购买下一代,装备了 Arrandale CPU 的 MacBook Pro,再把硬盘换成 OCZ Vertex 的 SSD。

最近刚刚入手一台 Mac mini MB463,更换了硬盘 (=> 500 GB) 和内存 (=> 4 GB)。本来在 Mac mini 和 Mac Pro 之间摇摆,但考虑一年后还得搬家,就决定还是先用着 mini 吧。这台机器目前放在我宿舍,作为文件 / 多媒体服务器,这样大部分时间我的 MBP 就可以丢在实验室了。通过 Mini-DVI to DVI 接着 Dell 2408 WFP,这台显示器同时还接着我的 Xbox 360 (HDMI) 和 Wii (色差)。

鼠标用的是 Logitech MX 620VX Nano。键盘是这一代的苹果无线键盘。

除此之外,随身的是 8 GB 的一代 iPhone,除了基本手机用途之外,只是用作开发设备。

软件方面。系统主要还是用 Leopard,因为 Snow Leopard 此刻还有一些让我很不爽的臭虫,不能长期使用。Snow Leopard 主要是用来做一些新开发框架的实验,但毫无疑问 Xcode 3.2 要比 Xcode 3.1 好用得多。

我的主力浏览器是 Safari 和 WebKit,但偶尔也会启动 MinefieldChromium。主力编辑器是我自己移植的 vim-cocoa,主要用来写代码、编辑 TeX 文档等等,平时的少量编辑用的是 TextEdit/UCD(自己修改过的 TextEdit)。

访问 BBS 我用的是 Nally。邮件管理用的是 alpineFluid 定制的 Gmail.app。 除了演示文稿用 Keynote 之外,我大部分的文档都是用 TeX 来写的,我用的 TeX 系统一般是 TeXLive,混合一些自己编译的程序 (比如 XeTeXLuaTeX) 和自己维护的宏包。配合 Skim 阅读生成的 PDF。

别的软件都很常见,不必赘述。单说开发方面的吧,需要编译安装的软件我大概是一半用 macports 一半自己手动跟踪管理,因为 macports 装到 /opt/local,自己编译的则装到 /usr/local,所以也不会混淆。最常用的版本管理工具是 git,大部分用 Subversion 的项目我都用 git-svn 克隆下来在本地管理,方便提交补丁。自己开发的软件,理想的编译管理工具是 cmake,配合 clang/llvm 进行编译。

穿墙方面,用的是 autossh 来调用 ssh 连接一台国外主机,开启反向端口。把 autossh 的调用做成 launchd 的一个 job,配合了 launchd 的 KeepAlive 功能,就能随时保证连接了。配合浏览器代理配置脚本来访问 ssh 开启的本地 socks 代理,这个很常见,在我的 github 代码库里也能找到我用的配置脚本。