Recently, I made a decision to disallow programmers to use android:onClick XML attributes to add click event listeners. Existing usages will be removed too. Actually, the attribute itself was a very bad design, considering that web frontend developers has switched from onclick HTML attribute to addEventListener API for a long time.

Here are the real reasons why android:onClick XML attribute should be avoided:

  • If an ancestor element has theme applied, android:onClick no longer works, because the program will look for the click handler from ContextThemeWrapper instead of Activity (see http://stackoverflow.com/questions/29525644/). When applying a theme, programmers may not realize the problem.
  • Android look for the specified method from the parent Activity. When programmers change an Activity into a Fragment, they may be ignoring this problem.
  • To make the two problems above more severe, onClick uses reflection. It therefore prevents the compiler from telling you problems. You app will crash at run time.
  • As it uses reflection, performance will be compromised.
  • Android provides android:onClick attribute, but no android:onChange or any other XML attributes for event listeners. Considering click listeners aren't really different from other event listeners, keeping them consistent will be good.
  • When using android:onClick, one must create a public method with parameter (View view). Android Lint will then complain "unused parameter".
  • Adding a public method is not elegant in any way.

有时候我也在想,为什么我以前无法做到在 Linux 下工作,而现在却能做到。

正好那天和别人谈起,我干脆就列出我用过的所有 Linux 发行版好了。

小学

  • Red Hat 9 / GNOME 2

按道理讲这个不算,因为就装上去用了几天而已。实在不会安装软件。当时主流的软件分发方式还是丢一个 tar 包让你自己编译,于是当时安装 Real Player 都用了很久——而根本没有其它好用的播放器。

初中

  • Fedora 7? / GNOME 2

作为双系统的第二系统。那时候有一台 Athlon 64 2800 处理器的电脑。

高中

  • Ubuntu 9.10? / GNOME 2
  • Xubuntu 10.04? / Xfce
  • Lubuntu 10.04? / LXDE

基本都是作为双系统的第二系统,或是一台老旧的笔记本的唯一系统。那天老旧的笔记本常被我用来写东西和看毛片。

大学

  • Linux Mint ? / Cinnamon
  • Arch Linux / Xfce
  • Linux Mint ? / MATE
  • Xubuntu 13.04? / Xfce
  • OpenSUSE ? / KDE
  • Kubuntu 14.04? / KDE

大学里前后换了三台笔记本。系统也一直在换来换去。Arch 和 SUSE 都很可爱,但是用起来实在不省心。而且 zypperpacman 真的很难用(比起 apt-getyum 来说)。

毕业

  • Xubuntu 15.04 / Xfce
  • Debian 8 / GNOME 3

毕业以后基本没时间折腾了,Xfce 简单、稳定,并且在那台老旧的笔记本上也能舒畅的运行。后来公司发了台好笔记本,于是打算换炫一点的 GNOME Shell。而之前的经历告诉我,网上太多 binary 包都只有 deb 版,于是装 Debian 系的系统是最好的选择。一开始试了试 Ubuntu GNOME,发现中文输入法一直有问题。于是就换了 Debian unstable,很是舒畅。

善良的少年啊
当你决定去屠龙的那一刻
我就明白 你终将会成为下一只恶龙
但我还是为你的勇气倾心
让我站着人群中 默默敬你这一杯酒
和我心上的少年 诀别

我和你 将一齐走上这条路 不论你是谷子或青稞 或是南方温暖海边的椰[1]
沿着太阳向南[2]
在当惹雍错边跪下在你的跟前 亲吻你的伤口 大自然给你留下的伤口[3]
牵着你的手 和你一直向西 向西 穿过荒芜的高原
老去 老去 任凭烈日和风沙的摧残
在狮泉河[4] 和你在旅馆里没日没夜 无休无止的做爱
然后到街上喝一壶甜茶[5]
直到 告别


[1]

  • Might be referring to three girls I loved;
  • Might be referring to my life itself;
  • Might also be referring to the Tibet plateau.

[2] 「尼玛」为藏语「太阳」之意,圣湖当惹雍错在尼玛县县城往南约百公里处;我 2013 年本计划骑行到当惹雍错,奈何在快骑行到尼玛县时宣告放弃,成为一大遗憾。

[3]

  • Might be referring to the pudendum;
  • Might also be actual wounds; either existing ones or those wounded during the trip;
  • If you take "you" as the Tibet plateau, it can also be referring to the lake itself.

[4] 狮泉河镇为阿里地区政府驻地。阿里地区是西藏七个地区中唯一一个我未曾到过的。狮泉河确实在当惹雍错以西。

[5] 我在西藏时常常那么做。

今天看到别人转载的一篇林夕对《你的背包》写的官方背景解释。说真的,同是作为歌词的<s>背景解释</s>情怀加成,比马頔的那篇《孤岛》,不管是角度的心意,还是情感的细腻,都不知高到哪里去。

其实我从前听到这首歌很多次,但从来没有喜欢过。直到看到这篇情怀加成文。

你的背包

林夕

说真的,事到如今,我依然很怀念我们的背包。

每当我突然想起你的时候,还是甩不掉那个画面:我们各自背著自己的背包,走在熟悉的街头或是半熟的异国,有时并行,有时一先一后,有时说说话,有时沉默,无需言语。

就两个背包,总是轻身上路,彷佛随时可以把一切卸下,了无牵挂。只两个人在途上,彷佛已经圆满了,足够了,有想买什麼都是多余,都是负累,深怕影响了我们走得更远更久似的。

只那麼一次,我多买了一些无谓小玩意,我的背包放不下,就腾出你的来放一点。於是,回程之时,怕你受累,我一个人扛著两个背包,直到回家。

我的东西,占据过你的空间,像短暂的同栖,那暧昧的满足,是如此充实又卑微。直到捡回属於我的东西,把背包还你,两个人又各有所属般,你的我的,分得清清楚楚,再也没有下一次纠缠不清的机会。

说真的,我何尝没有动过念头,在你不为意下,赖著哄著,把那背包收起来,不还你。

我知道,那一刻,只有那一刻,我能如此坦白,而你能如此无所谓。时机一过,这要求便显得唐突,这动作便落得轻狂。

忽然便已经好久不见。那次在叙会中,隔著几个朋友的身影,瞧见你已经换了新的背包,以一如过往蹦跳的步调走过来,也瞧了我的背包一眼。

说真的,朋友,你可能误会了,我依然舍不得换掉旧背包,并不是念旧,也与你无关。我只是单纯地喜欢它的款式,背了那麼多年,我没嫌弃过它残旧,生产商却怕它过时,让它停产,要推陈出新。

倒是朋友,你的背包哪里去了?是不是丢落在一角,成为没有扔掉的垃圾。

说真的,我是有点后悔。相识多年,连一件礼物也没有交换过,两个人用两个杯子,两个人用两把雨伞,乾净清白到这地步。连一个背包也不敢据为己有,连在你手上给弃置的多余废物,我都无缘捡拾。

可惜,如今你用不著的,也像我的角色一样,再无用武之地。

说真的,自从那次买了些小玩意之后,我就开始恋物,当时两个人即是全世界,现在一个人在途上,世界忽然膨胀了,原来还有很多很多小玩意,让我去收藏。像每一件越旧越值钱的古玩,何尝不是沾满了陌生人多年前的指纹,一如你那背包,我背过了一程,而你又背了多久,留下了多少厮磨的痕迹,成为我买不起的文物。

说来有趣,大学毕业到北京后,我每天也是背着一个朋友 SL 的背包上班的。那也是在旅程的回途中,我拿了过来用上的。

不过此时我被触动的地方,却不幸与 SL 无关。

其实我只是忽然想起 2015 年的早春三月。SG 那次到香港来,正好把 2014 我们在捷克告别时我留给她的那件外衣带给我。

终于还是到了和 SG 再次告别的时候。SG 已经买好了下午回去的机票。午后,我们在赤柱的海边躺着晒太阳。天气既然已经暖和起来了,SG 便说,她打算把那件老旧的绿色外衣丢掉。我那时几乎也是不带任何犹豫地想私自地把它留下来。我都已经装到了包里——并且谎言说我之后就把它丢掉。只是后来,SG 对我说:「恐怕到了机场候机时会冷,我还是带上那件衣服吧,到登机前把它丢掉就好。」于是我就这么失之交臂。

IMG_20150309_122801445_HDR.jpg

到现在也没有再见过 SG。那些卑微和轻狂,未再有机会重新临幸我的心情。

「连在你手上给弃置的多余废物,我都无缘捡拾。」