Filed under 工具

Xcode开发感受

最近写了个iphone的小东西,对xcode也用了段时间,而我原来一直都是java环境下开发,比较起来两者差别很大。

最大差别是IDE对语言的支持。java在eclipse下可以即使的显示语法错误,而objective-c还的build一把才能看到,这个太影响效率。xcode下一个版本改进了llvm后会引入这个feature。eclipse的refactory的功能也很强大,这个在xp开发模式下是必须的,而xcode也没有这个东西。所以objective-c其实拖累了iphone,真是成也萧何,败也萧何。

java在exception情况下会给出详细的调用stack,而xcode的错误信息很少,空指针情况下提示更如天书一样,不清楚这个是语言的局限还是ide的无能。其实界面还是用约束毕竟少的语言,比如弱类型或者动态语言来开发,C和Java过于严肃,很小的错误都会导致程序崩溃,也缺乏灵活性,因为界面是千变万化的,预想好的模型在实际开发中并不能适应所有情况。

UI方面,xcode还是坚持用多窗口的方式,苹果好像对这个情有独钟,一个程序分成多个小的窗口显示,这中非独占式的模式在大显示器下可能有更好的互操作性,因为你可以任意的调整窗口位置,也更节省空间:独占式的会将整个桌面填满。但是有时候则很不方便,比如它的log是单独的窗口显示,大多数情况下这个窗口被代码编辑器(这是个大窗口)挡住,而任务栏上又看不到这个log窗口的图标,这时候想查看log就很不方便。

当然,Interface builder这里就显示了apple的强处,界面非常cool,特别是事件定义时采用拖拉的方式很是直观。Cocoa的界面是独立定义的,然后跟objective-c的类进行绑定(事件绑定和属性绑定)。Swing则是在code中定义界面,纯编程式的,这部分有些IDE可以代劳。

所以最完美的组合是:java + mac的UI库,或者java用javascript代替。当然,已经存在的东西就是不完美的,所以存在的东西就是完美的…..

Tagged

做一个上海图书馆iPac系统的客户端

前些天做过豆瓣的客户端,今天使用上图的系统(http://ipac.library.sh.cn/ipac20/ipac.jsp),感觉有些地方可以改进,于是想到,为什么不也做个客户端呢?(为什么老想做客户端呢,奇怪…)

列下功能点吧:

1)添加收藏的功能。原系统倒有“加入到我的邮件清单”这个功能,不过还是不是很方便,因为邮件的内容太简单。这个可以用greasemonky直接修改页面,比较容易做到。

为什么不直接用浏览器的bookmark功能呢?那里太简单,只是一个链接。所以这里的收藏功能要做到数据的重新保存,比如书名,索书号。馆藏情况是动态的,就不好保存了,这是遗憾。

如果做好“馆藏情况”就算是很好的亮点了,这样用户可以随时方便的了解书的情况了。

2)添加手机访问渠道。Android Market上有个app,暂时不知道是否有这个功能。手机上的重头是“搜索”功能,暂时不清楚iPac系统的开放程度,多半没有API,我想也只能做页面抓取了,这是个风险点。

Tagged

Firefox Weave – 另外一坨云

记得很早前就传出Mozilla Labs要出这个东西,不过最近他们才出1.0的正式版。其主要功能是把Firefox的配置信息、浏览历史和保存过的密码等等一股脑保存到云中,这样用户在家中、工作中和手机上就可以方便的切换了。手机的支持是一个亮点,因为Firefox mobile刚刚出来。不过来的晚了些,Chrome和Opera早就支持bookmark的同步功能,Firefox我用Delicious的插件。

这个云存储只能存储Firefox才能明白的东西:脱离了Firefox这些数据能被其他应用使用吗?这些数据对其他程序来说有意义吗?

看下面这张图感觉这个平台还是开放的,不过bookmarks分享还说的过去,其他的分享有意义么?

Windows下Rails的Console的彩色显示

很早前就发现Mac OS X下Rails控制台的日志信息可以彩色的显示,比如sql语句可以高亮,感觉很方便,这里说下如何在Windows下得到同样效果。

1)安装Cygwin,使用setup.exe来安装Ruby,Rails安装则照旧。

因为彩色字符是称为ANSI escape sequences的东西,windows下还不支持,所以使用Cygwin。setup.exe安装的Ruby是i386-cygwin版本的,跟我们采用一般的win32版本是不同的,ruby -v 显示为:ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-cygwin],windows下则为 ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]。 最后的日志的显示和CMD下面的是一样的:没有上色。有些方法采用了让mswin32的ruby运行在unix终端下,比如rxvt,或者cygwin-x下(一个叫PuTTYcyg的东西更简便,神奇… Console 很强,但是没这个功能…),这样是可以彩色显示出来,但是个人实验发现console下日志显示会滞后,不会实时显示,感觉有buffer的存在(自己有开始吹毛求疵了…),看来unix终端和mswin32版本的ruby之间的兼容性不大好。

cygwin-rails

2) 安装sqlite3 driver

最难搞的地方… 最后发现可行的为:a) 用Cygwin install “gcc”, “make”, “libsqlite3-devel”, “sqlite3″;   b)gem install sqlite3-ruby, 这时会编译成本地sqlite3_api.so,没错,这里不是 sqlite3.dll,可见Cygwin下so文件是可以使用的。如果出现编译错误,可能要下载sqlite3源文件,然后再:$ gem install sqlite3-ruby-1.2.5.gem — –with-opt-include=/cygdrive/d/dev/sqlite-3.6.20/

参考的RailsOnWindowsCygwinWithSQLite3这篇文章前后矛盾,可见Cygwin的水还是很深的…  搞了这么多,发现Windows上面开发还是蹩脚,可是有啥办法呢,使用习惯了,改成别的还真难。

cygwin-rails2

12.20 add: 上面控制台中SQL显示是白色的,可以在Console 2中把白色映射成其他明显的颜色,但是在PuTTY中这招就不行,不解。个人是更prefer后者的,感觉功能更强大,颜色的定制可以看这里Custom PuTTY Color Themes,很喜欢里面dersert的主题,更多关于Putty的调整可以看这篇Improving Putty settings on Windows

Tagged