2007年9月27日星期四

几个不错的Thunderbird扩展

用Thunderbird大半年了,也一直没怎么用扩展,除了Remove Duplicate Messages,因为我的邮件是几个地址汇总过来的,总存在重复。

前几天在它的扩展库里面逛了一下,发现以下几个不错:
ThunderBrowse: 在Thunderbird中直接浏览网页
Tag the Bird: 给邮件添加标签
MessageFaces: 显示Face/XFace头像
Colored Diffs: 采用彩色显示补丁,并且可以转换成unified, side-by-side等几种方式显示
Quote Colors: 邮件中引用的部分采用不同的风格来显示(不过好像不能象Claws Mail那样自己定义哪些字符是引文字符,虽然常用的是'>'和'|'
XNote: TB支持给邮件添加标签(tag),但如果想添加一些注释,就得需要XNote这类扩展了。虽然很多扩展都是这个功能,但好像只有XNote可用于TB2

2007年9月26日星期三

XUL: property与attribute有什么区别?

XUL Elements的说明文档,会碰到Attributes列表和Properties列表,这两个有什么不同?

Attributes:
someValue = element.getAttribute("someAttribute");
element.setAttribute("someAttribute", someValue);
Properties:
someValue = element.someProperty;
element.someProperty = someValue;

前者是按DOM的思路的,而后者是将XUL Element抽象成对象了。但两者是等价的么?如果下两句话一块儿执行,会是怎样的结果?

textbox.value = "First value";
textbox.setAttribute("value", "Second value");
答案是: 界面会显示"First value",但你用text.getAttribute("value")会取到"Second Value"(或者用DOM Inspector可以看到)。

所以这两个东西还是有点不一样。但你在.xul文件里面设置的attribute怎么能直接反映到界面中? 反正比较复杂。 详细的说明可以看这篇文章:
XUL Solutions: Attributes and properties: the essential difference

基本上是说在用代码操纵时最好用properties,但在XBL中就得注意了。

我还注意到其它一些小差别:
1. 有些attribute没有对应的property,反过来也是;
2. attribute和property可能存在一些大小写的差别,比如tabindex和tabIndex。一般而言attribute倾向于contextmenu或者wait-cursor这样的风格,而property倾向于contextMenu。但也不是绝对的(比如sortDirection这个attribute), XUL里面这个有点混乱;

Port some addons to XUL Explorer


I think the following addons might be of some use for XUL Explorer, thus made some quick-and-dirty patches to make them could work on it.

Chrome List: https://addons.mozilla.org/en-US/firefox/addon/4453
Extension developer's extension: http://ted.mielczarek.org/code/mozilla/extensiondev/
xpcomviewer: http://xpcomviewer.mozdev.org
cview (older xpcom viewer) http://hacksrus.com/~ginda/cview/
(but I'm based on the code on mozilla tree)

The patches and patched addons lie on:
http://bamanzi.inlsd.org/xul/xe-addons/

As an alternative to installing them in the extension manager, you can
also unpack each .xpi to xulexplorer/xulrunner/extensio
ns\.
Unpacking to xulexplorer/extensions won't work for XULRunner 1.8.

Not all features could work. Currently I just made sure they could be launched from the Tools menu.

2007年9月10日星期一

Mozilla/XUL Links 2007-09-10

  • CoScripter: 一个网页自动化工具(Firefox扩展),由IBM的人折腾出来的,
  • Penelope: 著名的老牌邮件客户端Eudora关闭之后,有人想将一些功能重新在Thunderbird上实现,并模拟Eudora的观感和操作方式。
  • Open Komono: ActiveState公司决定将Komodo的一部分开放,成为Open Komodo项目。Planet Mozilla上不少人觉得这对XUL IDE是个不错的消息(链接1, 2)。至少,俺一直想把Komodo里面的编辑器(基于scintilla做的浏览器插件)移植到XUL Explorer上来用。
  • XUL activities in France

回应: Linux之父炮轰C++:"糟糕程序员的垃圾语言"

涉及到编程语言之争的帖子,在CSDN上一定会吵得不可开交,这不:
"Linux之父Linus Torvalds为了Linux内核开发而专门打造的版本控制软件Git已经引起了业界的广泛关注。昨天,有一位Dmitry Kakurin老兄在查看了源代码之后,发现使用的是纯C而非C++,表示不可理解,他直言:“别拿可移植性说事儿,这是屁话(BS,bullshit)。“(此外,他还批评Git蛮力地直接操作文本,既啰嗦又易错,而且很难跟上高层代码逻辑。)这个BS引起了Torvalds的强烈反应,他用*YOU* are full of bullshit.“(你才满嘴屁话呢)作为自己反驳的开场白。接着,他先转向了对C++的罕见的火药味十足的炮轰..."
从几年的实践来看,我觉得从面向对象这个角度来看,C++很好,但C++这个东西太复杂,太容易导致错误,用上几个模版后,编译时搞出一大堆不知所云的信息也是常事。俺是觉得C++写的东西很容易变得不可维护,尤其是有C++"高手"加入以后。而且印象中用C++做出来的可重用的库比较少。

大 家都说“我们在没有掌握得好的时候,不妨只用我们了解的那些特性。那些高级特性并不妨碍,你可以不用啊”,但这都是从单独一个人的角度来说的。放到一个团 队来说,你的队伍中有C++高手,有新手,还有更多的半生不熟的人,怎么办?Linus的考虑也是从这个角度出发的,就算你Dmitry Kakurin很懂C++,不会出什么问题,能写出漂亮的代码,但其他人怎么维护你的代码?


不过俺没有帖子里面各位这么确信,对很多事物都抱着一种敬畏的态度,因为我不知道是不是本人不够聪明,没有认识到C++的各个方面。



刚 才我统计了一下sourceforge.net上用C++和C的项目数,以及各自的处于stable和mature阶段的项目数。


































total stable mature
C++ 22462 4326(19.26%) 427(1.90%)
C 19623 4792(24.42%) 615(3.13%)
Java 26454 5097(19.27%) 353(1.33%)
Python 7224 1287(17.81%) 109(1.5%)

从总数上看似乎C++更适合大家写东西,但从stable和mature项目比率上看似乎C项目更容易稳定和成熟,可维护性高些。

不过也许这不能说明什么,因为sf.net上只是些开源软件,上面各位又说C++在windows上应用普遍,而windows上素来没有多少开源传统。又或者商业软件又有不同。各位自己乱炖吧。

参考: