2

别做正常的傻瓜

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: , ,

 
0

yield的简单理解

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: , ,

 
2

git 的企业级授权工具 gitolite

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: , , ,

 
0

回想这一年的互联网

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模式发展加速

 
3

LESS介绍

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:

Copyright © 2012 苇叶舟 All rights reserved. Theme by Laptop Geek.