Chen Yangjian's Blog

Carpe diem - Seize the day

两部英国电影:听英国佬讲那过去的事情

| Comments

都是半纪实性质的电影,《The Boated That Rocked》(摇滚电台)、《The Damned United》(该死的联队)。前者讲述40年前在英国十分流行的海盗电台们的其中之一,摇滚电台的故事,顺便拿俩政府官员做笑点,极尽揶揄之事;后者则将题材专注到英国的职业足球联赛,颠来倒去一会顺叙一会倒叙地将著名的足球经理 Brian Clough 在利兹联十分不开心的44天。

英国的职业足球联赛真是令人叹为观止,男猪脚所在的球队德比郡,始创建于1885年,在它到达他的巅峰时期,成为 1972 年职业足球联赛甲级联赛(当时的最高级别联赛)冠军的时候已经有将近 90 年的历史,都十分不小心地比浙江大学、和我的高中的胡乱追溯出来的比浙大还老一年的历史要悠久那么一点。更令人印象深刻的,是在成为冠军、打入 Division One 之前,1967 年 Brian Clough 成为球队主教练的时候,它还尚在 Division Two 的降级区边缘。在当时已经 80 多年的历史中,德比郡足球俱乐部有过辉煌,做过斗士(赢过足总杯,1946)。即便放到今天,这只在当时看起来十分残破,球场破败,比赛的时候才发现十二码没有标注,清洁工会在球队输球之后大笑(我想她们是无意),在它 100 多年的时间里绝大部分时候都呆在顶级联赛,甲级、乙级,仅仅有四年例外。

从 1888 年英国足球联赛成立以来,德比郡和另外十支球队一年未落下。

再去看反角利兹联队,在 1960s 恰好是它的第一次荣耀时期,夺过两届冠军,拿过足总杯等一系列国内杯赛。在当时看来唯一的缺憾就是未能在欧洲赛场有所作为。而在主角闹剧性的任期结束之后,继任者带着当时已经老迈的冠军队伍在当时还叫做欧洲杯的欧冠联赛上一路打入决赛,而后很具争议性地输给了拜仁慕尼黑(0:2)。在当时的冠军阵容中,有三个成为了百年联赛百大巨星Brian BremnerNorman “Byte Your Legs” Hunter) 和 Johnny Giles。他们是不是真如 Brian Clough 所说,虽然功成名就,但留下的多是骂名,让人记得并时不时引为谈资的是他们的下三滥手段而非球技,我并不晓得。立领服装代言人,坎通纳,也效力过利兹联队。

电影之外,离开利兹联之后,Brian Clough 携手 Peter Taylor 跑去指教诺丁汉森林。该队更牛逼,1865 年就创建了,比最老的 Notts County 晚了三年。接手之后不久,打入了甲级联赛,拿了n个杯赛冠军(俩足总杯、4个联赛杯),和至今仍然是俱乐部历史最牛逼的欧洲杯冠军。

再后来的事情,Peter 过世了,Brian 迈入新世纪之后,他最引以为豪的在德比郡创下的 44 场不败纪录,被温格的阿森纳打破(46场),一个月后也过世了。1992 年联赛改弦易辙,成立了英格兰足球超级联赛、英格兰足球冠军联赛等等,甲级乙级不复存在。2006 年,有人将他在利兹联的故事写成小说《该死的联队》,也就是同名电影(本片)的前身。2008 年,Nigel Clough 成为了德比郡的新教练。没错,他是 Brian Clough 的儿子,传奇仍在继续。

呃,偷点懒,《摇滚电台》放到下次去讲。

电影的描述手法是半纪实性质,滚动的积分榜是史实,年份是史实,只是个中过程未必尽然,上面的话,实在看了维基相关词条后的总结,可能有纰漏,望不吝指出。

NBA 流言两则

| Comments

科比!春哥喊你回家吃饭。 kobe

阿泰的新发型,中文“湖人队”,和朝鲜文或者火星文 artest

学吉他快一年咯

| Comments

买了第一把吉他快一年了,现在这把买过来也将近6个月,一直断断续续地练,中间也报过一个中级班,被老师和同学因为各种缘由鄙视,和弦不熟啦、节奏烂啦、不会横按啦,到如今学了吉他快一年,上传个《致爱丽丝》作为一年期学业的总结,希望自己能够一直继续下去,努力达成初学时立下的第一个愿望,卢家宏编曲的C调《卡农》。

求推荐 RSS Feed 聚合器

| Comments

能够把博客、豆瓣、flickr 等调成鸡尾酒再丢给别人订阅的。去看了一下 Feed Burner,晕兮兮,用啊不会用。顺便贴 Emily:

audrey taotou

JavaScript the Good Parts

| Comments

最近在看这本书的中译版,《JavaScript 语言精粹》,貌似是淘宝大牛小马哥与雅虎中国鹍哥的译作。因为书很薄,按 Crockford 的意思是取其精华去其糟粕,只谈 JavaScript 语言中宜用的部分,就直接在蓝晶书店买了。隔了一年多,老板居然还认得我。生意人的扯皮,大抵也不足为信,只是这份歪打正着,已让我十分受用。

有好事者把奥莱利出版的 JavaScript 有关的两本重头放在一起合影,《权威指南》砖头一本,从编程语言基础到 DOM 到服务端 JavaScript 到嵌入的 JavaScript,无所不包,还嫌不够厚重,封皮是犀牛一只;而《语言精粹》则轻而灵,薄的一塌糊涂。让人想起《鹿鼎记》里头陈近南对小宝说:“这本是目录,那里才是绝世武功的全集”。

学习编程语言确实不难,实际应用虽非易事但也不难做,唯一好耗费的是时间。需要了解不同浏览器的 DOM 支持程度各种规避缺陷的奇技淫巧,等等。如果做前端开发,这两本书倒确实是缺一不可的了。

JavaScript 作为最广为支持的前端开发语言(唯一广为支持的前段开发语言?),被许多从业者所误解。我们刚开始接触这语言时,往往都是抄袭写网上的只言片语,大多不上台面,甚至连改用户浏览器状态栏就为实现个时钟这样的事情也做得出来。到真的需要真刀真枪上了,却又惊异于 JavaScript 独特的原型继承、以闭包(Closure)作为变量作用域、函数式编程之类前所未闻的事情。

Crockford 的抱怨总结的很好了:市面上的书良莠不齐;官方的说明文档冗长而条理不清;浏览器支持一塌糊涂;程序员写出的代码凌乱不堪;等等。

但是并不妨碍这门语言凭借其精华发光,让 Java 程序员们艳羡的数据结构表达方式(JSON)等等。如果你有时间有兴趣,不妨也了解一番,说不定某天做其他事情,也会看到 JavaScript 应用的影子呢。快速入门稍微慢一点的快速入门。都是英文。

Windows 7, Hell Yeah!

| Comments

你纳斯·脱袜子(Linus Torvalds)、Microsoft Windows 7、日本,好奇怪的组合啊……

Linus Windows 7

Windows 7 还是挺好用的,启动很快,界面不会像 XP 那样有停顿感。cmd 虽然一如既往地土但是好歹有新的字体 Consolas。

via

代码缩进风格

| Comments

Python 和 Haskell 作为编程语言中异类,使用缩进作为代码块的标注,Haskell 还好些,同时也提供了花括号({,braces),Python 则一路牛鼻到底,不仅现在不支持,还很负责任地说:

Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from __future__ import braces
  File "", line 1
SyntaxError: **not a chance**
>>>

99% 的时候,习惯了这种方式也就好了,有的时候还会爱上它。但是当你不小心在 Emacs 里头按了 C-x h C-M-\ (选择所有,自动缩进)或者在 Eclipse 里头按了 C-a C-Shift-f (我不知道会不会有人用 Eclipse 写 Python),并以为代码已然缩进,万事大吉,那你的人生就变成了茶几——充满了杯具了…… 因为 IDE 根本不可能知道下面这个该如何缩进:

if i_can_have_braces:
    hooray()
    lets_throw_a_party() #这个得丢到哪里?该不该缩进?

在 Emacs python-mode 的文档里头,也有相似的警告。

同样的,在其他 C 语言风格的编程语言里头,裸露的条件语句也是很危险的,比如:

if (you_should_use_braces)
    hell_no({reason: "time is precious. can't be wasted on typing redundant characters"});
    lets_throw_a_party_anyway();    // 即使缩紧了,也木有用……

所以,大部分情况下,还是用上花括号的好,实在想偷懒,不要换行,直接跟到 if 后面。

而又说到花括号,开括号的位置也是个热门讨论话题。K&R 的态度是(我深以为然):

The position of braces is less important, although people hold passionate beliefs. We have chosen one of several popular styles. Pick a style that suits you, then use it consistently.

花括号的位置并不重要,然而人们总是坚持自己所信奉的。我们在几个流行的风格中做出了选择。你只要选一个自己中意的,然后一直用下去就行了。

Python 的解决方式简单,那我就干脆不用,到此为止。Java 呢,提倡 The One True Brace Style,1TBS,即所有的开括号都丢到语句末尾,而不是另起一行。像这样:

    if (x < 0) {
        printf("Negative");
        negative(x);
    } else {
        printf("Positive");
        positive(x);
    }

我用的是这个。

一点点题外话:中午的时候花了点时间,想在 Emacs 里头 Python-mode 时,禁用掉区域缩进,免得哪天昏了头造成不必要的后果,但是找不到 python-mode-map 变量,去翻 python-mode.el 的时候,发现叫做 py-mode-map,可是也找不到,总之很囧……

(add-hook 'python-mode-hook
      (lambda ()
        (define-key py-mode-map (kbd "C-M-\\") (message "not a chance"))
        ))

本来,加上这个也就大功告成了的……

Reddit 二三事

| Comments

最早知道 reddit 是因为负暄琐话,他推荐过 programming.reddit.com,后来口耳相传,也从其他地方听到过。开始使用 Google Reader 之后,就订阅了这厮。后来渐渐开始关注其他 sub reddit,比如 web_design、ysk、iama 等等。然后就是建立了自己的 sub reddit:chinese123,用以介绍、讨论中文。不晓得是推广力度不够,还是其他,人气不够旺……

所以昨天试着弄了一个 logo,装饰了一下,搞了个穿着汉服的 reddit,哈哈。大图在此:

chinese123

今天在 proggit 看到招聘馆里猿的消息,余虽竭诚亦力有未逮,还是在这里默默广而告之,希望有识之士能够多多参与,也就是了。

画画的秘密

| Comments

昨天晚上闲暇,看起了 BBC 2005 年的一个纪录片,《The Secret of Drawing》,画画的秘密。依稀记得以前跳着看过,现在仔细从第一集开始,却发现自己遗漏的东西是多么令人赞叹。

第一集主要提到的人物是:心外科手术医生,不仅在手术前喜欢描绘手术图,手术进行中,病人的胸膛还开着,血还兀自流淌的时候,他也喜欢蘸着胸膛里的血为助手描绘手术情况;同样,以此带出文艺复兴时期达芬奇对解剖学的贡献;再以解剖为话题提到画马的大师 George Stubbs;而后又讲到 J. M. W. Turner 的浪漫主义风景水彩画;法裔美国人 John James Audubon 的北美鸟类大全;和某个我暂时想不起来名字的家伙 John Russell) 利用天文望远镜画的月亮(相信我,你绝对不想错过这个)。

George Stubbs 的马,John Audubon 的鸟,和某人 Russell 的月亮有一个共同点,它们都是耗费了作者毕生的精力(A life time work 该怎么翻译?)。

George 本人靠着阔太们画肖像攒钱,去乡下买了套房子,在自己并非明媒正娶的老婆的帮助下,解剖、描绘了18个月的马。我们并不知道当初他研究马是为了谋生还是兴趣,然后显而易见的是18个月后他已经沉迷其中了。在他返回城里发表的马的解剖本中,连马的血管都清晰可见。

John 的鸟也是如此,帮父亲看管一片费城近郊的林地的时候,他不务正业。与其做着营生,他扛着猎枪在林子间游荡,猎下各色飞禽,制成标本,描绘它们。描绘的过程是如此细致,以至于他只允许出版商以画中鸟儿的实际尺寸印刷。

如今去看,这些了不起的成就依然令人神迷,能够踏踏实实的完成一项成绩,让后世仰望,感觉一定不错吧。