学佛手记4:“参与他人的人生故事”——学佛的目的、意义

昨天到了深圳,参加周末两天的《楞伽经》课程,晚上约了最近新认识的朋友吃饭喝茶,畅谈人生苦短与美好。作为一名有志于晚年时成为心理咨询师的“佛教徒”,我时时处处对耳闻目睹的故事有一种敏感,也乐于去参与到这样的故事其中。 聊天期间,我偶然间用了一个短语来描述了晚年期待的咨询方式——“适当地参与别人的人生故事”。而如今学习佛教、心理学,甚至计划学习中医和五行,都是在人生路上希望多捡拾一些珍珠,以备晚年不要因自己的无知耽误了别人的旅途。 在此记下昨天的几个要点,也可以一睹我自己学习佛法的出发点、立足点和目的。 一、学佛应该是为了修己,而非责人 佛学是一门如何修行的学问,修行的是自己,而非他人。如果我们要影响他人,也是从深刻的改变自己开始的,此时的影响就是会是熏陶,而非强迫。 很多人没有注意到这个问题,往往把学佛建立的知见,用到了身边的同事、朋友甚至亲密关系中。虽然很多人,包括我自己学佛的起点都是因为“需求”,希望找到一个能解脱自己,甚至解脱他人的方式。 佛说“无我”,修行的过程就是不断的淡化心中的那个坚固的我,坚固的欲望,坚固的存在,当然也就包括坚固的痛苦和坚固的失望。真正走向这条路之后,在很多地方就会降低期望感,从而减少痛苦。 不过,如果我们把佛法作为进一步保护自己的武器,俨然自己站到了更高的位置,看透了其他“罪人”的无知、无明甚至卑微,假借佛的名义、佛的理论去捍卫自己,其实不仅违背了学佛的初衷,而且只会进一步缠缚自我,让自己难以解脱。 学佛,为修己,非责人。 二、修佛应该是补充品,而非替代品 不可回避的是,很多人学习佛法是因为某种心理疾病,事实上我们每个人也都身在病中。我们希望自己能在佛法的世界中找到一种补充品,来安慰、填补或者拯救受伤的心灵。 不过,如果我们一直秉持这样的心态,很可能会旧伤刚愈、新伤又起。因为我们很容易把佛法视为精神的依赖品,我们把本应该依赖的对象,比如家庭、朋友、公司,换了一个形体(佛)。这样的依赖有碍于我们自身的完整性。 佛说我们每个人本性清净,佛性具足,我们本应该不假外物即可成就,只是内心的坚固让我们越来越迷失自我。我们应该认识到这一点,认识到学佛只是帮助我们回归自我、认识自我的完整性。 “知我说法,如筏喻者,法尚应舍,何况非法。” 佛法应该是是我们人生美好旅途中的补充品,帮助我们更好的认识到自我和世界的本性,进而寻找到完整的自我;不要成为残缺人生的某个替代。 三、福慧双修 智勇双全:不要让善良成了肉包子 我们每个人都心存善念,但善良如今更像是一个贬义词。善良如今往往和弱者在一起。 过去多年的经验告诉我,一个人要善良,但是必须以勇敢为前提,“勇敢,从而保护善良”。佛法不能让老虎变成猫,而我们又缺乏“舍身饲虎”的勇气和修为,而且老虎的凶猛,恰恰又是我们的无知所促成,世俗世界的我们,应该福慧双修,觉悟自己,但不要愚蠢地受伤害。 虽然这么说来,似乎又坚固了一个“我”,修行中的我们,应该以修行增进智慧,看得清黑暗森林。 Nov 31,2019/Jan 1, 2020

学佛手记3:言语是最笨拙的沟通

大慧复言:为言语是第一义?为所说是第一义? 佛告大慧:非言语是,亦非所说。何以故?第一义者,是圣乐处,因言而入,非即是言。第一义者,是圣智内自证境,非言语分别智境,言语分别不能显示。大慧,言语者,起灭、动摇、展转因缘生,若展转缘生,于第一义不能显示。第一义者,无自它相,言语有相,不能显示。第一义者,但唯自心,种种外想悉皆无有,言语分别不能显示。是故,大慧,应当远离言语分别。 ——《楞伽经》 最近又见了很多新人新事新景象,内心是惊恐不安与彷徨。我越来越觉得过去的自己就像是一条在水中肆意游荡的鱼,碰到墙壁“哎呀”一声然后继续前进,直到生命的尽头然后重新开始。 多年前在婴贝儿上班时,有段时间我每天中午午休都会做这样的梦,我就是一条鱼,在狭窄的地下帘洞中往前游动,只要碰到石壁,就会GAME OVER。如今看来,好多年的生活,似乎就是类似情景的幻化,只是墙壁非墙壁,鱼儿非鱼儿——而是我的周遭和我自身。 就这样一直遨游下去,倘若无拘无束,一生也许善始善终。可惜我总是遇到这样那样的坎坷和问题,年年都在进步,年年都是新的苦恼。而大部分的苦恼,似乎来自于自不量力的言语。如今我终于学得乖巧一些,学会了闭嘴和静默,看到别人的事情种种和言语纠缠,此时反而清醒了很多。 我们总是想找能合得来的人作伴侣,能好好说话的人做同事,能理解自己的人做领导。 我们希望能找个人好好说话。 但是终其一生,我们发现这么简单的需求,却如此难以实现。茫茫人海,要找一个跟自己有默契心有灵犀的人真得很难啊。 为什么? 也许我们的出发点就错了,所以终其一生都到不了终点。

我的第二个python程序——tushare期权数据

说是第二个,其实在第一个之后,又学习了很多东西,学习python有几个重要的节点: python的数据类型十分丰富,其中的列表、集、字典都是此前我没有用过的,可以满足更高级的分析需求——数据类型是真实世界的模拟,高级的类型才更真实; 理解DataFrame的结构,和批量赋值的方法,刚开始转字典耗费生命,如今更喜欢用for in len()循环加iloc依此判断 循环是必不可少的语法 为了简化表达,开始定义函数,完美主义的解药。

〔Tableau问答〕以15分钟为数据桶做时间序列可视化 v2.0

前言:今天在Tableau的交流群参与了一个小讨论,回顾一下案例还不错,我想结合阐述一下“选择计算字段的基本方法”。 时间仓促,简要阐述,欢迎留言。 问题背景: 群里有人问“Tableau有什么办法把1min的数据聚合成15min的数据吗?” 这个问题阐述有点模糊,详细说明一下: 比如数据是每分钟生成一个数值,每分钟的的数据生成的折线过于密集了,希望更改维度的颗粒度; 但是时间默认只有年、月、周、天、小时、分钟等固定颗粒度,小时太粗,分钟太细,希望把每小时再分为四等分,即以15min为间隔聚合度量。 截图如下,都是昵称,我也无暇隐藏了,见谅 看一下提问者的截图如下: 1、直觉的解决方法 既然是要把分钟标记为0,15,30,45四个部分,直觉的解决方法就是根据分钟的大小做判断(if else)。如下: 虽然说直觉在大部分情况下是对的,但是对于新手而言,大部分情况下似乎是有瑕疵的。  2、我的思考方法 正好我路上看到这里,脑海中想了一个图,我们是想把分钟切分为四个部分,相当于数据桶又不能用Tableau的“数据桶”,因为数据桶在Tableau是把连续的度量切分用的,而这里是时间——维度。 上面的使用if else嵌套的方法,虽然可行,但显然效率太低,会给服务器沉重的压力——每一行都要做非常多的类型提取、转化、组合和判断。 这个问题之前有人问过我,不过当时是把1小时切分为2份,所以可以直接用上面的判断——只有两份使用的布尔运算,性能是最好的。这里要切分四分就不能用布尔运算,但是逻辑判断性能又太低。有没有更好的办法,比如用一次算数运算解决这个问题? 我突然想起来前几天在学习python写期货数据遇到的一个问题: 我的某个tushare接口一分钟不能提取120次,超过就会中断,为了避免中断,我设置了一个变量i,每循环一次+1,然后做“取整数计算”,当i//120>0时,设置time.sleep(60)休息60秒然后i重置为0继续! 这里能否用类似的思路,取整数运算? 似乎可行,我只需要让每个区间的分钟数值,先变成0,1,2,3,然后再改为0,15,30,45即可。我如今习惯了可视化更好的表述,如下: 思路既然清晰,我就在群里说明了我的想法,期待大家的验证: “大家好,数据很多,过多的if判断和嵌套会降低性能,不妨尝试用取整数计算。比如2//15=0,再*15,结果就是0/15/30/45四段。” 于是大家简化了上面的计算方法,如下: 看上去还不错! 2.5 取整运算的两个函数 ——(博客和公众号好友Byte启发后补充) 上面提出取整运算后,对方直接使用了int函数,我看结果正确没有细想,感谢byte的提醒,其实在Tableau中还有一个函数,是专门用来做取整数运算的——ceiling int是类型转化函数,把浮点改为整数,自动删除了后面所有的小数,因此是舍小数; ceiling是算术函数,是把浮点进位到最近的整数,因此是进位; Byte做日的数据桶,甚至使用了参数,这样可以根据参数设置数据桶的宽度,比如间隔是5,那么就是0-5号,5-10号,如果间隔是7,就是0-7号,7-14号。 但是如果我们把数据桶写0,5或者0,7,显然不如写5,10,或者7,14来的准确,因此ceiling函数就是更好的选择。 当然,如果你执着于int,那么就int之后加上1再计算吧。二者只是差一个单位,可以相互转化。 3、对时间的处理 上面的结果虽然不错,但是很明显没有充分利用Tableau中的日期函数,所以我又提出了新的完善建议: “可以使用datetrunc函数,一次性提取hour之前的日期,然后再加上后面的分钟计算,这样可以进一步提高计算效率。try~” 于是又有了下面的更优雅的计算方法: 不过,我发现我没有说清楚我的想法,这不是我想要的。虽然可行,但是这个表达式把日期转化为字符串(str计算),然后又做了相加。对于日期而言,这样的计算不安全,也有些冗长。所以,我进一步说明了我的想法: “外面的datetime函数可以尝试用dateadd来实现计算,datetrunc的日期结果add 日期的分段结果” 有必要我说明一下我的意思:datetrunc是截断,因此hour后面的部分都默认为0;而分钟已经通过“取整运算”返回为0/15/30/45四个结果,二者使用dateadd函数相加,就相当于一个日期加上了分钟部分。所以就有了下面的优雅表达式: 至此,最早的性能低下的if嵌套和字符串计算,就替换为了算数计算和日期计算,比较完美的解决了这个问题。 当然,这个表达式性能依然不高,因为每一行还是要做多次运算,才能返回一个结果,也许还有更好的办法,以后可以一起更新。 4、进一步的优化 正如上面byte所提示,如果领导的需求变化多,可以把数据桶的间隔改为参数,写入计算之中;在不需要更改参数的地方,只需要把参数控件隐藏即可。 一招致胜,四处享用。   5、选择运算的基本方法 我写这篇文章的重点是,面对此类问题,如何选择计算?? ​Henry说程序员有几个境界:能实现、性能好、代码短、艺术性。四者兼之,自然是上等佳选。从性能的角度应该如何思考呢? 根据个人的经验,提几个角度: A、选择计算方法时,布尔判断优先于算数计算,算数计算优先于(嵌套)逻辑判断。因此,当我只是区分小于30分钟和大于30分钟时,我用一个布尔判断来解决,但是当我要切分四阶段时,我选择用算数计算,只有二者都不能解决时,才考虑复杂逻辑判断。 处理逻辑问题,“没有if解决不了的,如果有就用两个”;;但是这是迫不得已的选择。即便使用if函数,也优先考虑iif、isnul、ifnull这样的简化函数,再使用​完整逻辑函数。Continue reading “〔Tableau问答〕以15分钟为数据桶做时间序列可视化 v2.0”

学佛手记2:所有的苦恼,犹如井底之蛙的困惑

“如来藏,本性清净,恒常不变,无有变易,在一切众生身中,为蕴界处垢衣所缠,贪恚痴等妄分别垢之所污染,如无价宝在垢衣中。” ——《楞伽经》 大约一周前,出差路上翻了一会儿《楞伽经》,我就被这句话所吸引了,然后反复琢磨背诵下来,写在了本子里,记在了心里。 前几天从南方返到另一个城市为客户提供Tableau培训,两个非一线城市不得不选择飞机中转,不料远方的石家庄大雾,导致前序航班延误两个小时,原来两个小时的换机时间就完全没有。发现后一班飞机也存在延误后,我想要赌一下时间。 可惜,当我的飞机尚未落地,另一个飞机已经开始登机,我下飞机一路狂奔赶到换机柜台,对方说“抱歉先生,您的飞机已经停止登记了,您虽然已经办理手机值机,但是被飞机剪掉了”。 Fuck! 当我跑到上气不接下气,为了转机把行李箱都提前快递寄走,结果还是几分钟之差没有赶上飞机,我完全忘记了自己还想做个修行人。 我买了一瓶平时几乎从来不喝的果粒橙,喝完了嗓子也是干涩的。坐在机场大厅长椅上,简直是“生无可恋”,但又没有勇气和资格说哭就哭。我甚至开始怀疑,我又做错了什么,佛祖要如此苛责于我? 不过好在我马上就调整了心态,人生就是旅行,我只是困在了一个城市一座机场而已。何况我已经不是之前那个穷到不舍得住酒店的人了,携程走起,一碗拉面一碗汤,躺下看会儿电影,时间比心情走的更快一些。

成长手记67:忙碌是优秀的天敌

马上就双12了,我却因为飞机延误,被困在了一个不大不小的城市里,我努力放松心情,躺在一家小酒店里,开着电视,回顾了今年匆匆忙忙的一年时光。 思考最近脑海里不停萦绕的一句话:“忙碌是优秀的大敌”。 很多年前看过柯林斯的名著《优秀是卓越的大敌》,一本讲解企业管理的书,当时年轻又无知,自以为看明白了,其实并没有懂,究其原因是自己并没有企业家、商人或者生意人的立场。 1 、 我的2019 今年我all in Tableau,几乎用了全年的精力在思考如何借助Tableau扩大我自己的人生赛道。我尝试了各种的可能,不管是销售、培训、咨询还是实施,只要是我时间许可,我努力的扩大我的一切工作范围。 回顾一整年的时间,我大部分的Tableau文章,几乎都都是在上半年的时间完成的;每天早上和晚上不用见客户的时间,是我最为清醒的思考时刻,我不断的总结和整理,放在了我的博客里面。我每个月用一个周末像“伪装的传道士”一样给大家分享我学习Tableau的体会和心得。 下半年,随着客户的增加,外出越来越频繁,以至于每个月只有少数的几天能在我的常住地,也慢慢喜欢上了这样的生活。这样的充实感让我感受到一个特别的价值。 不过,当我越来越忙碌,我反而感受到空虚,和埋藏在内心的一种彷徨。于是脑海中开始萦绕着开篇的那句话:“忙碌是优秀的大敌”。 2、 一个人的成长,也许是从深刻的思考开始的,思考让我们与众不同,让我们摆脱他人的言语知见。一个人成长的停滞,也许是从忙碌开始的,忙碌让我们聚焦于短期的所见所闻,解决眼下的事情,而再也没有心智去思考更长远的东西。 所以我也理解,为什么真正的哲学家都是家境殷实的思考者,而我注定做不了这样的角色。我不得不先为所谓的生活而努力,大概只有晚年的时候,才大概有点时间思考一点年轻人不会再关心的问题。 我今年定了几个长远的目标,一是明年计划出版一本书,二是将公司的业务开拓到更大的城市去。为此,我需要一段时间的思考,集中精力,思考、积聚前进的智力。 3、 不过,忙碌的背后,我希望自己能多保持片刻的闲暇,比如在旅途,比如在野外。 我希望接下来的一年,我能多用心体会生活中的美好。 因为,忙碌真的是优秀的大敌。 Dec 11, 2019

成长手记66:滴滴是“成年中产”的避风港

1 这几天出差在外,基本都是预约滴滴出行,一日飞机晚点,落地夜十一点半,出航站楼十二点。在滴滴平台打车到四公里之外的酒店,滴滴竟然还能给我钻石会员待遇免费升舱。 不过接单的司机似乎不太高兴,过了十分钟才到达预约地点;等我放行李时,司机师傅说“您能否把手机关机,这样我联系不上你,可以免费送你去酒店。” 第一次到一个新城市,我还是有些担心的,一个人从出生能安然活到最后,我觉得已经是上天最好的恩赐了,一生 不足百年,每年都有无数次的概率遭遇生死边际或者身心的坎坷。 司机师傅显然不太情愿,上课后给我导出原委,话语中充满了无助的忧伤和克制的忍让。 “我在这里排队等了两个多小时了,一直想接一单回到市区;如果我不拉你,我就要重新排队,再等待至少两个小时。只要你关机,哪怕飞行模式也行,我两次联系不上你,就可以让客服关闭这个行程单,而我可以保留刚才的排位。” 话到此处,情亦为开。我倒是有点自责了,这么近的单子,还免费升舱给了一位等待两个多小时的司机,先不说赚钱不多,关键是害得对方回不了市区,又要等到凌晨两点才有可能重新接上下一位长途客户。 我虽然为安全考虑,但还是开始体谅这位中年男士,明显家里有老有小,因为职业的缘故还要压制内心的不满。考虑到自己是后排座,飞机模式下也可以拨打110电话,而且飞行模式可以随时关闭,我最后答应了他的请求。 到店酒店,我说微信付给你车费吧,对方执意不要,而且时间紧着急回去,我只好从钱包里掏出来除了一百元之外的不足车费的零钱,在他给我取行李的当口放在了扶手位置。 不是为了成为所谓的好人,只是因为有时候生活同感不易,实在不忍心占他们的便宜。 2 第二天重新打车,另一位司机师傅接单,我从机场到高铁站,行程40公里120元左右,上车后我先和司机聊天,了解了他们的职业情况;他显然比昨天的师傅开心的多,一大早就接到“开门红”。 他说自己每天工作基本10个小时以上,有时候会更多;每天的收入大约在500到600元左右,扣减各类成本盈余300元左右(显然这里没有包含自己的人工成本和时间)。每个月的周末肯定是要出车的,平时家里有点事情就会休息一两日。这么算下来,每个人的收入大概在7000元到8000元左右。 如果是多年前,我觉得这个收入还是不错的,可是如今,通货膨胀随处可见,从我租赁的分享Tableau课程的场地(年后从每天500涨到800),到生活消费品的鸡蛋和肉类。这个收入,大概也就是普通的中等收入水平。 如今,滴滴几乎代表了一种职业的类型,无需要依赖一个随处可见的办公室组织,无需处理复杂的人际关系和单位政治,无需上班下班打卡尽显“人生的自由”,无需像民工一样承受过多的烈日和寒风。如果你给一个人说有一种这样的工作岗位,工作自由、收入不菲、单兵作战、环境可控,很多人都会充满好奇。 就是这样的工作岗位,成了这个时代越来越多人的避风港,他们刚刚拥有了自己的十万元资产(一辆不错的汽车)、拥有一个需要时刻照顾的家庭(大概率要有孩子)、在快速变化的技术狂潮中有点迷失位置(三十五岁学习一门技术?不存在的)、不愿意受制于快速崛起的90后领导(什么?领导是个92年?)、希望保有一个好的工作环境(至少不用风吹日晒)。 不过,过去两年的挣扎和痛苦的思考,我认为这样的职业选择,并非是理想的方式。各种自由自在的代价,不仅仅是充满单调的辛苦,而且是放弃了主动的进化。通过瑞·达里欧的《原则》,我接受了这样的观点:“进化是自然界最大的力量”。放弃进化的进一步代价,如同积攒的业力,未来有朝一日会集中显现——当然,可以是进一步的觉悟,也可以是换一个类似岗位的持续。 3 虽然如此,我个人并非对“滴滴司机”有任何的偏见。滴滴借助互联网和科技的力量,几乎彻底改变了网约车设置出租车的生态和格局,为无数的人提供了“最佳中庸”的就业环境,单就这一点,几十年之后,它依然会被很多人铭记。而且,在很久之前,我个人也曾体验了一把这样的临时工作,工作之余的晚上,利用Uber半月似乎收入了1000多元,当时觉得自己是“把汽车改造为资产的聪明人”,如今看来,只是因为当时自己的时间不值钱,所以可以用额外的方式销售罢了。 当然,滴滴不仅是一家改变了行业的好公司,也越来越成为一家“垄断性质的恶公司”。虽然垄断,还声称自己并非盈利,又在全世界大肆投资和输出资本。可是问一下滴滴司机,按照刚才那位司机5000元/天,每月满勤计算,每个月收入15000元,油费成本6000元(约占40%),盈利7000元。这可是在滴滴公司提取了总额20%和每单0.5元的费用之后,也就是司机收入15000元,已经排除了给滴滴公司的3750元(1.5W/0.8*0.2)管理费用。 这个费用,其实已经高于了小规模公司3%的增值税和5% 的所得税的比例,也超过了一般纳税人6%/13%的增值税和5%的所得税的比例了(按照盈利低于100万计算)。换句话说,滴滴公司其实是新成立的“全国司机总联盟”,用一个一家独大的托拉斯组织,取代了之前遍布各城市的“出租汽车份子钱收取公司”。 当然,这就是生意,这就是商业,没有一个商业天生以慈善为目的。我们要理解背后的规则,但是也无需像我愤青的年代再去指责这样的商业组织“不道德”——道德,从来就不是商业组织首先要考虑的事情,如果事后考虑了,我们感激,如果事后也没有考虑,那我们就祈祷。 4 与我而言,一个人要保持成长的进化、心智的成长,就不能轻易的落入“舒适的职业环境”,人的一生有很多的诱惑,有的是权色红尘,有的只是逃避痛苦的避风湾;从成长的角度,前一种诱惑背后的痛苦虽然激烈,但是也更容易醒来,后一种诱惑的安逸,让一个人醉生梦死。 所以佛说,阿罗汉虽好,但是证悟阿罗汉之后,小乘的自我清净反而会成为大乘的障碍。 所以佛说,恶人放下屠刀立地成佛,因为他们更懂得人性的反面,也更期待人性的正面;而普通人身陷红尘的美妙,只好先以欲勾牵,再乘机引入佛道。也正因此,我对《认识人性》一书中讲到的“只有那些最深刻的罪人”才能真正领悟人性的多个面向,深以为然。   Dec 4, 2019 写于一辆高速上的滴滴网约车