Archive for “ 2011 ”

Jobs, May You Rest in Peace

早上起来看到新闻,一代大侠乔帮主驾鹤西归,距离苹果iphone 4S的发布会只过了一天。

 

从来不是果粉,对Apple在系统垄断,平台封闭,靠硬件发财,以及一些泛概念化的所谓发明创新也一直颇有微词。但乔布斯本人还是非常值得尊重的,不是因为他“发明”的那些硬件,而是他以一己之力在全世界范围内成功推广了为内容付费这一理念。(讽刺的是,倡导这一理念的Apple的主要收入来源依然是硬件)或许从某种程度上讲,乔帮主最大的成就是说服(迷惑?)人们将Apple的硬件当成服务来购买吧?如果只有支持者的缅怀,会逊色很多,能够让“敌人”也加入到哀悼的行列中,才彰显伟人本色。乔布斯做到了,他才真的无愧“舵手”,“领袖”这样的称谓,无愧“万岁”这样的欢呼。

 

最近在赶deadline,实在没有精力展开多说。仅以此寥寥数百字,表达一个基本对Apple持负面印象的IT民工对一代帮主的深切哀悼。老乔,一路走好,愿你安息!

The Story of A Software Company

今年到目前为止看到的最内涵的一篇文字,前两天网上在流传精简版的,今天终于看到完整版了,转贴如下,IT民工们自由围观。原帖地址:http://www.dapenti2.com/blog/more.asp?name=xilei&id=50130,以下转载除修改了第一段的一个bug(俄罗斯 => 苏联)以外,未做其他任何改动。

 

60多年前,我们公司一群无知无畏充满理想的程序员从苏联那里里找了一个免费的开源软件框架,进行了汉化以后,写了几行漏洞百出的代码,产品居然上线运营了。系统试运行期间还算正常,但是随着系统外围接口的增加,系统固有的问题就暴露出来了。30年前,新CTO实在看不下去了,重构了部分代码,改进了部分用户体验,但框架依旧是原来的旧框架。这几年,新代码和旧框架严重不兼容,产品濒临崩溃,用户流失严重。关键是那个开源框架设计思路有问题,还没哪个使用它的产品长期稳定运行过,后来连俄国人自己都抛弃不用了。

其实这个软件最初设计思路就是单线程设计,这有一个前提就是单线程必定是强壮和稳固的,但是这个前提只是存在于理论上,并没有实例证明。因此当世界开始流行多核处理,并行处理,甚至已经有部分软件实现了云计算的时候,单线程设计的先天缺陷就暴露出来了,主要问题在于单线程占有所有系统资源而且不受控制,甚至连原来系统的保留资源都被占用了,线程的运行方向就变得不可控,系统鲁棒性经受了严重的考验。

这一切在用户界面上,就是隔三差五跳出应用程序错误。当用户试图开启调试模式的时候,由于单线程控制了所有的输入和输出,象资源利用率、资源效率等指标都被屏蔽了或被修改了,但是系统还告知用户“由于你的操作不当,系统资源暂不可用”,用户还只能点“确定”按钮,然后等待资源可用。

相对而言,多线程的设计考虑到了多线程并行运行,或暂时某一线程优先、其他线程等候等情况,虽然存在线程之间切换成本,有时候也存在算法不当致使多线程抢夺资源的情况,但是多线程毕竟保证了系统的稳定性,用户可以借助不同的线程完成程序的运行,至少在用户体验上没有本质差别,运算结果也能基本准确。

云计算则更为领先,云计算使用了更先进的虚拟技术,采用分布式计算的方式来处理用户请求,在短时间内作出响应。用户可借助某些通用组件和程序包,实现跨软件联合计算运行。但是目前,在虚拟技术的耦合度上还存在一些问题,比如某些虚拟技术一发动全身、存在安全组件等级下降等问题。

当然了,单线程、多线程和云计算互相并不兼容。单线程指责多线程技术在业界形成了垄断;多线程则一直都在打压云计算的市场份额;云计算呢,到现在还没承认单线程资源分配方式的技术标准!

但是从目前的用户体验来说,单线程已经到了几乎难以为继的地步了。这时我们该怎么办呢?第一种方法是继续修bug打补丁,补丁实在太多,工程师和现有的经费几乎耗尽了,而且不知道打补丁还能几年。第二种方法是换个框架重构代码,但是这种重构会引起系统巨大的变动,也许是一个崭新的系统,也许系统会崩溃。第三种方法是干脆换掉这些程序员。但是程序员号称他们对软件开发作出了革命性的贡献,只可以程序员控制用户行为,绝不允许用户另行选择。可是用户居然发现这些程序员拿到了其他公司的Offer!

大家说说,这个软件公司该怎么办?

Category: 拿来主义  2 Comments

How I Dreamed Web 2.5 Would Be Like

前不久曾经写过一篇微博问题之我见样的文字,然后跟LYZ童鞋热烈地越洋讨论了几个回合各种信息推广机制的利弊优劣,颇有点感触。最近G+的迅速崛起及开始陆续显现的对新浪微博的各种诟病(稍远点的如郭美美事件暴露出的认证机制问题,“长江灌溉人民”的死讯谣言疯传;近的可参阅《我为什么离开新浪微博》(宋石男)和《每个人都是受害者——致新浪微博》(贾葭))让这类的话题再次火热起来。今天借着对G+的新鲜感,和与LYZ讨论的余热,再絮叨几句一家之言。(其实所谓的“今天”已经是两周之前了。最近私事比较多,终于改出来才发觉已然错过了7月,又不完美了啊,sigh~)

 

0. 在以下提到的所有(技术)问题之外,天朝BT的信息审核机制和怯懦的网站为苟且生存迎合主子的自我阉割体系是所有天朝产品的另外两宗原罪。本文无意在此纠结,只是有些话实在不吐不快,故在正式开始之前还是单独腾出点地方来骂一下,发泄点怨念。好像有个说法叫什么“围观改变中国,微博改变一切”,而 且后一句话居然还是开复的书名。没看过原著,不晓得这是否真是李君的核心观点。但愚以为,微博“解决”的问题越多,就越暴露出天朝解决问题的渠道是多么的 不顺畅。指望一个体制内的喉舌成为诊治/拯救满身毒瘤的希望之光,用屁股想都知道这事有多么不靠谱:无非就是佛爷道爷基督阿拉共唱赞歌,国家审计署进驻红 十字会,各路赚家谑者叫兽力挺高铁而已。培根爷爷早就教导我们,知识就是力量,5毛雇到的文盲网管已经跟不上时代发展,满足不了需求了。为了真正建成和 谐社会,不把越来越多的“TG一骑讨,代表KMT消灭你”这样的声讨当补药吃,在高通胀的现状下,建议朝廷以后雇人,工资给涨到5毛1吧。

 

1.  我们生活在一个高校录取通知都可以淘宝体的泛娱乐化的时代,以新浪微博为代表的各种天朝SNS(以下简称微博)则是迎合这个大环境而被创造出来的。彼得. 杜拉克(Peter F. Drucker)早在1999年就曾经指出,信息(Information)才是信息科技(Information Technology)中的主导,除去信息的科技只是一具空的躯壳。同样的,信息才是信息传播的核心,只关心传播效率而忽略了信息质量甚至传播成本对时代跃升本身没有什么太大的意义。微博很大程度上借鉴自以Twitter为代表的西方主流SNS,却舍本逐末地以其技术形式作为吸引眼球,继而求财的手段,充其量只能是一次“有自主知识产权”的高仿行为,对行业进步没有推动。个人拙见:互联网的下一波发展/创新方向,应当是提高覆盖广度而不是在有限范围内增加覆盖强度,即如何让原本较少被覆盖甚至不被覆盖的网民和非网民也能通过互联网方便地获取信息。

 

2. G+与之前的SNS产品相比较,一个最大最明显的变化是她开始限制信息的爆炸了。或者,用“限制”略有贬义的话,可以说她开始规范/控制/疏导信息,使之由先前的无条件四面八方辐射(病毒特质?)转向按作者意愿定向传播了。这种控制更符合正常的人类活动方式,带来的好处是显而易见的。个人觉得这样的控制还不够,应该继续强化:比如至少还要有“对圈子内除…以外(all but … in the circle)”的消息广播机制,应用于需要对群体内少数个体保密的各种沟通交互(策划生日聚会,征集匿名意见,等等)。除了对信息的推出(push)方式加以约束,对接收(receive)到的信息也应当有一个过滤(filtering)。这方面gmail的过滤跟邮件优先级都已经提供了现成的模型,相信也不会太难。另外从Sparks模块已经看到了Google将自己混饭的根基“信息检索”融入到社交系统当中的意图跟初步实现,虽然目前这个部分还是过于简陋了一点,但以Google的技术实力,按照这个思路干下去,假以时日,一定会在这个方向收获丰厚的回报。

 

3. DRY(Don’t Repeat Yourself)的思想在软件工程领域已经日益普及,而这一先进的思想也终将在互联网领域推广流行。真正以个人为中心,不以运营商而差异的的网络组织结构终将形成。一直对Google家的产品偏爱有加的原因不是她的搜索引擎比Bing或者度娘准确多少个百分点,也不是她那“永不作恶”的好名号,而是赞同她始终坚持把所有的服务都与gmail账户牢固地绑在一起,围绕着一个固定核心扩张的发展思路。只要把Email的收发查阅规则稍作修改,就是一个活生生的另类社交网站。稍微说具体点:在现有email机制的基础上增加一个虚拟收件人ALL(或者叫PUBLIC),将寄至此地址的邮件定义为邮件主人的公开广播(不需要真正发送给任何人,只需要像草稿一样保存在自己账户中,给与一个特别标记(flag)即可),然后再创建一个有限只读权限的匿名账户,用于访问任意email账户中标记为to ALL/PUBLIC的邮件,则通过这个接口(受限的匿名账户)即可从某些层面实现不依赖于运营商的信息检索。除了降低信息发布成本,节省传播资源,保证信息质量等显而易见的种种优势,这样的机制甚至还能在一定程度上避免信息审查,同时也为有助于构建起一个更有效率的信息反馈体系……(本段提到的部分内容还处于腹稿阶段,一些思路、模型及流程都还没来得及被完善,继续欢迎感兴趣的童鞋来一起头脑风暴 :P)

 

4. Web 2.0发展了这么久,信息爆炸了,人比从前更“核心”一些地被对待了,互联网不仅平台化了,更连带着把世界都整平了,但是仍然有太多的问题没有得到完美的解决。比如像LYZ童鞋那样的有正经信息需要发布,并且需要粗糙的东西在流通的过程中涤尽毛刺,历炼成金需求的,还是在纠结于渠道这样的基础问题。如果说Web 3.0的语义世界还是像共产主义那样遥不可及,那么下一代的革新,比如Web 2.5,一定会在这方面有所突破。Facebook,Twitter等网站提供了一种在你的个人网络内部广播消息的快捷方式,也有助于你在一定程度上扩展圈子(结识朋友的朋友或者不太熟悉的校友/同事),可归根结底,信息仍旧是按照人脉网络传播的,而且传递的内容是死(固定)的或者半死(原始信息及有限人的部分评论)的。Google Docs已经全面引入了版本控制的概念,如果结合上面提到的对Email账户的“升级”,同时再把Git的一些理念融合其中,让传播的主题“活”起来,将所有反馈最终回归信息源(呃,想到Matrix III了)就真的指日可待了。(同上,部分想法萌芽中,欢迎来信来电共同切磋 ^_^)

 

以上,算是概括地把最近的一些灵感跟初步构想简单梳理了一下,算一篇半技术,半白话的“伪代码”吧。最后附上一张最近被广为转载的图,看看各个SNS网站到底有啥不同吧。(这图是开始写作本篇的直接灵感跟诱因,但时隔半月,已经完全不知道它当初是为啥成为灵感跟诱因的了……)