纪念blogsome的倒掉

听说,Blogsome被Greate Firewall关了小黑屋。听说而已,昨天一早来看到keepwalking的一篇《[新闻联想] 网络空间的风水与奸计》说到的。一试之下,果然不能访问了。这个可怜的爱尔兰BSP

虽然我很早就申请了一个,不过因为我不太喜欢WordPress,而且国外的BSP速度上总是慢一点,所以一直没用。

早在我申请伊始,就预料到它终将是要倒掉了。伟大的、该管不管、不该管乱管的监管部门是不可能放任这么一个东东在监管视线之外的。

今天又从老虎庙那里看到有消息说信产部下了最后通谍,于是他也赶紧去备案,结果却惨不忍睹。

这就是老罗所说的、有中国特色的“法无定法”。想要做一个守法的公民如此的困难。

我还是继续不备案,等明天如果我的网站(个人主页那个)也被关了小黑屋再说吧。

(刚才在个人主页发表时,提交失败,用NSLOOKUP检查,发现域名DNS出问题,吓了一跳,以为还没到时间就被关小黑屋了,还好很快就恢复了,估计是网通的DNS服务器的暂时性问题,虚惊一场)

——于33号令的Deadline前夕。

BTW:今天(7月1日)看到Isaac毛说:终于不必备案。一觉醒来,看到偶的这个域名还幸存,看来也没什么大8了的。

[猛禽语录]关于北大的自恋

昨天在群里看到一则转自水母的消息:

发信人: chenhp (Permanent Head Damage), 信区: Zhejiang
标  题: 今晚感受了一次北大的自恋
发信站: BBS 水木清华站 (Wed Jun 29 21:52:17 2005), 站内

哈佛鳄鱼清唱团来演出,完了要两校合唱,主持人mm说:“下面是两个世界一流大学
的合作……”。后来出来个首创的老总,那哥们岌岌歪歪了半天,下面嘘声一片,中间
胡侃了一句“北大是中国的哈佛”,然后那主持就接过来说,“其实,哈佛也是美国的
北大”!当时我就翻了……

后,我说:

北大是中国(高校中)的芙蓉姐姐

——上面括号中的部分为后来补充

貌似非常的不厚道啊。-_-|||

BTW:好像mblogger终于比较正常一点了。

[技术帖]透过现象看本质

刚才猎手在QQ群里问了一个关于auto_ptr的问题:

如何从一个

std::auto_ptr<TMemoryStream> MyStream;

里取得一个“TStream *”类型(VCL中TMemoryStream派生自TStream)的变量?

令狐道:试试 &(*MyStream) 看看

猎手一试:果然可以。令狐,(TStream *)应该也可以的吧

令狐:不行

猎手:为什么

猛禽:运算符重载

令狐:MyStream实际上是一个auto_ptr的Object,不是一个真正的指针。我刚刚给你的操作利用了auto_ptr的operator*重载,而auto_ptr没有也不可能重载 operator (TStream *)

BTW:偶曾经干过为auto_ptr增加重载 operator( T * ) 的事,后来看了Andrei Alexanderscu的《MCD》(其中关于Smart Pointer的那个章节)才发现,这正是一个昨天被我批过的“小技巧”。-_-|||

=====重载的分割线======

C++里像运算符重载这样的东西是很妖的,这也是为什么后来的JAVA/C#都不再提供这样的功能。

因为作了重载,所以我们所看到的这个运算符、以及我们所设想它实现的功能,很可能已经不是它实际上的效果了。

很多问题并不是我们看上去的那个样子——不只是C++,也不止是技术。

[技术帖]开源与用户成本

mike_shi的BLOG那里看到CSDN上的这篇《“开源”亮最后底牌》,作者以Compiere、SugarCRM、Asterisk这三个软件为例,说明“开源”已经进入了高端商业软件领域,已经不再局限于专业开发人员中了。

但这不论是与像Linux/Apache/MySQL之类的开源软件相比,还是像mike_shi那与微软相比,都是不合适的。

对于ERP/CRM这类本身定制化程度很高的软件来说,代码本身并不是最重要的,关键在于服务。

SAP的系统标准程序的ABAP源代码也都是可以查看的(只要上SAP NET申请一个License Key即可),是不是可以说SAP也是开源的?

文中说到:

那些下载“开源软件”的人员大体可以分为三类,一类是该软件的技术爱好者、另一种是潜在用户,最后就是该产品的竞争对手。

其中技术爱好者一项是没有疑问的。潜在用户也基本可以肯定——因为没有服务的支持,光有软件是没有用的,SAP的MySAP也是可以下载到的,但好像没听说有人就这样自己装起来用。最后是竞争对手的问题,这最多只能是给别人提供一点参考,不能照抄。

问题在于中国可就不是这样了。在盗版的养育下很多人没有意识到:开源也是有版权的。GPL/APL/MPL都是有法律作用的License。

评论里有人说:这是自断后路的发展模式

我只能说在这样一个法制观念淡漠的环境中,开源的精神遭到了怎样的曲解啊。

用户选择软件最重要的是考虑之一是“总拥有成本”(TCO)。一般商业软件,其售价就是TCO,如盒装的Windows。而对于像ERP/CRM这样的企业应用软件来说,软件采购成本只是一部分,更多的是定期(比如每年)向软件服务商(不一定是开发商)支付的服务费,以维护系统的正常运行,以及随公司业务的变化作调整等。

换到开源软件呢?除非用户有很强的技术实力,但更大多数的用户是不具备这样的技术实力的,那么就必然是通过这个开源软件的拥有者或者别的软件商为其提供服务。这就成了开源软件商的收入来源,并对用户来说构成了一笔成本支出——不一定就会比商业软件便宜。而如果是由第三方提供服务的话,按大多数开源软件的License来说,将其作为商业用途的话,此第三方服务提供商必须取得所有者的合法授权——这笔授权费用同样是开源软件商的收入来源,并同样是用户的成本支出。用户另外还要向服务提供商支付服务费。

考虑到开源软件商的规模通常较小,这也通常意味着质量风险。风险也是成本的一部分,并且有时可能会是很大的一部分。另外还有法律问题要担心。如果提供服务的公司以违反License的方式使用开源软件,则用户可能还存在着法律上的风险。

所以,在法制环境下,所谓的“自断后路”纯属无稽之谈。法律同样保障开源软件的权益。

当然,在法制纯属空谈的环境下,则我上面说的纯属无稽之谈。开源不过是给某些人以“合法盗版”的机会罢了。同样,在这样的环境下,对开源的种种FUD都会很有效。

(本文写于昨天,mblogger的图片功能还未恢复,继续等待ing)

[技术扯淡]大技巧与小技巧

又要扯谈了。

在昨天那篇《杂而不精》中,老方在回复里提了一个技术问题,其实这个问题出自于大富翁论坛最近出版的一本书《Delphi编程专家门诊》,见帖子(请用IE打开)。

因为DFW论坛不支持FireFox(用了非标准的XSLT),所以我现在已经很少去了,曾经发过帖子向soul提意见,有人回复说他最近忙,我也就没再说这事,看来改天还得想办法联系上他再说说这事。

前两天QQ群里有人提起这本书,所以我还是开了IE上去看了一下,结果便看到有人就书中的一个话题与soul争论开了。不可否认,书里用“懒惰想少写点代码,结果却花费了大量无益的思考时间”这样的话的确有点矫枉过正。但作为一本类似技巧集的书却要特别指出这一点也是很难得的。

老子云:大巧若拙(第45章)。老子又云:人多伎巧奇物滋起(第57章)。

对后面一句,我的理解是:伎巧者,小技巧而已。奇物者,奇异而脱离实用之物。

常常会有这么一种情况,碰到一个问题,马上想到了一个解决方案,那个方案是最直接的,但需要写很多代码,不愿意,于是拼命思考如何构造一个精巧的方法使得能花费很少的代码解决这个问题。

作为一名职业程序员,最重要的是完成客户的需求。所以我们最需要的就是直接的办法,也许这个代码会比较长,但也许它恰恰是一种若拙的大巧。花费大量的时间和精力去追求少量的代码减少或有限的一点CPU时间的节约,在更多的情况下,都会是“伎巧”,这样的代码也不过是“奇物”罢了。

zhengdehei对谭浩强的代码大加赞赏,说他的代码“里面的每一行都非常的精简”。问题在于他是教育者,写的是教科书,所写的代码是为了说明相关的知识点,这样的代码是不能投入实用的。这是实验品与产品的区别,是一种本质上的区别。

网事如风提到重构,可惜他并没有完全领会Martin.Fowler在书中表达的意思。对于重构这件事来说,重构的技巧和方法并不是最重要的,重要的是发现“Badsmell”并消除之。“精巧”的代码不是重构的目标——在很多情况下,过于“精巧”的代码反而包含着不可容忍的“Bad smell”。

虽然soul在回复里试图说明他的一些大技巧观——比如精巧的设计,但这本书终归还是一本讨论技巧——而且相当一部分算是小技巧——方面的书。所以书里这段话应该说还是一剂很有必要的预防针。

(注:本文写于昨天。另,因mblogger的相册功能有问题,贴图最后一集——TP篇改在明天发表)

PP文字D

这两天到哪都能看到关于“头文字D”的消息。看得偶有点不良反应了,如同前一段天天看到FRJJ那样。-_-|||

起先我是一直闹不明白这个莫名其妙的题目是什么意思。难道是说某个人的头上有一个文字“D”么?还是安替比较厚道,难得8挂一篇,解开了我这个疑问。

头文字D,英语是Initial D,翻译就是“以D字母打头的(运动)”,也就是Drifting,飘移飚车运动,指的是赛车甩尾过弯的技术动作(就是“飘移”),是今年在美国和日本风行的新运动

真不知道是哪个白痴翻译译的。

以后要出续集的话,推荐一个新的题目:

PG文字D

绝对醒目。^O^

此行图记之七:19日——在路上

这天下午从松柏车站乘长途汽车回老家……

(以下照片均为隔着车窗玻璃拍摄,效果略受影响)

已经进入漳州

快到高速公路漳州出口时,旁边一座山上的寺庙

路边的香蕉园,漳州是国内最主要的水果产区之一。此外还有水仙花和二十年前五连冠的女排。^O^

路边的稻田。当时车速约100KM/H。

“前方5公里塌方,改道缓行”
幸好我不是乘火车回去,不然就麻烦了
另,返程时因手机快么电,故关机。开机后收到短消息一枚,与上图略有关联,故收录如下:
大叔不在服务区?…暴雨…山洪…泥石流…塌荒…不在人间?ToT各么天堂有信号伐?”——含错别字一枚。^O^

山雨欲来

突如其来的暴雨

车窗上的雨水

雨后的小山村

雨后的群山,云烟氤氲

山崖上的石刻

在山谷中蜿蜒的高速公路

[有点技术含量]杂而不精

18日傍晚玩回来,便到康乐小区边的一家饭店和同学一起吃水煮活鱼。好大一脸盆啊,哈哈哈。三个人吹着空调喝着啤酒,不亦乐呼。

照例跟他们扯起技术八卦,比如TDD,重构,MVC……貌似我已经变得越来越经常扯淡而少干实事了。

其间主要说了一些如测试先行、小步迭代、DUnit、TestSuite、TestCase等等,然后把JAVA下的那些MVC模式的Web开发框架吹了一通——其实我几乎都没有试过。-_-|||

然后把MVC的理论大加赞扬了一下,再批了一通RAD,最后大致说了一下偶最近刚想到的关于用MVC模式来改进GUI应用设计的一些想法,基本思路就是改善GUI应用的可测试性——只是一个思路,真要实践还是很麻烦的。

同学M这两年在做CallCenter,用DELPHI/COM+搞开发。其间也常在MSN上问偶一些问题,说实话,这方面的应用我只做过一些简单的。所以当他问到一些诸如改进中间层性能的技术细节问题时,我还是答不上,只好让他去参考李维的书。或是踢给MSN上的另一个朋友——“蛋蛋”。”蛋蛋”做这方面的应用已经有很多年了,相当的专业,在他的帮助下,我同学那个CallCenter还算完成得相当不错。

这天我们聊到这个方面的事时,同学M感慨说:在实际应用中碰到的问题远比想像的要多得多,这些靠扯淡是不行的,必须有实践,就连李维的书在一些关键问题上也是没有搞清楚。

我说:还好咱们有“蛋蛋”。

他说:是啊,我们公司原来做这个CallCenter的那几个程序员也是,很多问题搞不定,然后就只会说COM+技术不好。

我说:那是因为他们没有“蛋蛋”。

貌似偶好像很不厚道。-_-|||

扯得太远了,回到正题上来。

我发现我虽然对各种前卫的技术、概念、理论知道得很多(所谓的“知道分子”便是如此),但却未能对任一种技术作相当深入的研究,就像“蛋蛋”研究COM+这样。而实际上在国内软件业中,这些不知道TDD,不知道重构,不知道MVC,不知道AOP……但却专注于某一个特定方面技术的软件开发者却往往是实际开发工作的主力——特别是在非JAVA语言的软件开发中。

我以前说过,了解一项技术的关键不是知道它能干什么,而是知道它不能干什么。这才有可能真正地把这项技术用好,只有用好了才有可能做出好软件来。

看来我有必要适当减少扯淡,多做点实际的事。计划把前几个月尚未完成的动态代理继续下去,另外,关于用MVC模式改进GUI应用设计的方面要也继续研究一下,可测试的GUI应用还是很吸引人的。

此行图记之六:19日——传说中的SM

这天上午去了SM……

这就是传说中的SM~~~~~^O^

仙岳路边行道树上的小芒果~~~~~

前一天在轮渡拍的

轮渡邮局

下午在长途汽车上,行驶到厦门大桥时,隔着窗玻璃拍的集美~~~~~GaoLun很怀念吧。^O^