Category Archives: Mac OS

Mac terminal 连接ssh 显示 broken pipe

用Mac terminal 连接ssh后,如果一段时间没有操作,terminal会显示”broken pipe”,需要重新登录.在~/.ssh/文件夹中添加config文件,并进行如下修改即可:

ServerAliveInterval 5
TCPKeepAlive no

ServerAliveInterval 5让terminal每5秒钟自动和远程的sshd进行一次握手,避免被踢掉;
TCPKeepAlive设置为no是为了避免临时的网络问题导致ssh断开,也能避免ssh断开导致的terminal假死状态.

终于恢复了在OS Lion中使用三指在Finder和浏览器中前进后退

在10.5中已经习惯了使用三指在触摸屏左右滑动来实现Finder或者各种浏览器里面前进后退,升级了Lion后发现已经不能用了,在浏览器的页面中前进后退变成了双指左右滑动(在Finder中无法实现双指左右前进后退),三指左右滑动变成了切换桌面(Lion非常好的功能,超级喜欢)。虽然很喜欢Lion的切换桌面,但是还是怀念Finder中的切换方式,不过找到了个设置方式,只要把切换桌面变成四指左右即可,10.5的方便操作方式终于回来了。

初学Cocoa和Objectiv-c

昨天开始看<<Cocoa Programming For Mac Os X (3rd Edition)>>学Cocoa,但是不知道是不是Xcode里面Cocoa版本的问题或者是其他的原因,书中第一个例子是用两个按钮和一个textField来生产随机数的简单程序,我在练习的时候就驴唇对不上马嘴了,书中原文是”you will set the Generator button’s target instance variable to point you instance of Foo and set its action to the generate:method”(pdf第47页,Figure 2.19),但是我在Interface Builder上右键单击button,出来的outlets里面根本就没有target这个属性:

只有一个selector属性,一个Cocoa白痴就不知道改怎么办了,后来照着样子吧selector属性拖到Foo上,分别试着设置了属性,竟然能运行了,开来书中的Cocoa版本和我的Xcode(version 3.2)已经有一些差距了.

Mac OS新安装系统后最需要替换的程序

Mac内置的程序都很棒,比如Finder和浏览。浏览能够很方便的打开pdf和图片,但是有个缺点:在浏览图片的时候只能打开单张图片,你想看别的图片的话,对不起请关闭窗口然后双击下一个图片,不能像windows中使用左右键盘浏览前后的图片。不知道为什么这个难用的功能一直不更改,所以替换一款图片浏览程序很有必要:

Lyn 小巧快速,支持主流图像格式,管理查看双模式,可全屏/幻灯片播放。

乔不死有时候真的很操蛋。

PS:Lyn需要注册,已经删除了。后来发现在Mac OS中,单击选择图片后按空格就能预览图片,在这种情况下可以使用左右键看旁边的图。思维还是被windows僵化了;或者可以选择“全选”整个文件夹的图片,然后单击一个图片查看,这样可以使用上下键来快速切换图片。

HTC hero如何与Mac OS共享移动网络

hero有windows下面的sync程序,其中有个比较不错的功能:移动网络共享。如果windows安装过了sync以后,如果在hero连接电脑后,在hero上选择“移动网络共享”后,在网上邻居上自动添加了一个“本地连接”,直接就可以上网了。但是在Mac OS系统下就没有sync程序了,如果把hero连接的电脑上后,选取“移动网络共享”,Mac OS出现了一个网络拨号的接口,但是无法拨号上网。

连接PC很简单,只要安装过HTC SYNC就能自动生成一个本地连接,连拨号都不用直接就能上网了;

不过在MAC下就比较杯具了,HTC根本没有提供MAC下的驱动,即使通过USB连接hero后,选择了“移动网络共享”,在MAC上出现一个拨号链接的窗口,但是你无法上网。想要让MAC上网,还要通过以下步骤:

确保你的mac安装过了macports,然后在hero上安装azilink(不能通过市场安装,必须下载后手动安装)。

1、下载安装 tuntap (http://tuntaposx.sourceforge.net/) 安装,并且一定要在安装结束后重启mac.

2、安装Android SDK(http://developer.android.com/sdk/index.html) 上不去的话自己想一下原因然后找翻墙的办法。

3、打开Terminal:

cd
pico .bash_profile

在最后添加export PATH=/你的android-sdk安装的位置/tools:$PATH,这步的目的是为了以后的脚本中可以直接找到adb等android SDK中的tools位置。

4、下面需要通过macports来安装OpenVPN2:

sudo port install openvpn2

5、下载 http://azilink.googlecode.com/files/azilink.ovpn 文件.创建/Users/你的用户名/Library/openvpn文件夹,然后把下载的文件放进去:

dev tun

remote 127.0.0.1 41927 tcp-client
proto tcp-client
ifconfig 192.168.56.2 192.168.56.1
route 0.0.0.0 128.0.0.0
route 128.0.0.0 128.0.0.0
#socket-flags TCP_NODELAY
#keepalive 10 30
ping 10
dhcp-option DNS 192.168.56.1

6、测试hero是否连接到mac上.在字符运行:

adb devices

然后查看结果:

dragan-dinics-macbook-pro:tools dinke$ adb devices
* daemon not running. starting it now *
* daemon started successfully *
List of devices attached
HT9FSL901734    device
dragan-dinics-macbook-pro:tools dinke$

“HT9FSL901734 device”这样类似的结果一定要出现,其中不同的数字代表不同的hero的ID,没有的话表示hero还没有连接到mac上。(一般要用手点击一下hero顶端的htc sync同步)。

7、创建拨号脚本:

#!/bin/bash
#
# azilink for OS X

init() {
adb forward tcp:41927 tcp:41927
sudo openvpn2 --dev tun \
--remote 127.0.0.1 41927 \
--proto tcp-client \
--ifconfig 192.168.56.2 192.168.56.1 \
--route 0.0.0.0 128.0.0.0 \
--route 128.0.0.0 128.0.0.0 \
--keepalive 10 30 \
--up "$0 up" \
--down "$0 down"
}

up() {
tun_dev=$1
ns=192.168.56.1
sudo scutil &lt;&lt; EOF
open
d.init
get State:/Network/Interface/$tun_dev/IPv4
d.add InterfaceName $tun_dev
set State:/Network/Service/openvpn-$tun_dev/IPv4

d.init
d.add ServerAddresses * $ns
set State:/Network/Service/openvpn-$tun_dev/DNS
quit
EOF
}

down() {
tun_dev=$1
sudo scutil &lt;&lt; EOF
open
remove State:/Network/Service/openvpn-$tun_dev/IPv4
remove State:/Network/Service/openvpn-$tun_dev/DNS
quit
EOF
}

case $1 in
up  ) up $2 ;;  # openvpn will pass tun/tap dev as $2
down) down $2 ;;
*   ) init ;;
esac

copy下来,然后chmod 777,赋予执行权限,想要上网都时候只要运行这个shell就可以了,然后就可以带着hero到处上网吧。

Mac下最好的输入法-FIT

自从用Macbook之后,一直都是使用系统自带的输入法,后来用过两个Mac平台的输入法:FIT和QIM输入法。QIM是收费的输入法,不过试用的版本功能有限;FIT用起来还是很不错。不过用这两个输入法一直发现相对于windows平台有个不太方便的地方:没有中文或是英文的状态显示浮动栏。经常是在拼音的状态想要输入英文要忙活半天,后来发现FIT的一个实验版本带了类似语windows版本的浮动栏,但是用了之后发现是在是很一般,根本就不太显示切换的信息并且位置很死,影响桌面显示。

不过作为免费软件,这样已经不错了,毕竟人家没有义务免费给你作最好的输入法。不过后来找到FIT的一个设置能够在桌面显示英文或者中文切换状态(在FIT的“通用”标签里面选择“启用菜单栏图标”)。

Mac输入法

这样就在桌面的右上角出现了一个小图标来说明FIT目前的输入状态是英文状态还是中文状态。不过FIT作者在自己的blog中提到了一点:自己在iPhone上的一个简单的blog编辑程序赚的钱是原来收费状态的FIT的好几百倍,但是FIT的复杂程度要比前者高得多了。呵呵 这就是appStore的魅力了,好的支付渠道和用户群体是赚钱的关键。

Mac apache配置

Mac是个不错的平台,不过目前为止我还没有把php的环境转移至Mac平台,原因就是Mac的apache配置没有win平台的简单.Win上面的apache配置不仅简单,并且还有EasyPHP等很好用的一次性整合工具,极大的增加了效率.Mac apache配置起来比较复杂,并且还不像Linux或者FreeBSD那样方便的源码安装和配置环境.好几次配置了Mac上的apache后,第二天要改变apache配置时就忘了配置文件在那里了.Mac其实是内置了Apache的,我安装的是雪豹,内置的版本是2.2.11.如果你想升级Mac apache的版本,我暂时还不太清楚,只是不像Freebsd那样简单.

Mac内置的Apache可以通过内置的”web共享”启用,默认是关闭的.

Mac apache配置-1

系统默认的web内容的根目录是/Library/WebServer/Documents, 而每个用户自己的是/Users/用户名/Sites/. 这些设置可以在/etc/apache2/httpd.conf文件中找到相应的设置.

但是关键是如何能够编辑/etc/apache2/httpd.conf这个文件?Mac不像Linux那样如果使用root权限能够看到所有文件,Mac的资源管理器是无法看到一些关键文件夹的,比如etc这个文件夹.这样就需要使用Shift+苹果键+G,这样就能进入一些隐藏文件夹,修改conf文件了.

phpmyadmin最新版有个很操蛋的功能,就是TMD禁止使用空密码登录.我cao,开发环境中使用空密码管你屁事?并且Mac系统中更改各项服务的配置文件也是一件很操蛋的事情,引用配置文件都是隐藏文件,每次修改都需要输入密码,确认权限.所以,刚才的更改phpmyadmin的允许空密码登录就是又一件很操蛋的问题,做法是在config.inc.php中添加一行:

$cfg['Servers'][$i]['AllowNoPassword'] = ture;

在Mac上经历了无数次的炼狱后,phpmyadmin终于跌跌撞撞的能够运行起来了.或者Mac的哲学的确对于低级用户来说很好用,但是用作测试开放环境来说真是磨练人的意志,用一句话说:很操蛋.很多服务或者应用都被Mac隐藏起来了,你想去找找或者修改一下都麻烦的要死.

PS:Mac如何抓屏?在 Mac 上称之为“拍照”,可以使用“shift”+”苹果”+”3″键(“shift”+”苹果”+”4″键是局部选择)你会听到一声清脆的相机快门声