jan 24

自从我在公司的开发用机器迁移到 Mac Mini 后,一直也想把家里运行 Leopard 的 Hacintosh 也升级到 Snow Leopard,一方面是觉得雪豹确实相当不错,另外一方面是由于雪豹下的 XCode 做出了很大的改进,某些界面都不同了,我只是想将两边的开发环境统一起来。断断续续尝试了两次,很麻烦,似乎不得其门而入。
这个周末,花费整整两天两夜(期间需要将我 Ubuntu 9.10 所在硬盘转换为 GUID 分区表格式),终于把家里的 Hacintosh 升级到了 Snow Leopard;最后的成果还是非常喜人的:CPU、内存、无线网卡、声卡、显卡、Time Machine均完美支持。还有,新版的变色龙启动器,嗯,挺漂亮;结合 Ubuntu 下的 GRUB2 使用,绝配啊!
说实话,在未得其道而入时,真的是感觉焦头烂额,比当初安装 Leopard 不知麻烦多少,但最后完成的时候,才发现其实 Snow Leopard 需要修改的东西简单的很多,关键就看能不能掌握那么几个关键点了。
另外,Mac 的迁移助手真是不错,哈哈!
我安装的是原版 Mac OS X,只要完成安装,可自由升级到最新子版本(目前更新到 10.6.2 没有任何问题)。

nov 05

我的 Mac OS X 系统里的 PostgreSQL 数据库是通过 MacPorts 安装的,默认配置容量非常小,只适合一般的小数据量试验之用,即使开发环境的数据增加到几万条,速度就明显慢了。
在 Mac OS X 下调整 PostgreSQL 的性能,需要做以下步骤:
1、调整postgresql.conf文件中参数,设置为你认为合理或者期望的数值。比如我会提高共享缓存数量到 128MB,并增大 work_mem 和 sort_mem 参数。调整完后,不出意外, PostgreSQL 服务将无法启动,查看其日志(注意,macports 安装的 PostgreSQL 的日志位于:/opt/local/var/log/postgresql83/postgres.log),报:
FATAL: could not create shared memory segment: Cannot allocate memory
DETAIL: Failed system call was shmget(key=5432001, size=139018240, 03600).
HINT: This error usually means that PostgreSQL's request for a shared \
memory segment exceeded available memory or swap space. To reduce the \
request size (currently 139018240 bytes), reduce PostgreSQL's shared_buffers \
parameter (currently 16384) and/or its max_connections parameter (currently 23).
The PostgreSQL documentation contains more information about shared \
memory configuration.
这是系统信号量不够,根据 PostgreSQL 官方网站文档 ,需要进行系统参数调整。
2、利用 sysctl 调整 kernel.sysv.* 相关参数。
先利用以下命令行测试可行的数量级别:
sysctl -w kern.sysv.shmall=327680
sysctl -w kern.sysv.shmmax=536870912
不断调整,不断尝试启动 PostgreSQL 服务,直到能正常启动。
3、最后将理想的 kern.sysv.* 相关参数写到 /etc/sysctl.conf 文件中,让系统启动的时候自动生效:
more /etc/sysctl.conf
kern.sysv.shmall=327680
kern.sysv.shmmax=536870912
调整完毕后,速度有明显提升。不过说实话,感觉没有 Ubuntu 桌面系统下高,也许有更多地方需要调整,有时间的时候好好研究一下。
oct 23

随着被墙的越来越多, 出离愤怒的我 ,也不得不开始查找爬墙的工具。
幸好,国外有不少便宜的 VPS,而我刚好拥有一个;透过VPS,通过 SSH Tunneling,再加上一个好用的代理工具,就可以方便的达到翻墙目的。
首先确保你的 VPS 在墙外,或者你能拥有一个墙外系统的 SSH 帐号。
在你本地系统(或者你的家庭网关?)中使用 SSH 建立一个隧道:
ssh -qTfNnD localhost:8888 username@your.vps.host.name
之后,SSH 会在本地的 8888 端口建立了一个 SOCKS 5 隧道。(桌面系统我只使用 Ubuntu 和 Macintosh,所以,如果你使用 Windows,请自己研究相应的 SSH 客户端。)
在你的浏览器中,设置为 localhost:8888 的 SOCKS 5 代理就可以浏览被墙的网站了。
这种方式,有个缺点是所有网站都会这么绕一大圈,想要只针对被墙的网站才使用此代理,需要一些更加方便的工具。我在 Firefox 下用得就是 FoxyProxy 这个插件,在 FoxyProxy 中建立一个白名单,把我要浏览的被墙网站加到白名单中,符合白名单的就启用通过 VPS + SSH Tunneling 的代理,否则不通过代理直接访问。
可以说是相当完美的解决方案。最后一个有待改进的地方是,每当新发现被墙网站时需要手工加到白名单,有时间的时候,想办法试试能否便捷的白名单快速增加方法。
恩,发个申明:
- 以上方法仅供学习研究之用,请勿用于“非法”、“不正当”途径,任何后果,自行负责,与本站无关。
- 本站不提供任何 SSH 帐号服务,请勿索要任何相关信息。
oct 08
检查系统要求
可通过选取 Apple 菜单 ->“关于本机”来查看电脑上安装的 Mac OS X 版本。Apple Wireless Keyboard 键盘要求使用 Mac OS X 10.3 或更高版本。
检查 Bluetooth
可通过选取 Apple 菜单 ->“系统偏好设置”来判断电脑是否带有内建 Bluetooth。请确保 Bluetooth 适配器已打开。如果电脑没有内建 Bluetooth,可尝试使用其他可与系统兼容的外置 USB Bluetooth 适配器。
注: 有些第三方 USB Bluetooth 适配器可能不支持使用无线键盘或鼠标来将 Mac 从睡眠模式中唤醒。
设置
要设置 Apple Wireless Keyboard 键盘,请按照下列步骤操作:
- 打开“Bluetooth 设置助理”。
- 点按“继续”。
- 在“选择设备类型”面板上,选择“键盘”。暂时不要点按“继续”。
- 使用键盘上的电源开关打开键盘电源。电源开关上方的指示灯应即会开始闪烁。
- 点按“继续”。键盘的名称应即会显示在“搜索”面板的设备列表中。
- 在“设置助理”列表中将键盘选中,然后点按“继续”。助理将会尝试对键盘进行配对。
- 在“设置助理”提示时,使用 Apple Wireless Keyboard 键盘上的按键键入“设置助理”中显示的密码。完成后,按键盘上的 Return 键。
- 在助理显示电脑与键盘已成功配对后,点按“继续”。
- 设置即已完成。点按“退出”。
现在,应即可使用 Apple Wireless Keyboard 键盘。
注: 如果启动后,键盘底部的指示灯未亮起或闪烁,请确保电池是否已正确充电或安装。
我用的是 Broadcom 芯片的蓝牙 USB 适配器,连接 G5 键盘和我的 N73 手机都没有问题,从手机拷贝文件大概能有 100K/秒的速度,相当不错。
oct 07
苹果系统(Leopard)下键盘映射有个问题,当你做了定制化的映射修改后,就无法简单的恢复到原始设置。
我为我的 PS/2 键盘修改了 Leopard 的修饰键,将 Command 按钮映射到了 Windows 键上;而系统默认情况下,Command 键是映射到 Alt 键,Option 键映射到了 Windows 键。在我想把键盘映射恢复到系统默认设置的时候,不管在“系统偏好设置”中如何操作,都没有任何变化。
网上搜索的结果是,不少人都有这个问题,看来可能是系统的某个 Bug ?
找到两个方法:
- 额外连接一块键盘,修改映射后再恢复,系统会同时恢复原来那块键盘的映射关系。
- 清理 ~/Library/Preferences 目录下的个人相关设置,重新登录后系统会初始化为默认值。
我采用的是第一个方法,因为第二个方法如果不仔细处理可能影响其他应用环境。
OK,问题解决,现在我的 DELL AT101W PS/2 键盘的主体键位映射很接近苹果 G5 键盘(没有那些音量什么的扩展键),所以我的大部分敲击依然可以快乐地触摸着这款古老的 ALPS 机械轴键盘。

oct 04

从淘宝上入手一块全新工包的苹果 G5 键盘,用于我台式机上的 Hacintosh 系统中。
说说键盘手感。由于不是机械键盘,整体来说比较接近 DELL SK8115 这块键盘(都是紧凑型外观),但它们的键程感有个明显的差别:
- DELL SK8115 的键程下按的时候有股阻力,这个阻力一直稳定维持到按键完成(应该和普通的电容键盘类似);
- 而苹果 G5 则不同,按键阻力只存在键程初始阶段,突破后,后续阻力很微弱,给人一种穿刺、突破的感觉,码字更加轻松和自如。
所以,从手感上来说,G5 明显更适合长时间使用键盘的人。
恩,我目前对键盘的爱好程度如下:
- 我最喜欢(期盼?)的依然是樱桃的机械键盘(G80-3494型红轴),如果有条件,我一定入手那块键盘(感觉好奢侈)。
- DELL AT101W 机械键盘(ALPS轴)是我目前实际使用的首选键盘,可惜键位对苹果系统不友好(另外一个缺点是太古老,市面上已基本找不到品质好的英文标准版了)。
- 至于苹果 G5,使用下来,手感相当不错,非常适合码字;其地位可与 DELL AT101W 并驾齐驱(可惜也已停产,也不是太便宜;哈)。
- 最末选择就是 DELL SK-8000 啦,是我原先最喜欢的电容键盘,也是超级老古董。
莫非现在的产品是一代不如一代。感觉自己有很强的收藏癖,DELL AT101W 和 DELL SK-8000 都收了几个老古董。哈!
sep 13


Emacs 是我在 Ubuntu 下最主要的开发工具,在我去年开始的从 Ubuntu 往 Mac OS X 迁移的过程中,找不到一款真正好用的 Emacs for Mac 是我完成迁移的最大困扰。
其实,Emacs for Mac 各种版本也不少,但似乎都不是基于最新的 23.x 版本的(或者说不是纯粹的 Emacs),而我恰恰需要的就是 Emacs CVS 中的最新版本。
目前我所找到的 Emacs for Mac:
其实我在之前的探索中,第一个也还是基于 Emacs 22.x 的,而第二个是我在后来无意中才发现的,已经使用了几个月了,还是相当不错的。今天整理这个备忘清单的时候才发现第一个也更新了,下载使用后,也是非常棒的版本。
所以,第一和第二可以作为首选 Emacs for Mac OS X,唯一的差别的 nightly CVS builds 版本更新更快,而第一个是依据 Emacs 整数版本发布的,目前是 23.1.0。
以下是运行截图:

aug 28

Mac OS X 下可以方便的使用 MacPorts 安装你想要的 Unix 相关工具或者软件,间隔一段时间之后,可能会涉及到更新升级的问题, MacPorts 提供非常方便的方法。
(MacPorts 的安装非常简单,到 MacPorts 官方网站下载对应版本运行安装即可。)
第一步,需要将 MacPorts 本身更新到最新版本:
sudo port selfupdate
或者开启 debug 功能,看完整更新信息:
sudo port -d selfupdate
第二步,更新所有过期(ports 中有新版本)的软件到最新版本:
sudo port -u upgrade outdated
此处的 -u 参数的作用:upgrade 选项默认只是在安装新版本后 deactivates 旧版本,并不会删除,这个 -u 就是告诉 port 安装新版本后,将不再需要的旧版本删除掉;便于保持干净的系统。
更详细的命令参数可以参考 MacPorts Guide 。
Recent Comments