沉默了很久,但是这句话要喊出来!良心能够保护你自己,问问自己的良心吧。
老婆写了一篇文章很不错的日记发生在我身上的小故事来谈谈信用问题,里面记录了上个周末我们逛灯具市场的时候遇到的一些“信用”问题,我们总是需要费神的侃价,才能稍微看清我们买的到底是个什么档次的灯。之所以感叹这个司空见惯的事情,是因为我们去澳大利亚旅游的时候看到了很多的诚信,而诚信在商业上体现在定价的自信上。我们看到的澳大利亚商人,尤其是小商品市场的商人,他们对自己的定价充满了自信。我们经常可以看到如冰箱贴这样的小商品,在他们的摊位上可能明确的写着一个3元,两个5元,3个7元。我们习惯侃价,所以问老板是否可以优惠,老板会指指板子上写的价格。那么我们会追问,那4个呢,老板会拿出计算器,3+7=10元,完全按照他写的规则来。这种死板的定价方式体现的是老板对定价的一份自信。回忆起来那里的大部分人都有这种自信。
而继续回忆,在澳大利亚我们不仅看到“自信”,更多的还是信任。比如,我们去住他们的度假村,我们说我们要出海去玩,老板就拿出两条大浴巾给我们,说出海这个用的上,当然他们信任我们会在离开的时候还给他们。街边的饮水机旁边还有抽拉纸巾,遛狗人多的地方有免费的宠物便便袋子,国家植物园是开放的,公园里面的芒果树上掉下的芒果大家也可以自助,社区里面也有公用的烧烤架,众多的方便实际上都是基于信任,大家都回按需消费这些东西,支付的是“信用”,积累的也是“信用”。
我们宏观的问问自己,“诚信”和”信任“哪里来?我觉得从良心里面来。用良心这个词是因为它非常朴素,我们也可以说它是”道德标准“。我相信朴素的感情里,人都回体现出良心。
上周和ThoughtWorks的胡凯,是我在Cruise的队友,热爱背包客文化。他和我说起曾经背包在云南步行过3个月,经常是走饿了就去田边的老乡那里讨口饭吃,老乡经常就分享出自己的”馍馍“来,并且绝对是不要胡凯的钱的。遇到好客的,胡凯还被邀请去人家一起吃过午饭,临走还拿到了老乡现采的很多脐橙,然后又拿脐橙作为报酬搭了顺风拖拉机。听起来感觉很美好,背包客非常崇尚”缘分“。我认为,”缘分“在这里其实就是朴素的良心的体现。我记得动物世界说大象是不愿意看到同类的尸骨的,他们会远远的忘着其它大象的尸骨,并且哀鸣,即使完全不认识这些尸骨的主人,并且他们走近尸骨的时候都回被“吓跑”。我觉得大象的本能是一种设身处地的朴素感觉,他们怕自己死掉,所以会对死者表示哀思。那么对于人类,这也可以更加高级的表现为看到别人有难愿意帮助,看到别人高兴自己也会高兴。
看来完全不相关的事情,其实都是良心。有良心,你可以看到朴素美好的感情,没有良心,你可以看到互相的不信任,欺诈,甚至是幸灾乐祸,还有很多到了恶毒程度的感情。
现在,还没有解释为什么一定要写这篇blog。因为有毒奶粉的问题。因为我怕我也成为沉默的大多数。
在我们公司,因为零食和饮料是免费供应的,所以冰箱里面的东西往往是提前储备好的。这次的毒奶粉事件我刚听到的时候没有在意,因为我国的食品安全问题是常事了,常见也就容易麻木。前天收到我们公司的一位新妈妈给公司集体发的一封信,提醒大家不要让声音就这样越来越小,提醒我们要注意身边的各种奶制品的安全。同事她也说到我们公司冰箱里面的蒙牛奶已经全部更新为三元的了,而提醒我们公司更换奶的人是我们一位国外的PM。听到此事有点感慨,我们公司的外国同事在公共问题上都有很强的责任感。以前有人上班用音箱放音乐,我的同事bobby就发信解释因为每个人的品味问题,所以可能每个人对所放的音乐的反应不同,所以提醒大家最好用耳机。后来有人用P2P软件看电影,网管出来说希望大家不要用了,bobby也站出来写信跟大家解释为什么。我的意思是说,我们不能沉默(龙应台的文章:中国人,你们为什么不生气?),我们要负起责任。公共责任也是良心的体现。
我的文笔不好,写点文字总是形散神也散。上周周末我们非常成功的又举办了一次Beijing Open Party活动,我这次又当了主持,回家的时候我感觉非常累,身体累,但是精神上非常满足。因为我感觉我为社区贡献了我的力量,这是我的责任,我认为它是我能做也应该做的一件事。我又想起我平常面对我的工作,不管是我在新浪的时候做新浪邮件,还是到了ThoughtWorks工作在Cruise和Mingle项目之间,都有一种良心在驱动我所写的程序,我怕我写的代码会对后来维护代码的人带来麻烦,所以我感觉我没有写出什么不负责任的代码。我怕,但是怕的感觉让我按照了良心做事,没有出轨。
那么如果我们的同胞都能保持孩童时的朴素感情,我想他们一定不会越轨去制造这么多可怕的食品安全灾难,那样我们就可以有足够的自信,有足够的自信为自己的服务定价,我们就可以在离开世界前都无愧于良心了。从我们自己做起,不要再带来新的灾难了。我们不能闭嘴,我们不能保持沉默!我们要告诉自己,也要告诉别人,我们有权生气,有权表达我们的想法。

中午徐X和米高讲了一下Rich client的架构。其中徐X讲的是如何从单机分层系统到Rich client。
实际上最早的单机分层系统的UI部分激发了OO作为界面的编程模型。然后分层模型为了C/S结构发生了一些变化,目的是共享数据和通信,但是由于OO在远程调用上面的失败应用(Corba,EJB,Dcom),所以让人对OO产生了怀疑(实际上只是用错了地方)。而后又发生了B/S的变化,是一种完全的中心共享方式,原因是HTTP的无状态性造成客户端很难保存state,所以就有了完全中心共享状态的架构。而后通过通讯的增强(Ajax),客户端的状态保持逻辑通过异步通信来增强,所以产生了更好的用户体验。但是对状态同步的进一步要求和对会话状态保持的进一步要求让Ajaxian了的应用还是有点难以承受,所以Rich client又回归了。当然回归的时候同时带来的还有新的编程模型,如基于标记的声明式编程模型,还有更方便View-Model同步(通知)的数据binding机制,布局管理器,绘图支持能力,多线程能力,内嵌的视频编解码能力。其实WPF作为Windows上的新型UI编程模型他的确从Mozzila的XUL还有Adobe的mxml吸取了一些经验。上面这些是徐X阐述的主要内容,很精彩(最后的编程模型是我加的注释)。
而后米高做了一些技术层面的对比,主要是对比了Web和rich client的区别,不过我比较失望^___^,因为对比有失偏颇,原因是米高只用了5分钟准备ppt。
最后是我的意见。我现在已经不想割裂的分开Rich client和Web上的RIA,实际上目前他们已经有走向统一模型的趋势。
去年在InfoQ写文章的时候我就表达过这个意见。今天徐X也强调了,经典的MVC实际上很重要的是解决了数据共享(同步通知问题)与状态(会话)保持的问题,所有的架构问题其实都围绕了这个问题。首先RIA里面已经开始了layout数据分离的加强过程,比较明显的就是声名式的组件组合配置,还有数据绑定模型,这个在Flash和Silverlight还有JavaFx都有着重的解决,而且方向都很类似。其中Silverlight其实是一个减缩版的WPF。然后我们从架构方面来思考,解决状态共享和传递是通过增强的双向通信能力来完成的,很多RIA框架在开始提供web socket模型,这样让通讯超过无状态的且单向的HTTP,包括HTML5(目的是扩展Web上常用的一些Object,增强Web的编程能力,且让很多元素得到正确的语义,这个与XHTML2的关注点不同)的草案里面也有Web socket(类似socket的编程对象,可以实现二进制协议的面向连接的通讯)的提案。当然些努力就是让实现消息传递的开销更小,时效性更高,配合线程概念的支持,就可以实现复杂的基于消息的异步界面逻辑(这会极大的扩展RIA应用的能力)。因为通讯其实是解决状态共享的一个方向,通过高效的消息通知达到多个消费端的状态共享。另外一种解决Browser端状态同步(这里主要指客户端与服务器的数据库同步)的方法就是离线存储能力,这样削弱客户端对服务器的依赖。这种解决方案的代表就是各种Gears,Google gears,dojo offline等等,他们在浏览器里面嵌入sql lite一类的数据库,让客户端有自己的结构化存储能力,对于没有多客户端数据同步要求的应用来说离线方式可以让客户端形成完整的编程模型,通过sync机制在连线的时候进行数据同步是一种非常帮的RIA发展方向,从这个角度它已经是Rich client了。
那么可以扩展一下。我们知道Lotus Notes有服务器端replication的模式,离线会存在本地,连线的时候再同步。而对于另一些应用,极端地如Skype,他对实时的同步要求很高(当然它属于通讯类应用,也就是3C中的Communicate,而不是Content system),Skype的解决方案就是p2p。如果RIA有了socket(当然还有跨域支持),有了多线程,那么p2p是不是也不算难事了呢?状态同步通过p2p来实现,虽然不是可靠的通讯方式,但是却符合Internet的最大努力原则,所以我觉得这两种技术的结合的确很容易让RIA和Rich client不在有明显的界限,未来的目的就是融合。所以,要注意的是为什么微软拼了命在推Silverlight,而且拼了命的公布了Mac和Linux版本的Silverlight,其重要原因就是让WPF的模型渗透到RIA,用Rich client围攻RIA,来解决Adobe用超级NB的Air这个RIA衍生来围攻Rich client的困难。
这样,我们知道2年前开始声音渐强的Offline storage和越来越强的绘图,data binding的意图了吧,融合已经开始了,目标当然就是吃下这个大平台,然后成为最大的赢家!

Limo说我总喜欢把twitter的内容和google reader贡献也聚合到我的wordpress (blog)里面是个非常不好的“恶习”。可是我觉得实在是没有办法,因为现在我能产生的唯一一些有价值的信息估计都在twitter的bitching里面或者google reader的人肉过滤结果里面了。当然,如果3个以上的朋友在twitter或者邮件里面也同意Limo所说我就停止这样的做法。
博文标题说“防止脑子坏了”是因为最近一年经常发生上下文丢失的事情,就是说本来是想做事情A,但是实际上却转去做了事情B、C、D,结果最后一件也没有做好。还有一种情况是要实现一个目标,结果遇到了问题A,结果为了解决问题A又发生了问题B,我又调查了问题C、D、E都没有解决问题B,造成最后很疲惫的一件事情都没做好。我觉得这种情况发生的原因是“思路的丢失”。在一个人的思考习惯有问题的时候就容易发生这种丢失思路的毛病。
这种丢失思路对于我这种看到什么都感兴趣的人来说就造成了什么事都做不专。可是我一直以来是以做事情做的专业自居的(为了我的自信心,不要反驳我的这个说法)。在和Limo pair一些东西的时候我也发现了这种情况,他说你做事的方式有改进的空间。因为我这个人本性里面缺少决断力,所以做事犹豫,所以就需要更多的理由来支持自己,所以非常容易发生分支思路。如果所有的分支思路都去cover一遍,那么付出的努力就会很大。无法让问题收敛并最终达到一开始的目标。
我现在已经意识到了这个问题,我正在思考解决的方法。我听说钱钱同学在学习决断力的课程,我相信用处不大,因为人的思考方式没有那么容易就通过学习班提高。今天我尝试了冥想的方式,自己感觉身体的每一个部位的存在,发现这种类似健康治疗的方法对于集中注意力非常有好处,感觉这是个路子。然后开始执行的就是在电脑工作的时候开一个文本记录思路和所有做过(要做,尽量让要做的分支工作进入堆栈,推后处理),在其它地方做事就尽量用本子记录同样的事情。短期看,已经发现了做事效率的提高,起码减少了不少分支的发生。待续…

我是一名程序员,但是其实我从来没有规划过我会成为一名程序员。从小我的爸爸就培养我的各种兴趣,其实所有的兴趣对于我都是一样,兴趣本身不是目的,收获的是一种态度,这种态度会指导我的生活。所以我有了现在,我是一名程序员了。
那么这个引子的目的是想说我的程序员中最大的收获,这个收获就是方法和态度。这个名字就是敏捷,敏捷就是这几年以来我接受的最有用的一个态度。敏捷是一个基本的不能基本的概念,但是我在这里不想展开,但是敏捷的所有方法中都提到的迭代与反馈的方法。而人生也是这样的,年复一年人生在迭代,每年我们都会回顾这一年,给这一年的生活一个反馈。所以说基本上我们的生活也可以是一个敏捷过程,那么我们还没有做的是通过改变自己的生活提升自己生活的质量。这个过程我们可以用程序员的一个术语,重构来描述,当然这是片面的。重构就是在不改变程序结果的情况下重新调整逻辑体,为程序的改变或者提升可读或者正确性等尽行的改变工作。那么人生也需要自己从自己的生活中找到可以提升效率或者改进行为方法的地方,为未来的变化做好准备。
扯多了,但是这个问题其实简单,所有的自发的变化都有可能产生重构的效果。那么这一段时间我进行了什么重构呢?

1、开始消灭我的个人电脑的硬盘分区。从很就以前我的Windows机器的硬盘都是有很多分区,里面力图放相应的内容。但是后来发现这样一点也不好,因为最后数据的无序造成分区的最早企图的失败。那么后来我发现Unix的树型管理很科学,你也可以把不同硬盘/分区挂载到树的不通节点,很灵活。而且Windows的盘符其实和目录没有本质区别,但是灵活性奇差。硬盘的第二个变化就是买大硬盘替换多个小硬盘。我有80G+120G X2+160G+250G+320G这么多硬盘,放到机器里面实在费电,所以应该做的就是买500/750/1T这样的硬盘替换它们,这样省电省事。同时,随着关键数据的量的增大,逐渐我也要开始使用Time Machine备份来提高安全性。
2、使用好Mac,这个的确提升了我的效率,而且也有机会接触更多Unix哲学。不是说Unix哲学怎样,而是多学习很有好处。
3、读书。我在包里面放一本技术书、一本文学/哲学书、一本杂志,分不同场合查看。这个是好看簿的大野狼告诉我的一个方法,后来我发现真的很好。原因就是如果专注技术而忘记了人文知识的补充,那么人生就会暗淡下去了,所以这种方法引诱我丰富自己,感觉很好。
4、重新思考自己的选择。看着我去年写的wishlist,关于一些男人的玩具,如大液晶,好手机,昂贵的镜头,这些愿望在去年没有实现,但是去年的目标都是一些“超值”的选择,但是经过一年的思考,从《身份的焦虑》这本书里面我知道对物品的期待如果画一条满足度的曲线,那么得到那个物品以后这条曲线会急速下降。所以其实我能够享受的很多就是拥有前的期待,尤其对于这些男人的“玩具”也许逐渐提高你的期待才是更有意义的。比如,现在如果我再期待拥有的单反已经是D300+17-55 DX+105VR+S 10-20+SB800这样的配置了,而长焦我基本上放弃了。而去年购入的LX-2给我带来的满足非常之大,这半年来我也的确照到了不少的好照片,记忆满满。提高的需求可以延缓无谓的投资带来的资金损失,在头脑清醒后可以增加准确度。
5、经常整理你的物品/文件,删除或者扔掉没用的东西,这样可以减少下次整理它们带来的麻烦。减少没有必要的需求,让你能够享受的需求的质量更加高一些。

等我写到这里的时候我知道题目说大了,上面的这些还和敏捷搭不上边际。但是在实施和回顾的过程中,我发现我的生活变化了,变好了,这就够了。