为什么说读代码像读小说?

来, 随手那一小段 anime.js 的代码。看其中最简单的一段:

 str: a => typeof a === 'string',

这一句,就看得出作者遣词造句的能力。

比如,他用了三等号,就是 === ,而不是双等号 == 。这两个相等运算在这里都是可以使用的,运行结果其实是一样的,但是三等号更加准确的表达了这里作者想意图,就是要“严格相等,不仅仅值要相等,类型也要相等”。

类似这些,随手可见。细小的地方,看起来赏心悦目。而很多不严谨的代码,计算机执行起来没有问题,但是用词不够准确,总有帮他改正确的冲动。

再比如箭头函数的定义,还有 const 的使用。这些都是 ES6 的新方法,把原来的复杂的函数定义变得更加简洁,而作者也就很快的把本来需要好几行的代码变成了简洁的一行。

另外一个值得注意的,是一种类似排比的写法。本来判断一个变量是什么类型是一个相当琐碎的事情,因为正如这个函数写的那样,不同的类型用了完全不同的方法(这也是JavaScript不够优美的地方),判断是不是 数组要用 Array.isArray( ),而判断是不是字符串则用了完全不同的方法。

而这一小段代码搜罗了各种需要判断的类型,然后封装在一个轻巧的小函数里面,一段原来需要写做这样的代码:

if(stringContains(Object.prototype.toString.call(a), 'Object')) dosomething();

变成了

if(is.obj(a)) dosomething;

并且统一了所有的类型的调用。

同时,他还用了三个字母的代码来代表各种不同的类型,这三个字母的命名方式和国际机场的三位字母代码有异曲同工之妙,让代码简洁,整齐。不知道是不是只有我,我看着从上到下整齐的那一竖排 a ,还有像军队一样的 => 就有种莫名的兴奋。

这段代码很像一个勤劳的家庭主妇,把家里孩子乱七八糟的玩具收纳到一个个抽屉里面,然后在上面贴上漂亮的标签,从此家里就一下子焕然一新。这样的小代码为什么不放进标准库里面呢?

这就是代码的美感。一种能够建立一个接口,把因为历史原因而产生的复杂性屏蔽起来,从而在自己的世界变得一切都井井有条,shipshape 。

这段代码函数的顺序也很有讲究,就在这几行里面,前面定义着,后面立马就是用起来:

const is = {arr: a => Array.isArray(a),obj: a => stringContains(Object.prototype.toString.call(a), 'Object'),pth: a => is.obj(a) && a.hasOwnProperty('totalLength'),svg: a => a instanceof SVGElement,inp: a => a instanceof HTMLInputElement,dom: a => a.nodeType || is.svg(a),str: a => typeof a === 'string',fnc: a => typeof a === 'function',und: a => typeof a === 'undefined',hex: a => /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(a),rgb: a => /^rgb/.test(a),hsl: a => /^hsl/.test(a),col: a => (is.hex(a) || is.rgb(a) || is.hsl(a)),key: a => !defaultInstanceSettings.hasOwnProperty(a) && !defaultTweenSettings.hasOwnProperty(a) && a !== 'targets' && a !== 'keyframes'}

pth( ) 基于 obj( ) 的判断来定义,dom( ) 用到了 svg( ),而 col( ) 用了前面的 hex( )rgb( )hsl( ) 。。。。这样子一步步渐进,每一步都清晰的在前面一步的基础上再走一步,这个过程就好像东野圭吾的小说里面的一个悬念上叠加一个悬念,直到把这一整段代码看完了,才知道整体的构思。

这一段代码是我在看 anime.js 的时候随手拿来的,因为相对比较完整,但更精彩的是在整个架构的设计和组合上面。

作者用了最少的代码量把互联网上散落各处的缓动函数(easing function)等等功能都统一化以后放在自己的小工具箱里面。看得我眼花缭乱,深感功力很深。

除了《如何判断一段程序是否优美?》提到的短以外,每个函数如果很短也是优美的体现。以 anime.js 为例,里面大多数的函数体都是三行语句以内,甚至最多的都是一行,直接返回,就如同题图的那段一样。就是这样的每个函数只加一点点功能,然后不断的组合,就完成了复杂的功能。这个和我们一直喜欢的乐高是概念,就是用最小的相同的小块,不断的重复的构建出任何想要构建的结构出来。

看代码如小说

看代码,就像看一部小说,有好的,有差的。不幸的是,除了文笔特别差的小说,很多小说需要花时间看完结局,才知道是不是真的好看。代码在这一点也很类似。虽然看一小段就知道个大概,但如果真的想评估的,还是需要耐着性子看下去,看到最后才能有更准确的判断。

如果有人把代码像小说一样进行推荐就好了,可以让除了计算机以外的人类,也可以享受阅读代码的乐趣。

为什么要读代码呢?阅读代码最大的好处是学习。别人的遣词造句的方法,组织段落的方法,甚至函数命名的方法,都是可以直接借鉴,用在自己的代码里面的。

熟读唐诗三百首,不会吟诗也会吟。代码届也是同样的道理。建议希望写出优美的代码的同学,应该没事儿读几段优秀的代码,绝对比写代码的时间更划算

中医科学吗?当然不科学了,人家是技术

我最近形成了一个自创的三分法世界观。有了这种三分法,我可以心平气和的和更多人聊天了。

我把世界分为:科学,技术,和文学三个范畴。

科学和技术

科学和技术的分别比较清晰。科学用系统化的,定量、实验的方法寻求世界运行的规律。而技术是为了达到一定目标的而发明的方法和工具。

技术为了达到目标而努力,而科学被好奇心引导,希望去了解背后的规律。我想过桥,所以造桥就是技术;我想有餐具,制陶就是技术。而科学并不保证发现立刻有什么用处,仅仅就是想研究。技术和科学,差不多是知其然和知其所以然之间的关系。

我们如果搞混了科学和技术的区别,把技术的活,用科学去衡量,就会吵架。

技术

一个危险的会导致立刻友尽,取关,互删等不良后果的话题是,【中医科学吗?】

当然不科学了,因为它是技术范畴呀。

在我的这个定义下,我发现中医还有烹饪就是典型的技术成分大一些,科学成分小一些。而且从这个维度,中医和烹饪简直像极了。

铁锅一口,加油到沸腾,加葱姜少许爆炒,可以提味。

这个食谱跟这个药方:

 生姜,不拘多少,捣取汁,入铜锅内熬浓涂患处,觉热辣难当,即愈。

难道你不觉得形似,且神似吗?

从做出来好吃的饭,还有能够治一些病的角度,中医和烹饪都是技术。

技术,但不是科学

就拿这个食谱为例子分析一下:铁锅一口,加油到沸腾,加葱姜少许爆炒,可以提味。这个技术管用吗?请不要用科学不科学来解释,只说管用不管用,我的经验是,管用的。不加葱姜味道缺一点香味;没有爆炒,香味的确出不来。

它科学吗?

如果真的要用科学来解释,我们得先有化学,知道葱姜,油,铁锅等的化学成分,然后研究这些成分在高温下发生了什么化学反应,产生了什么新的物质。然后需要高度发达的医学,来理解这些物质是如何被舌头的味蕾感知的,被鼻子的嗅上皮细胞捕获的,还要研究脑神经科学,这些四面八方的刺激是如何形成香的感知的。更要研究心理学,到底香是一种什么样的感受?你感知到的香到底是8分香还是8.5分香?这种香在心理层面是又哪些维度组合而来的?

这一圈全研究明白了,估计要再过一个世纪,要创立很多新的学科,才有希望。但是!在这些还没有研究明白的时候,并不阻碍山洞里的原始人围着篝火,把不知某处采摘的胡椒放到刚打回来的羊肉上,并且享受一餐更鲜美的美食。

我们周围有太多的无法用科学解释但是有用的东西,越是日常的东西越难准确的较真的用科学解释。但这不阻碍我们使用这些技术。

东方曾经有着领先世界的技术成就,而在科学领域的发展就没有西方那么成体系。所以东方传统的很多东西,如果用“是不是科学”来衡量,都不怎么科学。但是从是不是有用的角度,八成是有些用的,否则既不科学,又没有实际用处,还传了这么多代,留着它干吗呢?

文学

接下来要进入的话题就更加危险了。我把既不能放进科学,也不能放进技术的部分,也就是只存在于人的意识之用的部分,都统统放入文学这个范畴。文学这个词不准确,但是很形象,大家就当作 “像文学一样的东西仅存于人的意识之中的” 来理解就行。

我作为一个硬核理工男,是很招人讨厌的那种,总想把一切都放进科学体系里面,希望用计量,逻辑来理解世界,结果总会把天聊死。自从我开始用文学角度去理解的时候,忽然间豁然开朗。我接触到的宗教呀,意念呀,甚至占星呀,一下子就进入了我的脑子,和我内心的那个理工男和平共处了。

数学就不是自然科学

为了和我一样的硬核的理工男感觉好一点,我先说明,数学,就不是科学。或者更准确的说,不属于自然科学,顶多算形式科学。而在我的划分里面直接就归了文学体系。

之所以能想明白数学不是自然科学,是从复数开始的。根号负一,我们都知道这是想象的一个数字,不存在于自然界。根号负一不存在我们都可以接受,1,2,3,4,5 这些数字难道就真的存在于自然界吗?

我看到桌子上有三个杯子。这三个杯子是存在的,但是 3 这个概念仅仅存在于人类的脑子和意识里面,并不存在于自然界。曾经看到一本书,说文明的进步一个很重要的标志就是把数字从表达中分离出来。以前甲骨文一个字,代表的不是羊,而是一只羊的意思;我有三头羊,就需要 羊羊羊 来表示,字和自然界的物一一对应。直到很后来大家才发现,可以把羊抽象出来,把这样的东西都叫羊,而不仅仅是这一只;然后把三也给抽离出来,把这么多的东西都叫三,而不仅仅是羊。这样用三这个抽象的概念和羊这个抽象的概念纵横组合,才形成了现在的三只羊的概念。

如果连数学都是文学范畴(仅存在于人的思维中不存在于世界中),我们对于那些看似不存在的东西就有了极高的接受度。

小马过河是文学。它是真的吗?不是真的。它科学吗?和科学没关系。它有用吗?有用。只要有用,拿是不是科学去衡量万物属于抬杠。

以占星为例,以前我觉得彻底不科学,但是如果有人用它来对内心的世界进行表达,计量,交流,并且对于未来的发展趋势进行分析,你就把它当作一个很好用的小马过河就好。不要那么较真是不是科学。

上课前要先搞清要上什么课

最终我发现了,人和人交流需要有基本语境的对齐。这就好比上课之前要先搞清楚自己走进的是什么课堂。

今天上的是历史课还是文学课?如果我以为是历史课,结果老师发了一本封神榜下来,而且开始跟我讲哪吒和姜子牙,我一定怀疑是不是我疯了就是老师疯了。我会问老师哪吒哪年哪月在哪里出生的?有没有出土文物可以证明哪吒生前在哪里活动?老师也一定觉得这个学生没法教了。

这个冲突如果不对现在是上什么课这个问题澄清之前,根本无法调和。而现实中,大家常常对这一点差异毫无感知,结果天就没法聊了。

如果告诉我现在上的是文学课,尤其是和一群诗人一起上课,我会放下我的科学与否的有色眼镜,用文学课的语境和他交流。即使一个人说他用 “位于右肩膀上的眼睛看到了绿色的太阳从西方的地平线上冉冉升起,天空中飘满了玻璃球馅儿的包子”, 我都不会生气的,因为我知道他正在他的意识世界里面构建一个世界,并且真心的希望表达那个世界,并且让我认识他的那个世界。而我,必然会心悦诚服的接受这一个只存在于他脑子里的那个世界。

希望这篇文章可以拯救一些你周围像我一样无可救药的喜欢跟人抬杠的理工男。

小区保安的困境

题图:小区门口的游乐场

换一个话题,这个话题是关于我们现在这个社会的。最近一段时间看到一些所在小区的业主,物业,业委会,居委会之间的矛盾和不信任(当然这也是大多数小区在发展过程中必然经历的过程),于是开始思考这些矛盾背后的原因,然后把这个思考记录下来,作为我的社会实践的一部分。今天先从小区的保安的工资开始讲起。

我住的曾经是沪上知名的小区,2004年开盘的时候的物业费是5.5元/平米/月。以当时的物价水平,足以以豪华配置运营一个功能齐全,人员素质很高的物业服务团队。但这个世界是动态的,一晃眼功夫,16年过去了。

人是物非

以保安为例,当年在这里当保安是非常有面子的事情,工资比周围的老小区高了好大一截,两三个月的工资可以买一平方米住房,需要素质很高的保安才可以来这里工作。

时光飞逝,人是物非。经过16年的变化,物业费在8年前涨到6.5元/平米/月,复合增长率约每年1%。但过去的十六年,物价每年上涨,人力成本不断攀升,五险一金的比例逐年提高,住房成本上涨等等,同样的工资已经从最高一档,跌落到附近小区中最低工资的那一档。

保安的工资单

以一个新入职的保安的工资税前大约3780元为例,其中需要缴纳五险一金的个人部分,共792.50元(包括按照上海市社会保障基数下限4927元为基数缴纳的养老保险8%,医疗保险2%,失业保险0.5%,公积金7%),到手的工资只有2988元。这里的保安又不包吃住,我知道的最便宜的群租的地方,一张床位800元/月,扣除住宿基本上就只剩2000元可以管一个月的吃和用了。在上海徐家汇和静安寺交界的地方的核心地带,2000块钱一个月基本上可以用在活下去还是活不下去的边缘挣扎来形容。

在一个房价十几万一平米的“豪宅”区里工作的保安,生活在社会的最底层,几乎无法养活自己,每一班12个小时,在大门口站岗,有时候还是夜班,非常辛苦。业主还要求保安态度好,动不动就发生冲突,有时还投诉。曾经也和大多数业主一样感慨服务质量太低,但现在细究起来保安的待遇,再回想起来,这个要求几乎就是残忍。

被经济增长惠及的人们

在过去的十六年里面,房价翻了十倍,而保安的工资却原地踏步了十几年。不禁让人思考,财富的增加到底惠及了哪些人,而这些被惠及的人又如何看待这种惠及。当我在推动在各幢大楼的大堂摆放鲜花的议案的时候,我完全忽略的一件事情是,当保安巡逻路过那些比自己一个月工资都贵的鲜花的时候是什么心情?

长期的建设一个好的小区,比鲜花这些表面的东西更重要的是劳动者的公平的对待,让他们和楼上的住户一样真心喜欢这个小区,才是一个地方变好更长久的动力。否则,如果这种对立继续加强,或许演绎出来的就会是一个《寄生虫》的那样畸形、恐怖故事。所以接下来的提议一定是围绕保安工资调整的一系列举措。

如果想要改善小区管理,第一步就是给予劳动者合理的薪酬,让他们有一份体面的工资,才有可能给住户一个笑脸,才更有动力提供更好的服务。否则所有人苟且维持在这里,直到物价继续上涨,连现状都无法维持。

预算之困

当然不是一厢情愿的增加就能够增加。即便是现在这个工资,已经是工资连年小幅度上涨的结果,且上涨幅度超过了物业费的上涨幅度。同时,也导致了包括保安在内的人员成本,从早期的占物业费比例50-60%的正常值,不断攀升到现在的超过80%,并且再也没有上涨的余量。

但从物业的一端来看,低至3780元的工资,物业公司需要按照国家规定缴纳五险一金总计1583元(包括养老保险16%,医疗保险8%,工伤保险0.3%,,失业保险0.5%,大额医保5%,公积金7%,缴费基数为4927元)。要保证保安可以拿到3780元,物业公司需要支付的实际费用是5363元,增加42%,是保安到手工资的 1.85倍。

整体的物业费中间,除去各种人员工资五险一金的80%,按照酬金制支付的物业公司管理酬金10%,再减去公共面积中的所有灯,电器,电梯,喷泉景观的电费,水费,还有大型设备的养护费等等接近10%,基本上就没有任何一分钱可以使用。

我在小区的保安室呆过一两个小时,椅子已经破的没法坐,连鼠标都不能正常工作。我了解后知道,现在的物业真的是快到了已经连一个鼠标都买不起的地步。更不要说大型的翻修项目。

多输的局面就此形成

现在我看到的劳动者工资过低,物业公司几乎无法维持,业主怨声载道,小区日渐破损败落下去,开发商的美誉度也不断低落下去,我看不到任何一方在这个困局中获得好处。而有趣的是,业主认为业委会或者开发商或者物业从中获利是如此局面的核心原因,导致太多的误解。而我看到的保安的窘境,是大多数业主并没有看到的事实。

解决方案

要想解释为什么会有次困局,还需要去看第二部分,《物业公司的困境》,归根到底是物业公司不合时宜的体制导致的问题。这个体制的困局的背后原因,在更深的地方。

船是怎么控制抛锚还是起锚呢?

连着一两周的严肃的话题,今天换个有趣的。

我曾经有过几个百思不得其解的问题。这些问题直到几年前学帆船的时候才知道答案。

船是怎么控制抛锚还是起锚呢?

锚基本上就是一根杆子两边有两个翘起来箭头,比如这个就是交大董浩云博物馆旁边的一个大船的锚。船要停下来的时候就 “抛锚” ,把锚扔到水里面船就不动了。

我曾经怎么也想不通,这么个东西在海底怎么能勾住什么东西呢?更难以理解的是,就算是勾住了,怎么起锚吗?这东西又不是一个电动装置,怎么你让它勾住它就勾住,让它松开就松开呢?尤其这么大个东西?

这是第一个问题。

帆船逆风为啥也能开?

这个比船锚更复杂些。帆船顺风能开能想得通,但逆风时,为什么帆船也能航行呢?

相关的问题是,帆船的最快速度可以达到风速的三倍多。咦?

把这两件事情加在一起才是最匪夷所思的事情,帆船在超过风速航行的 时候还必须是逆风。咦咦咦?

这是为啥?

海里到底是什么鬼?

上了船,什么公里英里都忘了吧。大家还是用海里。为啥要用海里这东西?而且和公里还按 1.8 倍换算。这又是为什么呢?

好了,问题很多。先问三个。大家有人知道答案吗?

业主的困境

题图:Airbnb总部

在任何小区里面,大多数的业主是不关心小区的事务的。除非,整体的情形超过了他的忍耐程度,或者自己的利益受到损害。

而在任何小区里面,也总有一群热心的业主,在大多数人沉默的时候发出声音,希望做出改变。而这些改变的尝试,常常因为大多数的沉默而前途渺茫,有时处境甚至如同挑战风车的唐吉柯德一样悲凉。

小区里的权力分配金字塔

虽说按照法理来说,全体业主通过业主大会拥有物业红线内几乎所有事务的最大权力,业主大会的决议的权威性在业委会之上,更远远超过物业,但一个前提是,业主大会有足够多的参与度,大会可以开得起来,大会可以通过决议。

几个热心业主的权力,如果以业主大会决议的形式体现,就处在权力金字塔的最上端;而如果以个人意见提出,就从权力分配的金字塔的最顶端,一下跌落到了最低层,低于业委会甚至物业的权力。

原来你才是少数派

业委会是可以召开业主大会的。普通业主希望以反对现在业委会为目的,想要召开临时业主大会的话,大多数的业主大会章程规定是需要 20% 以上的业主发起,并且附上房产证复印件和身份证复印件。20% 看似不多,但是除非一个小区发生极为重大的事件,让大多数业主注意到,否则,对于大多数小区来说,是一个不低的门槛。

在拥有200年民主传统的美国,过去三十年的总统大选的投票率才50%左右,更不要说几个“革命党”为了对抗现有业委会而发起的临时业主大会。获得书面同意,得到房产证复印件,得到大家的身份证复印件,不说别的,以我们小区为例,光沉甸甸的一摞七十几户极为敏感资料拿在手上,谁拿着谁能不担心信息的泄漏呢?谁又愿意把这些资料交到几个 “闹腾的最凶的” 业主手中呢?

万科物业的小王有一句名言:“有时候你一直以为你代表大多数,直到表决的时候你才发现,你才是少数派。

这句冷彻骨髓的话,不幸却是现实。无论热心业主的观点是正方还是反方,只要不是沉默,就已经站到了大多数业主的对立面。这个事实,是一个巨大的鸿沟,横亘在任何想凭一己之力或者小群体的力量改变小区的人面前。无论小区群里面大家多么的义愤填膺,多么的群情激昂,一旦进入提供房产证,正式召开临时业主大会的程序,这股力量就立刻如如烟花一样消散得无影无踪。

立法的时候,我们还小

以上还是一个正常的业主大会章程。如果面对一个修正过的章程,基本上从法律上就堵死了任何人不和业委会合作的路。在我们小区 2011 年的一次书面业主大会中,业主大会章程在当时的小区业主完全没有留意的情形下,从“已送达的表决票,业主在规定的时间内不反馈意见或者不提出同意、反对、弃权意见的,视为同意大多数业主的意见”变更为“已送达的表决票,业主在规定的时间内不反馈意见或者不提出同意、反对、弃权意见的,视为同意”。

法治的精神在于尊重法律,尊重契约,但前提条件是参与者对于契约的了解,或者至少有了解的兴趣。

对于不反馈意见(或者说沉默票)视为同意,从积极的角度上来讲,它给予了业委会莫大的权力,最终通过什么决议,全看决议怎么写。正向描述《关于继续停车库收费的决议》还是反向描述《关于终止停车库收费的决议》都会通过,选择前者还是后者作为议案是业委会的自由。

从消极的角度来说,如果普通业主作为一个整体,如果想通过投票否决一项决议,需要对抗的不仅仅是意见相反的人,更需要对抗的是沉默的业主。以现在的投票率,沉默业主轻松的就超过半数。即便是在物业和业委会全力推动广泛宣传的情况下,投票率都不见得太高,更何况作为“反对派”来做此事。

那么这个法规是如何通过的呢?或许9年前的时候业主并没有意识到这件事情,甚至知道9年后绝大多数的业主也没有意识到小区的宪法一样的《业主大会章程》的修改的影响,更准确地说,即便是今天,有兴趣了解一下的业主也不过过半。立法的时候业主们还小,还不懂事,等长大了才发现,那个时候没有投票反对,也就几乎永久的失去了这个机会。

下一次修改的机会,将会是小区矛盾继续积累,激化到一定程度,以至于沉默对于大多数业主已经不是一个选项的时候,才会凤凰涅槃。但那将会是什么样的场景?业主们将会是什么样的代价?没有人知道。

小王又有一句名言:“这个章程很扯淡,但是合法;对抗这个章程所做的一切,就算有道理,也都是非法”。

政府机构

基于这个法理的分析,我开始理解居委会,房办的“推诿”。虽然热心的业主在过去的几年里面已经不下几十次登门拜访过各种政府机构,要求改选业委会,要求召开临时业主大会,但都没有如愿。大家认为是政府机构不作为。但实际上,政府机构如果是尊重法律的, 那就应该不作为,因为按照《业主大会章程》的规定,由政府部门介入,而不按章程规定,就是非法。

至于按照章程规定,如果无法满足法定人数,那就没有任何腾挪和商量的空间。而章程的修改的门槛,被章程本身定得无法满足。。。这个死结,对于“热心业主”,几乎就是一个铁屋子,无法打破。而大多数的在铁屋子里面的人还在沉睡,小的动静无法叫醒。

从对抗走向规则

所以,几个热心的业主要真想推动什么,几乎唯一的一条路就是按照《业主大会章程》,在已经规定的规则下,和业委会达成谅解,消除误会,在一个现有的已经相对来说健全的体制里面工作。

民主的本质,不是先统一思想,然后再开始工作。恰恰相反,它的本质是一群有着不同目标,不同利益诉求的人在一起碰撞,谈判,妥协的过程。通过对抗,推翻现有业委会的方式,即便成功,也必定开启另一轮的误解,对抗,直到被推翻的轮回。

从这个角度上,反观现行的大多数的《业委会章程》,设置的高不可攀的门槛,反而形成了一个相对稳定的结构,把大家的精力从一次次的对抗性投票彻底改选业委会,引导到按照章程规定的业委会议事规则,业委会的监督机制,业委会的增补,换届等等行为中,进入一个在规则下博弈的过程。

显然业主们还不适应这种缓慢的,不直接的道路,而更希望“立刻改变,现在就变”,但我们必须适应这一条路;不幸的是,其他的路,已经被堵死;同时万幸的是,其他的路,已经被堵死。

法律的困境

题图:莘庄商务区,从窗口看到的景色 

绘于:2020年3月

正如《业主的困境》里面阐述的,当业主面对一个“扯淡但是合法”的《业主大会议事规则》,接下来怎么办呢?

修改业主大会议事规则

第一个想法肯定是修改《议事规则》。但这个直觉反应不见得行得通。就好像如果我网购买到了假货,立刻就想着要修改一下《宪法》,这个跨度有点大,修改了对面前的事情帮助有限,其难度也可想而知。

毕竟越根基的法案,牵涉到的人就越多,修改起来就越难。《业主大会议事规则》可以说就是一个小区的宪法。除非事情恶化到了触及了大多数人的利益,否则很难达成一致。一些人认为的不可容忍或许在另一些人看来就是相当不错。这个不是任何“敌对势力”作梗。最后动议的热心业主惊奇的发现自己在小区里面居然成了少数派。少数派的动议无法顺利通过也应当是意料之中的事情。

对法律的尊重

对法律的尊重,不仅仅只是尊重自己喜欢的法律,也要尊重自己不喜欢的法律。从来就没有选择性尊重法律的空间

现在的《业主大会议事规则》我不喜欢,但必须尊重它,用它已经规定的方式修改它。如果每次都是以修改议事规则才能做事情,或者每次都是重组业委会才能做事情,日子就在等待修改,再修改中蹉跎掉了。

有趣的和枯燥的在争夺观众

推翻议事规则,推翻现有的结构,是一种习惯,是一种缺乏在现有框架下解决问题的能力的表现。掀桌子,重组的方法看似直截了当,恰恰是用了简单的思维掩盖了问题的复杂,甚至是用了“有趣的冲突”,掩盖了“枯燥的劳动”

只有坏人好人明晰,前后逻辑如童话般简单直接,才符合大众的兴趣,大家才愿意搬了板凳来吃瓜。至于那些枯燥的,专业的,需要花些努力来建设的,显然不符合大多数人的审美情趣。

假想敌

同时,树立一个假想敌是最好的逃避思考的方式,青少年都相信,自己所有的痛苦都是因为家长或者老师造成的。直到上了大学,没有了家长的参与,才知道该面对的还是需要自己面对。没有了敌人可以怪罪的时候,成熟的孩子会学会埋头解决问题,不成熟的就会努力再找一个假想敌,让它当替罪羊。美国的政客深谙此道,我们每个人的潜意识都有这能耐,却很少人对此有足够的警觉。

对症下药无法解决问题

客观的看,小区的问题,比如 “ 物业费不足以支持业主需要的服务的问题 ”, “保安排班的不合理问题 ”, “ 老化的高楼窗户漏水问题 ”, “ 重要信息无法公开透明的分享 ” 等等问题,要么是财务问题,要么是管理问题,甚至是建筑维修技术问题,或者IT建设问题,但几乎没有一个是政治问题,或者是坏人作祟的问题。通过改变体制,修改文本,来解决类似房屋漏水的问题,是不对症下药。

如果一定找一个敌对势力的话,那个“敌对势力”可能是自然法则:谁让硅胶十年后就老化呢?

这个敌对势力也有可能是经济规律:谁让市场经济规定了由市场定价而不是业主定价呢?

这个敌对势力也有可能是社会法则,沟通本来在人群中就是需要设计才会发生而不是自然发生的。

如果希望更改了三规,就可以解决小区的一切问题,业主们一定会失望。钱该不够还不够,硅胶该老化还是老化,沟通不畅还是不畅。在失望的同时,再把“新一届业委会”描绘成“敌对势力”,再开始攻击,斗争,换掉。

或许,在几年后的某个夜深人静的夜晚,会有一个人躺在床上,脑子里面不知道从哪里冒出一个问题,“好像有点不太对劲:为什么每一个进入业委会的人都变成了坏人呢?”

规则的困境

只有自己经历了,才发现一个道理,就是规则其实是明确的,只是我们还不擅长使用,或者不愿意使用。

回顾小区的发展历程,在按照原议事规则修改议事规则的时候,大家选择沉默;在增补业委会委员的时候,大家漠不关心;几乎没有人会主动参选业委会委员,直接推动小区的改善;在需要大家动用自己手中的权力的时候,因为各种原因没有空参与,或者不愿意轻轻的点一下投票按钮。

从这些年的反复中间,我们应当学会,那些看似遥远的道路,反而是最直接,最有效的道路;那些看似直截了当的道路,却直到今天都没有迈出半步吗?德国之声采访香港愤青领袖的时候问了一句话:“你是不是愿意停止上街,而是选择缓慢的( slow ),痛苦的( painstaking ),甚至是琐碎( tedious )的现有的体系去达到你们的目标呢?”

学会使用一台机器

《业主大会议事规则》像是一台车子,需要学会哪里是方向盘,哪里是油门,哪里是刹车。不愿意按照这个车子的使用方法使用它,而按照习惯的赶驴车的方法,就算打坏了三十根鞭子,前方铺了一地的干草,这台车还是纹丝不动。不是车坏了,是我们不懂如何用它。

所以,我观察到的所谓规则的困境,其实恰恰是规则的胜利。不按照规则约定的方式使用它,所有的痛苦,借用产品设计里的一句话,这不是 bug ,这是 by design 。

如此结论也就很简单了, 如果真的有改变小区的想法的人,就应该站起来高调竞选业委会委员。这是业主大会议事规则里面写的清清楚楚的一条路,当然也是少有人走的路。

后注:后台回复 “ 小区 ” 可以得到这个话题的7篇文章

啥?帆船比风跑得还快?

这篇文章提到,帆船的速度可以比风速还快,甚至可以达到风速的3倍以上。

啥?真的么?为啥呢?

帆船是靠风航行的,所以大家脑子里面的帆船就是船上竖起一根杆子,然后把床单挂上去,风一吹就走了。如果是这样,那船无论如何也不会比风还快呀!郑和下西洋那个年代的船就是这样,那种帆叫做平帆。

而现代帆船的三角帆,在一些绳索的束缚下,被风吹成了一个弧形,从天上看,好似竖在船上的飞机的机翼一样。

飞机,因为机翼的形状,使得机翼上侧的风速变高,从而压力变小,然后就产生了一个向上浮力,把飞机托在空中。

帆船的帆和机翼一样,只不过风的方向从前方转到了侧方,浮力的方向从向上转向了向前。

所以,另外一个答案也就揭晓了。就是只有当风是从侧面90度吹来的时候,帆船才可以获得最大的向前的拉力,而不是直觉反应的在正后方。所以,帆船是被拉向前方而不是吹向前方的。飞机也是被拉上天而不是下面有风吹上天的。

那接下来更有趣的事情发生了。当帆船静止的时候,如果是左侧风,帆船会不断加速,但是一旦帆船有了向前的速度,帆船就会感知到迎面来的风。这个风和左侧风重叠在一起,从水手的角度,风开始从左侧转向左前侧。如果船速和风速一样的时候就会变成左前侧45度。

水手需要调整帆的位置,保证帆基本上和风平行,这样才会产生 更大的拉力。但这个拉力和船的方向已经呈45度了。这个45度的力再分解成一部分的向前的(小一点的)拉力,还有就是向侧面的推力。好在帆船船底有一个大家看不到的巨大的龙骨(Keel),横向移动的时候产生了巨大的水阻力,就让帆船像铁轨上的火车一样不会被吹离轨道。

即便这样,只要船速继续增加,风的方向会继续向正前方靠近,而风产生的拉力会逐渐减少,直到动态平衡在一个速度,速度不再增加。

最终,是一个很诡异的场景。从岸上的人来看,帆船是垂直于风高速航行的,而从水手的角度来看,帆船其实是逆风飞驰的。也就是说,从水手的角度,当风从左前方吹来的时候,船速是最高的。

有一种冰帆船(Iceboat),就是下面装了冰刀在冰面上航行的帆船,这个效应更明显,它可以以风速5倍的速度航行,而它达到最高速度的时候,风其实是从正前方偏几度的方向吹过来的。神奇吧!

后注:感谢 BV Captial 带我第一次在旧金山湾驾驶帆船,感谢 Eric Zheng 同学带我学习帆船驾驶技术。

创造者和实施者

周六,和一位好朋友共进晚餐。期间谈及很有趣的人的细致的差别。 话题的开端是从给作家做经纪人和给演员做经纪人的不同开始的。好似给演员做经纪人容易一些,他们的可塑性比较强,比较容易根据外界的要求柔软的变化;而作家是很固定和坚硬的,他们有他们自己的世界,和外界打交道时有些困难。 作家和演员是不同的。作家在努力的创造一个自己的世界。有一种忘他的精神。他的所有的创造都在自己的大脑里面,那个世界是在脑子里面第一次被创造,在书面上体现的东西。这是一种不同于现实世界的崭新的世界。 演员不是。演员是努力的把别人创造的一个世界表现出来。他们更加关注于具体把一件事情做好。 同样道理,记者和作家也完全不同。从时间和空间维度,作家的世界相对稳定,没有太强的时间维度,无论是鲁迅的鲁镇,还是川端康成的雪国,都是一个虽然有现实世界的影子,却仅仅存在于想象中的世界。记者不是。记者的世界就是现实世界。记者需要了解的是现实世界里的人的思考。记者观察的都是有实效性的现实的世界。 这个区别好似开发工程师和支持工程师的区别。开发工程师是先创造一个完美世界,然后用代码把它表达出来,并且放在电脑上运行。支持工程师有很多的能力,能够处理电脑死机的问题,能够处理文档损坏的问题,但这些能力,仅仅是解决问题。当外界的刺激一旦消失,支持工程师会陷入一段时间的无所事事。演员,记者也有类似的情况。 同样的道理,程序员和工程师也有本质的不同。Developer,是把别人脑子里的世界翻译成代码的人。别人,有时是产品经理(产品经理写功能说明书,程序员写出来),有时是客户(外包中心的开发),有时是业务人员,但无论哪种情况,这个世界是需求提出者的世界,而不是程序员的世界。工程师就不同。工程师脑子里面有一个完整的,逻辑清晰,层次清晰,边界不断扩展的完美世界。以这个世界为出发点,不断的代码,并不断的勾勒出这个世界。所以百姓网有工程师和开发者两个不同的职位。我们希望当开发者有了基本的变成熟练度以后尽快成为工程师。虽然工程师需要具备一些开发者的技能,比如写代码,但从根本上,工程师的能力,和代码无关。 画家,作曲家,作家,建筑师,工程师,企业家,甚至一些精神领袖,都是这样的人。对于精神世界里面创造一些东西,他们游刃有余。对于现实世界里面的实现,他们却未必擅长。 所以我认为,画家,作曲家,作家,hacker,企业家,他们如此相近。同时,演奏家,记者,支持工程师,开发者,经理等等,他们又如此相似。 我坚信一个企业家和一个作家在性格中的共同点远大于他和他们的同一领域的经理或者记者。 世界需要那些在思维世界不受现实羁绊而翱翔的人,也需要把这些想法变成现实的人们。这是两个不同层面的问题,学会相互欣赏和合作才是正道。

社交网络不是网络效应!答各种社交网络为什么经常昙花一现?

早上,在环球的89层楼,看着整个上海,心思真的就会变得很广阔,视野就会很远。

我被问到了一个问题:看看最近的网络效应的案例,比如微博,比如Draw Something,比如Zynga,甚至比如Facebook自身,都出现了疲软或者下降的态势。原来网络效应理论,就是一旦形成,很难被颠覆的预期是不是出了问题?百姓网也是网络效应,如何证明不是昙花一现呢?

这还真是问住我了。也是呀,Facebook,这种网络效应为王的应用,怎就一下子就变得不那么酷,而变成“上一代使用的”呢?还有微博,按道理有了几亿的用户在上面,怎么会说不用,就不用了呢?说不行,就在一年之间不行了呢?

在经历了和Sanjay和Mike较长时间的头脑风暴以后,我忽然意识到一件事,社交网络不是网络效应!这个结论听起来惊世骇俗,但仔细分析,这或许是我能解释为什么怎么多各种类型的SNS迅速走红而迅速衰落的原因。

什么叫网络效应?就是当一个用户增加的时候给另外的用户提供了价值。或者说,当网络效应存在的时候,这个网络的价值跟在这个网络上的人的数量有关系。用的人越多,就越好用。

从这个定义上来说,SNS是典型的网络效应,而且每个用户和上面的用户,还是相互认识的朋友。而问题,就恰恰出在了,SNS的用户,正在使用SNS之前,就已经认识了。这一个“认识”,就出了大事了。

对于市场性质的网络,比如百姓网这样的分类网站,正是因为上面所有的人都是陌生人,我作为一个个体,无法在其他地方找到买家或者卖家,这就形成了:这里有多少人在这里交易的最基本的用来判断这个网站是不是好用的判断。如果人少了怎么办?我作为用户毫无办法,因为正是因为他们都是陌生人,我无法去找到他们并且让他们来用这个网站。

SNS则有一个便利,就是说如果我觉得一个网站功能好用,即便我是第一个在这个网站上的人,因为是一个熟人社区,我至少可以通过电子邮件或者手机等方式一个个通知我认识的朋友来使用这个服务,而网站都提供了这方面的功能让这个过程变得一个确认就可以做到。SNS并不根本上改变我的社会关系,而仅仅是把已有的社会关系放到了网站上。

这样用户的获取当然容易了,但是真正的网络效应反而丢失了。打个比方,一个小房屋中介,其实也有网络效应,买家卖家单独找,好辛苦;有聪明的中介,邀请所有已经接上头的买家和卖家来这里办交易。结果,只要有一个人过来,另外一方自动就被拉上来了。这生意真好做。但很快的,他就发现,作为中介,他的价值从原来帮助买家卖家找匹配,变成了纯粹的帮助办理手续,变成了一个工具。这个例子是要说明,网络效应是一个生人社区的名词,套用到了熟人社区,其实质不是网络,而是工具。设想一下一个菜市场里面所有交易的人都是老同学,菜场管理者其实要担心了,因为它提供的价值不再是发现新的卖家或者买家,而仅仅是一个场地而已。如果有更好的场地,所有人会在一两天之内转移过去的。

我和我的朋友至少有一两种最基本的联系方式,比如电话,电子邮件。但是不是很方便,我们试一下一种”工具”,注意,是工具,叫做Facebook,用来组织我已经存在的社会关系网络,如果有更好的“工具”,注意,还是工具,而非“网络”,我们就会一起迁移。社会网络本身是网络效应,而社会网络软件或服务(SNS),不是。

至于搭建在SNS之上的任何服务,比如你画我猜这样的软件,和网络效应具体更远,就像SNS借用了真正的人际网络一样,他们仅仅是借用了SNS而已。

回顾百姓网的生意,我总算找到了百姓网不做SNS,也对于SNS集成不那么热心的一个新原因了:网络效应的价值在于连接陌生人,而不是熟人。熟人需要的,仅仅是工具,而不是网络。

社交网络不是网络效应!答各种社交网络为什么经常昙花一现?

早上,在环球的89层楼,看着整个上海,心思真的就会变得很广阔,视野就会很远。

我被问到了一个问题:看看最近的网络效应的案例,比如微博,比如Draw Something,比如Zynga,甚至比如Facebook自身,都出现了疲软或者下降的态势。原来网络效应理论,就是一旦形成,很难被颠覆的预期是不是出了问题?百姓网也是网络效应,如何证明不是昙花一现呢?

这还真是问住我了。也是呀,Facebook,这种网络效应为王的应用,怎就一下子就变得不那么酷,而变成“上一代使用的”呢?还有微博,按道理有了几亿的用户在上面,怎么会说不用,就不用了呢?说不行,就在一年之间不行了呢?

在经历了和Sanjay和Mike较长时间的头脑风暴以后,我忽然意识到一件事,社交网络不是网络效应!这个结论听起来惊世骇俗,但仔细分析,这或许是我能解释为什么怎么多各种类型的SNS迅速走红而迅速衰落的原因。

什么叫网络效应?就是当一个用户增加的时候给另外的用户提供了价值。或者说,当网络效应存在的时候,这个网络的价值跟在这个网络上的人的数量有关系。用的人越多,就越好用。

从这个定义上来说,SNS是典型的网络效应,而且每个用户和上面的用户,还是相互认识的朋友。而问题,就恰恰出在了,SNS的用户,正在使用SNS之前,就已经认识了。这一个“认识”,就出了大事了。

对于市场性质的网络,比如百姓网这样的分类网站,正是因为上面所有的人都是陌生人,我作为一个个体,无法在其他地方找到买家或者卖家,这就形成了:这里有多少人在这里交易的最基本的用来判断这个网站是不是好用的判断。如果人少了怎么办?我作为用户毫无办法,因为正是因为他们都是陌生人,我无法去找到他们并且让他们来用这个网站。

SNS则有一个便利,就是说如果我觉得一个网站功能好用,即便我是第一个在这个网站上的人,因为是一个熟人社区,我至少可以通过电子邮件或者手机等方式一个个通知我认识的朋友来使用这个服务,而网站都提供了这方面的功能让这个过程变得一个确认就可以做到。SNS并不根本上改变我的社会关系,而仅仅是把已有的社会关系放到了网站上。

这样用户的获取当然容易了,但是真正的网络效应反而丢失了。打个比方,一个小房屋中介,其实也有网络效应,买家卖家单独找,好辛苦;有聪明的中介,邀请所有已经接上头的买家和卖家来这里办交易。结果,只要有一个人过来,另外一方自动就被拉上来了。这生意真好做。但很快的,他就发现,作为中介,他的价值从原来帮助买家卖家找匹配,变成了纯粹的帮助办理手续,变成了一个工具。这个例子是要说明,网络效应是一个生人社区的名词,套用到了熟人社区,其实质不是网络,而是工具。设想一下一个菜市场里面所有交易的人都是老同学,菜场管理者其实要担心了,因为它提供的价值不再是发现新的卖家或者买家,而仅仅是一个场地而已。如果有更好的场地,所有人会在一两天之内转移过去的。

我和我的朋友至少有一两种最基本的联系方式,比如电话,电子邮件。但是不是很方便,我们试一下一种”工具”,注意,是工具,叫做Facebook,用来组织我已经存在的社会关系网络,如果有更好的“工具”,注意,还是工具,而非“网络”,我们就会一起迁移。社会网络本身是网络效应,而社会网络软件或服务(SNS),不是。

至于搭建在SNS之上的任何服务,比如你画我猜这样的软件,和网络效应具体更远,就像SNS借用了真正的人际网络一样,他们仅仅是借用了SNS而已。

回顾百姓网的生意,我总算找到了百姓网不做SNS,也对于SNS集成不那么热心的一个新原因了:网络效应的价值在于连接陌生人,而不是熟人。熟人需要的,仅仅是工具,而不是网络。

王建硕的公共微信: jianshuo1