Posted by reedboat on Jan 14, 2011 in
读书
最近跟同事们吃饭的时候,经常问他们一些有意思的问题,当然得到的答案有时候也很有意思。
这里列一些问题。
1.假如你患有一种病,除了在5年之内有1/1000的可能突然死亡之外,没有其他症状。
如果有一家公司开发出了一种能够治愈你并且没有其他副作用的药,你愿意花钱买么,最多愿意出多少钱?
又比如这家公司开发出了一种药物,这种药物有1/1000的可能导致5年内突然死亡,并无其他毒副作用。现在他们
要花钱找人试验这种新药,公司最少给你多少钱你才愿意尝试么?
2. 阿Q之前听到了内幕消息说,一只股票行情看好。于是阿Q10块钱买了这支股票10000股.今天一看,现在跌到了5块钱。假如股票交易不用支付任何成本。阿Q很生气,打开电脑准备抛掉,鼠标悬在售出的按钮上的时候,阿Q很犹豫,因为内幕消息大多比较准确。是你的话你选择抛售还是持有?
正在犹豫的时候,一个电话打过来了,阿Q去接了个电话。他们家里的猫不小心踩到了鼠标上。按下了抛出按钮。阿Q发现之后,你觉得他是应该在买回来还是不买回来?
3.假如你期待一场音乐会很久了,虽然门票比较贵,1000块钱。但是你还是狠心买了一张门票,晚上正准备出门的时候,发现门票丢了。你会去再买一张么?
假如你白天并没有买这张门票,晚上要出门的时候,发现丢掉了一张1000块钱的电话卡,你还会去买音乐会的门票么?
4.假如你现在在一家商场,想买一辆摩托车,价格5000块钱。正打算买的时候,你的朋友告诉你,一公里外的另一家商场,同样的摩托车只卖4950元。你会到另一家商场去买么。假如你买的不是摩托车。而是自行车,价格300块钱,同样的你朋友告诉你,一公里外的另一家商场,同样的自行车只卖250元,你会到另一家商场买么?
5. 假如你要从巴黎飞往上海,你很想要在飞机上睡一觉,但是你平常都要吃一种药物才睡的着。你在巴黎找到这种药后发现,巴黎的这种药需要200元一片,而在上海要卖500元. 你会买一片么?
同样的情况,如果在上海这种药只卖2块钱,巴黎卖200块钱,你还会买么?
6. 假如你是一家公司的总裁,你们正在做一个项目,已经忙碌了9个月投入了,500万元,再有一个月投入50万元就完成了。这个时候一份比较准确的调查报告显示,你们的产品投放到市场上面,不考虑已有投入的情况下,有10%的可能盈利2500万元,有90%的可能亏损500万元。那么你会选择坚持这个项目么?
这些问题都来自一本书《别做正常的傻瓜》,作者奚恺元. 书中还有很多其他的有趣问题。虽然有些问题仔细想想,也其实存在一些漏洞。向大家强烈推荐这本书。书中通过这些生活化的例子展示, 很多人在生活中的所作出的选择和决定,虽然符合在大多数人的正常思维,但其实不是理性的,他们是“正常的傻瓜”。书里面具体分析为何人们会作出不理性的选择,原因包括心理账户,交易偏见,沉没成本误区,过于自信,和适应性偏见,损失规避,忽视未得收益等方面。 同时也在教我们如何才能做出理智的选择,脱离正常的傻瓜行列。
Tags: 交易, 行为决策学, 选择
Posted by reedboat on Jan 12, 2011 in
编程
python中的yield关键字,之前没有仔细看。今天看了一下。我的理解是这样的, yield将一个函数打断成了多段,形成了一个迭代器(简单的理解成一个数组,数组中的每个元素是一段代码)。每次调用该迭代器的next()或者send()方法的时候,执行这个函数的下一段,然后保存函数执行中的各个变量的值和当前的控制流程,等待下次执行next()或者send()的时候恢复。
例如 下面定义的add函数
def add(a):
print a
a=a+1
yield
print a
c=add(10)
c.next()
调用add函数的时候,并不执行add函数中的代码。而是返回一个迭代器 . ( c=add(10) )c就是一个迭代器。调用c.next()方法的时候,才开始执行add函数的内容。第一次调用的时候执行到yield这一行中止了,输出a的值10。下一次调用c.next()才输出11。
yield 后面还可以跟一个参数,当调用next()方法的时候,就会返回这个值,外界也可以得到。如果用send(msg)方法,那么yield就直接返回msg值。
def add(a):
b = yield 1
a = a+b
print a
c = add(10)
c.next()
上面的这个例子。
第二次执行的时候,如果用c.next(), 那么b=1,c.next()的返回值也是1,输出内容是11。
如果使用c.send(5), 那么b=5,输出内容将是15。
yield这种使用方式,改变的通常的编写程序的思路,在循环递归中的用法就比较复杂了,还需要慢慢体会。
Tags: interator, python, yield
Posted by reedboat on Jan 7, 2011 in
软件
git和hg等分布式代码管理工具相比较SVN的一个重要缺陷是权限控制问题。不过今天发现了一个工具gitolite(https://github.com/sitaramc/gitolite/blob/master/doc/3-faq-tips-etc.mkd#_security_access_control_and_auditing), 提供了很精细的权限控制。能够控制代码的读写,目录、分支的创建,读写,删除。通过用户分组,正则匹配等方式提供多个代码仓库的批量授权等。工具是用perl写的,实现方式基本上是通过SSH公钥和Git的hook来做的。虽然配置比较复杂,但是作为企业代码管理控制的话还是很不错的。
这里还有一份中文文档,讲解的非常详尽。http://www.ossxp.com/doc/git/gitolite.html
Tags: git, gitolite, 授权, 权限管理
Posted by admin on Jan 6, 2011 in
杂乱
想想过去一年的互联网,简单的总结下
google不满中国政府审核退出中国,腾讯搜狐网易百度纷纷出手抢夺人才和市场份额
新浪微博爆发增长,取得绝对领先优势。以开心网和人人网为代表的国内sns发展陷入低潮。
百度推出数据和应用开放平台,引发行业流量黑洞担忧。腾讯收购Discuz,推出WebQQ,打造腾讯的开放平台。新浪微博更加积极的api开放,将国内的开放平台推入新的高潮。
团购火爆百团大战。
计算机世界发出合纵檄文,狗日的腾讯,声讨腾讯永远抄袭破坏行业生态环境,扼杀创新。
360大战腾讯,指责腾讯窃取用户隐私,推出扣扣保护工具屏蔽QQ广告等。腾讯拉拢百度金山傲游集体封杀360
苹果推出ipad受到市场热捧,翻开计算机的平板时代。iphone4继续受到热烈欢迎
android系统手机快速抢占市场份额,应用数目达到十万。
lbs服务兴起,多在模仿foursquare,缺少创新,尚欠火候
亚马逊推出大幅降价的kindle3,销量大涨,国内盛大依托云中书城推出千元电纸书bambook
中国互联网掀起新一轮赴美上市浪潮,搜房,当当,优酷,土豆等IPO,电子商务B2C模式发展加速
Posted by reedboat on Dec 11, 2010 in
web
CSS虽然大大简化和扩展了网页的样式编写,但是CSS是个无逻辑的标记语言, 很多东西仍然难以复用,显得十分冗长。 虽说也可以用动态语言编写,但是不原生和直观,也不便于缓存。
最近看到一个工具,叫做LESS,也可以称为LESS语言,挺有意思的。官方网站 http://lesscss.org。 它为CSS引入了非常有用的几个编程特性,这几个特性十分的优雅,感觉CSS原本就该是这样的(或许以后真的会成为CSS的核心?)。
这些特性包括:
- Variables(变量支持,实际上是常量,不能修改)
- Mixins(类似函数,支持参数, 直接借用前面定义的样式模块)
- Nested Rule(嵌套定义)
- Operation(运算符,支持尺寸,颜色,变量的加减乘除)
- Comments(支持C风格的单行注释)
- Namespace(名称空间,用于对样式分组或者封装)
- Scope(作用域,本地变量优先与全局变量)
- Import(文件包含,可以导入less文件,变量可以跨文件生效)
可以看看下面的样式定义
@nice-blue: #5b83ad
@light-blue: @nice-blue + #111;
#header { color: @light-blue; }
.rounded_corners (@radius: 5px) {
-moz-border-radius: @radius;
-webkit-border-radius: @radius;
border-radius: @radius;
}
#header {
.rounded_corners;
}
#footer {
.rounded_corners(10px);
}
#header {
color: black;
.navigation {
font-size: 12px;
}
.logo {
width: 300px;
:hover { text-decoration: none }
}
}
@base: 5%;
@filler: @base * 2;
@other: @base + @filler;
.test {
color: #888 / 4;
height: 100% / 2 + @filler;
}
LESS完全兼容原来的CSS语法,也就是说原有的css,直接将后缀改成LESS, 完全能够正常的工作。
使用一个LESS编译器lessc,即可将LESS语言编译成CSS。目前的lessc编译器有官方的版本,是用ruby写的。还有用php实现的版本(http://leafo.net/lessphp/#quickstart)和用js实现的版本(http://leafo.net/lessphp/#quickstart)。
用js写的版本,不用自己编译,只需要在页面引入一段js即可,非常的方便,对于使用html5的浏览器,支持客户端本地存储的话,那么完全不用担心效率问题。
一般来说可以使用php版本或者ruby版本,在服务器端编译好。这个工作完全可以交给程序,来自动化处理。
Tags: css