王开源是一面镜子

对于前几天盖茨在北大遭遇王开源抗议的事件这两天吵得厉害。

基本上我的看法与蝈蝈差不多,不过是一次炒作罢了。基本上我并不是很认可这种对待开源的态度。

而这件事情除了炒作之外最大的意义,不过是把那些对开源有严重误解的小P孩的嘴脸照了一个清清楚楚。所以时慧会碰到这样的评论者

行了行了,你已经被洗脑了,自己还不知道。
开源在国内推不开,说明它不适合中国国情。中国人精明着呢,不像口袋里闲钱多的老美。

内软件开发者你大多不认识,不要一上来就认为他们水平不行,这是诛心言论,你要真把自己当人,就不要这么干。你认为他们想参与商业开发就必须借助开源,这
个观点至少能说明两个问题:第一,你年纪小,没经历过国产软件的黄金时期,那个时候可是一点开源软件都没有;第二,你也太看得起开源了,神话某物就是奴化
自己的开始,记住。
当然,ctrl c + ctrl v那段是挺搞笑的。看到一位这样的人物你就得出“阿猫阿狗”的结论,其实你更搞笑

我不得不说,这年头自以为是的小P孩的确是太多了,时慧下的这个“阿猫阿狗”的定义也算是恰如其分。也许也正是国内“标准答案”式教育的可悲结果吧。实在是有必要给这些小P孩补补课:《我对开源的理解》。

首先来说洗脑的问题——软件业最洗脑的故事无非是:盖茨靠做软件成为世界首富。而免费的自由/开源软件把这条路给堵了,断了后来者的财路。

大错特错!


茨式的神话根本没有可重复性。这不过是美国梦的软件业版本罢了。第一、开源软件不是新生事务,它的历史甚至比商业软件还要久,可以说,软件从诞生伊始就是
开源的,只是那时没有商业软件,所以也没有特别地加以区分。第二、盖茨的成功并不是因为他是个天才程序员,而是因为他是一个商业天才,是他在三十多年前敏
锐地发现商业软件的价值,以那封著名的公开信开创了商业软件世界,并且在接下来的三十年不断把握机会,才造就了今天的微软。第三、和所有神话故事一样,盖
茨的成功故事中有不少被人有意无意略去的部分——比如他的出身背景之类。

当越来越多的人发现这条路走不通的时候(这条路本来就是不通的),那么讲这个神话故事的人当然需要有一个替罪羊——这个时候恰恰是商业软件发展陷于停滞,开源软件异军突起之时,那么拿开源软件来做挡箭牌也是很自然的事情。

开源软件在中国推不开并不是事实,只是小P孩们的看法——因为他们在微软神话中沉迷得太久,以致没有看到世界的变化。当然,在小P孩中推不开的确是事实,因为他们根本没有对开源软件的正确认识。

国内的软件开发者我的确大多数不认识,但至少可以就我认识的那一部分开发者来谈这个问题。这一部分开发者就算不是国内最顶尖的,也至少算是次顶尖的。而这一部分人或多或少地都是开源软件的参与者、用户、至少是对开源无误解的。

至于还没搞清楚时慧的年龄就说他年纪小,恰恰表现出这位评论者的小P孩心态。再说所谓的“国产软件的黄金时期”本身也是一个神话,我们都是从那个时代过来的,那不过是因为国外巨头受限于语言障碍,给国内软件公司留下的一个暂时的空白市场。完全谈不上有什么技术含量。

开源不是神,参与开源的人们也从来没有神话它,只是有些人在不断地妖魔化它。

最后我还要补充一点:我认为王开源式的做法并不是一种能够被开源社区普遍认可的做法。

再试Opera

(2007-04-05)

这两天大家都在试谷歌拼音,不过我是用五笔的,对拼音输入法不感兴趣。我试Opera。

之所以要说“再”,是因为很多年前曾经试过。那时是因为不想用IE,而Netscape又越来越不爽,所以想换一个。那时试过以后感觉它跟Netscape也差不了多少,最后还是不得不用了IE。

昨天因为老板电脑中毒,IE出了问题,访问某个网址(公司内部系统)时NAV老是会出病毒警告。我在自己电脑上用FireFox试了一下那个网址是没有问题的,后来让同事去处理杀毒问题,我却忽然想到拿Opera来试试。

我下载的是最新的9.1版(已经升级到9.2版)。用了一天感觉还不错,速度果然够快,资源果然占用够少。

不过我还是不会把FireFox换成Opera,因为几个问题:

收藏夹不能按自己的喜好排序
不能在收藏夹里点中键在新页面打开(在收藏夹窗口中可以,但是在收藏夹菜单中不行);
后退按钮没有列表,只能退到上一页或最前页
当然现在最严重的问题还是:我用的FCKeditor版本对Opera支持不够好(我用的是2.0RC2,后来的版本改了一些功能,我不喜欢)。

多一个选择也不错,以后访问一些比较占资源的网站我就用Opera,省得再碰到FireFox因为资源耗尽而崩溃的事故。嘿嘿。

更新几个问题:

虽然不会像FireFox那样因为资源耗尽而崩溃,但还是发生了几次不明原因退出程序的情况(升级到9.2以后仍然有);
打开多个TAB时关闭程序没有提示——虽然再次启动Opera可以恢复关闭前的会话,但对于Ajax应用或是Frame应用来说还是会有问题的
部分对FireFox支持不够好的网站对Opera支持更加不好,比如新浪BLOG等。

友情广告:某美女竞选食神,走过路过顺手帮忙投张票吧——看这里看这里看这里(编号:W006,第三排右一)。

[技术帖]CodeGear的新IDE

(2007-02-28)

昨天就在SOLIDOT上看到消息说:CodeGear(原Borland的IDE产品部门)推出一款PHP RAD工具。今天在李维的BLOG上看到更新更全面的消息

如果这个东东早两年推出我可能还有兴趣,现在我实在想不出RAD对于PHP有什么意义。


过我注意到李维的文章中有这么一句:“Delphi4PHP的IDE本身是使用Delphi
7撰寫的原生Window應用程式”。也就是说,这个IDE不是从前那个用.net的Galileo了,而是一个重新开发的原生应用。显然Borland
的老用户对基于.net的开发工具还是普遍比较不喜欢的,所以CodeGear才会退回到原生的路子上来。

事情本来就应该是这样的,作非.net应用开发的开发工具本身是基于.net这一点的确让人很不爽。就像Eclipse的CDT怎么也流行不起来一样。

我现在最希望这个新的IDE将被用于下一个版本的Turbo Delphi Explorer和Turbo C++ Explorer。

属相如何定

这个问题是费老提出的。

我的第一反应就是:第二种说法正确的可能性较大。

为此刚才特地查了一下维基百科,更增加了我的信心:

首先需要澄清的一点就是:农历并不是阴历,而是一种阴阳历。它的纪年纪月纪日都是以数字计,如宣统元年八月十五、和谐三年闰七月初七这样的,其中的月份和日期都是根据月亮的运行来计算,所以这部分是阴历。但是对于节气/中气则是按根据“太阳的运行”(实际是地球公转)来计算的,所以这部分是阳历。而干支纪年是根据阳历的部分,每年是从立春开始。生肖又恰恰是根据干支纪年法而来的。

上回十博士就犯了这样的错误,出了大糗。

所以我想第二种说法更正确,即:

生肖的变换是从立春开始。

BTW:徐根宝的说法也不正确,不是从立春日的零点,而是指立春的那个时刻——这个是根据地球公转可以精确算得的。不过这么讲究就有点BT了。-_-|||

[技术帖]Web Desktop App

(2007-02-20)

早上忽然想到一种桌面应用的模式——用Web方式实现。从表现方式上说,类似.net的XAML,但是基于现有技术实现,并且可以不受平台限制。比
如可以用这样的方式实现一个资源管理器这样的东东。甚至可以按这种模式开发出一种类似于DesktopWebOS这样的东东,挂在不同的OS平台上。

基本的结构是这样:

用TurboGears
(或者简单一点就直接用CherryPy),实现一个WebServer,把本地应用的功能全都做到这个WebServer中,前端用Ajax实现交互。
因为CherryPy的实现是一个单独的应用程序,并且自带HttpServer功能,等于就是用浏览器操纵一个非GUI应用程序。

至于安全性的问题也很简单,因为这个Server是以当前用户身份运行,与一般的用户程序一样。访问安全性的问题可以通过限制为本机访问的方式实现。如果想要提供远程访问的功能,可以用Apache做一个https代理。

剩下的问题就是:开发难度比一般的应用程序大不少,特别是Ajax部分。


充:以上纯属瞎想,其实我现在对Ajax已经有点不满意了,因为Over
ajax的情况已经越来越多。虽然像www.netvibes.com的ajax效果超级酷,但是过于复杂的JS代码使得程序的性能和稳定性都很成问题。
还有,我之所以不用抓虾,就是因为我订阅的RSS比较多,会让它的JS程序在Firefox下近乎死机。

还是不喜欢Google Reader

(2007-02-27)

最近Bloglines的速度实在是慢得可以,终于忍不住把分类全改成英文的,再导出OPML,再导进传说中的Google Reader——GR不支持中文分类的问题到现在也还没有解决。

试用了一上午,感觉很是不爽,而且速度也未感觉比Bloglines快多少,有时也会出现Loading半天不出来的情况。

最主要的不爽还是功能上:

首先,每个Blog都只有标题,没有作者名——有些Blogger就喜欢隔三差五的改标题,我哪里认得那么多。

其次,每篇Post都只有上次GR更新时间——注意,是GR更新的时间,而不是Post更新的时间。GR什么时候去重读Feed跟我有什么关系,我只想知道作者是不是修改过Post。

第三,大致看过以后,还要点一下Mark all as read才能标记为已读。

暂时就这几点,不过已经足够了。虽然GR有一些如Tag之类的实用功能,但是不能满足我的基本要求,那我还是继续用Bloglines比较好。

BTW:后来跟令狐讨论了一下。

他认为第一个问题可以通过自己修改标题实现,但对于我来说,300多个Feed,大部分都要改,太麻烦。


三个问题他认为GR比BL方便,因为他经常需要回头去重读,如果像BL那样自动Mark all as
read的话,回头重读需要作一次Session过滤;我的情况不同,很多Feed我只需要大致扫一眼就可以了,很少需要回头重读的——需要的重读的
Item我会收到365KEY里或者设置Keep new,所以GR这种方式对我来说不够方便。

对于Tag功能,我们都认为很实用,其实很早之前我就希望BL能提供这样的功能,甚至有想过自己写一个RSS网站——那时最想的就是搞到当年那个ToPim的源码,不过想想而已,还不知道人家的代码写成什么样呢,不一定会改。

还有GR的Share功能,可以按Item输出,相当于一次重烧,这时的用户成了一个编辑。这比BL的按Feed作public要好很多。

选择的自由

(2007-01-23)

(倪可的父亲说)“……你
经常挂在嘴边的萨特笔下的自由,只是‘选择的自由’,一种有前提的自由。”——卫慧《上海宝贝》

前一段一直在CSDN上讨论服务器OS的选择问题,还有语言的多样性问题。其实归根到底就是关于选择的自由问题。

其实根本没有所谓绝对的自由,我们能得到的自由只能是选择的自由,差别只在于可供选择的东西或多或少而已。

Windows固然有千万般的好处,但它并不是没有问题的,在很多时候,Unix、Linux……会是更好的选择——即使你不喜欢,它们存在仍然为你提供了选择的自由。

语言也一样,C#和Java固然近于万能,但C、汇编、COBOL……也仍然有市场——你可以不学不用,但不能剥夺别人选择的自由。

还有GC。GC固然是好,但是GC的性能再好也比不上栈模型的一句 sub esp, xxx 来得高效——这就是我反对在C里增加GC的根本原因,只是想保留一个选择不用GC的选项。

GPL3自从被提出开始,就遭到很多的批评,其根本原因就在于强迫开源的条款剥夺了别人不开源的自由,这也是我一直不太喜欢GPL的最主要原因——我写的原生应用程序从来不用GPL。

在 Python 的 Web Framework 中, Django 无疑是一个好东东,是一个 All in one 的
solution ——它包括了从后端的 O/R mapping 到前端的 Web tamplate
,最关键的是它还有不错的性能。但是我现在还是转向了 TurboGears ,因为它提供了更多选择的自由,比如 O/R
mapping除了用默认的 SQLObject 以外,还可以选择 SQLAlchemy (据说现在 Django 也支持 SQLAlchemy
了),而Web template的选择就更多了,从默认的 KID ,到与 Django 相同的 Jinja ,还有像 Genshi 这样的。

政治上的话题就不明说了,其实也是一样的。

支持徐继哲

徐继哲发起了一项《“致招商银行的公开信”行动! 》,目的是:

呼吁招商银行网上银行采用开放的标准,能够支持自由软件正常访问服务!

这个问题其实一直以来都令所有非 Windows/IE 用户很不爽。但是我认为这不止是招商银行的问题,而是目前几乎所有国内银行都是这样的。

用 ActiveX 这样一种本身就不很安全的技术来“增强”网上银行的安全性,从技术角度上说是一件相当可笑的事情,但是国内银行却能够把这事情办得一本正经,实在让人无语。

所以我支持徐继哲的这次行动,主要是基于以下几点理由:

1、从技术上说:ActiveX 不能解决安全问题,ActiveX 不是 Web 标准解决方案;
2、从商业上说:使用 MS 专有的解决方案存在着歧视非 Windows/IE 用户的问题。

就第一点来说,招行使用SysInternal的一个仅供研究用途的不安全底层库(徐文中有提到,网上有人针对这个作过研究)就是一个问题。而第二点的问题就如同公司要开机打税票,就必须购买税务局指定的品牌电脑一样。

也许就如GIGIX所说的那样,指望招行改进还不如指望流氓软件,让它们把所有的Windows都整得没办法用就彻底和谐了。