张爱玲的小说《赤地之恋》和贝多芬的《月光奏鸣曲》

昨天意外地读到了张爱玲的小说《赤地之恋》看完以后心头非常沉重。共产党政权在土改,三反五反等一系列社会运动中暴露出来的摧残人性、泯灭良知、践踏社会公义的恶劣行径,让人震惊。无数美好的事物包括青春和爱情就这样被毁灭掉了。

早上弹起贝多芬的《月光奏鸣曲》,听着柔和的琴声流过,不由得突然痛哭流涕:世间竟然还有这样美好的事物,抚慰一切受伤的心灵,给人间带来至善。愿这美好的事物永存;愿让人的欲望永远限制在人世的规则下,不会过度膨胀而结出恶果。

围棋的三重快乐

前一阵子和朋友聊起天,说到围棋给人带来的快乐。我总结了一下,发现围棋可以给人带来三种快乐。

第一种快乐就是长进水平。这个快乐很纯粹,每个人都能理解。看着自己水平越来越高,当然很高兴。不过长进水平要付出巨大的努力,比如做大量的死活题,或者输了棋以后进行仔细的复盘和反思,不是每个人都能够付出这么大的努力。自己曾经做过几千道围棋死活题,也曾经对自己的对局有过完善的整理,不过终究因为需要付出的努力太大,现在已经完全停止了。相应的,水平长进这个快乐也就没有了。

第二种快乐就是赢棋。这个就像赌博一样,能赢总是让人高兴。另外业余围棋还有一个特点,那就是输了以后,可以再找人下一盘赢回来。即使前面输了好几盘,只要最后一盘赢了,棋友们就可以开开心心的离开了。从这个角度上来讲,业余围棋绝对不能算是一个零和游戏,而是可以让上网下棋的棋友们都高兴。这是职业棋手绝对没有的乐趣,职业棋手输了以后,只能默默地一个人品尝失败的苦果,下一盘复仇的机会还不知道在哪里。值得注意的是,这种乐趣和前面的长进水平实际上是相互矛盾的,长进水平要求下棋深思熟虑,而在网上追求赢棋只会随手下棋,对于长进水平有百害而无一利。赢棋这种乐趣自己现在也还有很多,不过最近也有了一些清醒的认识,希望能够渐渐克服吧。

第三种快乐就是所有的体育比赛都有的快乐,那就是观赏高水平的对抗带来的快乐。现在的围棋比赛讲解很多,YouTube上都能看到。另外围棋世界大赛重量级对决绝大部分都是在中国和韩国之间进行,还有国际国家荣誉的加成。再加上AI的分析,大家对于棋局的理解更加透彻,一局棋下来,业余棋手都可以看出很多门道。所以现在棋迷们观赏比赛,乐此不疲。我也很有兴趣。不过这个和围棋本身关系不大,我有一个朋友。自己不太懂围棋,但是每次围棋世界大赛也要看个热闹。这种乐趣还有一个问题,那就是赢了棋大家高兴。输了棋大家就都郁闷了。这种乐趣自己现在也是沉浸其中,上次lg杯柯洁失利,再加上最近三星杯申真谞连战连胜,真是让人郁闷。回想起以前常昊那个时代,中国围棋被韩国围棋全面压制,很多棋友就再也不看围棋了,看来这种乐趣也有终结的时候啊。

有这三种快乐夹杂在一起,围棋怎么能够说戒就戒掉呢?

画龙添足之调琴师

我的家里昨天来了一个调琴师帮助我调钢琴。他的钢琴调的很快,一个多小时就调好了,而我们家去年来的那个调琴师工作了整整一个下午。反正我也是个菜鸟,看不出来一个人调琴水平的高低,但是无论如何,他调完以后我试了一下,弹起来感觉还不错,总比没有调以前听上去好听多啦,我就高兴的给他付了账。临走的时候,这个调琴师送给我他的名片,上面有他的联系方式,这样我下次想要调琴的时候还可以再找他。我很高兴的接过名片,正要告别,这个调琴师又拿出一张名片,说他还是个房地产经纪人,如果我们想要买卖房子的话,还可以再找他。我当时有些哭笑不得,只好把他的名片接住。我想,调琴怎么说也是一个专业的活,而房地产经纪人也需要很多投入才能做好。一个人又能调琴,又能做房地产经纪人,那他调琴的水平恐怕不会好到哪里。回头跟太太一说,她也哈哈大笑。这个房地产经纪人的名片,真的是画蛇添足啊!

语音输入让人震撼

这一阵子右手食指疼痛,既没有办法敲键盘,也没有办法弹钢琴。虽然休息了很久,也没有好转,让人无奈。昨天偶然看见Google的语音输入,试用了一下,惊为天人。中文输入非常精确,完全可以取代键盘打字。啊,技术的发展真的是日新月异啊!

不过,现在这个输入法只能在线使用,这和自己原来想要搞一个不能上网的笔记本的想法有冲突之处,下来怎么调整还没有想好。也许以后就不再离线写博客了,正好免去了站点同步的麻烦。反正,大家总是在摸索中曲折前进的。另外一点,自己的英文有很多口音,英文输入错误率还是很高,虽然自己不用英文写文章,但是程序大部分都是英文,要是能够用语音写程序,那就太好了。这个方向值得自己研究一下呀。

最近实验了一下。有如下几个结论:

第一,所有的语音输入法都只能在联网的时候使用。我猜是因为他们要访问服务器上的模型。

第二:谷歌的输入法标点符号做的有问题。苹果的输入法需要你手动念出句号和逗号。相比之下,搜狗的输入法做的最好,能够自动加上标点符号。

第三,大家的中英文输入都是分开的模型, 但是搜狗输入法同时支持英文中文混合。输入,真的不错。Sougou Input seems to be support English and Chinese at the same time。

最后,输入法不需要你大喊大叫,一般音量说话就可以了。大喊大叫久了,嗓子还很累。哈哈哈哈。哈哈哈哈。哈哈,哈哈哈!

今天对局下出一步妙手,这才是围棋的乐趣所在

很长一段时间以来,由于网上对局时间限制的缘故,围棋对于自己已经变成了一个熟练工种。面对常见棋型,基本上都是按照记忆去下,面对陌生棋型,那就是俗手大全。既没有时间,也没有心情去深入计算变化,努力挖掘妙手,而围棋的乐趣已经全部来自于最终的胜负刺激了。这样下围棋偏离这个游戏的本质实在太远了。而在这样的循环折磨之下,自己离围棋这个游戏也是渐行渐远。

最近在gokgs上和一个2d下棋,自己追杀对方大龙,眼看对方大龙就要吃掉自己的四个棋子从容做活,自己总觉得这里有点什么样的手段,苦思之下,竟然挖掘出一步一路扳的妙手,利用对方气紧的弱点,成功的救出了自己的棋子,进而杀掉对方大龙,真的是很开心,这才是围棋的妙味所在呀!棋谱如下:

 

Download SGF

 

只是这样的棋以后还能不能下出来呢?

Git Cheat sheet

Set up an empty server repository and Use it locally

On Server For an empty repository

$ mkdir /srv/git/my_repository

$ cd /srv/git/my_repository

$ git init –bare

On Server From an Existing repository

$ cd /srv/git

$ git clone –bare https://github.com/rainbowrun/lim.git lim.git

On Client, Initial Change

<… Set up SSH access to server as user@server properly …>

$ git clone ssh://user@server/srv/git/my_repository

$ cd my_repository

<… Make some change and commit locally …>

$ git push origin master   # For the first time push, create ‘master’ branch on server.

$ git push # For the subsequent push

$ git pull  # Get the server’s change and merge locally.

Notes

After this setup, the local branch ‘master’ is tracking the remote branch ‘origin/master’.

Branch Locally

$ git branch testing  # Add a new branch named testing.

$ git checkout testing # Checkout ‘testing’ branch

$ git checkout master # Checkout default ‘master’ branch

  • Merge the work in ‘testing’ into master

$ git checkout master

$ git merge testing

$ git branch -d ‘testing’

Remote Branch

$ git branch show origin   # Show remote branches

$ git branch -vv  # Local branch, which is tracking which remote.

  •   Create a local branch ‘testing’, tracking remote ‘testing’

$ git pull

$ git checkout –track origin/testing

Git 总体印象

  • 分布式的版本管理确实很新颖,用起来比集中式的方便。
  • Branch 的概念很好,Track, Pull, Push。
  • 功能强大,同时也很复杂
    • staging area in working tree,可以选择提交部分工作
    • stash,可以把当前的工作环境封存起来
    • rebase,把两个Branch变成一个,而不是merge。

离线电脑上的写作感悟

很长一段时间,自己都苦于意志力薄弱,注意力差,不能够在自己想要深耕的领域有足够的学习时间,相反却总是被新闻网站、色情网站以及围棋游戏浪费了大量的时间。我想了很多办法来克服这个问题,从封禁网站,封存设备、坚持工作列表到邀请孩子们帮忙监督等等,但是都是成效不大。离线电脑是自己最新的办法,主要的考虑如下:

  • 很多学习只能在电脑上展开,所以必须有一个电脑。
  • 电脑如果不能上网,那就不会花时间在前面那些无谓消耗时间的事情上了。

一念及此,就行动起来。为了避免额外的花销,自己最终选择了 Acer C871 Chromebook 作为实际的机器,在家庭路由器上禁掉这个机器的 Mac Address,然后在机器上装上 Linux Virtual Machine,就这样开始了。

这样搞了一段时间,我发现离线电脑确实能够达到前面所说的两个好处,在电脑上看了不少书籍、论文,实验了很多程序,学到了很多东西,是个不错的主意。很自然的,我就继续扩展这个主意,把更多的事情拿到电脑上来做,首当其冲的就是想要在离线电脑上浏览以前写的文章,或者是写新的文章。

按道理说,Google Docs 是一个现成的选择,特别是它的离线同步功能做的非常的好,但是 Google Docs 有两个比较明显的缺陷:

  • 它的公式编辑功能比起 Latex 来说那实在是差得太远了。我有很多文章都要写公式,这样可不行。
  • Google Docs 把所有的内容都存在 Google Cloud 上面,没有办法把文章发到自己的博客上。特别在这次 Trump 总统被禁言后,我对于把内容都存放在云端更是多了很多警惕,这些大公司信不过啊。

下来的方案就是用一些先天支持离线编辑的静态站点生成工具,最有名的就是 Jykell。这个东西我用过一阵子,一看就是给技术人士做的,全部都是命令行界面,不过好处也非常明显:

  • git-based 版本管理,完美支持离线操作。
  • static web page,安全快速。
  • github host service,不需要自己花钱租虚拟机。

但是自己还是有些犹豫,自己对于 Ruby 语言以及 Gemfile 这套东西一点都不熟悉,相比之下,Wordpress 虽然很老,但是它并不会很快就消亡,相反,因为庞大的用户群和悠久的历史,这些老软件都很稳定,而且自己也花了很多时间学习和使用这个平台,不应该就这样轻易放弃,再说自己也还没有深入使用 Jykell,对于它的缺点也不了解,不过最少可以想见:

  • 现有文章的迁移是个费时费力的工作。
  • 插件不够丰富,比如如果要自己的围棋能够显示,需要手动做不少工作。

相反,对于Wordpress:

  • 技术架构和源代码自己比较熟悉
  • 有很多文章积累 (已经 600+)
  • 插件支持丰富,围棋、音乐、数学公式,国际象棋,一应俱全。

当然啦,各自的优点就是对方的缺点。通算下来,要把 600+的文章移到 Jekyll 上,花掉的时间实在不值得。一咬牙,自己开始着手开发一个 WordPress Sync Script,期间经历了诸多困难:

  • PHP 的代码自己并不熟悉,连什么是数组都搞不清楚。
  • XMLRPC 的文档奇缺,而且其实现以及Python 接口库有各种各样的 Bug。
  • WordPress 的 Mysql Database Schema 并没有设计为支持同步,好多设计都需要妥协,比如用文章的 Title 而不是用 id 来判断两个文章是否应该同步。

开发过程中经历了各种各样的坎坷,再加上 Jykell 的吸引,数度想要放弃,过程不堪回首。在数天挣扎中,最大的一点体会就是没有什么事情能够一蹴而就,都是要经历一番艰难险阻才能实现,过不去那就是遗憾,过去了就是财富。终于在假期最后一天晚上1点钟明白了为什么自己上传的文件名总是被 WordPress 改名之后,手动修改它的程序,成功的把两个Wordpress 站点的媒体库同步起来了,心里真是高兴。

邓总原来有一句话,叫做“黑猫白猫,抓住老鼠就是好猫”。胡总也有一句类似的话,叫做“不折腾”。大体意思都是说:要抓住主要目的,把大家的物质生活搞上去,把我们的综合国力搞上去,不要管太多意识形态,建设道路等方面虚的东西。 软件工程上把重复别人做的基础工作叫做“重新发明轮子”。 WordPress 虽然老土,但是自己会用,也比较懂,而且现有的东西(博客文章,部分插件、云端主机等等)都已经建好,就比其他看上去高大上的东西(比如 Github Page, Jykell 等等)要好。就坚持这条道路吧。