春运火车票 – 头次被铁道部所累

发个软件被人骂骂实在是常事,不过代人被骂就有点冤枉了,尤其是代铁道部被骂。。。。汗。。。。

春运火车票从限免以来,在效率类排名节节攀升,2天就已经进入前5名,当然是春运期间火车票查询的蓬勃需求带动,但也是因为附带了余票查询这样的功能的原因,但成也余票败也余票,正是余票这点功能让这款软件和铁道部挂勾了

6号突然出现有用户说余票查出都是0,紧接着谩骂滔天而来。查了一下的确无法获取余票了,不过铁道部的网站也是同样的瘫痪,要知道其他信息还可以通过离线数据库解决,余票必然要走铁道部的网站,但用户可不管这个,代人受过已是必然。

不过细分析来,脏水全都泼到铁道部的确有点文过饰非。

已经发布的版本有个缺陷,即当无法查到余票时不会提示无法查到,而是显示0,春运非常时期人人着急,显示0自然让人不爽,发泄点情绪也就在所难免了,否则即使余票无法查询,起码还是一款普通的火车时刻表软件,虽有不满也未必如此强烈了。

发文时,春运火车票已经降到8名了,谩骂还在继续,估计下降也会继续吧。以前常听说,细节决定成败,一个小小的提示可能就足以决定成败了,这次算是玩了一把过山车:)

P.S. 新版对提示的问题做了修订,在等待审核,亡羊补牢而已,至于余票什么时候能够回复,天知道,等着吧

Posted in 生活啊生活 | Tagged , , , , | Leave a comment

德川家康的智慧

丰臣秀吉打算攻打朝鲜的时候,德川家康要随行出征,他看到自己的儿子秀忠被丰臣秀吉的嗣子接任关白的羽柴秀次称为兄弟,很担心秀忠过多沾染京城的奢靡,而忘记了实力为先,于是决定考考秀忠。

他问秀忠:如果为父战死朝鲜,关白秀次让你赴朝报仇,你怎么办?

秀忠知道德川担心家业被夺,就回答说:以父仇虽重,但德川家业更不敢轻离为由拒绝

德川家康又问:如果秀次再次请求你出征,怎么办?

秀忠回答:仍然婉言拒绝

德川家康又问:如果秀次要求了五次,你都拒绝了,他又要求第六次怎么办?

秀忠答不上来了

(读书到此,我也很奇怪,应该怎么办呢?虽然德川家有200万石的土地算是大诸侯,但毕竟名义上是丰臣的下属,老大几次三番要求你都不愿意,很可能会给人于口实,那时丰臣发兵征讨,德川理亏很可能会被消灭。似乎是个死结,没有办法才对,难道德川家康还有更妙的招数?)

德川家康解答很奇妙,他说,为了避免这种情况出现,就必须时时注意跟秀次保持距离,让秀次不敢轻易提出非分的要求,这样当秀次要做决策前就会找你私下商量,你拒绝起来就更容易了。

的确,世上的事情并非都是有解的,当我们被逼到牛角尖时,无论什么样的聪明才智都只会有坏和更坏的选择而已,而德川家康的智慧则是让我们未雨绸缪,从开始就避免出现死结

Posted in 读书礼记 | Tagged , , | 1 Comment

浅谈阳明学

最早印象里的王阳明是个唯心主义的反面教材,一个说脚碰到石头是因为心里有石头才会碰到的大傻瓜,而王守仁的大号则常常和少林寺里大反派王仁则混在一起。

后来是看《江山如此多娇》,里面提到王阳明都是帝王之师大兵法家的形象,实在很是奇怪,不过毕竟是小说而已也就没有深究

三见王阳明是在《明朝那些事儿》,那个从小立志要做圣人以及数十年跌宕起伏人生的王阳明实在让人心动,所以说大陆的教育真是害死人,学了十多年还要再花十多年去发现学得东西都是错的。

据说王阳明心学高妙,但却不善著述,只有记录他生前言行的《传习录》,找来一看。又要骂大陆是文化的沙漠了,稍有点文化的书就没有简体版,本来古文就晦涩难懂,又是繁体,翻了几页放弃。

改看钱穆的《宋明理学概述》,钱穆是小学教师出身,古文研究的一级棒,搞在一起写的书应该比较容易明白。不过还是没能看没明白,就记住了前有程朱,后有陆王。程朱就是程颐、朱熹,陆王就是陆九渊、王阳明,可见王阳明的地位,但什么是心学还是糊里糊涂。对,还记住个词,叫知行合一,哈哈,去唬唬更不懂得人胡说几句还是可以的。

直到前几天,翻看钱穆的《阳明学述要》,才终于略有所悟。

王阳明把心学概括为四句话,后世成为四句教,即:
无善无恶为心之体,有善有恶是意之动
知善知恶是良知,为善去恶是格物

四句话是四个定义,前两句很容易理解,人的本心是无善无恶的,人的所思所想却是有善恶的,用现在的话说,就是人出生的时候是一张白纸,长大之后会被社会染出颜色;第三句是讲定义了良知的含义即能够区分善恶,这个也容易理解,一般讲良知未泯,就是还能分清好坏嘛;最后一句就稍麻烦一些。

何为格物?

传统意义上,古人认为万物有唯一的真理存在,在道家就称为道,佛家称为大智慧,儒家则称为天或者天理;那么得到唯一的真理会如何?得到这真理就能让你做正确的事。做对的事,说来容易何其难?人生有无数的抉择,每个抉择只有一次机会,结果不可预知不能翻悔,什么是对什么是错的确需要大智慧才能看透。那么这唯一的真理如何能得到呢?道家讲道可道非常道,即可以说出来的道就不是常存的道,佛家讲不可说,即真理只能靠悟,不能通过言语来传播的。所以道家有悟道,佛家有参禅,儒家则是格物致知。格,推究的意思,格物就是推究物质的原理的意思。

朱熹认为今天格一物,明天格一物,慢慢就可以得到天理了。于是王阳明依圣人之言,和他的朋友去格竹子,也就是坐在竹子旁边看竹子,他的朋友格了三天就病倒了,他自己格了七天也没撑下去。王阳明发现这种办法行不通,他就另辟蹊径,这条蹊径就是后世所说的王学,阳明学或者心学了。

王阳明指出所谓天理就是区分善恶的道理,就好像老百姓碰到不公的事情都会说没天理,其实就是说善恶颠倒了不分了。良知也是用来区分善恶的,所以天理就是良知,也就是人的本心。正因为天理就是人心,那么就不需要到外界格物来了解天理,只需要向内研究本心就可,也就是说做符合本心的善,不做不符合本心的恶,就能达到格物同样的作用,这就是心学,通过练心获取万物至理的修炼方法了。

从现在的眼光来看,所谓良知就是一个人的世界观价值观,而人是群居动物,人的世界观价值观是由他所在的种群赋予的,也就是说,这种世界观价值观实际上充分考虑到了这个种群的需要,符合这个世界观价值观即对种群的利益,所以王阳明的从真心而行,其实就是做符合种群利益的事情,小国寡民时代,人的本心就代表了小国的利益,即小国的利益就是天理;而天下大同的时代,人的本心就是全人类的利益,即全人类的利益就是天理。

王阳明认为练心最大的障碍在于人欲,所以必须要克复欲望,这并不是什么新提法,但与程朱时代的存天理,灭人欲的说法不同的是,王阳明的人欲实际上是排除了必要的欲望。比如吃,在圣经中有所谓七宗罪,其中贪吃是一罪,原因是当年物质匮乏,自然贪吃是罪,但放到今天,虽然贪吃仍然是欲望作祟,但已经算不上是罪了。程朱的存天理,灭人欲,是将天理和人欲对立,只要是欲望就要消除,所以至宋以后,中国社会逐步走入极端,只有圣人、罪人存在,没有凡人立足,不可说不是过犹不及啊。但王阳明的心学却不会,因为心学讲的是本心即天理,如果健康饮食是你的本心,那么就是你的天理,自然就不需要为了存这个天理同时又灭到这个欲望了。

再说知行合一,并非要知行合一,而是知行本合一的意思。说得是,心里想了就等于是做了,没做就不等于真知道。前一句是对克制人欲来说的,比如说公款在手,幻想一下怎么挥霍,自以为心里想想又不真做无伤大雅,其实想了就等于做了,所以克制欲望首先要从不想开始;后一句则更是常见,比如两个人吵架,很多时候已经意识到自己错了,但就是不愿意承认,为何?好面子就是你的欲望,道歉是你的本心,欲望蒙蔽了你的本心,那么你就等于不知,自然就不会做正确的决定了。

上面的几段话,也是几易其稿,但回头看来好像还是没说得太清楚,也可能是我还不足够明白,也可能是道本来要悟的:)

几天前看李开复纠正乔布斯的一句名言的翻译,说原文是心,而不是良心。用心的确比用良心更好,因为心是本心,就是良知,就是天理,更深刻的多,原文如下:

The only way to do great work is to love what you do. If you haven’t found it yet, keep looking. Don’t settle. As with all matters of the heart, you’ll know when you find it.

P.S. 乔布斯禅宗出身,和心学同承一脉也是自然啊

P.S.P.S. 四句教是心学很好的切入点,但它也是争议最大的一块,比如有人认为应该是至善无恶而不是无善无恶,前者应该承自三字经的人之初性本善,后者则发展出新三字经的人之初如玉璞,好在只是拿来主义,不用在这些细节上较真。

Posted in 读书礼记 | Tagged , , , | Leave a comment

标签记账 – 帮助还需要被帮助。。。汗。。。

紧接上回,为了更好的帮助用户理解标签记账,花了不少时间搞了一个图片版的帮助,并在1.7版中发出,结果出了点小问题

    不能用了?(小沐77评论)

    升级后只有7张图片?不能记账了?什么情况?

汗。。。真是郁闷的反响,帮助的图片本是7张,翻到最后一页就会自动关闭,貌似没什么大的问题,但思考起来,新增帮助图片却有两个细节上的有问题:

  • 没有明确指出图片的作用,自然对升级的老用户会有奇怪的感觉,就像小沐的评论
  • 最后一张图上没有标志说明继续翻页会关闭帮助
  • 最后一张图需要翻过1/3才会触发关闭,估计小沐也是没翻动就产生错觉,以为只有7张图了

帮助系统还需要帮助实在是让人汗颜,可见细节是何其的重要,这点真是要多向苹果学习,做得不足够好不如不做,真是如此啊

在1.8版中会对这些小问题进行调整,按照苹果的review的速度,估计至少一周以后了,请耐心等待

另外,有用户提到升级1.7会丢失数据,不知道是不是广泛的问题(心砰砰直跳),不过请不要过分担忧,数据不会真的丢失,稍后备份功能出来后,仍然可以将其找回。

Posted in 创意工场, 生活啊生活 | Tagged , , | Leave a comment

勿以成败论英雄

中国有句老话,勿以成败论英雄,原话好像是出自冯梦龙的《东周列国志》,对子突的评价。

子突是春秋时候周的大臣,当时卫国内乱,齐国发起五国联盟攻打卫国,卫国向周求救,周王召集群臣商议。周虽然还是名义上的天下共主,实际已经虚弱不堪,所以周的高层都反对出兵,子突挺身而出舌战群臣促成了出兵救援。但周高层担心子突成功,克扣子突兵力,结果在卫国城下一战全军崩溃,子突也死于阵前。

冯梦龙感叹子突:

虽然只旅未成功,王命昭昭耳目中,见义勇为真汉子,莫将成败论英雄。

勿以成败论英雄,本意是提醒人们要看过程不要只看结果,但它也同时表明,众人皆以成败论英雄啊。

比如战国的纵横家,公孙衍、张仪、 孟尝君、苏秦,无疑都是纵横一世的人物。

公孙衍是最早感受到秦国威胁的人,他首提合纵,数次组织五国联军(不含楚国),可惜各国掣肘并未对秦国造成什么威胁。

张仪则是公孙衍的对手,力促连横破坏各国联盟,他一手策划了秦魏联盟,历任数届魏国相国为秦服务,更通过破坏齐楚联盟方面,使秦国得到汉中地,被后世纵横一门尊为始祖,但他依赖秦国的军事经济实力,离开秦国就一事无成,只能落得一个万年老二的称号。

孟尝君是公孙衍的继承者,在专权齐政期间,数次组织多国联军攻秦,甚至攻破秦函谷关,迫使秦国求和并归还魏韩土地。孟尝君本意是通过抑制秦国为齐国创造灭宋的时机,但多年征战,齐国并没有得到实际利益,而秦国也未受到大的伤害,可以说是徒劳无功。

只有苏秦独树一帜,他作为燕国的在齐国作死间,通过各种手段积极削弱齐国国力,破坏齐赵联盟,最终促成五国伐齐的契机,造成弱燕灭强齐的局面,几乎改变战国的整个格局,真是战国纵横第一人。

后世对苏秦的称赞真如滔滔江水绵延不绝。先是将他早生几十年直接替代公孙衍和张仪抗衡,可公孙衍也算个人物被这么硬替多无辜;又说他带六国相印使秦人不敢出函谷关十五年,苏秦虽然当过三国的武安君但六国相印实在夸张,何况秦人年年攻城略地别说十五年五年都嫌多;再说他是张仪的师兄,靠智计激张仪入秦,张仪也不得不感叹自己坠入苏秦的算计之中, 实际上张仪死得时候苏秦还没出道呢。众说纷纭以至于太史公司马迁这样严谨的史学家也要晕头转向,写出的《苏秦列传》错版连篇几乎无法自圆其说。

所以说,勿以成败论英雄,何其难?

Posted in 七嘴八舌, 我的文字, 读书礼记, 通鉴故事 | Tagged , , , , , | Leave a comment

标签记账 – 一款自认为很好用的记账软件

07年记账至今也用了不少的记账软件,最后坚持下来的竟然是Google Docs的Spreadsheets。

究其原因,大概是因为用过的记账软件在录入信息时候太不自由。一般的记账软件都需要先创建条目,然后选择条目计入费用值。这种方式更适合与固定账目的情况,但从个人角度上说,费用千奇百怪,以鞋为例,可以有运动鞋,皮鞋,布鞋,高跟鞋。。。。。。就仅运动鞋又有不同的牌子,不同的规格。。。。

如果使用一般的记账软件,只能不断的建条目,或者将所有这些项合并成一项。

采用前者则录入会非常的麻烦,毕竟很多类型可能好几年才会有一条记录,甚至只有一条记录;采用后者则会丢失信息,在后期统计方面就会受限很多,比如所有鞋都记录在鞋的条目下,想统计不同的鞋的花费就就有可能了。记账是个常年累月的工作,数据丢失实在是很可惜的事情。

所以如果能使用自然语言记录账目是最理想的事情,但要想让软件正确的理解自然语言以目前来看还是有一定的困难。

最早碰到的是尝试是一款记不清名字的小软件,它的方法是在费用前加上+/-,然后通过解析字符来统计账务,比如:

本月工资收入+1000,刚买U盘-300

这款软件很有趣但并不足够可以使用,毕竟只是统计一个收支的结果实在是太简单了。但毕竟是个不错的开始,如果能在其上增加出费用名称的识别就是更好了。于是做了一些尝试,比如在费用名称前增加一个空格,还考虑到输入+/-不方便,通过比如默认没有操作符的即是支出(毕竟支出一般比较多),如下:

本月 工资收入+1000,刚买 U盘300

最后搞出了一套规则:

  • [日期]<空格><消费名><+/-><金额><空格>,例如” 工资+1000″

有了规则,再结合自然语言如发微博的记账方式,就形成了标签记账的雏形,当时的名字叫记账推。但真到开发的时候,才发现预制的规则仍然很复杂,开发复杂,录入也复杂。

简化再简化,可是如何简化呢?突然想到了超市的小票,一个抬头,每行一个条目,前面是消费项,后面是单价和数量,简单明了。一旦程序解析出消费项和金额,就可以依据以消费项进行分类,统计,如果把消费项目看做是一个标签,整个软件的机制就变成以标签为核心进行了,这就是标签记账。

最初的标签记账只能识别简单的语句,还有BUG被用户抓到(十分感谢ppfans),不过在1.5版已经做了比较大的修订,并且支持了*/+的操作符了,已经完全和超市的小票一致了,比如:

可乐   3 * 2

标签记账开发以来,可以说是毁誉参半,主要还是它和一般的记账软件在操作上有太多的不同,不少用户不知道怎么使用,这的确是个很大的问题,在1.7版中(正在等待苹果验证)增加了一个图片方式的帮助以替代之前帮助弹出框,不知道会不会有所帮助。

但从我个人来说,标签记账是一款自认为很好用的软件,毕竟它已经完全替代了使用了好几年的Google Docs,当然它还有不少问题,首先是缺乏将以前的历史数据导入进来的功能,其次在统计查询方面还有可改进的余地,所以标签记账仍在持续的改进。。。

Posted in 创意工场, 生活啊生活 | Tagged , , | Leave a comment

xcode项目文件引用问题

被一个小问题困绕了好久。

在一个ViewController类里声明了一个函数,然后在AppDelegate中调用,xcode一直报”may not respond to“的错误,反复检查都看不出问题

偶尔在参看类定义时发现,这个ViewController类竟然存储在一个项目文件列表以外的头文件里

原来,该ViewController类之前被声明过两次,前一次生成的文件保存在classes目录下,但在项目中的引用被删除了;第二次生成的文件被保存在项目根目录下,项目中引用的是这个.结果,编译时xcode找得却是调用类所在目录下的头文件,即classes下的文件,同样的类名,当然新定义的方法是不存在的,才出现了上面的问题

最开始用xcode,总觉得它的项目文件管理使用引用的方式,使项目文件和实际目录分离,import不需要明确引用文件所在的目录,算是满新颖的方式.自然也想当然的认为import的范围应该以在项目中定义为准,没想到import采用的竟然还是优先当前目录,其次项目定义的策略,不知道是故意设计还是BUG啊

Posted in 软件技术 | Tagged , , | Leave a comment

iPhone多语言nib更新问题

使用xcode实现app的多语言非常简单,就3步:

  • 修改xib,增加不同语言版本
  • 添加.string文件,增加不同语言的xib
  • 修改代码使用NSLocalizedString调用string文件中资源

在增加了新语言版本的xib,出现一个问题,不管是在模拟器中还是真机中,界面都不会更新了。无论多少遍clean也没用。除非把应用删掉重新下载。

仔细研究发现,所以界面出现问题,是因为默认时候,nib文件会放在app的根目路下,但一增加新语言,所有的nib文件会分别复制到不同语言的目录里,但对于xcode来说,他只会复制和更新nib,但不会删除无效的nib文件。不删除并非xcode的BUG,而是iOS的安全机制导致的,自己写的程序也没办法把app目录下的nib删除掉。

所以,对界面增加新语言后,一定要把app删除重新添加,如果有些数据需要备份,可以通过xcode下载到本地,然后加入项目中,再写临时代码将复制到app根目录的文件复制到指定目录,最后删除临时代码。

Posted in 软件技术 | Tagged , , | Leave a comment

东野骗局

之前看一个电视购物卖纯银纪念币的,现在鼓吹纪念币如何稀少,然后说按现在银价15元计算,即使买一块这么重的银子都不值这个价格,再加上升值空间如何如何,说的让人心动。

可惜,我很清楚,银价很便宜,一般不会超过4元

记起最早有电话推销奥运钞,当时第一个感觉是假的,结果在网上核对了奥运钞的所有信息,发现的确是真的。幸好,有淘宝,一检索面值50元的奥运钞一张70,而他们2张卖280元。后来,才知道那版的奥运钞发行量太大,几乎没有升值空间。

电话那边还在鼓吹如何有价值如何能升值,我问,70能买到我为什么要花140?

之前看东野圭吾的小说,他最爱的手法是给一个错误的前置条件,然后在这个条件上再进行各种严谨合理的推理迷惑读者,最后把前置条件一推翻,每个读者都大吃一惊

上面的两个骗局也是如此,纯银纪念币给一个高出数倍的错误银价,然后再起上做投资推算,当然不论如何都是非常划算的;奥运钞则是在市价上做文章。

记得老鼠会是以查尔斯·旁兹的名字命名为庞氏骗局,东野运气比较差,被我借用一下命名这个为东野骗局,呵呵。不过,电话也就算了,电视购物明目张胆的不断连续播放也没人干预实在是让人不爽阿。

Posted in 骗子大全 | Tagged , , , | Leave a comment

twiproxy更新到0.4.1

前几天对twiproxy做一个次小规模得更新,要说这次更新,前前后后只能用一个词来形容,那就是,莫名其妙:)

先说初衷,最早做twiproxy就是因为GTAP不支持xAuth,所以自己折腾一下,虽然众多不完善还是凑合了,可是最近不断有人在twitter商咨询,每次都是回复不支持,还不完善之类,说到嘴软,决定更新了,这不是莫名其妙嘛

再说,更新的方案,主要是两项:

  1. 合并GTAP 0.4.1的代码,说起来对GTAP的改动还真不少,不过总体也就是个对比复制的工作,真够不用心的(难怪被某人说代码ugly)
  2. 修改twitter api的入口地址

总之改动很简单,总共花了大概半个小时,但效果就让人惊奇的莫名其妙了:

  1. 原来twitter for iphone无法显示的profile正常了
  2. 原来据说不能使用的push功能也正常了
  3. 感觉上速度变快了一点(后来证实是错觉)

于是我好不犹豫的换上了新版,在twitter上发布了一下,结果没人理我。。。。。莫名其妙

后来,当我感叹效果竟然这么好的时候,才有人发现更新了还给了个好评:),结果第二天app engine挂掉了。。。。莫名其妙

Posted in 公告通知, 生活啊生活 | Tagged , | Leave a comment