Recently in shared Category

每年几乎都要来这么一次,最近想整理一下的原因是周围有两个同事相继加入Mac党,帮他们安装设置了一些工具。所以就顺手也整理一下:

  • 网页浏览
  • 主要使用的还是Safari,同时也挂上了Glims。安上Firefox的主要原因是Y!slow和Firebug,同时为了有更好的界面效果,还搭上了foxdie.us
  • 网络下载
  • FTP的主要工具是Cyberduck和在Terminal.app使用的ftp命令。cURL则是一个下载以及测试的利器。
  • 文本编辑
  • 虽然Textmate一直不思进取,2.0杳无音讯,跳票情况超过暴雪,但是今年还是团了一个License,确实是码农必备。另外在写中文文档的时候也会用到TextWrangler。
  • 文档编写
  • 公司里有太多的人使用Word和Excel了,所以也会安装一套M$的Office 2008来用。文档的编写一般是趋向于纯文本方式的,如果有格式要求我更趋向于使用TeX,自然也就会安一套MacTeX来用。安装iWorks主要是冲Keynote去的。
  • 绘图处理
  • OmniGraffle绝对是Mac上的超牛B软件画图软件。对于照片的管理还是用了自带的iPhoto,虽然以前下载了Aperture回来试用,但是对于我这样的傻瓜用户还是有些太高级了。一般的裁剪工具就是自带的Preview.app。思维导图则是MindNode.app比较好使。
  • 影视娱乐
  • 看电影必用的工具是Perian,VLC和Movist。一般情况下会先用QuickTime来播,如果不行就换Movist,再不行换VLC。在家接上电视的时候也会用Plex来放电影,不过这个情况要少一些,可能等我在家里搞起一个电影库的时候就有用了。RealPlayer已经从我的安装清单里去掉了,下载电影的时候也基本上不下RMVB了。
  • 聊天通信
  • 我平常几乎只开iChat挂Google Talk,偶尔会开一下Adium和QQ。
  • 杂项
    • Nally.app是读BBS的利器
    • The Unarchiver.app可以通吃所有的打包档。包括rar的字符集问题处理的都不错。
    • Tweetie.app是发推利器,而且支持民间RT。
    • iCompta.app来记帐是节源的好工具,不过要坚持下来才可以。
    • HandBrake.app来转档给iPhone使。
    • Evom.app也是转视频档给iPhone使的工具。
    • CoRD.app可以连接Windows远程桌面。
    • iChm.app可能是Mac上最好用的chm阅读器了。

前些日子从朋友那里拿了一个iPhone 3G。拿过来时候基本就是个砖头,推测是一个已经刷到3.1.3的有锁版,后来还拿去e世界的电玩巴士请帮解锁,未成功。回来查了一些资料及刷机的方法,自己也刷了几次。这次经历算是给我补了一把iPhone的课。

iPhone除了1代、3G、3GS的区别之外还有有锁版和无锁版的区别。有锁版一般是美国的和日本的,俗称美版和日版,应该也还有欧版的。国内的无锁版一般都是指港版。有锁和无锁的区别是有没有绑定了电信运营商,美版绑定的运营商是AT&T,而日版绑定的是SoftBank Mobile。正常来说绑定了运营商的iPhone只能使用绑定运营商的sim卡,然而非指定运营商的用户也想使用iPhone,于是就出现了卡贴,把一个非指定运营商的sim卡伪装成一个指定运营商的sim卡。后来有人通过软解的方式把iPhone的这一限制给破了,这个过程也就称之为解锁,但是软解的过程并不是一切顺利的,苹果也是通过更新软件的方式防止人们对iPhone进行解锁。最近的iPhone OS 3.1.3的升级就造成了iPhone 3G和3GS无法解锁的情况(我相信这只是暂时的)。目前iPhone 3G有锁版要是刷到了3.1.3并且baseband升到了05.12.01,那么得到的是一个增强版的iPod Touch。iPhone 3G升到3.1.3之后可以使用PwnageTool定制一个固件,选择不要升baseband,这样起码让iPhone 3G可以当个iPod使用。也可以刷回到3.1.2(这个过程会遇到1015的错误),再使用Blackra1n来解。

iPhone用户经常会提到的一个事情就是JailBreak,称之为越狱。越狱后就可以安装许多Apple Store之外的应用程序了。

iPhone用户经常会做同步操作,其实在同步的时候iTunes还会做备份的操作,如果你换了iPhone,那就可以使用"从备份中恢复"这一招把设置、联系人、Safari的书签等给恢复回来。但是要注意以前iPhone里的mp3、视频和买的应用程序就只能从iTunes中同步才能回来了。

在iPhone的刷机过程中要特别注意恢复模式和DFU模式的区别,最大的区别是DFU模式下屏幕是全黑的。进入DFU模式的方法是如下:

  1. 关机
  2. 同时按下Power+Home键不放,保持10秒
  3. 松开Power键,Home继续不放,保持10秒
  4. 松开Home键,进入DFU模式
这个操作我的建议是看着PwnageTool中的指导来做,非常的方便。

就iPhone刷机升级这个事来看,没事别折腾。如果要折腾有几点忠告:

  1. 无论何时都不要刷官方的新版,除非你是无锁版的,并且不想越狱。
  2. 对自己的iPhone要完全了解。是否有锁?什么型号?baseband是多少?。
  3. 熟读解锁软件的各个注意事项,一定要读,看看自己的手机是不是在可破的范围之内等等。

Automator Proxy Toggle Shell

| 3 Comments | No TrackBacks
人都是被逼出来的,为翻墙方便,用Automator写了一个Service,就执行一段shell,还设置了一个快捷键。
#!/bin/sh
STAT=`sudo networksetup -getwebproxy Ethernet | head -1 | cut -d: -f 2|sed 's/ //g'`
if [ "$STAT" == "No" ];then
	networksetup -setwebproxystate Ethernet on;
    /Users/guixing/bin/growlnotify -m "Proxy On";
else
	networksetup -setwebproxystate Ethernet off;
    /Users/guixing/bin/growlnotify -m "Proxy Off";
fi
growlnotify是Growl的一个命令行工具。

那个洞

| 1 Comment | No TrackBacks
在Practice of System and Network Administration中有一章是Climb out of the Hole。这个洞就是:

一个家伙掉到了一个深到他不可能出来的洞里。他听到有人来了,然后他引起了那个人的注意。那个路人听完了他的境况,想了一会儿,也跳进了那个洞。

"你为什么要这样做?现在我们都被困在这儿了。"

"呃〜至少你现在不再孤独了。"那个路人说。

最近写的一个东东要用python25和python-ldap,但是使用的那台主机是python23、ldap2.2.x和python-ldap2.0.1。安装了一个python25,python-ldap是2.3.8,编译失败,openldap2.2太老了,python-ldap2.3.8不向下兼容了。

那我就用python-ldap2.0.x,这个版本已经不提供下载了,从sf.net的cvs上拉了一份2.0.11的版本,这次倒是编过去了。用的时候出问题了

*** glibc detected *** free(): invalid pointer: 0xb7f60728 ***
Aborted

查来查去有三个文章有说这种情况

主要原因是PyMem_DEL的调用已经不被推荐了,应该用PyObject_Del。所以要对两个C文件做一些改动。

sed -i.orig 's/PyMem_DEL/PyObject_Del/g' Modules/LDAPObject.c 
sed -i.orig 's/PyMem_DEL/PyObject_Del/g' Modules/ldapcontrol.c 

然后再build,install就OK了

终端下的Spotlight

| No Comments | No TrackBacks

在终端下也可以使用spotlight----mdfind

找所有metadata包含something的东东

mdfind something

在~/Downloads里找something

mdfind -onlyin ~/Downloads something

找~/Pictures下的所有图片

mdfind -onlyin ~/Pictures "kMDItemKind == *image"

还有mdls查看文件metadata的工具

Mac OS X里菜单栏图标的顺序可以按着苹果键拖放,拖出菜单栏就删除了。

DNS的动态更新是在RFC 2136里引入的,BIND8以后就支持了这一特性。用起来还是挺不错的。

Notify机制是在RFC 1996中提出来的,也是在BIND8以后支持的,微软的DNS服务器也是支持这一特性的。

Notify的工作原理是这样的:发现一个master zone的序列号发生改变之后,向该zone的所有slave发送一个变更通知。而确定slave的方法就是查NS记录,然后去掉SOA记录中的master。

上面这个机制在一个有load balancer的环境里就有问题了,NS记录里只记录的是load balancer的一个虚拟IP,master的notify就不可能完整的送达所有的slave。BIND有一个also-notify的参数,以解决这类问题。

Jackos最近整了一个专门记录地球变化的blog--暴风地球,域名是刚刚的(www.think-earth.org)。

django m2m自包含

| No Comments | No TrackBacks
设计一个group,可以包含user也可以包含group。user和group都可以被多个group包含。
class Group(models.Model):
    users = models.ManyToManyField(User)
    groups = models.ManyToManyField('self')
update: ManyToMany对象有一个symmetrical的参数,当为True时的意思是对象间有互相拥有的关系,是双向的,反之为False时就是单向的。

About this Archive

This page is an archive of recent entries in the shared category.

others is the previous category.

Find recent content on the main index or look in the archives to find all content.