存档在 2009年4月

在Terminal下打开Finder

我经常有这样的行为,在命令行下处理处理一些东西,然后就想打开用图形界面打开这个路径。或者说我现在在Terminal下,想用图形界面查看一下某个路径下的东西,但是我又不想切到桌面去,在去一个个打开路径。所以在gnome下,我经常在terminal下敲nautilus [dir].

MAC下,做这种事情很麻烦,因为他本来的主要设计目标就不是使用terminal的用户。我曾经说MAC不大适合开发人员,其中一点原因就是,MAC下想要复制一个路径很麻烦。我在Finder中进入到某个界面,我想看我到哪个路径了,或者是我想在程序中使用当前路径某个文件的地址时,我用右键Get Info的方式可以看到这些信息,但是!我无法复制。这个让我很郁闷,于是乎我只能打开terminal,cd到我想要的之后,再去拷贝。同样,我如果在terminal下找到了某个东西,想要进入到该路径的Finder下,我只能打开Finder,然后一层层进去,或者是用快捷键打开跳转窗口,然后在输入我想要去的全路径!非常麻烦!

我之想要我在linux下的直接“nautilus .”的方式。通过ps -e | grep -i finder的方式,我找到了他的可执行文件路径应该是: /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder 。于是我键入以下内容:

/System/Library/CoreServices/Finder.app/Contents/MacOS/Finder .

可是很郁闷的,根本就无法执行。多次尝试后,我就放弃了。

今天,我在修改程序的一堆配置文件,和查看相关的图片文件的时候,我终于又爆发了!实在受不了这样的切换和查找,非常麻烦和厌烦。重新开始找这个方法。终于明白了,我犯了一个严重的错误,MAC系统打开Finder不是这么打开的。作为.app格式,他的独立体是.app,而不是单纯的可执行文件。在打开一个app程序的时候,系统会为app程序的plist配置做一些事情,所以我不能直接那么调用!但是Finder.app是个路径,又不能直接执行。问了一个果粉开发人员之后,终于明白,苹果下打开一个.app是这么干的:open *.app [argu]。

所以,正确的方法应该是:

open  /System/Library/CoreServices/Finder.app [dir]

我终于可以很方便的从Terminal打开Finder了。但是苹果变态的这个路径方式太恶心了,不再/usr/bin等目录下,我只能写个脚本或者alias,省得每次敲那么多字进去。给他弄了个alias,改叫guiopen, 我现在就经常又开始“guiopen .”了。

(2) 条评论

崩溃阿崩溃

上周六,加了一整天班,从下午两点到晚上7点半,中间都一直在办公室,饭都没吃,把一份任务做完了。主要内容是和服务器的交互以及XML解析还有一些其他的,然后走人吃饭去了。然后去金山以前同事那儿了,很久没见,和他们瞎扯淡。

第二天吃完饭,在他们那儿听歌,听到一个小女孩唱的铃声,“崩溃阿崩溃”,觉得这铃声太崩溃了。今天回到公司我就直接崩溃了!等我把周六的善后工作做完,放到真机上调试的时候发现编译过不了,还在纳闷模拟器上效果那么perfect的时候,突然间发现,我用的NSXMLDocument居然只有在MAC上能用,在iPhone上不能用!超级崩溃。也就是说XPath的XML解析方式不能用了,我只能用NSXMLParser一个个的去walk over tree了,超级崩溃。浪费掉我很多时间,而且主要是我很讨厌walk over的方式,代码很烦的样子!一点都不整洁漂亮!

最后无语了,只好用循环去做了,也没有什么比较好的方案,任务也要到期了,只能这样了。简直是崩溃!

好累!下周六又要上班。不过30号就放假了,放四天,得好好休息一阵。30号之前要把好多活做完,又要赶了,累阿!崩溃!

(3) 条评论

这样算不算滋润?

由于昨天晚上睡得有点晚,大概一点多才睡,今天起来的时候就赖床了。等赖醒的时候就已经11点了,遂决定不起上班。

起来把两颗鸡蛋放入水中煮,又到外面打开洗衣机,把脏裤子放进去搅拌,回到房间打开机子,收收邮件,和磊子聊了一会。鸡蛋熟了,就着昨天带回来的饮料开始吃早餐,等下午再去公司上班。

给公司的朋友发了条短信,回复中告诉我他好困,活又多,不仅庆幸自己不是实习生,上班时间可以调休。手头还有一点活,好像紧急度还可以,如果今天早上主程去了的话,不知道会不会在那边跳脚,呵呵。一般不会有事,反正主程也习惯晚去,我这个月都满准时上班了,迟到两下也没什么。反正晚上加班是逃不掉的,还是让自己舒服点好。不过最近由于经常晚上吃完晚饭就闪人了,白天工作也在那边磨洋工,主程都有意见了,说我太轻松了。呵呵,最近是有点轻松,好好干活。

裤子该洗好了,该出去处理一下了。

(4) 条评论

关于iPhone安装软件

拿到iphone之后,不装软件的话,不免觉得有点暴殄天物。

用现在市面上流行的协助管理iphone的软件安装或者卸载软件,一般都会有一个重启桌面的过程(总是要在那边转圈圈,真是麻烦),而如果连续安装多个软件的话,不免很慢,多少觉得麻烦。

还有一部分人安装iphone的软件,包括开发人员调试软件,都是用scp直接copy到iphone的/Applications目录底下的,反正安装软件大多做的都是这种事情。但是仅仅的把软件目录拷贝到/Applications/目录底下,桌面是不会出来你的软件图标的。那么,我要怎么让我的软件图标出来呢?

方法1:删掉/var/mobile/Library/Caches/com.apple.mobile.installation.plist(如果我没记错文件名的话),然后重启SpringBoard进程,就会转圈圈,转完圈圈你就发现你的图标出来了。

方法2:不重启SpringBoard的方法,仅限程序中使用。在一些安装软件的软件中,例如Cydia,装很多的软件都不用重启SpringBoard就可以在屏幕上看到新安装的软件了。一般来说,软件的安装,其实就是简单的将应用软件的东西拷贝到某些指定位置,剩下的动作就是刷新缓存,告知SpringBoard我装新东西了。

在1.x下,你只要在程序中简单的发送个信号notify_post();中间的参数我忘记了,SpringBoard就会自己刷新了。但是我没有1.x的机子,也没有实验过,所以不知道正确性如何。

而在2.x下,想不重启SpringBoard就让安装好的软件图标显示出来就有点麻烦了。你必须自己重构/var/mobile/Library/Caches/com.apple.mobile.installation.plist文件,自己扫描一遍/Applications/目录下的文件,按照原来的格式声称com.apple.mobile.installation.plist文件,然后发送消息告诉SpringBoard,这回发送的信号是notify_post(”com.apple.mobile.application_installed”);这样子,不用重启,你就会发现你的软件图标已经显示好了。
Note:上述方法只适合那些简单软件的安装,像有些软件安装是需要unload SpringBoard才能正常工作的软件是不能用这个方法来做的,因为这样可能会让你的软件某些和SpringBoard相关的功能工作不正常。详细的安装过程可以参看开源软件Cydia的源码

今天身体状态不是很好,下午头疼了一下午,一下班就杀回来,睡到11:30才起,然后1点半去睡,就是睡不着,就又起来把这篇原来就写好,但是一直没发的草稿整理了一下发出来了。呵呵,当时为了找这些方法对着Cydia的代码半天,还真是头疼,那代码……真的不是人看的,好恐怖的编码风格,我到现在还很怵。

(3) 条评论

活动了下筋骨

为了调剂一下被我朋友共同所说的我那“毫无人生乐趣”的生活,昨天和朋友们一起杀到闽侯去爬旗山去了。

很久没有活动筋骨了,昨天稍微动了下,发现身体还行,至少没有锈的太厉害,像爬山这种消耗量不是特别剧烈的运动我还是没问题的。

最近的日子过得有点混沌,工作上嘛,又开始磨洋工了。上周五在那边想,好像这周都没有做什么事情阿,是不是没什么事,后来会去翻了下任务,猛然发现我有好几个任务都没有开工!晕倒,然后就开始干活,到下班的时候还是没有赶完,不过也差不多了。看来人不能太懒,不然危险。

最近收到好几个评论,邮件&短信,问我是不是死掉了之类的。。。。。事实上,可能是我最近状态好像不大稳定,周遭环境也不是很稳定。不过也过得还不错,同事们经常叫我一块玩,教我玩台球之类的,偶的水平差到无以复加的地步,哈哈。今天闲着无聊,下了个Foobillard,linux下的3D台球,很小,还不错,试了试,过得去,可以调剂调剂。

(3) 条评论