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的引用机制,你将时常困惑。

Thursday, March 31, 2011

Python中使用pickle对内建类型(built in types)进行对象序列化(object serialization and deseirialzation)

有对象要持久化,就离不开序列化和反序列化。对象是立体的,而存储却是现行的,因此叫序列化。
比如我们构造一个python对象:
d = {'coffee': 1, 'tea': 2, 'water': 3}
这是一个字典。
进行序列化的操作:
f = open('favorite.dict', 'wb')
import pickle
pickle.dump(d, f)
f.close()
进行反序列化操作:
f = open('favorite.dict', 'rb')
d = pickle.load(f)
print str(d)
是不是很容易呢?