bookmark_border碎片 2020

2020 年过去了快要一半,大家都在等着世界恢复正常。我想起了 H2G2 一句 quote:

We will be restoring normality just as soon as we are sure what is normal anyway.

然而世界的分裂并不是今年开始的,也不是2016年美国大选开始的,也不是2012年 he who must not be named 上台开始的,也不是 08 年金融危机开始的,肯定也不是我前一阵忽然倾向于认为的 911 事件开始的。挣扎和痛苦是人生存的一部分。我并不是要 justify 现在的可怕状态。但是糟糕状态下,想想这些,不要觉得现在我们经历的是 exceptional,咬咬牙,每一代人都有他们的挣扎。或者想想女性,在大多数人类文明中,自始至终无时无刻不处在挣扎中。除了 endure 和尽力改变能改变的,好像别无选择。

我现在的工作无意义得让我天天濒于绝望。同事没什么特别不好的,本质上都是还行的人。但是每天都要被他们的 snob 刺痛(虽然只是很正常的、任何地方都有的 snob)。要在这种地方混得好,就要不怕打断别人、牺牲自己的时间、下很多武断的结论。最后得到的是一种自我满足。我知道我处在的环境已经比绝大多数地方好很多很多了,但是每天甩在我脸前的技术 snob 仍然是造成我痛苦的很大根源。我们每天做的这些事背后,其实只是搬数据促成商业运作,虽然不至于对世界有害……任何谦虚和 unassuming 都会被当作无能。最近一直觉得 meritocracy 是有问题的。然而我目前经历的还不足以构成我脑中批判的那种 meritocracy。

我同事有时候聊起小孩入学问题,小孩课外班的事情,或者聊起出国旅游,买房买车什么的。他们过得这么好,这么兴致勃勃。我只能觉得,任何觉得可以全身心投入这些问题的人,都并不正常。我真的不是嫉妒。罗素说的那句 “One of the symptoms of an approaching nervous breakdown is the belief that one’s work is terribly important.” 可以扩大到任何 worldly 的事情上。

— 分界线 —

从大学的时候开始,我就发现我读通知书的理解力很低。现在几乎波及所有的中文文章。现在很多微信体、网红体我都可以怪这些文章的文体。官腔我更读不下去,可能从小学的时候开始就是。网络用语我一开始是很看不懂,所以当年刚开始上网的时候我发现英文网站能读懂的比中文网站多,后来被迫主要活动于中文网站后,我开始对网络用语熟悉了,发现了很多时候网络语言很有表达力,然后网络用语开始为了逃避审查而变形,因为这些变形还是反映了审查,我大多数时候是跟得上的。然而现在我的中文理解力还是很低,可能因为我看的好的中文太少了。

我自己写的语言也没好到哪里去。最近我中英文夹杂的情况又严重了,因为我对自己的要求降低了。反正也就我自己看看。

bookmark_borderbabbling 4/29/20

最近 Spotify 反应很慢,点开一个专辑要黑屏很久,就算列表出现,点一首歌开始播放也要很久。最近我是习惯听马太福音,点不开烦躁中,我点了几下 Olafsson 的演奏。什么也播不出来,把手机扔在一边开始工作。过了一阵,忽然响起了钢琴。好久没有听了,重拾忽然很受震动。听到 bwv 528 那首,忽然很想哭,但这是自怜。“我们对音乐的理解还停留在生理反应上”。“有些东西让人舍不得老,舍不得死”,舍不得放弃,但也让我绝望。希望和绝望是正相关的,这是我的体验。

但首先,我必须停止平时 consume 我的情绪:自卑、焦虑。

bookmark_border一个记忆碎片

今天还想写一篇随想的日志,和前一篇有一点点关系仅在于我的单线程脑子里同一时期想的东西都是差不多的。

最近看书看得不多。前几周重新打开马慧元的《书生活》。看到她摘录巴伦勃依姆书中这么一段:

在本书的《生命与音乐》一章中,他提到自己最喜欢的哲学家斯宾诺莎:“每当我处于困境,无论是事业还是个人生活中的,去读读斯宾诺莎如何强调要理性地分析日常生活,我总能获救。” “理性告诉我们,什么是生活中暂时的东西,什么是永久的。” “在一些绝望的情形下,如果你不能理性地寻求原因,那么自然而然的结果只能说自杀,至少是大怒。”

这段文字一下子打开了我的记忆。在罗素的《征服幸福》里有这么一段:

There is an idea that rationality, if allowed free play, will kill all the deeper emotions. This belief appears to me to be due to an entirely erroneous conception of the function of reason in human life. It is not the business of reason to generate emotions, though it may be part of its function to discover ways of preventing such emotions as are an obstacle to well-being. To find ways of minimizing hatred and envy is no doubt part of the function of a rational psychology. But it is a mistake to suppose that in minimizing these passions we shall at the same time diminish the strength of those passions which reason does not condemn. In passionate love, in parental affection, in friendship, in benevolence, in devotion to science and art, there is nothing that reason should wish to diminish. The rational man, when he feels any or all of these emotions, will be glad that he feels them and will do nothing to lessen their strength, for all these emotions are part of the good life, the life, that is, that makes for happiness both in oneself and in others. There is nothing irrational in the passions as such, and many irrational people feel only the most trivial passions. No man need fear that be making himself rational he will make his life dull. On the contrary, since rationality consists in the main of internal harmony, the man who achieves it is freer in his contemplation of the world and in the use of his energies to achieve external purposes than is the man who is perpetually hampered by inward conflicts. Nothing is so dull as to be encased in self, nothing so exhilarating as to have attention and energy directed outwards.

如果现在来翻我5到10年前的日记,会看到我经常提到说我的精神生活是被“读王小波”切分成两段的,当时的我一直在感叹,读王小波之前的自己和之后的自己已经不连续到自己几乎记不起来之前的思路甚至感情了。上述这段引用的文字出现在我回忆里,场景是我在大学寝室里,抄写了这段话,寝室没人的时候独自流眼泪。

我小时候一直没学会和自己的情绪共处。我的情绪特别嫉恶如仇,别人习以为常的事情我经常看不惯。看不惯别人,看不惯父母,看不惯老师,没有朋友。还看不惯自己。别别扭扭地长到二十岁,读大学,然后忽然和社会相处。我不知道如果我没有意识到需要坦然面对自己的情绪的话,我现在会是怎样一个扭曲的样子。大学是我记忆中最痛苦的一段时期。我不同意周围的一切,却没有能力走自己的路。

然而我现在重读罗素的这段文字,简直无法理解以前的自己为什么会反应这么大。只有记忆中我对着摘抄流眼泪的场景是确定的。我终于活到一定的年龄,精神生活中出现了第二条“已经记不起在那之前我是什么样的人了”的线。如今,正视自己的情绪和感情,与人为善并不跟有判断力矛盾,这些都是我的基本思路了。但是我还是依稀记得这么基本的原则都没有的时候的自己,我也明白很多人都是我以前的那种阶段,包括我父母。

和这些记忆还有关的一段记忆是我大学毕业论文的老师崔升(当时是副教授,而我特别讨厌自己的大学阶段,所以完全没跟大学老师同学保持联系)。我现在还记得他有一天(也许是意识到我无法处理情绪)跟我说,看事情要看长远,不要看local斜率(微积分的term是什么?我完全不记得了)。他还说对人要与人为善。我想那次是我第一次感觉这是对的。如今这些早就是我的本能了。让我在博客上对崔老师说一声谢谢。

而如今我对罗素有了更多的理解,看到马慧元摘抄的巴伦勃依姆的话,我意识到,可能这种思路起源于斯宾诺莎。所以很想再翻一下《征服幸福》,看看前后有没有提到斯宾诺莎。

上上周被激起这个回忆后,我在家找我的那本《征服幸福》,怎么也找不到了。结果我周末把所有的书搬出来整理了一遍,扔掉了很多书。但是那本征服幸福还是没找到,可能是借出去没还。然而我不准备再买实体书了。也不是很想给亚马逊塞钱,下了一本盗版电子书。

bookmark_border关于奥斯汀的碎片

不知是不是因为整日在家已经快要两个月了,我心思比较pensive。今年初的一件事情竟然有后续。其实这个后续也已经过了很久了。我其实不太好意思承认我身上发生了如此幼稚的抓马。但是我想记录一下在发生这件事的时候,我想起了奥斯汀的小说。然后意识到,其实我一直在潜意识被奥斯汀小说影响。我身上的抓马发生过后,我很庆幸发生的时候我没有做出什么过激的事情、说什么过激的话。

我最喜欢的奥斯汀小说女主角,说理智与情感里的埃莉诺。我小时候第一次读,很震惊她受到Lucy恶意挑拨之后,没有屈服于自己的情绪,而是要求自己按照一贯的原则处事,结果最后和男主达成了本来看似不可能的互相理解。我们喜欢奥斯汀的小说,可以欣赏她对人的洞察,可以喜欢里面言情的成分等等。而我自己经历了一次抓马之后,我意识到我最喜欢奥斯汀的小说的地方,在于她的正面主人公一般是按照一个原则行事的。奥斯汀的女主有两种,一种是Elizabeth和Emma这样的,另一种是Elinor和Persuasion里的Anne这样的。傲慢与偏见里的Jane也属于后者。而前者本质上也是有原则的,前者的共同点是因为自身的聪明活泼而做了过分的事,然后经历一次被打醒了的挫折。

我并不是完全没有预见到自己的这次抓马,因为引发它的朋友的人品我不是完全不知道。在发生之前,我一直提醒自己如果当她是朋友就要找机会尽量以她能接受的方式提醒她影响她。现在我发觉,这件事里两端的两个朋友,都对我这种做派很不快,她们想要的是一个可以一起爱恨的confidant。而我是觉得她们这样虽然可以理解,但是对她们来说更好的是我不要扭曲自己的原则假装完全同意她们。

现在事后我发现我在想傲慢与偏见里Jane和Elizabeth决定要不要把Wickham的丑事说出去那一段。现在我就和两位朋友说了这件事,其中一位我没有指名道姓,应该她不知道我在说谁。而造成这件事的朋友的共同朋友,我都没有说。我觉得她需要朋友,否则她会更加bitter。我自己也没有正面跟她对质,不仅因为我不喜欢冲突,还因为我已经不太当她是朋友了。

最近看了一个新的Emma的电影改编。感想是,里面寄宿学校的女生穿着红色hood,让我想到现在在读的The Handmaid’s Tale. 我不是很喜欢这个改编,感觉太caricature了。这个版本的Emma过于着重她snob的一面。实际上,书中的Emma和所有奥斯汀女主一样,都是通情达理的,特别是她对爸爸的照顾。我之前看过好几个版本的影视剧改编,里面的Mr. Knightley我都很不喜欢。这一版的居然最后有点接受了,虽然感觉太年轻了。那么回到这篇日志的主题,Mr. Knightley的魅力实际上还是在于他的原则。这个故事里最高潮的部分是他指出Emma行为的过分指出后她的羞愧,然后勇敢承担起补救的责任。另外,这个故事里其实除了男女主的关系,Emma和前家庭教师的关系、Emma和Harriet的关系、Emma和Jane的关系都很有趣。其实可以改编成很符合现代女性标准的故事的。Emma对Harriet,其实也是很有原则的。

bookmark_borderSQL join的逻辑问题

工作上遇到一个多对多join的逻辑问题如下:

要把优惠券使用数据(优惠券金额,优惠券发放时间、优惠规则和优惠活动等信息),和使用优惠券的销售信息(买了什么商品,商品价格多少,商品品类等等)join到一起。因为种种原因,这两个数据没法对起来,一个系统没有记录另一个系统的逻辑或者流水PK。

当N:1 join的时候,1的那条数据会重复:

这时,最终结果表里的销售额如果直接相加,就会得到200,和实际情况不符。实际上,这个项目要做的表原先有一个版本,就是这样存数据的。我觉得这样很不好,因为这个表就不符合一般的数据库规范。我们用这个表的时候必须把100去重以后再用:

-- wrong
select sum([merchandise value])
from joined_table
;

-- correct
select sum([merchandise value])
from (
  select
   [coupon PK]
  ,[sales ID]
  ,max([merchandise value]) as [merchandise value]
  from joined_table
  group by 1,2
) a
;

当1:M join的时候,同样的,1的记录会重复:

优惠券是5块钱,如果reporting的时候算成了10块钱就不对了。按理说这种情况也可以按照上面那种办法处理。然而现在的情况是,最终我们的是M:N的join。

我想出的解决方法是,数一下那个值重复了几次,然后把值拆开来,比如如上图除一下平均分摊(最终我按照另一端的数值加权平均的)。

select
a.[coupon code]
,a.[coupon PK]
,a.[detail amount]/sum(1)over(partition by a.[coupon PK]) [detail amount deduped]
,b.[sales ID]
,b.[merchandise value]/sum(1)over(partition by b.[sales ID]) [merchandise value deduped]
from [coupon table] a
join [sales table] b
on a.[join keys]=b.[join keys]
;

说一下感想:我从来没有遇到过必须多对多join的统计数据。有时候我们需要逻辑上的多对多join,比如把几个日期分配到一个表里的所有记录上。但是对于统计metrics的表,如果join在不理解的字段上,就要看一下是不是有join字段造成数据重复的问题。

这个项目战线大概有一年。和所有的事情一样,正在发生时难以像上面那样概括出问题症结。我一开始以为,两种数据可以有很清晰的关联。没想到,每次看见不太对的地方,追问了以后得到的建议是看另一种数据。而存数据的一方,现在总是把数据都存到一个json里面去。当你在数据库里存json的时候,其实经常就是打破数据库原有的关系。为了分析这些json我把存了好多年的表整个重建了好几次。因为解开了json里存的数据,上述的coupon数据表的PK就变得模糊,更让人看不清数据重复了。

这个项目另外一个奇葩的地方是,数据我最终是分成5块用5种字段组合join的。其中4种有多对多的情况。好几个join是我肉眼观测到可能可以join然后找人确认的。我多次跟同事宣称我觉得这样很不靠谱。而我的pm无法理解数据。我没法让他理解我的重复并不是‘多个coupon用在了多个商品上’这么简单(我肉眼观测到的join是不是就代表了两端的这个数据一定有关联也不是确定的)。而我的同事谁也不觉得这种数据有什么不对的。这件事让我十分崩溃。我同事还问我为什么不能像以前那样把重复的数值存在表里。(两个有重复的字段,并且在不同的group里重复,就是没办法写出上面那种SQL来使用这个数据的。)

我其实是很喜欢解决新问题的。但是这个问题的解决方案完全是为了完成而写的,最终并没有反映数据逻辑(主要是PM也不愿去理解业务的逻辑),让人难受。

bookmark_borderwhat will protect me from myself?

一个盆友提到说认识肖战粉。说该粉平时挺正常的。盆友用了传销来描述正常人陷入那种圈子的状态,我忽然感觉有点理解了。她还给我解释了资本为了保持肖战的流量,让‘纯粉’打击‘cp粉’,因为明星配对不一定会一直玩下去。原来这件事解释得通啊!

在这边有墙和资本在,所以出现了肖战这样的事情。在别的地方(主要是欧美),有资本和。。(科学?),让我们离不开手机。(前一阵看到的随机出奖品的模式,有实验结果。在Don’t Be Evil里读到,正好最近50 Things That Made the Modern Economy的一集讲了slot machine,也利用了这个规律。我不是肖战工作室的victim,但是我是刷手机上瘾的victim。这样想来,我们嘲笑肖战粉的话是五十步笑百步。不过可能也不是,可能是有本质区别的。盆友说没有墙,至少资本可以投资别的娱乐来竞争。至少在没有墙的地方,只要有人发现了这个问题就可以传播开来。

bookmark_border#我为什么喜欢星战

上周听了一期Guardian Long Reads节目,说的是track运动的app虽然可以motivate人们运动,但是也有弊端(比如过分引起人们的竞争意识,造成运动损伤、数据作假、运动中遇到车祸什么的)。我有一搭没一搭地听到最后,作者说,有一次她去跑步忘记戴手环。所以她跑的时候可以停下来看看风景什么的,感觉异常轻松。后来她要去参加一个对她而言比较重要的比赛,这回戴上了手环,但是把显示器的一面朝里了。这样跑步的时候就不再经常看时间。结果她最后发现跑出了个人最好成绩。她说也许根据手环计时训练她已经训练得足够多了,不需要依赖它了。她说,就像Luke在ANH最后接近死星的弱点的时候关掉了targeting computer。

这里只是提到了一句,用来概况她的感觉。这是我为什么喜欢星战。星战是文化的一部分,但是at its best它代表最纯的文化。(而不是现在代表petty的网民在吵架。)

bookmark_borderWarren to save Capitalism

我没怎么关心美国大选。本来就是希望能看到谁把川普换下来。后来听某个新闻分析节目介绍了Elizebath Warren,发现我去年读经济学漫画书后的感想她十年前就一直在说了。我特别喜欢她在金融危机之后提问当时美国国会批准救市的资金得到了什么效果和保证?我也超级同意她说她想征大企业的税是为了让资本主义竞争机制真的运作起来。真的,拼国家subsidy你们拼不过中国的,反而会扼杀市场机制。不要酸华为了,华为不值得你们酸。

我支持Warren不是因为她是女的。(但是事实证明女的就是看问题更加清晰。【

就是刚才看到这条推忽然很想说这些。但是没地方说。豆瓣上关心这个的人少。我寂寞的自言自语还是随手写在自己的博客上吧。

上面这个推特的文字:

This is wrong. Clearly wrong. How could this explain identical, even worse, housing bubbles in countries with different policies or credit bubbles in non-housing assets? This is embarrassing to publish, a discredited myth, killed more than a decade ago. 引用 New York Times Opinion 推荐文章 Michael Bloomberg is right about the 2008 financial crisis, writes Christopher Caldwell, who argues that the crisis was brought about by “a flawed attempt to use credit markets to broaden access to housing”

现在看来Warren当选候选人的胜算也不大。Bernie和Warren在政策上好像是比较相近的,但是没有其他人提出向富人征税是维护资本主义这个思路。

我们已经受了这么多苦了,能不能来一个好事,让川普这个人类的耻辱被选下来啊?I can cheer for Bernie (but not Bloomberg as per the above tweet… 就,很高兴点开NYT那条推发现下面的热门回复都是反对意见).

bookmark_border2020年1月&BuJo

每隔一段时间我就要jump on一个productivity bandwagon(因为没过多久就掉下来了XD)。去年十一月开始用Bullet Journal。现在写一下感想。因为Bullet Journal非常flexible,你想怎么搞就怎么搞,所以不能一杆子打死说是否适合我。只要是有点喜欢写字的人(即便非常懒)就不能说不适合BuJo。

BuJo的要点概括起来就是3点:1. rapid log和每天review一下当天/前一天的rapid log,该标记完成的就标记完成,该取消的取消,该推迟或者重新定时间的就安排一下;2. 有个future log和monthly log,用来预先放推迟或者计划好的事情的;3. 可以随时加任何类型的list,并且把页数记在开头的目录里。

我用下来的感想是:这个系统和GTD思想很合拍。其实我觉得最好的一部分可能是rapid log,随时记下脑子里闪过的东西,帮助focus当前的事情。然而review rapid log总是让我纠结。比如说完成了一半的任务呢?我一般都标记成推迟;比如很多想法,总是开一个list我也不喜欢,我自己去看list也很少。

另外我觉得用这个方法管理待办事项,和我以前用过的所有to do list有同样的问题:我不想看这个to do list。放在本子里更加不容易看到了。我效率高的时候一般是要做的事情都在脑子里。GTD说的是,你脑子里放着待办事项就会拖累你现在做的事情;我觉得全交给任何一个productivity系统的问题是,你脑子不去想要做什么事情了,晚上你就会想做什么就做什么,只要不打开app或者BuJo。所以我觉得还是要适量安排一些事情在脑子里别放掉(不能太多)。

另外一个问题是,其实用纸笔管理行程不是很方便的,我们明明有更好的工具了。去英国玩的时候,觉得Google Calendar实在是太方便了。下面是Calendar的一个截图,它会从我邮件自动建立,而且有地点的话又会有照片背景,我觉得很好看。有地点的话,它跳出的提醒可以一键直达查路线,真的太方便了。就是,Google对我知道得实在太多了,感觉很不安全。

Google Calendar

还有一个问题是,平时我也就是公司和家两点一线,其实用不太到上面那些功能。我要做的事情一般就在家和公司完成,最多去一下超市。每天重复的chore占很多时间和精力,列在to to里没什么意义。我还很需要记录我看的文章、听的podcast,这些构成了我平时精神世界的一大部分。这怎么做我目前还想不出来。不知道Google Podcast app会不会有什么让人惊艳的功能,这个app我一直不会用。而我也不急于把多自己的一部分交给Google。

BuJo的发明者的版本里,除了future log和monthly log以外,就是daily log了。我一开始觉得montly log一天只有一行肯定不够用,所以和很多人一样开了weekly log。要放到未来做的事情,有时候被我放到weekly log里了。但是因为我对to do的管理本来就很松,所以weekly log利用率还是很低。BuJo发明者的monthly log后面加了一个habit tracker。我十二月用了一次tracker以后,一月把monthly tracker扩展了一倍,用来记我在看的书。我有好多看到一半的书。这个是我目前感觉用起来最受益的一部分……(没有忘记看到一半的书,而且当中跳到别的书去看还是很有成就感。)

1月的tracker

豆瓣上我的在读是19本,Goodreads上是15本(可见这些list不好用,然而我发现影视剧的list还是各种线上工具更好用。另外我维护的list也太多了)。一月的时候把tracker从光记录什么时候头痛吃药了扩展到看书进度。可以看见:月初我列了7本书在看,1个课程在学。一月里,7本书里看完了2本(Haben, Shakespeare),1本有进展(海底两万里)。但是这个月里我又添加了7本书,其中看完了2本(神话与魔法,Dirk Gently),3本有进展(A Political History, 1984, Salmon of Doubt)。完全没有进展的是Heretics and Believers, Don’t Be Evil, ACoK, 仲夏夜之梦, HFJ,DK自然博物馆。没有进展的6本书里4本是月初定的,2本是当中加进去的(其中一本是图书馆随便借的)。所以不看完一本书就去看别的书,其实是对增加看书有帮助的,因为一般你会更想看最近抓住你注意力的书(也就是你attention span很短)。(所以书列表是个先进后出的stack,也再次印证了以前的读书会模式不适合我。。)

去年底开始解锁了听有声书的技能。以前总觉得听有声书retain得很少,现在是我自己降低标准了,还是实际上有些书我听起来没问题?大概两者都有吧。我怀疑我现在再听星战小说有声书还是会听不进去。有有声书推动,我可能读书数量可以有提高。然而还是会遇到瓶颈。一月遇到的最大的瓶颈是1984。我听到写Winston Smith在真理部的工作的描述后就想我要仔细读一遍,也许可不可能写个modern setting的fanfic。然后我就没有进展了(放假在家本来想好好钻研这本书的,这两天忽然注意力又被DNA吸引走了)。另外一个问题是,其实我听podcast都听不过来,常年积压了很多。其实听书的时间不是很多的。我希望获得以前瑞典同事的一边听podcast一边写代码的超能力。

  • 月初定下的7本
    • 2本看完(有声书2本,但是Shakespeare那本没有听完,是看完的。不是很喜欢作者自己的朗读)
    • 1本有进展(有声书1本)
    • 4本没进展(有声书1本,重读1本)
  • 月中添加的7本
    • 2本看完(有声书1本,重读1本)
    • 3本有进展(有声书3本,重读1本)
    • 2本没进展(有声书0本)

看我津津乐道自己的事情,就说明这方面我对自己还是挺满意的。如果一连很久都不写日记不发日志那才是状态不好的时候。