IUSR’s Unnamed Seraph Reloaded

May 27, 2006

So I felt like the biggest asshole

Filed under: 活着 — iusr @ 3:26 pm
介尼玛嗖了么!!!

May 17, 2006

Google发布Google Web Toolkit(GWT)

Filed under: 我来补充两句儿 — iusr @ 2:10 am

今天GoogleBlog放出这条消息:Making AJAX development easier,刚开始还以为是普通的PR文章,读过才发现原来是Google发布了新的toolkit,而这次不是使用Google那些产品和服务的toolkit,而是一个简化AJAX开发的toolkit。

GWT可以从这里下载,更好的消息是这个东西包含server端库,嗯,而且是Java的。代码还没有仔细看,不过这种做法比较类似DWR=) License很宽松,大致看了看,除了不让用户重发布GWT本身以外,一般的开发用起来是没什么问题的。

AWT、SWT过后,又来了GWT,呃,当然GWT是瞄准web的。

Technorati : , , ,

May 9, 2006

jnotify,文件,目录,及其他

Filed under: 我来补充两句儿 — iusr @ 3:23 am

前天混迹于freenode ##java的时候听到omry提及jnotify,一个使用JNI通过本地库来监视文件系统变化的实用库,支持win32系统和Linux(需要INotify),而这位omry也正是jnotify项目的admin。我觉得这样一个库很有用,因为平时能做的就是创建线程来监视,而通过JNI借由操作系统的支持,就方便的多,而且性能也稍微好一些。

jnotify的api简单到不能再简单了,一般只要一个类的两个静态方法再实现一个接口就可以了,然而也正是这样一种让人感觉不像Java而像是C风格的使用方式让我和omry争论了半天,我还是希望一些更"现代"的方式,也更容易让我整合进Spring里面。

另外就是我希望能够在jnotify这个层次上区分开普通文件目录,而不是让客户代码自己来判断。这一说法立刻引来若干人的指教:目录也是文件。也许他们觉得我是被Windows养大的孩子吧,哈哈。这年头如果有开发人员不知道目录也是文件,我还是会意料之中的惊讶一下。无论从学术概念还是绝大部分的文件系统实现来看,目录确实也被抽象为文件了,但是在实际使用过程中,我的经验–实在是谈不上是经验的经验–是普通文件目录大部分时间内还是被区别对待的,比如我们从来不会打开一个目录去加载目录的内容,而会加载一个XML文件的配置内容。开发人员通过创建一个File对象自然可以判断一个文件是普通文件还是目录,但是一是也许会创建很多临时对象,二是因为大部分时间里普通文件目录是区别对待的,所以不得不用if-else来分开两种迥异的操作,如果懂得extract method还好,否则可能会有大段的if-else块,影响代码阅读,如果可以在实现接口时借由参数得知这个文件到底是普通文件还是目录,甚至处理普通文件目录的方法根本就是被分开的,那至少我的感觉会好一些,当然,同时接口和接口里的方法数量也会增加很多,这也许是omry这样的从业10余年的老黑客看不习惯的吧:^) 结果,我把我wrap过的jnotify(根本没改动jnotify的代码,只是在外面增加一层)的代码发给了omry,他说,nice code,但是暂时还不会把它们加到jnotify里。DIANG~

测试0.7版的时候发现一个bug,会导致JVM退出时的核心线程DestroyJavaVM停止响应,我猜测应该是JNI本地代码的问题,那个时候main thread的exit()都执行完事儿了。不知道omry怎么解决的,0.8版jnotify瞬间release,我还没测试…

这个故事告诉我们,不知道目录也是文件还好说,但是如果在表达"目录"这个概念时说出了"文件夹"、"folder"之类的词,那是值得被一而再再而三地猛烈鄙视的。

Technorati :

May 6, 2006

从太阳到木卫四

Filed under: 我来补充两句儿 — iusr @ 6:07 pm

别急着骂我冒充天文爱好者,我说的是Eclipse和其基金会旗下的Callisto项目,或者说是"Callisto并行发布"。

前几天开始,Eclipse 3.2和Callisto这些字眼渐渐变得多起来,本人本着没事儿也要瞎忙的精神装作日理万机的样子无视这些逐渐升温的单词。刚看新闻才知道eclipse 3.2 RC3昨天发布了–呃,应该算是前天了,就去eclipse.org一通考古,才发现了这个Callisto项目,仔细看看,原来是个插件集,而且都只是eclipse.org提供的插件。

按照Callisto主页上的说法,Callisto并行发布并不是提供新插件,而是将10个主要的Eclipse项目同时捆绑发布,以使得一些Eclipse生态系统中的成员更容易将Eclipse集成进各自的产品中。这10个项目是BIRTCDTDTPEMFGEFGMFEclipseTPTPWTPVE,几乎覆盖了一般的开发需求。

其实我还是不太理解这样做的目的,Callisto主页说是要"消除不同项目的不同版本带来的不确定性,使得Eclipse生态系统中的成员可以尽早开始各自的集成和跨项目、跨产品的测试"。我以前也有过被不同插件的不同版本搞的焦头烂额的经历,但自从3.0以后更多的依赖Update Manager来安装插件,这种情形已经很少见了,即使出现也很容易解决。Callisto发布当然更进一步的保证了运行在发布版中的各个插件的有效,所以它的价值应该体现在Eclipse生态系统中依靠提供插件集成产品的厂商和刚学会使用Eclipse的初学者身上,有了这么一个省心的捆绑发布,也许会有更多厂商来尝试做插件集成,有更多其他IDE的用户逐渐转移到Eclipse上吧。

这个月的《程序员》里有一篇采访Milinkovich和Kellman的文章,里面记者提的一个问题也是我很久以来的问题:如果eclipse.org的各个项目发展的十分完善,那那些靠提供插件和插件集成的公司还能依靠什么盈利?不只是公司,很多开源或免费的插件项目已经或多或少的受到eclipse.org的项目影响。比如原先开发J2EE应用时大家都首选Lomboz,而现在我知道的很多人都转向了WTP–当然这也和Lomboz后来发展实在有些缓慢有关。eclipse.org是eclipse平台的老家,也许人们觉得这地方出来的插件和项目有种"官方"的感觉,根红苗正,更放心一些?不过我认为eclipse.org不会把所有的插件项目赶上绝路,因为eclipse.org提供的插件一直以来给人的感觉都是更general一些,绝大部分都是支持那些在JCP有一席之地的技术,而不会涉及到其他一些常用的框架,比如Hibernate、Tapestry等等,这种情况下,hibernate.org提供的Hibernate Tools和支持Tapestry开发的Spindle等等自然还会有很大的发展空间。

刚才在Eclipse 3.2 RC3中使用Update Manager更新Callisto所覆盖的插件时截了张图,权以结尾。

eclipse callisto updates

Technorati :


Update:

看来我是没能理解Callisto Simultaneous Relase。这个一方面帮助用户整理出一份稳定的功能比较全面的发行版,一方面也解决了eclipse.org上面的一些项目长久依赖Eclipse项目的升级站点的问题——可能听起来有些别扭,只要弄清楚Eclipse和GEF、EMF等等一样是属于Eclipse基金会旗下的项目就应该能明白了。刚才在看Eclipse wiki时看到这篇Callisto Coordinated Update Sites稍微明白了一些。eclipse.org上的一些项目,比如GEF,一直以来没有自己的升级站点(Update Site),而是通通放在eclipse项目下(区别一下eclipse项目和大家约定俗成的eclipse IDE等等)的升级站点。有一个bug提议也是指出了GEF的这个不便之处,认为作为eclipse.org上的独立项目,把GEF扔在eclipse项目下显然不合适——虽然GEF项目和eclipse项目之间的确是独立的,但是在update manager里升级Eclipse SDK(或者其他什么名字)时GEF总在其中。

GEF现在已经有了自己的升级站点了,也许是拜这位老兄的bug提议所赐——这个bug提议是2006年2月17日提交的,我试着下载http://download.eclipse.org/tools/gef/updates/site.xml的时候可以看到服务器返回的Last-Modified: Wed, 12 Apr 2006 15:08:14 GMT,再下载比较稳定的发行版的site.xml:http://download.eclipse.org/tools/gef/releases/update-site/site.xml,可以看到Last-Modified: Tue, 28 Feb 2006 15:32:06 GMT。嗯,说明不了什么,只能说明现在GEF下载方便多了而如果想省事儿的话,还是用Callisto Simultaneous Relase的Update Site好了。

May 3, 2006

Java EE 5, EJB 3.0

Filed under: 我来补充两句儿 — iusr @ 3:52 am

Java EE 5规范(JSR 244)和EJB 3.0规范(JCP 220)据说都通过了投票,新的Java服务器端纪元款款走来。无论如何,JCP还是太慢了,开源社区都快把Java 5的新特性玩遍了。

Technorati : ,

Apple Ads

Filed under: 娱乐 — iusr @ 3:47 am

Apple的几个广告,QuickTime Movie格式,很有意思。虽然我认为无论Mac还是PC,在高手和菜鸟手里的表现当然不尽相同,但这几个广告还是很好玩的,而PC阵营还没看到类似的,无论是商业广告还是家酿视频,难不成是因为心虚?这里只列出高清格式的地址,广告页面有所有格式的视频。

http://movies.apple.com/movies/us/apple/getamac_ads1/viruses_848x496.mov

http://movies.apple.com/movies/us/apple/getamac_ads1/restarting_848x496.mov

http://movies.apple.com/movies/us/apple/getamac_ads1/better_848x496.mov

http://movies.apple.com/movies/us/apple/getamac_ads1/ilife_848x496.mov

http://movies.apple.com/movies/us/apple/getamac_ads1/networking_848x496.mov

http://movies.apple.com/movies/us/apple/getamac_ads1/wsj_848x496.mov

Technorati : ,

Create a free website or blog at WordPress.com.