星期四, 七月 30, 2015

记一次挪威夏季演唱会

《Spy》这部电影我最初在 BBC 听说。BBC 对其评价似乎很高的样子。于是我一直想去看。但直到这部电影快下线了,我也没找到合适机会。刚刚过去的两周中我实在忙昏了头。上周六我终于可以坐下来看一眼这部影片。很遗憾,我对它的评价不是很高。这只不过是一部普通的商业片罢了。倘若观众觉得这部影片的笑点多,我想那只不过是那些观众的笑点低。

我本科的一位政治老师曾经对流行做过一个精彩的比喻。她说流行就像裙带,如果其高度最初在腰,在若干年中它会逐渐升至近胸,然后又降到腰部。如此周而复始,乃至无穷。笑点其实和裙带差不多。小时候刚刚开始看好莱坞及港台的商业喜剧片,我也是觉得分分秒秒都是笑点。现在再回头看,往往有种不过尔尔的感觉。但倘若没见识的新人多了,旧时的已经引不起笑感的笑点便会又流行起来。

不过其中有些地方我倒想借题发挥一下。这个题就是片中请来了 50 cents 组合客串。等他们出场时,我马上意识到我曾经现场听过他们的演唱会。

夏日的挪威经常会在一些较大的城市开一些演唱会,往往票价不菲。2011 年我在 Stavanger 开 EAAP,刚好期间在会场附近有这样的演唱会。这个组合似乎挺有名的样子。我系当时的一个博士跟我说他很纠结,他不知道该去看 50 cents 的演唱会还是参加晚上会务组为与会者组织的 party。但当天下午会议结束离 Party 还有一段时间。趁中间这段空,我就从会场溜达到演唱会场。也不知道那天要不要门票,总之我不知道怎么的就进去了。

这种夏季演唱会往往会同时搭四、五个台子。参与演出的往往有很多组合,名气大一些的用大台子,小一些的就用小一些的台子。挪威夏天的晚上天总也不黑,几个组合就轮番在不同的台子上演唱,从天亮到天亮。严格说,半夜十二点,太阳刚刚没入地平线那一会儿天还是略暗一些的。不同的戏台不会同时演出,因此观众们就要不时随不同的演唱组游走在不同看台。

戏台不分大小,用到的音响却几乎同样的大,声音就像大炮一样。这也是为什么入口处卖海绵耳塞的生意火爆。我没经验,进场之后才意识到,但已经没地方买耳塞了,因此只好远远地离戏台看。场子里只有卖啤酒的。挪威的啤酒非常贵,在这种场合更贵。一杯 500 毫升的啤酒要卖一百多人民币的样子。大约为安全起见,杯子都是薄薄的聚乙烯。但这样的季节人们也不在乎那么多了,因此诺大场地的空气中便弥漫着啤酒的味道。挪威的观众也很热情。他们会随歌手唱啊、跳啊,挥动他们的胳膊。有的一激动,就会把盛满啤酒的杯子隔许多人的后脑勺向前面奋力扔过去,哗哗地淋在前面尤其那些女粉丝们的头上。看着整个人都不好了。

那天我辗转了几个台子。前面不少人唱得都不错。最后大台子开张,几个饶舌艺人在上面绕了半天舌,听起来很无趣,于是我就走了。现在想起来,原来他们就是大名鼎鼎的 50 cents。

看来下次如果有机会听他们演唱会,我也不会去听了。

星期五, 七月 24, 2015

挪威羽毛球简介

挪威的羽毛球水平虽然不高,但是赛事组织的有模有样。挪威有五个大组的联赛。第一级的精英比赛只有男女各八名队员,挪威等级分最高的才有资格参加。由于等级分经常变动,精英赛的名单也经常变动。非精英组的球员需要在各种排名赛和公开赛中攒积分。精英组之下还有一二三级联赛。这些联赛的参赛队伍必须至少有二至三名女队员。说来奇怪,虽然很多挪威人错觉羽毛球只是后院运动,反而女子参与的很少。也或许是因为挪威女子传统强势。除了精英及一二三级联赛,一些找不到女队员的队伍只好参加四级比赛,或者说只有男子参加的比赛。这个比赛中队员最为参差不齐,有时候甚至会碰到从 A 级退下来的。由于联赛要严格按照等级分排出场顺序,因此即使在这个联赛中打也往往能找到匹配的对手。

除了联赛,每隔几周就会有一些比较大的俱乐部组织的公开赛。比赛通常分成年组和未成年组。未成年组又分U11, 13, 15, 17, 和19。倘若人数不够,组织者就会把一些组合并一下。公开赛在周末举行,周六单打,周日双打。

挪威的羽毛球俱乐部大都集中在奥斯陆周围以及南部。南部如 Kristiansand, Moss 等由于靠近丹麦,因此传统上羽毛球较强。我搬到奥斯陆后加入的这个俱乐部在挪威算是比较好的。它的缺点是对未成年关注太少。今年以我家老大为主力的我俱乐部 U15 队打入了国家总决赛。虽然他们以最后一名进,最后一名出,但能参加国家总决赛也是我俱乐部从未有过的光荣事迹。我俱乐部成年的水平在挪威算是比较高的。我们总有两到三名队员能够排在挪威的前20名左右。我们以前的俱乐部前男子第一克劳森也曾经是挪威的第一,现在第十。他以前曾经在丹麦的俱乐部打过。他在丹麦那年刚好罗毅刚也在。罗在俱乐部兼队员和教练,语言不好就用动作示范。克说罗好强壮。在一次丹麦的比赛中他差点把罗毅刚干败。克跟我说那天当地报纸的头条就是克给打败过林丹的罗造成了很大麻烦。

与其它运动相比,羽毛球在挪威只是一个小众。比如克后来打球就时断时续,因为打羽毛球根本不能养家糊口。这项运动与挪威的传统强项如雪上项目,手球和足球相去实在太远。挪威的每个孩子小时候都曾经打过手球和踢过足球。我家老大以前在村里住时,曾经在村里的四个U13队之一踢过一年。目测他们队的水平比我大学队的水平还高。搬到奥斯陆之后,我家老大死活不去踢球了。虽然他在村里踢得还算像样,但奥斯陆的水平实在高出他的水平太多,他脸皮又薄,于是就放弃了。

虽然打羽毛球羽毛球赚不到钱,但消费算起来也不算太高。我参加的这个俱乐部每年的年费是2600挪威克朗,每周二、三、五、日都可以打两个小时。其中周三和周五还有教练。场地是一个中学的体育馆,七块场地,四季空调。俱乐部每年资助会员参加2-4次公开赛。装备什么的则需要自己买。我们大多用RSL顶级的那种羽毛球,160克朗一桶,每次用3-5个不等。与挪威的收入相比,这些都不算什么了。

轶事

上周的台北羽毛球公开赛亚军是周天成。说起来我和他还有一面之缘。他以前大多在欧洲打球。奥运会结束那年,挪威羽毛球公开赛在奥斯陆举行。我当时还没搬到奥斯陆,但离的也不远,这种机会岂能放过。于是我就去追了几天。

挪威的羽毛球水平很水,本地选手第一轮就被淘汰干净。不过那一年有好几个世界排名前三十的参加也是一个原因。由于奥运会刚刚结束,选手们也不迫切需要什么积分。这么多高水平选手参赛令主办者很是意外。当然观众也有了眼福。

这次比赛不仅水平高,而且全程免费。看了两场之后我就拉了几个朋友过来。半决赛时还把我家领导也带来了。看客中有很多华人,本来嘛,羽毛球有一个相当大的华人群体。那时我家领导的调琴业务刚刚展开,见人就发名片。华人当然是重点关注对象了。然后她看见说中国话的就发。第一张发给了周天成的按摩师,第二张发给了他的一个女队友,第三张发给了周天成本人。他们队那年也就来了这三个人。如今这么多年过去了,也不知道他们家买琴了没有。

挪威公开赛奖金只有两万美刀,赛事都是由主办俱乐部义务组织。后者也是今年我参加教练培训后才知道的。由于奥斯陆只有 Bygdøy 岛上的那个俱乐部有条件组织,他们又嫌麻烦,因此那次公开赛之后迄今挪威公开赛都在挪威南部举办。这样我搬到奥斯陆之后反而一次公开赛都看过,令人好生遗憾。

星期六, 七月 18, 2015

闲暇

退出世俗网络的另外一个好处就是我终于有时间看一些电影了。最近我的工作很忙,羽毛球也占用了我很多时间。能看一些电影我甚至都有些感到惊喜。八月,我还要到 Kristiansand 参加羽毛球二级教练的最后一次培训。之后我会买月票,届时我甚至又可以每天至少看一个小时书了。练习打羽毛球让我受益很多。没有哪一样东西能比在激烈对抗中学到的东西更多。现在看来,玩这样一件事情,如果不玩出一点点职业水平来,那就是非常无聊的一件事情。接下来我或许会写一些电影短评。

星期五, 七月 17, 2015

Aliasing long function names in C++

最近我忽然对 C++ 的 intrinsic 函数感了兴趣。但这些函数名通常很长,而且往往要贴近硬件。一旦需要考虑两种以上的 CPU 特征,调用函数就变得非常麻烦。好在这些函数通常有两个参数,并返回一个参数,这样就可以在文件头一次定义,在自定义的函数中就省略很多#ifdef...#elif...#endif了。示例:

#ifdef __AVX__      // Note: put super set first.
const int L{4}
using mydbl =  __m256d;
using ldptr = __m256d(*)(const double[L]);
using jsptr = __m256d(*)(__m256d, __m256d);

const ldptr dbload = _mm256_load_pd;
const jsptr db_mul = _mm256_mul_pd;
const jsptr db_add = _mm256_add_pd;

#elif __SSE4_1__   // 2 doubles * 8byte * 8bit = 128 bit width
const int L{2};

using mydbl = __m128d;
using ldptr = __m128d(*)(const double[L]);
using jsptr = __m128d(*)(__m128d, 

const ldptr dbload = _mm_load_pd;
const jsptr db_mul = _mm_mul_pd;
const jsptr db_add = _mm_add_pd;
#endif

这样自定义函数中的db_load, mul, 或 add 等函数就可以随条件编译自动匹配了。