诚信

《怪诞行为学》的第八章“性本善还是性本恶”里面说了诚信的重要性。里面有一些关于诚信的试验,大意是说诚信和道德约束有关系,当一个行为不符合某个人道德约束,并且这个人此时意识到了这个道德约束(一些因素会影响这种意识的强烈程度),那么他就会选择放弃不诚信的行为。里面写到:

诚实为什么重要?一个理由是,我们别忘记美国在当今世界上占据经济强国的位置,就是因为(起码我们认为),在企业管制标准上,它是世界上最诚实的国家之一。

今天早上听《锵锵三人行》,这一期正好也说的是诚信。诚信可以分解为两个部分,诚实和信任。因为互相诚实才会互相信任。这在我们现代的中国,是严重缺失的,社会上大量的热点事件和诚信的缺失相关。每次提到缺乏诚实,都会提到所谓的“厚黑学”对我们社会道德的影响,我们的生活圈子里面的确因此有很多人推崇“术”和“礼”,所有的事情都需要讨论一下如何“经营”。这一方面说明我们善于思考,知道如何通过一些行为来影响事情的发展,以保持自己的利益。很少有绝对诚信的团体,但是有些团体更诚信一些。我非常希望生活在更诚信的团体中。

我们朋友间经常评价某人是否“靠谱”。我想“靠谱”的朋友大部分是真诚对待我们的人。我不是说一个人对所有人真诚是“靠谱”,我指的是他对我们诚实,所以对我们这个小群体来,他/她是可信的,那么我们就把这个人归做“靠谱”的人。

要想表现的诚实,需要一个起码很小的可信的环境,也就是说如果一个最小的可信任环境都没有的情况下,诚实是做不到的。我们身上可能都发生过这样的事情,某人在路上把你拦下,说路上发上了什么意外或者迷路了,希望跟你要一些零钱回家。在第一次遇到这样的故事的时候,我们小时候学到的乐于助人的道德标准会鼓励你给他们一些钱,你给了以后心里还甜滋滋的。这里面有个条件,要钱的那个人的“表演”一定要非常的真诚,让你相信他/她,你们之间有一个很小的诚信环境,所以你的道德约束就可以起作用。但是,事实是,这种情况几乎全部都是骗局(女巫店的《机场奇谭录》),朋友亲人的教导还有再次遇见这种表演会让你知道这是不可信的。这时你在遇到这种事情的发生的时候,你和骗子之间是没法形成一个诚信环境的,此时道德约束就会变得如鸿毛一样轻了。这无数次的失望形成了我们社会中诚信的缺失。

《怪诞行为学》中还提到了制度约束不如道德约束。比如迟到:以前在ThoughtWorks的时候,没有人记考勤,但是迟到行为需要向捐款箱投钱,数量不顾定,一些团队可能会要求迟到的人买冰激淋请客。现在工作的公司有严格的考勤制度,迟到1-2分钟也要用1小时的加班抵扣,否则就会扣工资,定这些制度的人会说制度是平等的,但是造成的结果确实大家藐视迟到,想办法申请更多的加班。《怪诞行为学》里面讨论“罚款对杜绝迟到有效么?”提到社会规范强于市场规范:

罚款的效果并不好,事实上它还会带来长期的负面效应。

社会规范(例如共同创业的兴奋)强于市场规范(例如薪金随晋升而增加)时,员工能为公司(特别是那些刚起步的公司)创造的价值的确令人瞩目。

实际上,他们会认识到社会规范可以简历忠诚,更重要的是,它使人们自我发展,达到如今企业的要求:实行弹性工作制,关心公司,并且积极参与公司事务。这正是社会性关系带来的。

王晓明同学讲《价值驱动的组织结构转型》的时候提到了价值驱动的可评估的组织结构转型,我听完很受启发。不过ZoomQuiet同学以前曾经用过这样一个签名“组织结构转型就是催生靠谱的人的组织”。这两个说法都强调了组织结构转型是一个制度和人的优化过程,其中制度是所谓的市场规范,制度规范的修改要放权于靠谱的人。而人的建设是整个过程中最重要的,人要靠谱,也就是说真诚的实现承诺,构建一个充分互信的环境。所以王晓明同学提到在做组织结构转型的时候要注意不要存侥幸心里,做过程改进试验的时候要通知上级和下面的团队,达到共识以后再实践。在企业内部形成信任链条,大家都诚信的工作,才可以让社会规范充分的发挥作用,达到促进企业健康发展的目的。这个过程也就呼应了ZoomQuiet同学所说的“催生靠谱的人”,有能力又诚实的人一起工作,形成诚信环境,也就形成了一个靠谱的人的集合,那样就有了靠谱的人的组织,组织结构转型就会成功。

所以我想这样定义:

靠谱
诚实,可靠(可以达成目标)

最后,说说OpenParty。和冰云、聪明的猪一起聊,开始有了组织OpenParty这样一个活动的想法。原因是我们希望各个社区里面靠谱的人可以在一起真诚的交流,交流的内容不设限制。因为当时的很多公司赞助的技术活动里面有很浓的商业味道,让一些话题变成了软文的宣讲会,这样大家活动起来很不舒服,在这个角度上来说就是缺乏“真诚”。我们组织活动的方式选择了Unconference,自助会议。活动的时候个人是没法影响活动的走向的,大家在一起通过民主的方式选择要听什么、要讲什么。到现在好像快有30期了,我们发现随着活动的不断积累(口口相传),来参加活动的人越来越“靠谱”,很多社区的大腕在现场和参与者真诚交流,听话题的朋友给演讲者真诚的反馈。这样真诚的环境就形成了一个小范围的信任。Terry Zhu来我们活动的时候说美国的湾区(美国的创新发动机)有很多类似OpenParty这样的开放会议,大家都很真诚的交流,所以形成了湾区那样的环境。朋友从美国旅游回来说三藩那里充满微笑,但并非美国所有的城市都是那样。可以说,由于湾区城市大部分的人的真诚,形成了城市良好的诚信环境,这样的环境会让更多的靠谱的人聚集过去。OpenParty只是一个很小很小的活动,它只能形成一个很小很小的诚信环境,但是这是一种努力。我们希望这种努力可以把诚信带到更大一些的环境(参与者所在的公司),延长到更久的时间(朋友在活动以后的深入交流),能够聚合更多的靠谱的人。

用真诚换信任。希望我们不要总是面对艰难的囚徒困境就好。

links:

怪诞行为学
怪诞行为学
锵锵三人行
锵锵三人行
女巫店的《机场奇谭录》
女巫店的《机场奇谭录》
ThoughtWorks
ThoughtWorks
价值驱动的组织结构转型
价值驱动的组织结构转型
ZoomQuiet
ZoomQuiet
OpenParty
OpenParty
冰云
冰云
聪明的猪
聪明的猪
Terry Zhu
Terry Zhu
囚徒困境
囚徒困境

在VPS上装东西优先参考它们的wiki

有个朋友问我装OpenVPN哪个教程好,可那是很久以前搭的所以我不记得是用的哪篇教程了。还好,在Ubuntu的linode上面搭OpenVPN基本上没什么障碍。据我的经验,在VPS上面装任何软件最好的方式就是看注明VPS的wiki:

这两个都很不错,可以优先看看这里是否有需要的教程。

VPN还有其它选择,如PPTP和L2TP,它们在桌面和移动平台基本上都可以用,不像OpenVPN由于授权问题在一些封闭的移动系统里面不可以用。不过最好……你的VPS三种VPN都部署上,以备不时之需。

我最喜欢的电台是什么?当然是北京FM91.5轻松调频啦。 What’s you…

我最喜欢的电台是什么?
当然是北京FM91.5轻松调频啦。
What’s your favorite radio station?
It’s definitely Beijing FM 91.5 EasyFM

在iPhone上我可以订阅EasyFM的一些Podcast,还可以通过WunderRadio收听在线的版本。iPod nano可以收到,AIWA的收音机可以受到,家里现在有个大收音机解决了信号不好的问题。That’s so cool!

I subscribed some podcast from EasyFM, and I also listen EasyFM online by WunderRadio on my iPhone. I can receive EasyFM radio through my wife’s iPod nano, a old portable AIWA FM radio reciever and a advanced big radio receiver at home ,it fixed the bad signal issue. Sweet!

Inception

盗梦空间 Inception:

道姆·柯布(莱昂纳多·迪卡普里奥 Leonardo DiCaprio 饰)与同事阿瑟(约瑟夫·戈登-莱维特 Joseph Gordon-Levitt 饰)和纳什(卢卡斯·哈斯 Lukas Haas 饰)在一次针对日本能源大亨齐藤(渡边谦 饰)的盗梦行动中失败,反被齐藤利用。齐藤威逼利诱因遭通缉而流亡海外的柯布帮他拆分他竞争对手的公司,采取极端措施在其唯一继承人罗伯特·费希尔(希里安·墨菲 Cillian Murphy 饰)的深层潜意识中种下放弃家族公司、自立门户的想法。为了重返美国,柯布偷偷求助于父亲迈尔斯(迈克尔·凯恩 Michael Caine 饰),吸收了年轻的梦境设计师艾里阿德妮(艾伦·佩吉 Ellen Page 饰)、梦境演员艾姆斯(汤姆·哈迪 Tom Hardy 饰)和药剂师约瑟夫(迪利普·劳 Dileep Rao 饰)加入行动。在一层层递进的梦境中,柯布不仅要对付费希尔潜意识的本能反抗,还必须直面已逝妻子梅尔(玛丽昂·歌迪亚 Marion Cotillard 饰)的处处破坏,实际情况远比预想危险得多…… 

我仅借上这么个引子,是说我的老婆和我的故事。

这段时间老婆睡眠不好,经常有噩梦,甚至有时半夜会哭醒。我最为丈夫当然要细心开导。我这个人很信任心理暗示的作用,所以就希望通过心里暗示的方法让老婆给自己植入一个想法,客服噩梦带来的麻烦。

老婆最近的噩梦有两种主题(这个其实是我老婆的隐私,不过说来无妨):

  • 梦到小的时候上课老师让回答问题,被刁难,或者考试有难题做不出来,非常着急和委屈。
  • 梦到长相可怕的人吓唬她

因为老婆对我总是很信任,并且觉得我很聪明,所以我就想以此作为基础让她对自己有心理暗示。主题就是这样:“无论何时Tin都会在我身边帮助我的。” 结果还真的不错,老婆后面一周的睡眠恢复了很多:

  • 第一种梦境她会梦到我告诉她如何回答,然后进很自豪了。考题的时候她会梦到我回家给她讲题。这些场景就基本上不会成为噩梦了,而是一种有压力但是最后会缓解的场景。而且这个时候她基本上会意识到自己在做梦了。
  • 第二种情况因为她基本上都能梦到我在身边,所以很少梦到遇到长相恐怖的人的梦境了。

我还满心欢喜这Inception植入的不错。但是,电影里面就说过,一个看似聪明的Inception总是会被做梦者潜意识的保护所破坏,最终的结果就是通过另外一个梦把做梦者带回原来相似的困境中,也就是噩梦。我们尝试的这个心理暗示,最后果真还是被另外一个梦弄得失效了,而且这次又把我亲爱的老婆吓醒了,对她的打击似乎比上次还要严重。所以这已经在警告我不要尝试通过暗示的方式让Inception影响你的梦,这种Lucid dream其实更真实也就更可怕。

我老婆梦到了什么呢?简单来说就是她梦到她非常信任的我出了问题。她梦见我变得非常落魄和消瘦,但是依然甜蜜的迎接她回家,这个场景让她很难受。其实这就是对我们尝试暗示给自己的东西的一个反驳,因为每次用了很强烈的意识说我是保证她的梦安全的人,但是如果我出了问题,那么这个梦就崩溃了。

我现在真的很后悔自己干预她的梦。而且也许我们要通过调节睡眠节奏的方式来减少做噩梦的情况了。现在观察的结果就是白天睡眠过多或者睡前喝水太多容易引发这种强烈的梦。所以我们准备从这方面解决问题。不能再尝试通过暗示的方式来做了,那样最后我们两个都心疼了。

这篇blog献给我亲爱的老婆!

最简单的说,最有用的是这篇教程《Debian上安装l2tpd/IPSec VPN…

最简单的说,最有用的是这篇教程《Debian上安装l2tpd/IPSec VPN服务》。
在Linode的Ubuntu 9.04 (jaunty)上面安装L2TP,由于参考了apple4.us的这篇文章《如何在 Debian / Ubuntu 服务器上架设 L2TP / IPSec VPN》,所以没有配置成功,主要原因是ubuntu上面的openswan版本和这个配置不相符,强行配置是会失败的,照猫画虎难度很大(而且我现在用的jaunty的openswan根本就配不通)。
主要卡在sudo ipsec vierify上的两个disable上面:
Checking for RSA private key (/etc/ipsec.secrets) [DISABLED]
ipsec showhostkey: no default key in “/etc/ipsec.secrets”

Opportunistic Encryption Support [DISABLED]
后面的这个Opportunistic Encryption因为oe=off这个配置不对,所以总是提示很多问题。
后来经过了很多无助的搜索才发现了这篇《l2tp vpn搭建总结(linode ubuntu)》,解释了这个不要紧:

其中需要注意两项:Checking for RSA private key和Opportunistic Encryption Support,第一项其实你大可不必管他,disable或者ok都行。如果你实在要解决,可以:

ipsec newhostkey –file /root/tmpkey
cat /root/tmpkey >> /etc/ipsec.secrets
rm /root/tmpkey

然后,疑问都解决了发现没有仔细阅读《Debian上安装l2tpd/IPSec VPN服务》,人家说:

如果客户端连接显示“server did not respond”,通常说明openswan的版本不对,Debian Lenny自带的版本貌似有些问题。在命令行运行如下命令,即可安装openswan-2.6.24:

sudo aptitude install libgmp3-dev gawk flex bison
wget http://www.openswan.org/download/openswan-2.6.24.tar.gz
tar xf openswan-2.6.24.tar.gz
cd openswan-2.6.24
make programs
sudo make install
sudo apt-get remove openswan
sudo /etc/init.d/ipsec restart

卸载openswan并自己编了新的版本后果然就OK了。注意调试的时候应该看/var/log/syslog和/var/log/auth.log。

登root的时候发现: You have new mail in /var/ma…

登root的时候发现:
You have new mail in /var/mail/root
原来是有很多root邮件没有传递,查了一下可以这样做,修改/etc/aliases:
root: your.gmail.account@gmail.com
然后sudo postalias /etc/aliases就好了,root邮件就会被传递到你的gmail邮箱。当然我的情况是在ubuntu下使用postfix,否则修改的位置略有不同,谷歌一下。

昨天调试服务器上的L2TP,sudo -i了一下,发现root根目录有好多好多的…

昨天调试服务器上的L2TP,sudo -i了一下,发现root根目录有好多好多的wp-cron留下的垃圾文件,原来是我的crontab写的有问题:

*/5 * * * * /usr/bin/wget http://www.ermiao.com/wp-cron.php?doing_wp_cron >> /home/public_html/ermiao.com/log/wp-cron.log 2 >> /home/public_html/ermiao.com/log/wp-cron.err

因为默认情况下wget会把文件下载到home目录下,而且它还会自动重命名,结果文件越来越多……

解决方法就是增加下载后删除的参数,并且让它quiet运行。

*/5 * * * * /usr/bin/wget -q --delete-after http://www.ermiao.com/wp-cron.php?doing_wp_cron >> /home/public_html/ermiao.com/log/wp-cron.log 2 >> /home/public_html/ermiao.com/log/wp-cron.err

OpenParty的新网站的Django项目使用了South这个migratio…

OpenParty的新网站的Django项目使用了South这个migration工具。可是刚才增加了一个Model以后却无论如何都无法生成这个migration。

./manage.py schemamigration core --auto

上面这个命令每次都提示:

Nothing seems to have changed.

很郁闷。试验了看是否是South或者Django的版本问题,都升级到最新版依然有这个问题。看了google groups里面也没有人报有这个问题。于是仔细搜索问题的来源,最终发现是这个原因:

class Meta:
app_label = 'core'

上次我们Team重构项目的时候去掉了项目的openparty前缀,使用相对路径import,结果造成”core”项目实际上是存在”apps.core”下面的。所以,需要用Meta类告诉Django实际上对应的app名称。结绳记事。

Leopard下如何让你的sudo不需要输密码

在Snow Leopard的Terminal里面用sudo的时候总是需要输入密码,而在单位的FreeBSD服务器上则不需要。我觉得从安全角度来说这个密码用处不大,有了反而会浪费时间。

搜索了一下,发现要这样做:

修改/etc/sudoers文件(记得sudo vi它,存的时候要w!),去掉这一行前面的#号:

%wheel ALL=(ALL) NOPASSWD: ALL

然后执行下面命令,记得将your_username替换为你的用户名:

sudo dscl . append /Groups/wheel GroupMembership your_username

从此就不需要在sudo的时候输入密码了。

Cassandra的一致性级别

翻译Cassandra文档中的一段。

写一致性级别Write

ZERO
不保证一致。写操作在后台异步执行。除非CASSANDRA-685 修正,否则当太多写错作排队的时候,buffer会膨胀,后果很坏。
ANY
(需要0.6的Cassandra)保证至少写入到1个节点中,包括示意(hinted)的接收者。
ONE
保证写操作在回复客户端前至少已经进入1个节点的commit log和memory table。
QUORUM
保证写操作在回复客户端前至少被写入到 (<复制因数> / 2 + 1)个节点中。
ALL
保证写操作在回复客户端前已经被写入到 <复制因数> 个节点中。任何节点如果没有响应,则操作失败。

读一致性级别别Read

ZERO
不支持,因为没有意义。
ANY
不支持,应该使用ONE来代替。
ONE
将会返回第一个有响应结果的节点返回的数据。在使用ConsistencyLevel.ONE的时候,一致性检查永远是在后台线程中来修复一致性问题。这意味着如果开始的读取得到了旧数据时后续的调用可以返回正确的数据(这叫做读取修复 read repair)
QUORUM
查询所有的节点,一但绝大多数复制节点返回了结果,返回具有最新的时间戳的纪录。其余复制节点的结果会在后台进行检查。
ALL
查询所有的节点,一但所有复制节点返回了结果,返回具有最新的时间戳的纪录。任何节点如果没有响应,则操作失败。