分配固定重复的时间给重要而不紧急的工作

自己使用工作列表已经很长时间了, 感觉上时间利用的效率总体上提高了很多。但是令人苦恼的是一些很有意思的事情, 比方说研究新的研究动向,学习新的方法等等, 总是没有时间去做。无论什么时候,当下总是有一些紧急的事情需要完成。今天突然灵机一动, 在自己的日历上标出了专门的时间来做这些事情: 每周二固定花一个小时看以前别人的设计文档, 每周五固定花一个小时看业界一些最新的发表论文。这下总该在这些事情上有所推进了吧。

《干校六记》的地图

杨绛老先生的《干校六记》讲了很多她和钱钟书老先生当年下放干校时的有趣故事,比如夫妻相会,傍晚迷路,等等等等。不过女士们的方向感比较差,杨绛老先生也不例外。书中的这些故事,一会东边的邮电所,一会西边的中心点,一会儿南边的桥,一会儿北面的砖窑,看的人也是一头雾水。我早就有心给《干校六记》画一幅地图,也方便读书的人理解书中的故事。这个周休假,花了一个下午,终于画出了下面这幅地图。 画完地图才明白,这两口子宿舍离得挺远。菜园到钱钟书宿舍倒是只有十几分钟的路程,相会方便多了。不过书中讲从砖窑往北就是钱钟书的宿舍,可是又讲砖窑在菜园北边,一条小河从北向南到砖窑又折向西,所以从菜园去钱钟书的宿舍要怎么过河我还真是没有搞明白。书中只是简略提到即使在在下大雨那天,杨老先生也是一跃过河,想来不是什么大问题吧?

做了一个乐高积木塔

女儿和儿子还小的时候,我给他们买过很多乐高积木,他们长大了以后渐渐都不玩儿了。妈妈把积木收拾到车库里准备扔掉,我觉得很可惜,毕竟是从小带着记忆长大的东西,而且我也很喜欢玩。想来想去还是把所有的积木拼成一整块,既节省地方,又看上去是个有意思的东西。说干就干,忙了一个下,用所有的乐高积木拼了一个前所未有的高塔,而且里边是空心的,把所有没法拼塔用的东西都放进去了。拼好以后,儿子觉得很棒,要求放在他的卧室,真是太好啦。

做事的几个准则 – 深表同意

最近看一个人的访谈, 提到做事的几个准则, 我深表同意。摘抄如下: … 分享的经验从大的道理上来讲,那就是做事情一定要认真。你做事情认真,做事情才有意思。另外你做的事情要有创造性,最好是别人没有做过的事情,你才能够有足够的热情和足够的精力去进入。还有一点我觉得很重要,就是说你做的事情一定要对人类有意义,或者说对人类有益处。我觉得这是我对自己工作的一个要求,也可以说就是我的经验。

在后院烧火烤肉

Ben是一个男娃娃,总是喜欢做一些新奇冒险的事情,最近他迷上了放火,常常拿着一个lighter在后院里点火,结果把我们原来的lighter的气都用光了。妈妈投其所好,干脆给他买了一个野外烧火用的炉子,我呢就给他买了一大袋木柴。星期天我们两个晚上就一起开始点火,刚开始费了一些功夫,后来终于把火点着了。夜幕笼罩下的小院子里,一小盆篝火在熊熊的燃烧,我和Ben坐在旁边,Ben估计是又新奇又激动,而我更是感慨于更多的感慨于现代文明生活的人类离这些原始的生活技能是越来越远了,原来我妈妈冬天每个星期都要生煤球炉子,估计现在也是根本没有人用了。至于我女儿,只知道东西没电了,插在墙上就可以充电。可是她甚至从来没有想过,用电需要付钱。更不用说电是从哪里来的了。从这个意义上来讲,文明已经彻底改变了人类。 后来我和笨用锡纸包了一些bacon,在火上烤起来。烤熟了以后孩子们都吃的很开心,也算是恢复了一点点原始人的生活技能吧。

Remarkable V2 PDF翻页问题

自己去年买了一个Remarkable V2 ,非常喜欢。用来记笔记,写草稿,没有比它再合适的设备了。后来我发现PDF文档也可以拷贝到设备上慢慢读,自己干脆也拿它做了一个阅读器。 读了一阵子以后,发现这个阅读器有一个非常恼人的缺陷:它的翻页很不灵敏。按说手指从右向左一划,就可以翻到下一页。但是实践中常常不工作:划来划去,机器一点反应都没有,让人着急上火。忍受了很长时间以后,我终于花了点儿时间在网上搜索攻略,结果还真是找到了在 reddit上的一个帖子。原来 Remarkable V2 为了能够很好的书写,允许你写的时候把手掌边沿放在屏幕上,就像真正的纸张一样。写字的时候手掌边沿挪来挪去,为了不让这种手掌边缘的挪动触发翻页,Remarkable V2 的分页检测做的条件比较严格。准确的说,你必须用手指尖小一点儿的面积,在屏幕上从右向左滑动,这样一来手和屏幕接触的面积与手掌边缘相比差别很大,就能被正确的识别为翻页手势。 自从掌握了这个技巧以后,自己的翻页就再也没有问题啦。真好。

音乐总是可以让我感动

现在互联网上的新闻,总是屁股决定脑袋。如果你看海外反华自媒体报道里的中国和国内报道里的中国,你会怀疑他们报道的是这是两个完全不同的世界。 我自己这两种报道看多了,常常会有精神分裂的感觉。 身居海外,反华报道是媒体的主流。不过我还是偶尔会去看看《新闻联播》,体验一下正能量的感觉,也顺便锻炼一下自己的批判思考的能力。几天前我偶尔坚持到了《新闻联播》结束,结果节目的结尾伴随着优美的音乐《我爱你中国》开始播出中国的风光纪录片,突然思乡之情油然而起:自己离开母国已经太长时间了。回头我找出来曲谱,在家里的钢琴上开始弹奏,当乐曲到达高潮的时候,自己竟然禁不住泪流满面:这音乐真是让人太感动了。 海外华人说到底还是不在自己的国家,生活难免战战兢兢。东方的集体主义和西方的个人主义,其实总是会有一个平衡平衡点,而不是像现在这样截然对立。双方总是应该互相交流,而不是彼此敌视。当下两方统治阶级为了自己的私利,刻意在人民之间制造仇恨(比如川普之流美国政客以及中宣部),造成了多少人间悲剧?真心希望我们的后代,能够拥有一个更好的明天。

衡量分类器效果的一些指标 (4) – Dual Encoder 中的 Precision 和 Recall

Dual Encoder 是一个非常常用的网络模型。它用于将两个不同领域的数据比如query 和 document, 或者 Image 和 entity 映射到同一个 embedding 空间。这样训练出来的模型既可以用来做两个领域数据之间的相互查询,也可以用来对一对来自两个领域的数据进行打分。 通常在训练Dual Encoder模型的时候,我们使用一种叫做batch softmax的办法。假定我们的训练数据是 Image-Entity Pair,而且全部是正例,我们从训练数据文件中读取一批(假定100个)这样的训练数据,然后把它们排成一个矩阵,每个Image一行,每个Entity一列,这样我们一共形成一个100行100列的矩阵,其中第一个 Image-Entity pair的 Image 放在第一行,entity放在第一列,而第二个 Image-Entity pair的 Image 放在第二行,entity放在第二列,以此类推。在这样的矩阵中,我们一共有100*100 = 10000 个 Image-Entity Pairs,其中对角线上的那些 Pair是正例,而我们将所有不在对角线上的 Pairs就直接当做反例来训练。 衡量 Dual Encoder模型也可以使用precsion和recall这两个指标。其中 Precison一般使用 Precision@1,它的意思是说在使用模型对一个矩阵中的10000 Image-Entity Pairs 打分以后,从每一行中挑出得分最高的那个entity,这样每行一个,我们就一共收集100个entity。这些entity中处于对角线上的元素(也就是训练数据中的正例)的个数除以收集的entity总数(100),就是模型的 Precision@1。 我们也可以定义Precision@k (k大于1),也就是每行收集k个元素,然后还是用收集的元素中的对角线元素的个数除以收集的总数(100*k)。但是因为Dual Encoder 模型中假定一个 Image 只有一个 Entity 是正确的,因此 这个时候的 Precision@k 数字会比 Precision@1小很多,而且其实际意义也不明确。 相应的,Recall一般使用 Recall@k …

乒乓球起下旋不能只靠摩擦力

乒乓球起下旋,俗称为上手,是相持过程中最重要的一项基本功。虽说在大球时代,先上手的威力有所减弱,职业运动员反拉对方质量一般的上旋球比比皆是,但是通过起下旋将下旋球对抗转为上旋球对抗依然是发动进攻和掌握主动的必由之路。 首先解释一下什么是起下旋:所谓起下旋,也就是在保持拍面前倾的情况下,将一个低于球网的下旋来球回击过网。拍型如果不前倾的话,那就不叫起下旋,而应该叫托或者搓了。托或者搓不是我们本文要讨论的内容。 要将一个低于球网的乒乓球回击过网,从物理学上分析,至少要有一个向上又通过球心的力。大家都知道,当我们摩擦乒乓球的时候,摩擦力的方向与乒乓球正切,这个正切方向的力没有通过球心,只能为乒乓球制造旋转,而不能使球产生位移。另外,在拍型前倾的情况下,球拍在垂直方向对于乒乓球也有一个作用力,但是这个作用力指向下方,只会将乒乓球打下网。那么拍型前倾起下旋的物理原理是什么呢? 事实上,我们的确可以在拍面保持前倾的情况下,把一个低于网顶的下旋来球回击过网。这里的原因是:当乒乓球大力飞向胶皮的时候,胶皮就凹了下去,形成了一个坑。这个时候沿着拍面的方向发力的话,坑底的力依然是正切于乒乓球,制造旋转,但是坑边儿上的力,不是正切的。实际上坑边上的力经过分解以后,就有一个通过球心,而且是向上的力的分量。正是这个力将乒乓球向上推举过网。坑越深的话,坑边儿上的横向作用力就越大,相应的向上的力的分量就越大。这也就是为什么海绵越厚越软,起下旋球就越容易,而越硬越薄,下旋球球就困难:因为硬而且薄的海绵不容易制造深坑。 拉下旋球,高手们一直很强调迎前。除了因为下旋球不太向前走之外,也是为了加强制造深坑。菜鸟们之所以起下旋球困难,就是因为不太了解上面的这个原理:用尽所有的力量向上摩擦,却没有留下力量去制造这个坑,最后的结果就是摩擦的太薄,给球的力主要都是切向的力,而向上的力分量不足,所以下旋球就很难拉起来,常见的失败是球的旋转很强,但是向前向上飞行很慢,最后软绵绵的下网。 大家可能注意到,除了通过球心的向上分量以外,坑底和坑边的力还给球一个切向的分量。这个力的分量的主要作用是对球进行摩擦,使其旋转,从而制造弧线。如果没有这个分量的话,球只会直线飞行而没有旋转。有了这个摩擦以后,球才能有一个向上的旋转,进而产生一个典型的上旋球:球过网以后因为伯努利原理飞行弧线下扎,因而更容易上台,而不是飞出球台。 综上所述,拉起下旋球,需要又打又磨。所谓打,就是制造这个坑,然后让坑边的力量对球产生一个向上的分量,将球托起过网。所谓磨,就是对球产生一个切向的摩擦分量,这样使球旋转变成变成上旋球,制造弧线,便于更容易上台。所谓灌胶或者内能海绵,就是加强坑边儿的强度。加强坑向上托举的力量。拉球的时候就可以省力一些。但是无论如何,没有这个坑,下旋球是不可能拉过网的。 综上所述,如果你拉下旋球总是下网,试着换一个更软的海绵,另外打球的时候更注意迎前,应该就会有改进啦。笔者前一阵子尝鲜,换了 Tibhar MX-S 胶皮,这个胶皮是挺拔系列中最硬的一款,结果就是上旋球打得风生水起,正手拉下旋却频频下网,拉的我怀疑人生。自己钻研了一阵子,换到较软的 T05-FX,问题就立刻解决了,也顺便把自己的心得体会拿出来和朋友们分享啦。

把葡萄树挖掉了

我们家后院有个木棚架。几年以前,我突然冒出一个想法:如果这个棚子上爬满了葡萄藤,我们就既有一片宝贵的阴凉,又有鲜美的葡萄可以吃吗?在这个美好的愿景下,我说干就干,就在旁边儿挖了一个坑,种了一棵葡萄树。几年下来, 部分是因为品种,部分是因为照顾不善,葡萄树总是长得长得不温不火,总是刚刚爬到棚顶就再也不长了, 实际上一点阴凉都没有,而且期间还死掉过一次,被迫换了一个新苗。这样折腾了四五年,也没有什么进展。原来的目的没有达到不说,架子搭的歪歪扭扭,占掉很多宝贵的空间。想要挖掉吧,又觉得有些可惜,毕竟已经花了这么多功夫,每年还能结一点点葡萄,最少也算后院一道风景。就这样犹豫了很久,没有动作。这个周末休假, 早上起来在后院散步, 不知怎么看到葡萄树,念头又重新冒出来。这次说干就干,拿来梯子,解开葡萄架,再拿来锄头一阵猛挖,最后拿剪刀把葡萄枝剪成一段一段,全部堆到马路上等待环卫工人打扫,短短30分钟就全部清理干净了。在马路旁边只是很小一堆,等周一清洁的人来一收拾就什么痕迹都没有了。 想想这是一个很小的事情。一项计划,既然没有达到自己的目的,那就应该果断的予以舍弃,自己实在不应该被这个东西困扰了这么久。生活之中,有得有失, 得失分明。不拖泥带水,藕断丝连,这才是人生大智慧。今天这件事情算是做对了。