“macintosh”分类下文章 »

apr 24

在雪豹下,有时候在往非本地硬盘(比如网络共享或者外挂移动硬盘等)拷贝文件的时候,会发生“不能完成此操作,因为您没有权限访问一些项目”的错误信息。

刚开始碰到的时候,我以为我家文件服务器的 Samba 配置出了问题(因为那几天刚好我做了一点小调整),后来发现和 Samba 没有关系,并且拷贝到外挂移动硬盘或者 U 盘也会有这个错误,但只限于那几个文件。

将出错的文件仔细定位后,发现是一个视频字幕文件,具体做了哪些操作也忘了,在终端下使用 "ls -al" 命令发现该文件的权限位最后多了一个 “@” 符号,类似以下形式:

-rw-r--r--@ 1 dirk staff 62584 somefile.srt

在网上搜搜后,说得最多的是关于隐藏属性的标志,但实际此文件在 Finder 中并没有被隐藏。几番搜索并试验后,发现和 xattr 这个命令相关。

可是,可是,为什么 xattr 没有 man page 呢?为什么?

还好,可以看看 "xattr -h":

[dirk@idesk:~]$ xattr -h
usage: xattr [-l] [-r] [-v] [-x] file [file ...]
       xattr -p [-l] [-r] [-v] [-x] attr_name file [file ...]
       xattr -w [-r] [-v] [-x] attr_name attr_value file [file ...]
       xattr -d [-r] [-v] attr_name file [file ...]

The first form lists the names of all xattrs on the given file(s).
The second form (-p) prints the value of the xattr attr_name.
The third form (-w) sets the value of the xattr attr_name to the string attr_value.
The fourth form (-d) deletes the xattr attr_name.

options:
  -h: print this help
  -r: act recursively
  -l: print long format (attr_name: attr_value and hex output has offsets and
      ascii representation)
  -v: also print filename (automatic with -r and with multiple files)
  -x: attr_value is represented as a hex string for input and output

最终的解决办法是分两步走:

  • 首先,使用 "xattr 文件名" 命令看看该文件附加了什么属性,比如我那个字幕文件多了 “com.apple.metadata:kMDItemWhereFroms” 这么一个属性。
  • 然后可以使用 xattr 删除此属性,文件就恢复正常了!(如果是多个属性,挨个删除即可)
[dirk@idesk:~]$ xattr -d com.apple.metadata:kMDItemWhereFroms somefile.srt

问题解决,打完收工!!!

dirk 发表于 2010-04-24 Saturday

jan 24
Snow Leopard

自从我在公司的开发用机器迁移到 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 没有任何问题)。

About Snow Leopard Machine
dirk 发表于 2010-01-24 Sunday

nov 05
PostgreSQL

我的 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 桌面系统下高,也许有更多地方需要调整,有时间的时候好好研究一下。

dirk 发表于 2009-11-05 Thursday
oct 30
  • command-shift-3: 全屏截屏, 保存至桌面;
  • command-shift-4: 选定屏幕的某一方形区域截屏, 拖动指针改变选定区域;
  • command-shift-4, 释放, 然后按空格, 点击, 对当前活动窗口截屏, 并保存至桌面;
  • command-shift-4, 释放, 选定区域, 按住空格, 可以固定选定方块在屏幕上拖动截屏;
  • command-shift-4, 释放, 选定区域, 按住option, 可以在水平或垂直方向以已选区域为中心, 同比例放大或缩小;
  • command-shift-4, 释放, 选定区域, 按住shift, 固定x轴y轴选定宽度, 变动y轴或x轴来截屏;
  • command-shift-4, 释放, 选定区域, 按住option-shift, 上述5/6的组合;
  • command-shift-4, 释放, 选定区域, 按住shift-空格, 上述4/6的组合.
  • ctrl+以上3条快捷键任一条, 把截屏保存至剪贴板;
  • 在以上任一条快捷中, 按esc取消截屏.
dirk 发表于 2009-10-30 Friday
oct 23
GFW

随着被墙的越来越多, 出离愤怒的我 ,也不得不开始查找爬墙的工具。

幸好,国外有不少便宜的 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 帐号服务,请勿索要任何相关信息。
dirk 发表于 2009-10-23 Friday
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/秒的速度,相当不错。

dirk 发表于 2009-10-08 Thursday
oct 07

苹果系统(Leopard)下键盘映射有个问题,当你做了定制化的映射修改后,就无法简单的恢复到原始设置。

我为我的 PS/2 键盘修改了 Leopard 的修饰键,将 Command 按钮映射到了 Windows 键上;而系统默认情况下,Command 键是映射到 Alt 键,Option 键映射到了 Windows 键。在我想把键盘映射恢复到系统默认设置的时候,不管在“系统偏好设置”中如何操作,都没有任何变化。

网上搜索的结果是,不少人都有这个问题,看来可能是系统的某个 Bug ?

找到两个方法:

  • 额外连接一块键盘,修改映射后再恢复,系统会同时恢复原来那块键盘的映射关系。
  • 清理 ~/Library/Preferences 目录下的个人相关设置,重新登录后系统会初始化为默认值。

我采用的是第一个方法,因为第二个方法如果不仔细处理可能影响其他应用环境。

OK,问题解决,现在我的 DELL AT101W PS/2 键盘的主体键位映射很接近苹果 G5 键盘(没有那些音量什么的扩展键),所以我的大部分敲击依然可以快乐地触摸着这款古老的 ALPS 机械轴键盘。

Dell AT101W Dell AT101W
dirk 发表于 2009-10-07 Wednesday
oct 04
Apple G5 Apple G5

从淘宝上入手一块全新工包的苹果 G5 键盘,用于我台式机上的 Hacintosh 系统中。

说说键盘手感。由于不是机械键盘,整体来说比较接近 DELL SK8115 这块键盘(都是紧凑型外观),但它们的键程感有个明显的差别:

  • DELL SK8115 的键程下按的时候有股阻力,这个阻力一直稳定维持到按键完成(应该和普通的电容键盘类似);
  • 而苹果 G5 则不同,按键阻力只存在键程初始阶段,突破后,后续阻力很微弱,给人一种穿刺、突破的感觉,码字更加轻松和自如。

所以,从手感上来说,G5 明显更适合长时间使用键盘的人。

恩,我目前对键盘的爱好程度如下:

  • 我最喜欢(期盼?)的依然是樱桃的机械键盘(G80-3494型红轴),如果有条件,我一定入手那块键盘(感觉好奢侈)。
  • DELL AT101W 机械键盘(ALPS轴)是我目前实际使用的首选键盘,可惜键位对苹果系统不友好(另外一个缺点是太古老,市面上已基本找不到品质好的英文标准版了)。
  • 至于苹果 G5,使用下来,手感相当不错,非常适合码字;其地位可与 DELL AT101W 并驾齐驱(可惜也已停产,也不是太便宜;哈)。
  • 最末选择就是 DELL SK-8000 啦,是我原先最喜欢的电容键盘,也是超级老古董。

莫非现在的产品是一代不如一代。感觉自己有很强的收藏癖,DELL AT101W 和 DELL SK-8000 都收了几个老古董。哈!

dirk 发表于 2009-10-04 Sunday
oct 02

SVN users who wish to ignore multiple files with distinct names in the same folder beware : you must use a file and batch-process.

It’s not difficult to figure out that to tell SVN to ignore a file, you could use:

svn propset svn:ignore [filename] [folder]

So if I have a file ‘settings.py’ in folder config, in the config folder I would simply type:

svn propset svn:ignore settings.py .

But what if I also have another file, say ‘me.py’, in the same folder that I want to ignore? On top of that, what if I have other files with a .py extension that I don’t want to ignore? The following will not work:

svn propset svn:ignore “settings.py me.py” .

(incorrect syntax)

svn propset svn:ignore “*.py” .

(but i don’t want to ignore some .py files)

nor would the following, because svn for some odd reason seems to only take one propset assignment from the commandline – meaning only one of the files will be ignored:

svn propset svn:ignore settings.py .
svn propset svn:ignore me.py .

turns out you must make a file with the filenames on separate lines, then call with the -F parameter. For example in the above case, I would create a file “ignore.me” with settings.py and me.py on separate lines, then call

svn propset svn:ignore -F ignore.me .

Annoying. SVN should let you set the same property on multiple files with multiple command-line calls.

dirk 发表于 2009-10-02 Friday
sep 13
EmacsMac OS X

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。

以下是运行截图:

Screenshot for Emacs (Mac OS X) Screenshot for Emacs (Mac OS X)

dirk 发表于 2009-09-13 Sunday