“macintosh”标签相关文章 »

四月 16

今天在 Mac 下配置一个 Go Lang 的开发环境,我是使用 /bin/csh 作为默认 shell(爱上了其强大的历史命令回溯功能),所以需要将 $GOPATH 设置到 ~/.cshrc 文件里:

setenv GOPATH /export/projects/mygo
set path = ($path $GOPATH/bin)

设置后发现不能自动加载,即使重新启动系统也无效。每次需要手动 "source ~/.cshrc" 才能生效。

经过不断摸索和研究,发现这是由于我的 Home 目录下存在 .tcshrc 文件引起的问题。tcsh(MacOS 下的 csh 与 tcsh 相同)在登录、开启终端时会依照以下顺序读取配置文件:

  • /etc/csh.cshrc : Read first by every shell.
  • /etc/csh.login : Read by login shells after /etc/csh.cshrc.
  • ~/.tcshrc : Read by every shell after /etc/csh.cshrc.
  • ~/.cshrc : Read by every shell, if ~/.tcshrc doesn't exist.
  • ~/.history : Read by login shells after ~/.tcshrc if savehist is set, but see also histfile.
  • ~/.login : Read by login shells after ~/.tcshrc or ~/.history.

找到问题所在,将 ~/.tcshrc 文件移除即可(该文件是 Macports 自动安装,无实际设置)。

dirk 发表于 2014-04-16 星期三
九月 05

  很多网站都通过 HTTP 头信息中的 User-Agent 标志来判断设备和浏览器类型,如果是 3G 手机,显示手机页面内容,如果是普通浏览器,显示普通网页内容。

  谷歌的 Chrome 浏览器,可以很方便的用来模拟手机下的浏览器,这样测试移动网站和页面就变得非常方便。

  在 Mac OS X 的“终端”窗口 (Terminal.app) 中输入以下命令启动谷歌浏览器,就可以模拟不同手机设备下的移动浏览器去访问 3G 手机网页:

  谷歌 Android:

open 'Google Chrome.app' --args '--user-agent="Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"'

  苹果 iPhone:

open 'Google Chrome.app' --args '--user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25"'

  苹果 iPad:

open 'Google Chrome.app' --args '--user-agent="Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25"'

  三星手机:

open 'Google Chrome.app' --args '--user-agent="Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; GT-S6010 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30"'

  更多手机浏览器的 User-Agent 标识:http://www.zytrax.com/tech/web/mobile_ids.html

  如果想切换回普通浏览器模式,彻底关闭 Chrome 浏览器后重新开启即可(Command + Q 快捷键)。

dirk 发表于 2013-09-05 星期四
十二月 09

对于低版本系统,在命令行窗口(terminal)输入 lookupd -flushcache 即可:

[idesk@imac:~]$ sudo lookupd -flushcache

命令执行完毕,你的DNS缓存就得到了更新。

对于较新的苹果 Mac OS X 系统应该使用下面的命令:

[idesk@imac:~]$ sudo dscacheutil -flushcache
dirk 发表于 2011-12-09 星期五
十一月 30

Lion 下无线网络总是时不时的断线,而系统栏显示的状态没问题,每次都要关闭再开启一下无线才能恢复,有时候晚上无人看守的传东西经常中途断了,结果传输没完成,还浪费一晚的电费。

没太多时间和精力去研究,暂时写了一个 shell 脚本检测网络状态,如果断了,自动关闭再开启一下网络端口,虽然不能百分百解决问题,但 99.99% 的情况下能用,基本能连续保持几天的连接状态。

#!/bin/sh

echo "AirPort Monitor start at `date`"

while [ 1 ] ; do
    ping -v -c 4 192.168.0.1 > /dev/null 2>&1
    PINGSTA=$?

    if [ ! $PINGSTA -eq 0 ]; then
        echo "Lost AirPort, refresh now... `date` ..."
        ifconfig en1 down
        sleep 5
        ifconfig en1 up
        echo "Done."
    fi

    sleep 60
done
dirk 发表于 2011-11-30 星期三
十一月 01

“工欲善其事,必先利其器”向来是我的信条之一,所以对于天天敲打的键盘自然很挑剔,毕竟,自己的手指每天要经受将近20小时的磨砺。

99、2000年的时候,公司购买的是Sun服务器(Ultra 10),所配的键盘是Dell的SK-8000;从那以后的7、8年里,我几乎没有再使用过其他键盘,因为太喜欢SK-8000的手感了,其他的键盘都让我觉得无法忍受。

当几年前发现手里仅存的一块也有点岌岌可危的时候,突然意识到是否应该再买块SK-8000做个备用。于是在网络上开始了大搜索,结果在淘宝找到了仅剩的几个货源,而且,大部分的品质都是不太好的,不管如何,最终让我入手两块品质相当不错的SK-8000,现在,这两块难得的SK-8000让我作为最珍贵的东西珍藏了起来。

在搜索SK-8000的过程中,开始无意识的接触到机械键盘,当时的主流应该算Cherry系,但我喜欢的款式价位差不多7、800以上,让人心里难以接受。而在搜索SK-8000的过程中,接触到了外型很接近SK-8000的DELL AT101W,一款使用ALPS轴的机械键盘,由于也是非常古老的键盘(同样是9x年代的标配行货),二手货的价位相当便宜,所以选择AT101W作为自己的入门机械键盘。

Dell AT101W Dell AT101W

这款键盘高品质的货源同样非常少,在淘了N久之后,断断续续购入了5、6块,才筛选到两块品质相当不错的AT101W。(有点夸张的说,淘宝上AT101W的价格都是让我给炒起来的,哈哈!)

在此之后的两、三年时间里,我始终在敲打着这块古老的ALPS机械键盘,也是我至今最喜欢的一款键盘。

后来,由于开发需要,需要转移到Mac OS X系统,这个时候,古老键盘的PS/2接口成了我心中的隐痛。在此期间,我也曾尝试过 Apple G5 键盘:

Apple G5 Apple G5

这款G5键盘令我非常失望,几乎没怎么用就放弃了。当时G6刚上市,远观觉得那么扁平,肯定键程非常短,心里根本没有考虑去尝试,所以,一直继续使用着AT101W。

前不久,在Jay的提示下,我也开始尝试 Apple G6,感觉撇开机械流,如果手指慢慢习惯的话,手感还是非常好的,比G5改进很多。而且,全键盘那款的全身铝合金结构,沉甸甸,非常棒的触摸感。哈!SO,前不久,终于入手了 Apple G6,暂时把 AT101W 替换到收藏柜了。

Apple G6 Apple G6

在遗憾机械流的感觉中,也在犹豫N久之后,终于入手了 Cherry G80-3484 红轴:

Cherry G80-3484 Cherry G80-3484

说实话,我对这款键盘的失望是非常大的。除了机械轴算满意点,外型、做工给我的感觉就是二流货色,初步被我搁置了,等哪天回到Ubuntu或者FreeBSD平台的时候再来试试。

最终,我现在暂时停留在 Apple G6 下,使用下来,感觉习惯了之后,还是比较舒服的,特别是深夜里,不用再担心机械流声音会打扰家人的休息。

最后,来个DIrk系的打分吧(总分10分):

  • DELL SK-8000,9.5分,扣分是因为键盘比较古老,另外一个缺点是非机械流;
  • DELL AT101W,9.8分,扣分是因为键盘比较古老,其他都是完美(是最结实的钢板架构);
  • Apple G5,5分,手感太差;
  • Apple G6,9分,非机械流,不过整体感觉不错,特别是铝合金面板和人体工程设计方面;
  • Cherry G80-3484,8分,红轴不错,但外型、做工太糙(至少在我这个精致物体控看来,这个东西根本不值这个价;Apple G6无线版也不过才500出头人民币),键盘太厚,如果没有手托,感觉会有些难受。

恩,最后,我梦想的键盘就是Cherry G80-3484的轴加上AT101W的架子和壳。不过,要是乔老爷把未来的G7做成机械流,我一定会感激涕零。

哈!

dirk 发表于 2010-11-01 星期一
十月 25

心血来潮,下了几个试音专辑文件,一听才发现我的音响原来低音这么棒。以前一听低音比较多的乐曲,我的音响就会低爆,感情是没找到好的曲源?

当然,也许也是音响没褒开,打算就用这几个专辑好好褒一下,回头再看看普通MP3的效果。

网上无损音频一般都是APE或者FLAC格式的,我的机器只有VLC能播放,效果不错。有人推荐另外一款叫 Cog 的Mac下无损播放器,试了试,效果也不错。

Cog for Mac
dirk 发表于 2010-10-25 星期一
四月 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 星期六
一月 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 星期日
十一月 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 星期四
十月 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 星期五