IUSR’s Unnamed Seraph Reloaded

October 16, 2006

某些人学聪明了~

Filed under: 我来补充两句儿 — iusr @ 4:36 pm

为了让自己显得更NB一些,我决定不鸟tomcat打包好的源代码,而是去svn co出来。机器上残存的tomcat源代码还是5.0的,心疼地在硬盘上一通删之后,开始co出tc5.5.x相关代码,包括container、connectors、jasper、servletapi以及大杂烩build这5跎。

结果co出jasper时就出问题,总是connection timed out,直接在Firefox里打开jasper的repository的URL也是超时,想co出build来也是一个下场,于是信以为真地以为asf在盘点,就先搁置。但是container要依赖build,eclipse里看那么个红叉始终还是不爽,隔了些分钟后遂尝试继续co,继续超时……

刚才没事儿干的时候通过tor做代理浏览了下jasper和build这两个项目的repository,竟然可以,而且不用tor的话还是打不开。不得不说,某些人聪明了,不再用connection reset来提醒大家浏览了不利于构建和谐社会的东西了,而是蔫吧啦唧的把包全丢了算了,靠est,co点代码搞的跟地下工作者一样,真和谐。

这不叫聪明,老大们。

Technorati : ,

October 13, 2006

初步认识Firefox

Filed under: 我来补充两句儿 — iusr @ 4:46 am

用了Firefox也有一段时间了,当它还叫做Firebird的时候我就已经好奇的装上了它。那个时候除了IE以外我还装了Mozilla(Suite),真正是个庞然大物,后续版本经常建议在系统启动时运行它那个QuickLaunch,以便在用户真正需要浏览器的时候确保Mozilla(Suite)的一些组件已经装载了,否则那启动时间真是无与伦比,无论是想简单的用Mozilla Chat上个IRC还是用浏览器开它十几个tab。

貌似跑题了……

昨天闲来无事,焚香静坐后学习了一下Firefox的扩展机制,嗯,扩展,extension,而不是可能被一些人说为插件(plugin)的东西,我记得我以前好像唠叨过二者的不同,plugin应该更底层一些。看来我一直的理解还是有问题,在我的想法里Firefox作为浏览器来说还是一个真刀真枪的本地代码拼装起来的东西,那些UI控件还是用的操作系统的那套,只不过人家用了一些招数把跨平台的部分用代码封装起来,看上去比较类似wxWidgets、Qt之类的库,只不过全面一些,但其实上Firefox的方法来的更为颠覆一些,那就是浏览器上能看到的一切皆是XUL。

打开Firefox,映入眼帘的这个可爱的界面,无论你应用了什么外观主题,堆砌了多少扩展,它都是一个XUL文档(chrome://browser/content/browser.xul),查看$FIREFOX_DIR/chrome/browser.jar!/content/browser/browser.xul,这就是每天你面对着的这个界面,哦,它当然不包括Google Toolbar,没有AdBlock,这些都是通过扩展完成的,而不用直接修改这个XUL文档的内容。Firefox使用的XUL Overlay正是扩展和主题得以完成的根本,使用过程中感觉XUL Overlay很直观,无论是当作Overlay的XUL文档还是被Overlay的XUL文档,与普通的XUL文档都没有任何区别,除了一个描述清单(chrome.manifest)以外没有再多的废话,想改变哪里,就在Overlay XUL文档里描述你的界面你的想法,再向chrome.manifest里添加一行描述Overlay关系的指令(或许有其他方法描述?直觉那些RDF很不简单),然后把这些东西打包当作扩展安装,重启Firefox之后就能看到改变。用XUL的好处是任何人不用依赖任何开发工具就能很好的制作扩展,如果像我一直以为的那种依赖本地代码的应用的话,那就只有拥有熟练开发本领的专业人员才能制作扩展,或者像Maxthon一样依赖HTML,但HTML终究能力有限,其要解决的问题是显示,而不是要制造一套完整的UI解决方案,即使也可以像XUL一样使用javascript,但诸如command、commandset甚至数据源之类的高级货还是缺乏的,而且,虽然利用HTML也可以描出XUL中的所有控件,但模型上还是稍微有些差距,比如命令和事件以及数据源,好在经过Ajax的一阵吹风,HTML+Javascript也重新焕发光彩,用Dojo这样比较完善的东西来实现XUL也不是没有可能,然而还是那句话,模型上的差距,是HTML没法追上的,相反的在表现方式上XUL和HTML一样也有差距不是~

收获就是做了一个简单的扩展,用来在浏览flickr上的图片时直接访问原始图片:P 还有就是意外的发现了为什么Firefox有的时候可能让人觉得反应迟缓:阅读Firefox自己的chrome里的Javascript代码的时候,发现了很多调用setTimeout来延迟某些方法调用的地方,这些地方大部分是为了确保诸如文档(包括HTML以及XUL)加载、更新全局变量的完成,避免出现意外,比如在文档没有加载的时候去访问文档的属性及其内部变量,或者在全局变量上发生同步错误,导致一些灵异现象。我试了试直接调用被延迟调用的方法,其实这些方法的速度还是很快的。

可能做页面做多了,Greasemonkey的user scripts也做多了,在编写扩展中的javascript的时候总是搞混document对象,因为我还是试图用自己熟悉的方法,通过HTMLDocument来调用已经用烂了的那些方法,后来自己抽自己一下,提醒自己一定要用XUL文档里的元素提供的方法。

这几年真是白用Firefox了,竟然才知道Firefox究竟是个什么东西。用XULRunner(GRE)外加全套XUL、XPCOM来做浏览器的做法实在够cool,给我的感觉像是以UI驱动的Java=) Sigh,我还一直奇怪那么多号称基于"Firefox、Mozilla架构"的应用是怎么做出来的了,实在是老土的不行了……

Technorati :

October 10, 2006

Misc

Filed under: 活着 — iusr @ 3:42 pm

国庆7天过的乱七八糟的,也没时间来整理整理。Spaces这里空了很久了,sigh。

首先要说的是,我失业了=)

对老公司没有太多坏话可说,怎么也是我第一家供职的公司。让我一直不太满意的就是对技术方面的不重视。公司里很多人都教育过我,一件事能不能干成,技术往往不是起决定性作用的。其实我是不太清楚这样说的缘由,我猜可能是这个意思:烂技术也能做好事情。我倒一直听闻国外的大公司对使用新技术的严格评估,也从Leon这种在超级跨国公司工作的人知道一些他们日常做的事情。首先我觉得,国外大公司不用新技术很多时候是因为自己的legacy,很多新技术会带来一些颠覆,使用它们会带来很高的成本,所以人家不太敢跟风,可是小公司呢?尤其是刚成立没多少年的连代码都没积累多少的公司,我觉得投靠各种开源技术是比较节约成本的方式了。KISS原则并不是说依靠烂技术烂代码,simple不是智障,我们每天编码也是为了创造价值,而不是为了日后解释这些代码来扫盲启智,我也不希望别人认为我是在靠"新技术""新东西"来给项目添麻烦给自己带来快感,即使我所说的"新技术""新东西"都是我观察了很久以后拿来的经过很多人验证了的东西。

然后,7号去了西沽公园,惊讶地发现里面还有个小动物园,很是破败,照了若干照片。没钱买flickr pro帐号,就只传了这么几张:

鹿

孔雀

什么什么鸟

羊棚

兔子窝

刨坑的兔子

黄色小兔

合影留念

很破败的动物园,应该没怎么给动物喂食,全靠游客扔的那么一点。有个百鸟园里面很多鸽子,只有买了食物的人才能进去。里面的鸟看到有人进来就像看见了救星,围着不散,很多鸽子干脆直奔人手上装食物的塑料杯子飞过去,类似蜂鸟一样,一边原地飞一边啄食。一时间我已经呆了,里面的那个人已经完全让鸽子围住了,我打包票这不是野生鸽子应该有的习性,它们只是饿的受不了了。后来又看了鹿、孔雀、乌鸡、兔子、羊、猴子、鸵鸟,每个动物看见人过来都盯着不放,那种专注让我看不下去。我不是没去过动物园,如果动物的进餐很规律的话,它们很少会对游人扔的食物如此趋之若骛,很多懒的动物干脆连看都不看。算了不说了。就算十·一假期这种时候,这个破败的动物园依然是门可罗雀,真是可怜了这些挨饿的小动物。

过了这七天,就是等,等新东家。在家闲着没事儿拾捣了一下自己那个见不得人的小项目,基本上架子搭好了,testcases也出来了,build.xml是从spring那里拿来的,当然,改了很多,赫赫,没人家spring那么多target,也不管jdk/jre的兼容=) 刚刚想用本机上的subversion给一个sandbox项目做版本控制,顺便发现自己机器上的apache httpd有些老了,一下子从2.0.55升级到了2.2.3,结果遭遇兼容问题了:( 先是mod_access、mod_auth在apache httpd 2.2.3里被改名、分割,然后是php5_module格式也不对了,冒险把老的php升级到5.2 snapshot版,暂时解决掉了apache httpd启动问题,预计会引发和php有关的其他各种问题……算了,反正我不是搞php的,机器上自己那几个.php也简单的不得了,最主要的就是wordpress,大不了不用。绕了一大圈,就在看似要胜利的时候,压轴戏上来了:subversion的windows版提供的那两个.so就支持到apache httpd 2.0.x,不支持apache httpd 2.2.x 😐 算了,我也困了,不想看连篇累牍的文档了,也不再找其他hack方法了,我还是svnserve好了。然后又发现subversive暂时还不支持subversion 1.4.0,每次和服务器通讯后都必定抱怨"Malformed network data",操作失败,只好又把subversion降回1.3.2。OMG……

我爱Spring 2.0,虽然它正式发布的时候我正在未来老丈人和丈母娘的家里。

Technorati : ,

Blog at WordPress.com.