Friday, June 14, 2013

工作中要“多管闲事”

每一份工作都有KPI(关键表现指数),没有KPI就无法明确目标,而过于KPI导向同样会引入歧途。任何一份工作,只要是从事这份工作的人还有一些自由度,也就是有一些选择做什么和不做什么的自由度,那么就必然有一些事情,是KPI中没有定义清楚的部分。一些刚毕业的同学会比较忽视这部分,认为事不关己,高高挂起,完成自己的事情为准。然而,这部分可能是从大的方面来说,对公司很重要;从小的方面来说,对保持和提高团队的战斗力必不可少。
我不想仅仅从功利主义的角度上来探讨这个问题,因为这个问题涉及的是规范,用功利主义无法证明其必然性。定义在KPI中的东西是人人都可以看到的,这部分会拉开人与人之间的差距,担不是根本性的;而定义在KPI之外的事情,则是很多人忽视的,或者不屑于做的。这部分工作日积月累,会拉开人与人之间的差距,而且是根本性的。
作为一个工程师,公共的开发机你添砖加瓦维护了吗?公共使用的开发框架你搞清楚了吗,还是每次向同事请教?那些可以你或者他做的事情,你主动要求自己承担了吗?
多承担一些,你会变得与众不同。

Wednesday, June 12, 2013

规范的意义

最近在读迈克尔.桑德尔的《金钱不能买什么——市场的道德边界》。这是一本关于金钱和公正的书,以前很少读相关的社会科学著作,我觉得一些概念、观点十分裨益。
书中关于一些金钱不能买(按照法律或道德规范的要求),的原因主要有以下几种观点:

  1. 金钱的购买会导致被购买的物品价值遭到贬损。比如诺贝尔奖,大学入学名额。
  2. 金钱的购买会导致不公平。如购买黄牛排队代买火车票,排队挂号等。
  3. 金钱的购买会导致人员的品质被腐蚀(贿赂)。权力寻租、孩子努力学习给予金钱奖励。
  4. 金钱挤占非市场规范的位置。比如把现金当作礼物来赠送。
其实,规范作为一种框架性的东西,必然蕴含着一些边界的含义,失之不能被任意侵占,不然骨架必然崩溃。即使最相信自由市场的美国,政府的监管仍然是强有力的。
中国似乎政府的监管比较有力,实则不然。食品安全问题,教育问题,腐败问题,实际上都可以被看作是规范、法律在被金钱腐蚀。腐蚀的结果是严重的,出了直接危害公众的利益之外,由于公众对国内规范的不信任,就需要花更多的成本从国外购买东西,国内的产品反而销路受到了影响。这种模式是时候终结了。

恢复写作的习惯

很久没有写东西了,看得东西倒是多了起来。看和写作为学和习的两个方面,缺一不可。手越来越生的同时,学习的消化能力也会变弱。时常通过写作整理思路,训练表达,是十分必要的。

Thursday, October 13, 2011

Redis: A Wonderful Key-Value Mapping Engine!

Redis is a light weighted, high performance Key-Value mapping engine!
You can set a key-value, get a value.
High performance!

Tuesday, April 12, 2011

Kolmogorov 0-1 Law

    对于一个无穷随机序列{Xi},关于它的一个尾事件(tail event),发生的概率要么是0,要么是1,没有中间状态。
    那么,什么事尾事件呢?其标准定义可以参考Wikipedia:http://en.wikipedia.org/wiki/Kolmogorov_0-1_law。它定义在整个序列上,该事件和任意有限个随机变量之间独立,也就是说,该事件和任意有限个元素之间都是无关的,只存在于无穷随机序列的“尾巴”上。
    尾事件揭示了现代概率论的一个重要事实,尽管一个随机序列本身是捉摸不定的,但它的长期表现却是确定的。
    与Kolmogorov 0-1律相关的还有Hewitt-Savage 0-1 律:http://en.wikipedia.org/wiki/Hewitt%E2%80%93Savage_zero-one_law。说明的也是同一事实。

Saturday, April 2, 2011

一个Python引用引起的困惑

先来看一段程序:
funs = [lambda x: x**k for k in range(0, 4)]
res = [f(2) for f in funs]
print res
结果是什么呢?
结果是这样的:[8, 8, 8, 8],如果不感到意外,说明你已经理解了python,或者没看懂:)
如果意外,请看下面的分析:
实际上,[lambda x: x**k for k in range(0, 4)],创建了4个lambda表达式,每个表达式都是
lambda x: x**k,而k最终是等于3。于是4个lambda表达式都是lambda x: x**3 !
怎样才能根据不同的k生成不同的表达式呢?原因是要对k生成多个对象!!
函数的参数是作为引用传入的,因此我们可以对lambda表达式增加一个参数,k:
funs = [lambda x, k=k: x**k for k in range(0, 4)]
重新运行程序,得到res的值为
[1, 2, 4, 8]!
神奇的python!
如果你是一个python程序员,不清楚python的引用机制,你将时常困惑。