2005年09月07日

解析XML的方法太多了,经典的DOM和SAX自然不必说,较新的XML pull也很有趣,最近一段时间,我一下子就喜欢上了再XML pull技术上发展起来的JiBX。

JiBX,与其说是解析器,不如叫作映射工具。他的作用就是把一个XML文档映射为java对象。这个功能本不算新鲜,很多东西都能做到,甚至反序列化也算可以。但,JiBX的特点是快和灵活。

传统的映射方式都是完整的对应,即,XML所描述的类是什么样子,生成的对象就是什么样子。JiBX可不同,通过JiBX,可以生成出完全不同的对象,只不过对象中的数据是来源于XML的。其奥秘就在于那个bind文件,通过bind.xml,可以自由灵活的定义XML中的每个字段和Java类的对应关系,甚至对应到方法,甚至进行标准/不标准的格式转化,总之,就是XML不再是逻辑的中心,XML只是一个数据供应者,谁是中心?Java才是。

JiBX快的原因来自于XML pull方式的解析器,XML pull也是最近兴起的,它不完善,它的验证很薄弱,它不像DOM之类的方法那样去处理整份文档或是生成SAX那样的事件流,但,它的速度无人能比,XML pull扔掉了标准中最冗长的部分,节约了大量的性能,全部被转换成了速度。这样好不好,恐怕每个人都有不同的看法。众所周知,C为什么是最快的高级语言,就是因为简单,甚至连数组边界都不验证。XML pull有点像C,要速度不要稳定,它相信程序员会给它足够正确的东西让它处理,在这个年代,看上去颇有几分颠覆性。当然,XML pull不会像C那样被溢出搞的七荤八素,它的异常处理还是很不错的,解析不了的东西他自然不会乱搞,只不过是不干活罢了。

JiBX同样具有XML pull这些缺点,当然,也同样具有这些优点,在XML pull这颗“强劲的心”支持下,JiBX的性能表现同样令人吃惊。

当然,JiBX不适合于所有的场合,也不是能代替DOM或SAX的救世主,但,大部分时候,它确实极方便,传统的解析方式虽然好,不过太麻烦。如果恰好你面临的任务是处理一个相对格式固定的XML,或是不需要进行事件驱动的XML处理,JiBX很有可能帮上你的大忙,不妨试试看。这东西,总是令人难以置信的惊喜。

目前,JiBX只支持Java–Java世界总是有令人惊讶的思想和项目出现。JiBX采用BSD协议,也就是说,用户可以随便在自己的项目应用它,甚至任意更改,不需要征得作者同意或公布修改的部分,难得的胸怀。

以下是一些参考资料,包括一些性能的对比。

Java 中的 XML: 文档模型,第一部分:性能

Java 中的 XML: 数据绑定,第 1 部分:代码生成方法 — JAXB 及其它    

JiBX的老家,有不错的文档和教程

2005年09月06日

好狗应该是这样的:聪明但不张扬,需要的时候在我身边,不需要的时候不要来烦我。狗狗符合以上特征,所以,是条好狗。:D

rss阅读器,对于我是很重要的。我没有使用过在线阅读器,没有什么原因,就是总觉得不习惯,我对客户端总有种莫名的好感–说情结也可以。因此,狗狗是我用的第一个在线rss阅读器。

首先要肯定的是,狗狗确实好用。他足够聪明,什么样的rss都能读,连糟糕的blogcn的rss,和极其糟糕的sohoxiaobao的rss都可以读。第一部分被我导入狗狗的,是我浏览器中的一个叫做“blog”的收藏夹,这里面都是支持rss极其糟糕的bsp上面的blog。他们写得不错,但没有rss,我实在没兴趣每天去关心他们,一般等到无聊的时候才去点一下。(明天会有一篇blog专论rss,今天不多说)

说狗狗好的人足够多了,不差我一个,我也很高兴得把“用狗狗订阅”图标放在blog上了。

相信还是挑点毛病对学凌更有帮助。我就来挑毛病吧。

1 我一直用thunderbird订阅大部分rss。这东西不支持导出,所以我只好一个个手工增加。手工增加大量的rss的时候,狗狗操作有些繁琐。我觉得,似乎没必要需要3步才能订阅成功,往里面添加,肯定就是要订阅了,一步完成就好,直接给把他放到一个默认的目录下面,需要的时候我会挪目录,不需要的时候我会删除,就不要经过这么多步确认了。这个模式可以参照msn增加好友。选中即加入,加入之后放在一个默认的目录中,然后再自己去管理。这样能解决至少4次点击,用起来爽多了。

2 目录管理(包括订阅和存档)的操作太繁琐,建立目录,移动项目……太麻烦了。后期管理更难。建议利用ajax那样的方式,直接在左边的树上创建目录,然后拖动项目直接移动。这样用起来顺手,程序逻辑也比现在简单,而且…显得比较 2.0 :D

3 阅读的时间限制,不舒服。默认好像是显示1小时之内的,这个有点极端了,我每次上去看到空荡荡的,总怀疑是狗狗出了什么问题。点更多的时候,干脆直接跳到了对方的blog。这个态度虽然开放,但未免有点偷懒。我觉得,还是用最后发表的xx条来作为默认的阅读页面比较好,至少,应该更符合用户习惯。左边的树上已经标志了是否有新的post了,右边就不要再这样限制了吧。

4 需要自动挖掘。狗狗的增加订阅,是这样提示的:“
将你要订阅网站的URL或者RSS地址填入下面的输入框中,开始订阅“,看起来似乎能够直接从blog页面上挖掘到rss连接,但实际上我没有测试成功。
或许是目前还没有。这个应该很有用。很多rss我都是利用firefox挖掘出来的,否则,满屏幕去找那个小小的xml图标,还真有点累。自动挖掘并不
难,rss协议中就有规定。当然,很多bsp目前还没有执行。(典型的还是blogcn和sohoxiaobao)

5 希望能有搜索功能。我之所以用thunderbird,就是因为他的搜索功能很不错(本身就是邮件软件,搜索自然应该好)。

6 firefox的插件,在菜单上最好有个图标。我找了半天,才找到那个“rss to gougou”,加个小图标应该醒目多了。


以上就是吹毛求疵的几个建议。或许其实早就在狗狗团队的考虑之中了,我这就算抛砖了。最后一句话,希望狗狗越做越好,让我们越用越爽 :D

update: 刚刚接到tiny同学通知,他也正巧写了一篇关于gougou的,他写的是导入,这部分我没涉及到。补充连接在这里: Gougou完善的细节之后



现在,几乎没有人再提起“互联网上,没人知道你是一条狗了。”,大家都知道,虚拟和现实之间那薄博的一层纸,轻轻一捅,就破了。除去这样和那样的政策,从下面这张图上,可以看到天灾对于互联网的影响:

http://static.flickr.com/31/40342504_da289135ad.jpg?v=0

Katrina飓风,不仅损坏了大批炼油厂,对Internet影响也很大,南部的带宽符合率大大降低,中部的压力骤然增大,幸亏TCP/IP是个相当稳定的协议,否则,恐怕现在已经没有网络可用了。

虚拟和现实正在逐渐的混合在一起,一边有变故,另一边也马上会有影响,比蝴蝶效应明显的多。以往总在观察虚拟世界对现实的影响,似乎大家都早就忘记了一切还是根植于物质世界的。

2005年09月02日

以下为引用:
—————–
—————–—————–—————–
大家注意了,我是一名深圳ADSL的用户,今天早上开始发现被电信局封掉了部份端口,只能浏览主要网站的网页,冷门的网站已经打不开了(例如中国银行的网站及其副页面),后来打电话去深圳中国电信去问,谁知道他们尽然说因为我使用了SKYPEOUT功能,已经把我列入黑名单了,要求我保证下次不再使用SKYPE(连它的网络对网络呼叫功能都不能用了~~!!!),才会帮我开通,而且下次再发现还要罚款三千元,我听到这个说法,当时肺都差点气炸了,他们还说现在开始以关外地址为试点,已经封掉了4000多名使用SKYPEOUT的用户了,天呀,这还是不是中国呀,连打网络电话的权力都没有了,中国电信也太霸道了吧,大家说说这是不是违法竞争呀?有谁愿意和我一起去告他们呀.
—————–—————–—————–—————–—-

2005年09月01日

北京移动,是我目前感觉最满意的一个公司。1860总是能让我很舒服,尤其是细节。当然,我说的只限于北京1860。上次跟天津移动吵了一架,天津1860竟然挂了我的电话,最后我威胁说如果2个小时之内不解决我的问题,明天我回到北京就去金融街移动集团门口静坐,这才得以解决。

言归正传,由于要测试的缘故,我需要用gprs,现在的全球通按流量计费,太贵。听说神州行有包月,打1860咨询。1860告诉我:这不是新产品,早就开始了。您随便用一张神州行卡,然后用本机拨打1860,开通此服务即可。另外,今天是30号了,因为是包月的原因,建议您2天之后,9月1日再开通。

最后这句话让我很感动。这确实不是一件大事,或许甚至不值得专门拿出来一说,但客户体验就是在这一点点的细节中聚集起来的。他们确实站在客户角度考虑了问题。其实,这对于企业也是有利的,如果我30号开通了,花掉了15块钱,那么或许我不会投诉,但我一定怀恨在心。下次一旦有机会选择其他服务,肯定会倒戈,用户忠诚很难培养。移动让我很满意,居于垄断地位,还能如此用心细节,难得。相反看看那些未居于垄断地位却总在给客户找麻烦的公司,孰是孰非?

放脏话着实不好,但是,不用脏话实在难以表达我的心情。干你娘的!

这个国家,着实没什么可玩的,好不容易有个魔兽世界可以玩,又眼见要被某个sb部门搞得防沉迷系统强奸了。什么叫沉迷?我一周忙于工作,周末高兴玩个通宵,这叫不叫沉迷?作为一个成年人,我有权力安排自己的时间,我想玩多少就玩多少,连这种事情都要管,真替他们累得慌。2亿多文盲,5000万残疾人,还有4000万党员,咱这大家长可真累。(数据有所更改,搜索的时候竟然找到了以前keso写的,哈哈)

没办法,我放弃在中国大陆服务器的魔兽世界账号,谁愿意要送给谁。10月份左右到美国服务器玩,贵点我认了,本来还能给国家上点税,这次变成了给老美上税,这怪谁呢?

网络过滤我忍了,网站备案我忍了,就这么点消遣项目,还非要给你搞到阳萎,难道要我们闲得无聊去研究作炸药吗?

我喜欢的东西一件一件无法在这块土地上正常的实现,而对于其他国家的人这些却是再普通不过的,那么,总有一天,我会把自己也挪出这块地方。这个国家,早晚被他们玩完掉。

ps:想起来安替说的,中国在互联网方面决不是最恶劣的,至少萨达姆统治的伊拉克就远不如中国。结果呢?丫被推翻了。

链接:
防沉迷系统能否达目的
新闻总署是很弱智,但是这次的防沉迷系统还真没侵犯人权  这里面似乎有不少网评员在活动