显示标签为“牢骚”的博文。显示所有博文
显示标签为“牢骚”的博文。显示所有博文

2010年3月20日星期六

牙慧集


维基上有人总结了一些定理,多以洋人姓氏命名,适合广大装逼爱好者收藏以备不时之需。姑且听之,遇到有共鸣的就记下来。虽说多是些牢骚话,听听别人的牢骚也比独自一人郁闷健康些。



Conway 法则 - (计算机)系统的设计构架取决于开发团队的组织构架

他举例:三个小组合作开发一个产品,最终这个产品必然包含三个以上明显分割的模块,模块间的耦合度取决于各开发组之间的交流程度;

又举例:某人开发一段较复杂的代码,日后另一人追加新功能。后者一般不会直接改动前人的代码,而是倾向封装、继承、扩展,于是最终的产品可以明显看出这个人和那个人的痕迹。

一年多前,我在帮老板重新整理分类已完成的工作内容时认识到这个的(那时我还没读过这个定理)。我起初倾向严格按功能模块分,结果各组都不干,理由是权责要明确,一个东西必须有且只有一人负责,我认同。可组织架构常常会变化 —— 有人离职,有人加入,有的组合并,有的组拆分,有专家从这个组调到那个组仍要兼顾前组的工作但结果记入后组的绩效评估... 所以模块间的关系也就跟着改来改去,时刻反应组织的变迁。

一年后我参与开发的这个产品有十多年的历史,该产品的代码几乎用到了所有可以想见的设计模式,从外部进行一个最简单的数据库读写需要二十个以上的函数层层引用。起初我以阴谋论猜度,认为这是劳方糊弄资方的一种方式,自己给自己找活干,有活干就有饭吃,有更多的活儿干就能招更多人,自己也可以管更多人。看过这条定理以后,我不得不承认自己的浅薄。人人都有自己的想法,最终的结果是诸多想法的合力,也就是说,这个结果很难被阴谋家设计出来。十多年,经历成百上千人之手,产品反映的是组织的变迁。不同国家语言文化的几伙人一起合作,模块划分得越清楚,沟通成本越低执行效率越高。

说到底人员的管理决定了产品的设计,鸡的屁股决定了蛋的大小。



Coefficient of Inefficiency/低效系数定理 - 会议的人数效率呈反比。

皇帝要分宰相的权,就设三公九卿三省六部大学士军机处,想办法把内阁搞大。上周几千人乌泱乌泱聚在帝都开会,每人轮不上说三句话,不出意外果然没通过什么建设性的方案。这定理还有个说法:会议的重要程度和人数呈反比。应用到工作中就是,当你被指派干一件特别不想干的事儿,形式上最积极结果上最消极的应对就是,找来所有相关方开会。



Segal 定理 - 带一块表的人知道时间,带两块表的人不确定。

那么带三块表的人呢?



Murphy 定理 - 可能发生的坏事必然发生。

程序员知道即便错误率万分之一的程序也绝不能用在银行系统上。否则几万单交易里一单出错都够让银行关门。虽说这个定理反过来说也一样,可能发生的好事必然发生。但人对痛苦的刺激反应比快乐强烈。银行也绝对不会因为那一万次里九千九百九十九次算对了而感到沾沾自喜。不光程序员,其它从事工程专业人,一旦进入细节处理,就成了只看到半瓶水空了的悲观主义者,而且他们肯定早已听说过这个定理。如果你不认同这条定理,凡事都只看到光明的一面,那么恭喜你,你是做大事的人。



Gall 定理 - 任何可以运作的复杂系统都是从可以运作的简单系统发展而来的。

中国人说“一屋不扫何以扫天下”,一样的道理。与其幻想一个需要付出极大代价还不知道是否能实现的系统,还不如先做个小样,看看它能不能运作,如果能,再搞搞大。



Sowa 之标准定理 - 每当一个主流机构开发了一个系统并宣称它是某某(协议、技术、产品)的官方标准,在随即而来的广泛推广中,一个更简单的系统会成为这个某某(协议、技术、产品)的事实标准。举例:
  • PL/I 的推出使得 COBOL 和 FORTRAN 成为商用和科学用编程语言的事实标准
  • Algol-68 的推出使得 Pascal 成为学术编程语言的事实标准
  • Ada 语言的推出使得 C 成为国防部的事实标准
  • OS/2 的推出使得 Windows 成为桌面系统的事实标准
谁有权定标准?政府部门或是像 IBM 这样的业界领袖可以定“官方”标准,但定不了“事实”标准。采用哪个不采用哪个,最终选择权仍在用户手里。关键字“更简单”呼应上面的 Gall 定理,自顶向下的设计除了面临无法实现的风险,还面临无人理睬的风险。



Sarnoff 定理 - 传播网络的价值和其受关注程度呈正比。

说实话我到现在也不怎么理解“眼球经济”。为什么网站要流量为王?因为它本质上属于媒体业,流量多了它可以卖广告。可为什么别的行业都要效仿,搞些叫好不叫座吃力赔本赚吆喝的东西,都把自己当媒体了么?



Thomas 定理 - 如果人们认为情况属实,那它将会造成真实后果。举例:
  • 有谣言说某家银行要倒闭了,人们信了,都去挤兑,结果银行真倒闭了。
  • 七十年代石油危机中,有人谣言说厕纸将紧缺,于是大家都开始囤积厕纸,搞得厕纸真紧缺了。
  • Keynes 选美定理:人们买股票看的不是其本身价值,而是预期他人对这支股票的判断。

因果有时可以相互作用,经济学就是分析人类行为的逻辑。



Goodhart 定理 - 任何社会的或经济的统计数字,一旦成为指导政策的指标,它就失去了信息价值。

这就是为什么天朝老百姓不怎么相信“鸡的屁”(GDP)。这就是为什么两年前我拒绝开发用于本部门的自动 KPI 系统。黄仁宇说用数字管理国家比用理念靠谱,我同意。但数字衡量一个国家、一个公司、一个组织、甚至具体到每个人每件事,真正实现起来困难颇大,计算公式的公平性有争议,为防止作弊公式要时常调整应变。这些困难再加上权力者方面的压力会使得技术手段看起来像是出闹剧。搞统计的普遍被认为是无耻的骗子,很无奈,意志不够坚定脸皮不够厚的趁早别干。



Rothbard 定理 - 人们倾向专注于他们不擅长的领域。

真正有天赋的人不学就会,道可道非常道,他们凭的是直觉,别人看来很难的事他们觉得没啥可夸耀的。而那些天资不聪慧的人才勤勤恳恳不断总结经验教训一步一个脚印往前走。整天把股市术语挂着嘴边的人,绝大多数是外行。像我这样写起不老歌来一发不可收的话痨,非但不是职业写手,写得东西也并非自己所长。



Godwin 定理 - 随着争论贴的增长,贴中出现用纳粹或希特勒比喻的概率趋向 100%

此定理在表述上有时间和空间的局限性,因为人们的争论未必发生在网络论坛,也未必发生在二战以后的西方社会。任何时候人们激烈的辩论最终都是这么一个结果 —— 失去耐心的参与者给对手扣个大帽子,一棍子打倒。这事放到古代中国,造反发檄文就骂皇帝是桀纣,尽管谁都没见过桀纣;文革时代,两伙人武斗可以相互指责对方是走资派、帝国主义走狗、顽固的封建残余,不需要根据和理由;再到今天的网上论坛,汉奸与爱国贼,粪青和五毛党的标签乱飞,早已忘了讨论的具体问题是什么,人们只关心立场。

人非圣贤,到最后谁都可能失去耐心。所以轻易不要参与注定没有结果的辩论,如做不到就谨记“对事不对人”的原则,如果这也做不到,就享受吵架的乐趣吧。与人斗其乐无穷。



Sayre 定理 - 与任何争端的感觉强度成反比的是,其所涉利益的多少。(学院政治是所有政治中最遭的,因为奖金太低
括号中的是 Sayre 教授抱怨的重点,前面那段只是给自己的言论寻找理论依据。就我个人的感觉,在河蟹社会之下,那些大张旗鼓拿出来讨论宣传的东西往往只是鸡毛蒜皮,所谓雷声大雨点小;而真正的利益分肥都在私下里平和地进行,所谓润物细无声。真要把核心利益的东西放在台面上岂不天下大乱?



90-90 法则 - 起初的 90% 代码占用了 90% 的开发时间,剩下的 10% 代码占用了另外 90% 的时间。

这种说法表述不清(它意图用 90%+90%=180% > 100% 说明工程耗时远超预算),维基上该词条换了几种说法依旧表述不清。个人经验,软件工程用时很难估算,经常为克服一个的技术难点耽误好几天,有时甚至为了绕过一个克服不了的困难整个方案大改版。数数暴雪的《星际2》跳票了多少次,再看看开复老师爆料的 Vista 开发的坎坷,然后再问问自己有没有看见过每天正常时间上下班的程序员。当我和一个做建筑工程的朋友解释软件与其它项目的区别时,他颇不以为然 —— 其它的工程行业也同样有高风险的难关,凭什么软件是特例呢?

检讨软件这个行业,问题可能是从业员素质不过关 —— 还有哪个行业像我们一样有那么多的“技工”挂着“工程师”的头衔却连时间、成本、风险都估不准呢?还有可能是需求难以控制。人们不会要求一个建筑师造一条地球到月球的通路,因为傻子都知道那样行不通。但人们会向软件工程师提出类似的要求,因为没人证明过这样不行,于是项目就傻乎乎地开工了。写软件和造房子不一样,一切皆有可能。

2008年9月8日星期一

硬盘杀手

如果说 Wintel 联盟是 Microsoft 拼命增加软件复杂度,让 Intel 的 CPU 生意越来越好,那么和硬盘生产商穿连裆裤的是谁呢?

看看下面这张截屏就知道了:



McAfee Antivirus (mcshield.exe) 把所有别的程序读取的内容预读一篇,相当于 All ReadByte x 2。

剩下就是 Google 的新浏览器 Chrome 了,刚打开这东西不到半小时,它对硬盘的操作(读取/写入)居然是运行了一个多小时的两个 p2p 软件 (BT & eMule)之和。加上 Google Desktop 几乎占用所有硬盘写入操作的一半流量!!!

用工具追踪一下,发现 Chrome 大多数时间是在写一个叫 C:\Documents and Settings\\Local Settings\Application Data\Google\Chrome\User Data\Safe Browsing 的文件,想来大概相当于 IE 里面的 Cache,而这个文件居然不超过 40MB 。难道 Google 不能把这个文件在内存里实时更新,然后定期备份到硬盘么?

Google 在搜索领域的强势正是源于她迅捷而健壮的分布式海量文件系统 (file system)。可能,Google 的主要开发环境有自己的文件系统,而不是 Microsoft 这个用了十年的 NTFS,以至于 Chrome 的开发人员习惯性地依赖于文件系统而不是内存。于是我们 Windows 用户得到了一架在公路上奔驰的长着翅膀的飞机。

2007年5月30日星期三

气候变暖的罪魁祸首

全球关注气候变暖。大家都知道这样下去不得了,要阻止这个趋势就要找到罪魁祸首,然后法办。在这个问题上大家产生了分歧。

欧盟说美国是温室气体排放最大户,而且至今不肯签署《京都议定书》,所以美国是罪魁祸首。美国说如果世界上只有一个天堂般的美国决不至于如此,发展中国家才是罪魁祸首。中国说,发达国家应承担此问题的历史责任,我们才排了几十年,你们排了上百年,不论相对数量还是绝对数量上来说都比我们穷国恶劣。

绿色环保人士说,廉价航空公司和短途飞行路线是罪魁和祸首,还有日益增加的机动车。山里人和小岛居民说,你们城里人能源消耗量占全人类的八九成,所以你们是罪魁祸首。崇尚核电的法国人说,你们那些还在用燃料发电的人是罪魁祸首。德国人反唇相讥说你们法国的核电也不干净。

被告席上已经站了这么多人,这场官司注定短期内不会有结果,只能任凭情况继续恶化。既然如此,我为什么不找找我身边讨厌的东西把它也推上被告席呢?

于是我说,蚊子是气候变暖的罪魁祸首:

首先,它有动机。蚊子只在热天出动,它是气候变暖的收益者。试想那天四季如夏,蚊子还用冬眠么?

其次,它有作案手段。它们每晚无休止地在我耳边飞来飞去,杀虫剂,蚊香,全不管用,害我只能开空调钻被窝。且不说空调产生的热量,居民一开空调,发电厂就要烧更多的煤,产生更多的二氧化碳排入大气层,导致温室效应加剧。

劣质杀虫剂和蚊香的生产厂商也该在被告名单上,哼哼。

在我上网发这些牢骚的时候,又有多少电能被浪费... 都怪该死的蚊子

2007年5月23日星期三

敌台

去年一年的时间都在做 podcast 相关的项目。至今订阅的 podcast 却只剩下“德国之声中文广播”这一个,许多私人的 podcast 就如私人 blog 一样,说停就停,也不能保证每天都听到新鲜的东西,所以最终还是选择了这种官方电台。每天骑车上下班的时候,知道天下发生了些什么事,听听不同人的不同看法也不赖。

这种行径放在三四十年前就叫“收听敌台”。我爷爷就是因此获罪,一关就是十年。爷爷在1949年以前就在海关工作,外语比我强,听英文电台毫无障碍。本来关起门来听收音机是个很私人的事,被人揭发只能怪自己没管住嘴巴。一个邻居也是同事(那时候一个单位的人都住一起,方便互相监督)得了重症,在国内就算绝症了,因为国内没有办法治。爷爷听“敌台”,里面说有某种药可以治此类疾病,于是爷爷就把这个信息告诉了那邻居。虽说不一定能买到那种药,可至少也给他一个盼头。然后就运动了,然后就揭发了,然后就坐牢了。

其实光一个“收听敌台”也不至于判十年,爷爷还有别的“问题”。比方说他知道现今执政党的腐败其实从1949年以前就开始了。即便在最困难的年月,苏区还是能通过国民政府海关里的内部关系搞到国外的奢侈品,为了建立这种关系行贿也在常理之中,爷爷想做个正直的人,于是就给人恨上了。

爷爷过世多年以后,我还时不时地想起他。他这一辈子的经历至少教会了我这些道理:

1、审时度势。同样干一件事,不同的时间,不同的地点,得到的报应也不一样。

2、做好事也要看对象。东郭先生和中山狼的故事不光发生在童话故事里。

3、腐败源于权力,且与权力成正比。

4、正直和其它一切原则一样,想坚持就要付代价。事先考虑清楚,事后别后悔就行。

2007年4月13日星期五

外资银行的服务

终于,终于到帐了,我的美元。漫长的等待,历经磨难。

去年三月,我离开了工作四年半的美国公司,顺手抛售了部分股票。代理公司叫做 Smith Barney 是 CitiGroup (花旗)的子公司。一直很忙,没空理这摊事,所以就忘了把钱取出来。

今年一月十六号,我突然想起这事,于是半夜(美国的上班时间)用 Skype 给他们打电话,听了一遍又一遍的音乐后,客户服务把我转到另一个号码,又是一遍又一遍的音乐。在问了几个问题,确认了我身份以后,我说我要取钱,她说好的,“serveral days” 以后我会收到支票。我说谢谢。

二月十二号,还是没有收到支票,于是我又给她们打电话。她说支票早已寄出,我说就是没收到。我问能不能直接转帐到我的信用卡,她们不作理会,只说会给我再寄一次支票,还是要等“serveral days” ,我说没问题我可以等。

三月二号,我收到了支票。致电本地花旗银行(当时我正站在他们浦东办事处的楼下),问他们可否来兑现,他们说最好去国内的银行拿,因为花旗的手续费很贵,大约三四百块人民币。我理解这个业务员是替我着想(服务费标准不是他定的,他只能在自己的职权范围内最好地替我服务),于是我就去了旁边的中国银行。排了一个多小时的队后,终于轮到了我,我说兑换支票,营业员小姐说看了看我的证件,说这与支票上的名字不符。原来我的姓名加在一起是三个音节,美国人把我名字的第二个音节当成了 middle name 给省略了。

我又在半夜给美国的银行打电话,抱怨这个问题,我说你们要给我改名。她说你要填表,我说我从前填过的表上写的没错,不信你去查。她问我能否传真我的护照(我家没有传真机),我说没护照,她说驾照也成,我说没驾照,她说身份证社保卡也凑合,我说上面全是中文给你也看不懂,她说她要去咨询她的经理来处理这种特殊情况,我提醒她这个特殊情况是由于她们的失误造成的,她让我别挂电话。于是我足足听了二十多分钟从地球那边传来的音乐,她终于回来了,说很发生这样的情况她们很抱歉,立刻给我正名并留下我的电话号码。我给了她手机,虽然没有指望她们真的会打电话来。我还说改完名就给我再寄一张支票,因为有过一次支票遗失,这回要快递加挂号。她说没问题,费用她们全部承担。

三月九号,我收到了支票,这回名字是对了,可电话号码少了一位。我的号码中有连续的两个数字重复,她们又给省略了。我想反正她们也不会给我打电话,错了就错了吧。于是去了招行(因为我有招行的一卡通和信用卡),在支付了押金以后,他们说让我回去等个三四十天,如果支票是真的,钱直接打到我的一卡通,如果是假的,押金就没收了。我同意。

四月七号,回家收到了花旗银行的一封确认信,关于上次改名的事宜。可气的是,这回名字又错了,汉语拼音里不乏两个元音连续的字,她们居然把这两个元音顺序颠倒了。我开始怀疑能不能拿到钱。

今天登陆招行的网上银行,发现账号里多出了这笔美元。虽然在花旗银行的账号里还有未售的部分股票,一个错误的名字,一个错误的电话号码,能到这一步我已经很欣慰了。老美对中国客户不了解,情有可原,就如给我们一个印度人的名字,我们很难念出很难拼对一样。没有出现上次在工商银行把我气得几乎要抡椅子砸玻璃的场面,很大程度上因为她们态度还不错。

今年外资银行要大举入华,招募了解本地的业务员,加上他们固有的管理方式和规章制度,国有银行的日子看来不好过。这对我们老百姓来说,是福是祸还很难说。别忘了国有银行还有超过世界安全警告线以上的坏账,他们要倒了,整个货币体系全部崩溃,不管我们的人民币在哪个银行。