笼子

夏天
是个笼子
我就这样挂着呢


北京
是个笼子
我就这样挂着呢


生命
是个笼子
我就这样
悬吊吊地挂着呢

夕阳中的烟袋斜街

“我的家就在二环路的里边,这里的人们有着那么多的时间,他们正在说着谁家的三长两短,他们正在看着你掏出什么牌子的烟。小饭馆里面辛勤的是外地的老乡们,他们的脸色和我一样。单车踏着落叶看着夕阳不见,银锭桥再也望不清那西山,水中的荷花它的叶子已残,倒影中的月亮在和路灯谈判,说着明儿早晨是谁生火作饭,说着明儿早晨是吃油条饼干。”


——何勇《钟鼓楼》


迷笛音乐节掠影

今年第一次不回广州或昆明过五一长假,也就第一次有机会参加北京迷笛现代音乐节。不知为什么,我的情绪总是高昂不起来,愧对四周高举的手。是我老了,还是他们太年轻?



他们还年轻



他们真的很年轻

北京在哪里

前门地区正面临一次大拆迁。老北京的最后遗迹,将在拆迁完成后,彻底消失在历史里面。公众对此次拆迁有赞有弹,不过,在舆论的力量几乎等于零的状况下,赞成者和反对者的声音,都被推土机的引擎声掩盖了。


我2003年离开广州来到北京,三年来,持续不断地试图去体会理解这个城市。当我在2004年开春第一次看到满树无叶的花朵,我以为这就是北京;当我坐在半坡啤酒屋回味刚看的话剧,我以为这就是北京;当我提着一堆书从三联书店出来,我以为这就是北京;当我汗流浃背地挤上地铁,我以为这就是北京;当我品尝到爆肚冯的肚领、月盛斋的烧羊肉、小肠陈的卤煮火烧,我以为,终于找到了北京。


然后,突然他们要把我的北京拆掉了。媒体报道,百年老店爆肚冯、月盛斋、小肠陈所在的前门廊坊二条,也在拆迁之列。月盛斋的马老板,不无辛酸地对着镜头说,以后回来的可能性不大了。我和一些朋友们,曾在寒冷的冬天,坐在小肠陈门外,喝着小二,吃着一碗热腾腾的卤煮。这些难得的经历,似乎将永远变成记忆的一页。


于是,在一个空气污浊但有太阳的下午,我和一位朋友,来到前门,为了缅怀将消失的北京。


前门大街两旁的店铺多已不再营业,人行道边竖起了画着未来美景的隔墙——墙后的房屋很快会被拆掉。转进胡同,廊坊二条已经拆得不成样子,路北基本是一片废墟,然而,路的南面,食店依然兴旺。爆肚冯搬到了斜对面;循一些粉笔或毛笔写就的路标,向西,是小肠陈的新址。来二两卤煮,那厨子依然很牛地用手从大锅里抓出一节小肠,用刀剁小了,放到垫了火烧的碗里,再撒上一把芫荽,浇上一勺卤汤。一位北京老太太颤颤悠悠进得门来,主问:两位来点儿什么?客答:可算找到了,三两。



我们又来到爆肚冯。一盘肚领,一盘芫爆牛百叶,两瓶燕京啤酒,夕阳慢慢让门外的残垣断壁染上一层惨淡的黄色,微醺之中,我知道,北京还在。城市的底蕴所在,命脉所在,并不系于几所旧房。我想起广州北京路,透过路中间铺的观景玻璃,可以看到自唐朝至民国时期的十一层路面。谁又能说,广州被埋葬了呢?骑楼是广州建筑的特色,然而历史不过百年。我们今天熟知的“老北京”,甚至是解放后历尽劫难的残骸。只要还有爱北京的人,只要人心里有北京,北京就会存在下去。


北京在哪儿?问你自己。


[今日图片]又一个鼠标

梅子送我一个无线鼠标,解决了我因为线不够长不得不用左手鼠标的问题。上图,并谢谢梅子。



拍摄参数:Canon 30D, Sigma AF 70-300mm F4/5.6 APO DG Macro, 190mm, F5.6, 1/15s手持。

厦门游记

2006年4月24日至26日,到厦门参加265网络组织的中国站长大会。会议本身没什么可说的,浮躁,在雨季而无雨的厦门,泛着泡沫。互联网的夏天来到了——天上挂着九个太阳,每个人都兴奋得莫以名状——秋天甚至冬天还会远吗?



下榻的酒店


好在厦门本身并不浮躁。带着我的30D和两个”狗头”,忙里偷闲,试图记录下我看到的厦门。这次拍了100多张片子,满意的不多。我想,除了器材不熟悉和技术欠功夫之外,更重要的原因,应该是我还没有看到真正的厦门罢。


在欢迎晚宴上,认识了蓝色理想(准确地说是见到真人)、古墓(Flash8站长)和虫虫(《电脑报》记者)。他们都是直率、好交朋友的人,几句寒暄之后,大家就已经打成一片。虫虫说,她在厦门有个网友,晚上来接她出去玩,叫我们一块儿去。于是一帮人兴致盎然,直奔酒店大门而去。远远看见一位MM站在车旁,怎么看也不像是在期待会面的样子。走近了才知道,原来倒车的时候撞到石柱;不知为何,高约40公分的石柱,居然生生卡到车底,而且没怎么伤到车身——难道石柱会穿墙术不成?寻找千斤顶未果后,三位男士再加上两位酒店工作人员,大展身手,楞是喊着号子把车身抬起来,向旁边移动了几十厘米。


这时才有时间互相认识。原来这位芳草MM乃是天涯社区摄影版斑竹,擅传统字、画,在大学工作。我们沿着环岛路一直向南,车河游了个够,路经胡里山、厦门大学、演武大桥、鼓浪屿等地,均未作停留,直奔目的地——鹭江大学附近的黑糖咖啡馆而去。



黑糖”的黑板


后来九点、郝玺龙等人都来了,当然话题也就转移到了互联网行业和技术上。芳草MM第二天还要上班,且显然不适合谈这类话题,就和虫虫一起先回去了。其余人等一直聊到凌晨2点,服务员来催打烊才离开。


(第二天白天开会,过程略)


第二天晚上,芳草MM带我们去集美吃厦门特色餐食。用餐的“味友食府”,据称老板起家于挑担子卖面线。所谓面线,即一种厦门当地特色食品,很细的面条加上鸡汤或鸭汤是也。厦门的大排档,和广州的(特别是黄石路的金都)很像:一样的人声鼎沸、一样的生猛海鲜。我们吃了鸭汤面线、炸海蛎子、干煎大虾、芋头、大肠血、清蒸膏蟹,喝本地产大白鲨啤酒。感觉厦门海鲜要比广州贵一些,同样的东西,在广州大概300多可以解决,不过比起北京来就太便宜啦。


回去的时候,芳草坚持要送我们(她住集美,到我们住的酒店足有近一个小时车程),旋即因为选错路车轮陷入泥地,于是三位男士再次出马,在一帮民工的注视之下,成功把车子推出辙沟。回酒店后,一夜无话。


第三天,本来约好清早芳草就来接我们出去。谁料她身体不舒服——真是抱歉,一定是这两天接送和陪同我们累着了。虫虫、古墓、蓝色要去鼓浪屿,我则打算照原定计划去胡里山炮台和南普陀寺,大家分道扬镳。我退了房,背上行李和摄影包,蹭上他们打的出租车,绝尘而去。厦门的司机似乎都比较容易走神,第一天晚上送我们回酒店的司机就开过头,这次又开过头。我赶紧下车,寻找炮台所在地,直找了半个小时才到正地方,其间顺便游览了一处沙滩。



沙滩


在入口处的小摊,我买了一瓶脉动,顺便把挎包寄存在小老板那儿,只背了摄影包进去。胡里山炮台门票25元,当然只能买。该炮台拥有世界上最大和最小的克虏伯大炮,大炮在二十世纪三十年代还击沉过日本军舰。看着黑黝黝的炮身,我只想到一句话:兵者,凶器也。



克虏伯小炮


在参观过火枪刀剑展览后,心情尤为沉重。我登上显然是新建的“靖兵巡逻道”,眺望远海,回首处,一只猫正警惕地看着我,它的眼神里,有历次战役牺牲者的亡灵。



一只警惕的猫


从炮台下来,打了个车直奔南普陀寺。该寺乃是闽省一大丛林,位于厦门岛海边的五老峰下。闽南佛学院即创于斯寺,当年曾有太虚、弘一、印顺等高僧大德在此执教。



天王殿远观


在这里,我频繁地换镜头,”一镜走天涯”是多么理想的状态啊!寺庙依山而建,拾阶而上,一步一景,令人赞叹不已。寺中最初主供观音大士,民国时改制为十方丛林。袅袅烟火没有熏走鸽子,它们在寺庙上空扇着翅膀,偶尔停驻在飞檐一角。南普陀寺给我带来一种久违的感受,这种感受曾经在初次参拜光孝寺时体会到。历史与现实,宗教与人生,在刹那间交织在一起。诸佛菩萨当因有此丛林而欣慰。



时间即法



草枯草荣,有常无常



心即是佛,镜头呢?



太虚大师之塔


我一直攀登到五老峰山顶,汗流浃背地下得山来,已是中午一点。在厦门大学附近找了一家小馆子,点了一份炒花蛤,一份白灼章鱼,和一瓶大白鲨啤酒。其实虾、蟹之类,反不如此类”家常”海鲜更有趣味。一盘花蛤转眼扫光,意犹未尽,又来了一盘。



炒花蛤



白灼章鱼


在去机场的路上,下起雨来。老天顾眷,没让我在山上淋雨。不幸的是,飞机因此而晚点了。回到家已经晚上9点。匆匆记下此次厦门之行,作为备忘吧。



晚点——机场困倦的人们

鼠标

今天去公司加班的路上,拍了一些海棠花。匆匆而过,纯粹为了测试相机特性,图不上了。三天使用30D下来,最大的感受就是该机型人机界面极友善。我是搞计算机的,对人机界面很敏感。这台机器到手后,简单浏览一遍说明书,就已经完全可以掌控(我是头一回用Canon机,原来都用N记)。主控轮和机背滚轮实在太方便了!


还是上一张拍鼠标的吧——好像我对静物比较感冒。:)


入手30D

去年幻想能买一台Sony R1,年前幻想能买一台Nikon D200。突然之间决定要买相机,几经转念,即便理由变成借口,还是拿下一台Canon 5D。尽管现在只能配个狗头,不过既然咱并非唯器材论者,所以也还能玩玩决定性瞬间。窃以为,好相片有两个要素:1、形式要有冲击力(不是说画质多么好,看看卡帕的片子……);2、要有真感情在里面。废话不说,上一张试拍的片子——



再记:老白眼尖,一下就看出我的笔误。笔误者也,心之所属。其实我心里还是想整一台5D的,奈何囊中羞涩,等而下之,入手30D。上段之“5D”,当为“30D”,原文不予修正,立此存照。——2006.4-14

入门不简单(《Beginning C# Objects中文版》书评)

由于工作性质的关系,我常常需要为公司面试程序员。通常,我会首先要求应聘者做两件事:第一,口头说明虚方法、抽象方法、接口之间的异同和使用场景;第二,脱离IDE,手写一个简单的WinForm程序(例如包括布局整齐的两个文本框和三个按钮、点击按钮弹出消息框显示文本框内容),然后在命令行编译运行。第一题是考面向对象中的继承和多态概念,第二题则是考C# GUI类和关于委托等C#独有特性的基础知识,以及编译、调试技巧。很遗憾,有一大半的应聘者会在这两个简单考题面前败下阵来。尤其是第二个考题,甚至难倒了一些写代码有年头的程序员。为什么?因为这些程序员不具备基本的面向对象知识,更加不理解C#的面向对象实现手法。


这不能完全归咎于中国计算机教育。实际上,在美国或其他发达国家,真正懂得面向对象开发的程序员也并非随处可见。这也是Beginning C# Objects(及其Java原版本Beginning Java Objects)一书成为畅销书、并在Amazon上获得读者极高评价的原因。作者写道:“我们常常与一些软件开发者会面——在工作场所、在客户办公室、在专业会议上,或在大学校园里——这些开发者都尝试去掌握一门类似C#的OO编程语言,他们参加C#培训、阅读关于C#的书,或是安装和使用像Visual Studio .NET这样的C#集成开发环境(IDE)。然而,这是舍本逐末的做法:他们缺乏对什么是对象的基础认识,更为严重的是,缺乏利用对象从头开始构建软件应用程序的知识。”


翻开市面上任何一本你能找到的C#入门书,看看第一章讲什么,第一个范例是怎么实现的。闭上眼睛你都能告诉我,第一章多半是讲怎么安装VS.NET,第一个例子多半是拖一个按钮控件到窗体,双击后输入一段调用消息框的代码。我们的技术作者们,就是这样把读者引入歧途的。IDE(集成开发环境)能极大地提升生产力,但开发应用程序所需的高度专业的知识和技能,却非IDE所能代替。的确,任何一个菜鸟也许都能利用可视化组件拼凑出“看起来还不错”的应用程序,但这样的程序却将带来高昂的扩展和维护成本。


面向对象编程,绝非一些可视化组件那么简单,它涉及人类思维(抽象)模式、建模符号体系、面向对象方法学等诸多方面,对开发者有较高的要求。功夫过关的开发者,不止是技术高手,同时也一定会是有深度的思想者。把需求从自然语言翻译为对象模型,再把对象模型翻译为特定语言代码,殊非易事。最基础的,到底什么是对象?如果你曾经好好思考过这个问题,就会得到很多启发。例如,现实世界中的一张纸,如何抽象为计算世界中的对象?这个对象将具有那些特性(属性和行为),例如尺寸、颜色、质地、折叠、裁减,卷筒……?综合来看,面向对象的要素是什么?把事物抽象为对象的过程,是做思维体操的过程,也是极富挑战性和乐趣的过程。如果你还还不了解对象和面向对象的概念,或想与作者一起就该话题做更深入的思考,那本书第一部分就是最好的入门手册。


我认识一些优秀的程序员朋友,他们在大学时念的专业是建筑。这些朋友对应用程序架构和/或开发流程,有近乎严苛的要求,因为他们深刻地理解,蓝图、材料、工序……对于建造房屋是多么的重要。对象模型的静态方面(域类、数据结构等)在应用程序中开发相当于建材单元,而动态方面(行为、方法等)则是关于建材之间如何组合的指导书,它们合起来,构成一个应用程序的“蓝图”。越是复杂、大型的应用程序,对蓝图的要求就越高;即便是简单的应用,有蓝图也比较有利于维护、升级和扩展。给你一份需求说明书,你将如何分析它、并且组织出正确的对象模型(蓝图)?如果你对此信心不足,建议好好阅读本书第二部分。


第三部分涉及的范例,在有经验的开发者眼中看来,似乎过于简单。其实不然。整个开发过程当中,没有使用IDE拖放过任何一个控件,或在IDE中编译调试。这样做的目的有二:一、让读者可以掌握.NET Framework和C#本身的特性,而不会被IDE的花哨界面所迷惑、急于求成;二、帮助读者学会用正确的手法和模式(如公认的MVC模式)开发程序。例如委托(delegation),这是.NET Framework中一种特别的语言元素,也不易理解。如果你只懂得往窗体放一个按钮,双击该按钮,输入一行代码,那么你永远不会明白,这个过程体现了利用委托实现事件处理的巧妙手法。但是,如果让你脱离IDE编写事件处理方法,你就很快能明白这个道理,而且也知道怎么用于实践。IDE能提升生产力,不过它却不能凭空创造生产力,本源的生产力还是来自开发者的知识与技能。


面向对象编程已经流行多年,然而还是有无数的入门者在入门阶段就走错路子,抱着错误的观念、用错误的方式开发着意大利面般一团乱麻的程序。入门不简单,对于初学者如此,对于有经验的开发者,更该回头检讨自己在面向对象编程领域的经验是否根本就是错误或细枝末节的经验。本书作者开发和培训经验丰富(一位是NASA开发工程师,一位是大学教师和对象技术专家),理解面向对象程序员可能进入的误区和面对的挑战,他们知识与经验的总结,形成了这么一本用心良苦、循循善诱、深入浅出的C#面向对象开发指南。每一位C#开发者,无论有经验还是没经验,都该读读这本书。入门不简单,你真的入对门了吗?


(本书将由电子工业出版社于2006年5月出版)