vertical visor

Visor是原Quicksiver的作者的一个作品。安装了Visor后,Terminal窗口可以呼之即来,挥之即去,类似Quake中的console,对于Terminal重度依赖者来说非常方便。 安装Visor后,Terminal出现的位置是固定的,缺省是占据了屏幕的上半截。看图标就知道大概意思了。不过对于我的iMac来说,窗口太宽,浪费了很多地方。稍微修改了一下Visor的代码,把它从屏幕顶部移到了左边。这样,不仅得到了一个column为80的Terminal,长度也加长,看个log什么很方便。 其实就改了两行。 diff –git a/VisorController.m b/VisorController.m index a1a56ec..19d749c 100644 — a/VisorController.m +++ b/VisorController.m @@ -187,12 +187,12 @@ NSString * stringForCharacter( const unsigned short aKeyCode, unichar aCharacte // showFrame.origin.y+=NSHeight(screenRect)/2; // showFrame.size.height=NSHeight(screenRect)/2; showFrame=[window frame]; // respect the existing height – showFrame.size.width=screenRect.size.width;//make it the full screen width + showFrame.size.height=screenRect.size.height;//make it the full screen height [window setFrame:showFrame display:NO]; Read more about vertical visor[…]

点评81届奥斯卡最佳影片提名

刚刚看完了《Milk》。04年六月在旧金山见识过Gay Parade,各种各样的人拉着彩虹旗,搭着彩车,奇装异服,载歌载舞,穿街而过,就象一个狂欢节。今天看了《Milk》,才知道来历,才知道仅仅是二十多年前,居然有这么大不同。这是一部关于宽容和自由的电影,是从不宽容到宽容,从没有自由到获得自由的过程中,最艰难的一段记录。Sean Penn真是个好演员,演什么象什么。 另一部和政治有点关系的是《福克斯对话尼克松》,讲一个娱乐脱口秀主持人是如何扳倒一个前总统的。全片就是两个人的战争,两个面对面的沙发,剑拔弩张,《赤壁》烧了几千万也没营造出这种气势。可惜后半段局面反转来得有些突兀,太戏剧化,冲淡了原本的纪实风格气氛。 Danny Boyle最喜欢描写的就是闪现希望的人间地狱,《贫民百万富翁》承袭了这种风格,不过这部片只能说拍的中规中矩,感觉written的痕迹有些重,老美这会儿从精神上应该特需要这样的片子。虽然也算不错,但在我的imdb voting history里,《28天后》和《Sunshine》都给了九分,《猜火车》给了八分,《贫民百万富翁》应该排在这三部片子之后。 大卫芬奇也是我非常喜欢的导演之一,甚至他饱受恶评的《异形3》我也认为是四部曲中最哥特的一部。这次《本杰明巴顿奇事》却让我比较失望,看的时候就觉得怎么那么象《阿甘正传》,从腿到感情生活,让阿甘倒着长一遍就是《本杰明巴顿奇事》了。看完一查,果然是《阿甘》的编剧,那个把黑色幽默经典改编成立志大片的大忽悠。也许评委们就吃这套吧。 在看《朗读者》之前,我犯了一个大错误,就是先把书看了一遍。原书给我带来的冲击力是电影无法相比的,原作者是一个法律教授,书中有很多逻辑思维很强的语言,电影也无法一一体现。但我绝对相信它是一部好电影,Kate的出演也出类拔萃。更重要的是,作为电影这种艺术形式对那段历史的回忆,已经从《辛德勒名单》为代表的“控诉”,到以《钢琴师》为代表的“反省”,最终到了以《朗读者》为代表的“反思”,是一部里程碑式的电影。如果让我选,我就选这部。 至此,看完了所有五部81届奥斯卡提名最佳影片,这下看颁奖礼会比较有参与感了。

iPhone Application Post Build Script

很多平台软件开发发布前, 有个很重要的事情就是保留好符号表(symbol)文件. 因为发布的软件一般来说都去除了符号表, 而符号表对于维护是很重要的信息, 没有它, 在拿到call stack后会很难对应到代码中. iPhone开发也是一样, 每次做完Build, 都会有一个.dSYM的目录, 就是符号表. 有了它, 在用户提交crash log后会很容易定位问题. 手工保存这些符号表文件很容易产生疏漏, 恢复起来又麻烦. 我做了一个脚本, 添加到Target的Run Script Build Phase中, 可以在Build类型是Distribution时, 将build出的binary和符号表分别打包为: [application].app.[version].zip [application].app.dSYM.[version].[git hash].zip 如果你用的版本管理系统不是git,需要对脚本做相应改动. 以下是脚本代码 #!/usr/bin/env ruby if ENV[“BUILD_STYLE”] == “Distribution” && ENV[“ARCHS”] == ‘armv6’ common_git_paths = %w[/usr/local/bin/git /usr/local/git/bin/git /opt/local/bin/git] git_path = “” common_git_paths.each do |p| if File.exist?(p) git_path = p break Read more about iPhone Application Post Build Script[…]

用multiple inboxes提高gmail的使用效率

自从离职以后, gmail 就一直是我的主力信箱. 我处理信件有一个习惯, 就是尽量不在Inbox里留信. 无关紧要的就删除, 有保留价值的, 或者已有结论的信件,都加上label后archive. Inbox里的信件, 要么是需要去做的事情, 要么是悬而未决的问题, 其他的就两个选择, archive或者delete.其实就是用一些GTD的方法来管理邮件, 要做的事情一目了然, 重要的内容不会在一大堆信件中被忽略, 而且每当Inbox真得被清空, gmail提示你可以去看看greader的时候,能有那么一点点成就感. 不过事情慢慢多起来, 比如有多个项目在进行, 比如系统的状态通知及警告或者代码有新的check-in需要review等等. 虽然可以用label来为不同类别的事情做划分, 但他们在Inbox里仍然是凌乱的堆在一起. 如果直接archive到分类里去, 又很容易被忽略. 处理邮件的效率就会遇到瓶颈. 最近Gmail推出了Multiple Inboxes, 提供了这样一个可能性, 就是需要你关注的邮件仍然可以出现在邮箱的首页里, 更重要的是, 它们可以是分类排放好的. 这简直就是给Inbox清空分子专门设计的功能. 利用这个功能, 当然先要设置好Filter来为信件加上合适的label并且Skip the Inbox (Archive it). 以前很多时候是不能选择Skip the Inbox (Archive it), 因为这样就消失了. 现在没关系, 只要你把要关注的信件再加入Multiple Inboxes就可以了. 这么做可以保证在Inbox里的只有未分类的待处理信件, 如果你分类做得好, 处理这部分内容会很快. 而其他待处理的内容, 都会很有条例的排列在一个个Multiple Inboxes中. 对于选择什么样的内容在Multiple Inboxes里, Read more about 用multiple inboxes提高gmail的使用效率[…]