少年听雨歌楼上,红烛昏罗帐.壮年听雨客舟中,江阔云低断雁叫西风. 而今听雨僧庐下,鬓已星星也! 悲欢离合总无情,一任阶前点滴到天明。

2007年7月28日星期六

朗朗的贝多芬协奏曲

一年之后再见到朗朗的新专辑,可以说是让人眼前一亮。从本身来说,郎朗的演奏已经有了明显的进步。两首贝多芬协奏曲都相当令人信服,特别是很多细节的处理也让人称道。从以往的经历来看,朗朗的协奏曲都明显好于独奏曲。不过这次两首协奏曲都不是炫耀技巧类型的曲子,朗朗的分寸感把握地很好,第四协奏曲的慢乐章弹出了新意。从随盘的DVD看,朗朗能够和Eschenbach一起演奏也是他的演奏能够逐步提高的因素之一。1999年,Eschenbach成为了朗朗的伯乐。而今天,Eschenbach更是给了朗朗非常高的评价。尽管在出名的早期,朗朗背负了很多争议,特别是来自他的祖国中国的不少人的非议,尤其是对其在演奏时表情予以否定,但是朗朗仍然向大家证明了他正在成为第一个音乐大师,同时可以说是第一个中国的音乐大师。希望朗朗能够再接再厉。

2007年7月26日星期四

Qt初步开发

最近一段时间开始学习Qt在Windows下的界面开发,也就是GUI开发。本来一直对C++的GUI开发就有一定的畏难情绪,主要是MFC给弄的。现在学习Qt,心中还是不免有一点担心。

使用了一段时间以后,Qt的开发还是很有效率的,几个界面也有了雏形。但是,Qt的优缺点还是非常明显,让人很矛盾。

首先,Qt的开发库屏蔽了所有操作系统的东西。也就是说,使用Qt进行Windows GUI开发,你不需要知道任何的Windows API知识。当然,这么说似乎绝对了一点。但有一点是肯定的,那就是使用Qt开发对于学习操作系统本身的编程没有太大帮助。对于那些喜欢刨根问底的人来说,这就像隔了一层玻璃,总让人感觉不是特别舒服。

第二个问题就是IDE的支持还是有一些问题。当然,Qt和Visual Studio的整合已经是相当不错的了。但是在设计界面的时候常常有很多不能够确定的情况。有时候属性设置后,没有预览效果。或者是预览效果和实际运行效果无法一致。同时,Qt会为IDE生成大量的代码。这一方面减轻了开发人员的负担,但同时也给整个项目带来了很多隐患。事实上,有几次,我都是删掉了一些自动生成的代码后,才得到了我想要的结果。但是自动生成的代码会每次都出现,因此有时候代码的控制就成了问题。

第三个问题是Qt的帮助支持不够好。当然,对于Qt来说已经很不容易了。即使是我这样用惯了MSDN的人来说,Qt的API支持也已经比较到位了。但是对于一个成熟的库来说,光有API的介绍还是不够的,最好能有一些简单的配套的例程。否则,我经常要把好几个类的所有属性和方法都翻个遍,才找得到想要的东西。

当然,Qt仍然是非常让人激动人心的。起码对于普通的C++开发来说,Qt完全让你的开发工作效率上了一个大台阶。同时,卓越的跨平台性能,使人不得不选择它作为C++开发的重要工具。

2007年7月18日星期三

Ubuntu Linux

这一段时间开始使用Linux。主要是学习基本的使用方法,重点在于学习Linux下的开发。

以前安装的是Red Hat Linux 9.0,应该是一个经典的版本了。不过太多的功能没有自带,让我这种初学者很是抓狂。比较严重的是不能识别NTFS分区,KDE桌面和GNOME桌面居然还有不同步的现象。默认浏览器还是该死的Mozilla,等等。最终让我下了决心,换一个,尽管我才买了一本关于Red Hat Linux 9.0的书。

选用了流行的Ubuntu。安装的确非常方便。好处很多,我就不总结了。说一下不足的地方。

第一,表面上是一张CD的安装盘,但是要想开始工作,更新软件和下载其他软件包是肯定的。实际上,一张CD内居然没有包括所有的语言支持,驱动支持也非常有限。想想Windows XP一张光盘的内容,还是有一点敬佩微软。

第二,默认的中文支持还很不足。

第三,默认情况下居然没有开发环境,这让我非常吃惊,还要安装build-essential包,这简直不像Linux啊。

目前,打算跟着《Advanced Programming in the Unix Environment》走。然后再看看Qt4在Ubuntu下的开发。

2007年7月17日星期二

SNC的岁月(十五,完)

学通社04级的一个成员在学校的校车上有过一次比较长的谈话,才得知其实学通社也在困惑我们困惑的问题,他们也 遇到了一些组织上的问题。从实际中来看,学通社也是一个技术性的组织,他们对于编辑软件的要求,甚至对于设计软件的要求和我们都有很类似的地方。然而,他 们突破了传统的形式,使得他们在北区能够得到了承认和获得了影响力。他们通过黑板报这一简单的形式,走出了仅仅依靠“北区瞭望”这一期刊的形式迅速在同学 中间建立其了自己的受众群。几乎每个同学在主楼门前都会驻足看每日的新闻。学通社比我们更有亲和力。王永懿说得好,“无意驻足晓天下”,学通社做到了我们 没做到的事情,这是对我们工作的莫大讽刺。

我还作为嘉宾参加了学通社搞的一次“校园媒体峰会”。会上有不少组织都呼吁校园学生媒体能够联合起来,发挥更大的学生力量。我也在台上即兴谈了一下 SNC关于和其他组织合作的想法,因为仅仅是我个人的发言,所以我也没敢说太多,而只是说一些展望。我们还没有到达能够建立合作的条件。最大的问题是,就 像请客一样,我们拿什么去参与校园媒体的合作呢?还是仅有的花样年华讨论区吗?

最后我想谈谈SNC的技术问题。本来,技术是SNC的实力和力量的体现,但是最后才谈到SNC的技术似乎有一些不应该。其实,也只有把一切都谈过之后,才能够有足够的精力来细细说说SNC的技术问题,因为这的确不是一个简单的问题。

SNC的起步来自于网站的建设。从网站建设而言,98-2003左右都是一个启蒙的时期。其实,那个时代也是互联网高速发展的年代。使用简单的 ASP、SQL Server 2000和DreamWeaver就可以快速搞定一个构架并不复杂的网站。这一点从我最开始加入SNC的时候我就感受到了这一点。事实上,SNC也是这样 走向了第一个辉煌。花样年华讨论区和其一系列的网站包括后来的博客都是采用ASP技术外加SQL Server 2000架构。由于ASP的特性,这些网站大多数由一个或者两个核心成员独立开发完成,很少有团队运作的情况。这其实是和SNC长期宣扬的“项目制”并不 相符的。然而,情况在2003年后出现了很大的变化。首先,网站的开发技术日新月异,业余爱好者很快就被抛到了主流技术的脑后。ASP.net、JSP、 PHP到后来的Ruby On Rails或者Java三件套都向开发者提出了非常高的技术要求。就不说熟练使用这些技术中的任何一项进行开发大型网站了,就是能够学会这些技术都有不小 的困难。在较为简单的ASP面前,03级SNC只有我、朱鑫算是熟练手,孙庆生能看懂和编辑一些代码,那么到了下面的技术呢,都需要学习的过程。而且03 以后已经慢慢到了团队开发的时代,单靠一个人进行网站开发的时代已经逐渐过去了。而SNC显然并没有跟上这样的脚步。04-05年,我带领北区的团队学习 ASP.net。不管选择是否正确,但是的确也有了一些小的成效,起码,一个团队正在形成,而且我们已经使用ASP.net在开始做一些东西了。然而,因 为效率的问题,团队的运作最后夭折。孙庆生后来还做过一个音乐盒,最后也不了了之,但是说明一个问题,个人时代早已经过去了。SNC要想再开发什么新东 西,没有团队运作,没有专业性学习,很难。

05年春,130人的北区SNC,能够进行开发工作的人不超过10个人。这10个人中还不包括才学习的新手。我个人是分身乏术。我要管理整个北区工 作,我要管理技术部工作,我还要带开发团队的开发进度,我还要进行培训,这实在是非常困难。我曾经建议在北区的时候,让余冠武担任技术部的部长,但是当 时,东区和齐老师都认为余冠武并不适合担任技术部的部长。尽管有心但力不足,北区缺乏工作机,缺乏专业书籍,缺乏培训,水平难有提高。

培训,曾经是我们寄予厚望的形式。但是在实际运作中,培训有着诸多难以运作的缺点。最大的问题是,谁去培训?当然是熟练的核心成员。可问题是,核心 成员的任务已经是比较重的了,我们怎么去要求这些人投入更多的精力到SNC中呢?这势必会造成核心成员本末倒置,最终对学业荒废。从我安排和参与的培训来 看,参加培训的人觉得听不到太多的东西,而准备培训的人却又感到太累。有时候,我们过高估计了培训的效果。张卷益在北区的时候也搞过一些培训,但是本来张 卷益任务就多,更何况像平面设计这样的东西,泛泛讲一两次也没有太大的效果,最终03级的设计水平并没有显著提高。而程序开发,则更不可能是一两次培训就 能解决的问题。更何况当年,我一个人要负责培训5-6个人进行网站开发,包括程序和页面设计,还有负责开发进度的把握和所有代码的检查,难度可想而知。最 后,我觉得,培训的形式如果没有更大的改善或者创新,那只能是一种过场。

SNC常常把技术挂在嘴边,但实际是,我们其实最缺乏的就是技术。如果技术没有问题,开发没有问题,SNC也许就是另外一付模样。

05年,我们从北区搬到了东区,开发工作反反复复,最终逐渐消沉下去。06年初,我离开了SNC。

写到这里,我也想给我的回忆画上一个句号,对于北区的SNC,我是熟悉的,因此我敢于写出这些文字。这些文字并不是经过深思熟虑之后的产物,相反这 些文字仅仅是我的感受层面的东西。我离开SNC已经快两年了,这两年肯定发生了一系列的变化。五一的时候我去了一趟北区,又一次走进了地下室。现在的 SNC成员接待了我,当然,他们并不知道我是谁。但是,我看见了比当年多得多的工作机,也看到了和我自己当年一样激情的面庞。同时,我看见了当年亲手贴上 的标语,也看见了还在工作的服务器。这一切都勾起了我对往昔美好的回忆。然而,我非常想知道,他们是不是也正在经历我们曾经经历过的困惑,他们是不是也在 寻找着自己的解决方案?

本来,过去的就过去了,没有必要说那么多。但是有一天,我突然意识到,在SNC的两年多时间是我非常宝贵的财富。实话说,我在SNC技术没有得到提 高,还错过了很多自己学习的机会,但是很多问题的思考让我有了宝贵的经验和看问题更多的出发点。我并不愿意回避任何问题,但我更不愿意回避任何反思问题的 机会。

我有一个同学在苏州的一个软件开发公司实习了一个多月,后来他把他公司的情况给我讲了一讲,我马上就意识到,那个公司遇到的很多问题正是当年SNC 在北区发展的时候遇到的问题。很幸运,我比我那个同学提前知道了一个技术类组织发展可能遇到的诸多问题。而这也促使我把我的经历回忆出来,自己重新梳理一 些思路,来思考那些和SNC无关的普遍性问题。

撰写回忆文章的过程中引发了很多争议。这也是正常的,没有人能够很平和地看待自己的过去。我自己也同样。我并不打算去客观评价过去的事情。事实上客 观从来就不存在。历史从来都是以人的意识而改变的。真相永远也无法看清。不同人有不同的角度,这在所难免。我不是想抱怨什么,否则我也不可能持续写出这么 多文字。难听的话也许多了一些,难受的观点也许突出了一点,没有歌功颂德,没有赞赏和称道,不过的确出自肺腑之言。我不想仅仅说说,感谢谁谁谁,某某某如 何如何。最重要的是,这些曾经的人和事,你想过了吗?你有过解决方案吗?

两万字,到此结束。

愿SNC,努力前行。

(完)

2007年7月16日星期一

SNC的岁月(十四)

我和王永懿曾经谈过一次,当时他已经有了想退出的意思。我挽留他,一方面是觉得他的离开是SNC的一大损失,另一方面,我也觉得是我自己工作的原因 让他没能够发挥自己的能力。那次其实王永懿也没有和我说出他的真是感受。当然这是从后来看出来的。我自己觉得非常不好受。一个组织的核心成员如果考虑离开 的话,那么最大的可能就是这个组织对于他已经没有太多的吸引力了。

在05年的春季,我曾和齐老师一起组织了一个SNC核心成员的座谈会。我自己感觉,我和希望和核心成员多交流,同时我也希望让核心成员感到他们是一 个组织的主人这样的感觉。那次座谈会的还是很不错的,各个部03级和04级的成员都谈出了自己的看法,而且很明显能够感到大家对这个组织的关心和热爱。我 在一个本子上记下了大大小小30多个意见和建议,真的希望能够去把这些都实现。

然而,任何事情理想和现实都有一定的差距。

05年春季的时候,我有幸作为SNC的主任参加了不少学校各个学生组织管理层的一些交流活动。我这里也谈谈我的一些感想。

我参加了好几次学生组织的主席会议。每次开会有校学生会的主席和几个副主席,然后就是各个学院的学生会主席,然后是学通社(学生新闻中心)的社长, SNC的主任。各种发言和介绍情况,SNC都是被安排在最后。不过的确,我每次也没有什么要讲的。各个组织都是以活动为主,而SNC又没有那么多活动,自 然也没有要说的。而且,各个组织想搞活动基本上也不会想到要让SNC进行配合,或者我们要做什么活动也不会和其他组织合作,特别是校学生会。慢慢和校学生 会主席也有了一些个人间的来往,发现其实外人根本就不了解SNC,甚至根本不知道SNC是到底干什么的。其实这个困惑不仅仅是这些外人,很多SNC的成员 自己都说不清楚。在主席会上,我常常感到无形的压力。每个组织的负责人都能够介绍好大一堆自己组织的活动和建设情况。学通社能够很自豪地说出他们的学生新 闻特快等产品的一些亮点。而我,不知道说什么。也许东区的人能够说出一些东西,但是作为北区的SNC,作为北区SNC的负责人,我很难说出一些实质性的东 西。还好,我在几个场合介绍了一下“烟花三月”,让别人感受到SNC还是在做一些事情的。当然,各个组织的负责人可能根本也没把我们的“烟花三月”放在眼 里,毕竟这种活动在同学中的影响还是不大的。

学通社本来是最有可能和我们有合作的组织,但是这种合作最终在当年没有建立起来。最大的一个原因就是,我们不想拿出我们的技术,学通社又舍不得他们 的内容平台。再说了,如果学通社和我们合作,新闻部怎么安排?很难说。但是学通社的种种活动又和我们有重复,比如那个学期,学通社也有一个征文活动,当 然,整个来说和“烟花三月”没法抗衡。但是我们又缺乏学通社那样的新闻团队。如果我们有了一个学生社区,那么新闻团队对于我们来说的确是很重要的。是和本 来就有这方面优势的学通社合作,还是继续我们的新闻部?两难。

2007年7月14日星期六

SNC的岁月(十三)

到这里我可能就要说说一些更深层次的东西了。05年春季我在北区主任任职期间,还是给了我很多启发。


我在前面已经说过了,尽管北区没有太多的开发任务,但是我仍然希望能够有一些项目拿给北区做。这个愿望当我成为了主任之后变得更加强烈,特别是04级的成员开始接手管理工作的时候。然而,现实问题又摆在了面前,北区的技术能力的确又非常有限,很难做出一些像模像样的东西。


其实,这是一个悖论。


没有东西练手就没法提高。任何进步都是有一定代价的。当然,关键还是在于,我们是否能够去承受这种代价。从04-05年,再到06年,张卷益的设计水平始终是SNC最高的,这一点毫无疑问。但是这也给了整个SNC沉重的负担。常常是一个项目,说是让03级的或是04级的练手,结果最后还是因为效果和预期有一定的差距,而又让张卷益多了一次练习的机会。从外人看,SNC的水平的确很高,但是,那仅仅代表了张卷益一个人。结果很简单,03级好几个真正有设计能力和激情的人得不到锻炼,最终他们也对SNC失去了信心。


很多人来SNC就是看重SNC这个平台,觉得能结交朋友,特别是想结交到技术上能够一起成长的朋友,能够在技术上提高。这个目的我们做了不少,但是却远远不够。


现在关键的问题是,我们的标准究竟应该是什么?如果把任恬、张卷益的标准作为SNC的标准,那么我客观地讲,SNC每一届中可能很难有人能够达到。03届中现在没有,04届我离开的时候还没有,现在不知道。任恬和张卷益的成功当然有他们在SNC奋斗的原因,但是他们还是有很多偶然的因素。我这里不妨展开说一下。首先,任恬和张卷益都有一个很重要的前提,他们都不喜欢他们本身的专业。这就造成了他们都可以不怎么在专业上花时间,而能够在SNC和 设计上投入很大的精力。张卷益在北区的时候,常年在地下室,在东区的时候也是经常在办公室里。他们热爱自己的特长,最终有所成就,这个无可厚非。但是,我 们对待其他搞设计的成员,是不是也要这样要求他们呢?答案肯定是不是。每个人的选择不一样。然而,如果年轻成员没法投入时间,没法花那么多精力,当然就没 法提高到一个层次,更何况在北区根本就没有什么实际的项目拿给新成员练手,而让新成员自己寻找机会练手,这基本上是不可能的。因此,对于一个普通的新成员 来说,除非他们也选择和张卷益、任恬一样的道路,否则,他们的水平绝对不可能到达张卷益、任恬那样的程度。


这其实是一个很简单的道理,说白了,那就是SNC仅仅是一个学生组织,都是由同学利用业余时间而进行活动的一个组织。业余时间、业余精力,这两点似乎我们不愿意说出来。因为我们期望的是规范化、专业化。我们期望SNC发展成为一个像模像样的软件公司,网络公司的模式。但是,那仅仅是期望。我们的现实是一个学生组织。同学们的劳动不计报酬,同学们是利用课余时间和精力(当然,关于报酬问题,我不想深说)来投入到SNC的活动中。


说这个意思就是,不能把张卷益、任恬以及某些SNC成员的作品,他们所呈现出来的水平当作是SNC的水平,当作是SNC的 标准。这一条我认为非常重要。如果把这一条看开,那么就北区就不可能没有练手的机会。其实,学校教务处的网站又有多么好呢?不管是界面还是程序都仅仅叫做 “完成了功能”,但是,那又怎样?无数的同学老师都在使用着!使用就是胜利!我们为什么非要跟自己过不去呢?是觉得做的不好别人说了自己没面子吗?还是觉 得领导以前看了SNC做的怎样了,现在水平降下来了不好交待?


有一个很典型的例子。当时,广播站有一个活动需要网络支持。我个人认为这是一个非常好的机会。首先,我们可以利用广播站搞的这次活动,使同学们关注到SNC。这对于北区SNC的生存环境是一种软条件下的改善。其次,也是给北区的开发团队一次练习的机会。同时,对于我个人而言,也是和广播站的管理人员一次沟通的机会。事实上,05年的春季,我非常期望能够让SNC从地下室走出去,能够和更多的组织建立联系,能够和更多的同学交流。关于这点,我想后面再仔细说。那次我组织了王永懿、王健、王琪、孙庆生和我自己进行了那个广播站网站的开发。注意,那个网站是采用的ASP.net,当时我们大家都处于学习的阶段。整个网站最后做出来以后,我首先叫了广播站的站长和他们的好几个负责人来看,他们都非常满意。而那几个SNC的成员也很高兴,至少是我们的劳动和努力让其他人看见了,SNC以外的人终于走进了地下室和我们进行了交流。


然而,东区当时并不支持这个网站的建设。首先,张卷益告诉我,东区的意思是那个界面太难看,需要改。其次,这个网站不能挂在花样年华下的任何地方,甚至不能弹出窗口,只能我们自己挂在北区,采用IP地址访问。关于这件事情,我唯一一次和张卷益吵了一架。电话两端,张卷益认为我不理解东区的苦衷。而我觉得如果这次这个网站没法挂出去,广播站的人会怎么看待我们的服务,我的成员会怎么对待今后的工作?


东区的苦衷是这样的。当时,基建处好像想让东区帮忙做一个网站。但是当时东区因为种种原因并没有答应。而张卷益给我的解释是,如果那个时候挂一个广播站的网站出去,怎么给基建处交待?


SNC那么多电脑,东区北区都是如此,电费如此之大,基建处肯定是给了我们很大支持的。现在基建处想做一个网站,我们如果都不做,或者说明明说了不能做结果那段时间却做了一个另外的网站,SNC以后的生存问题如何计算?


这是问题的另一面!也就是从这件事情开始,我逐渐了解了这面的东西。那就是从学校的眼光看SNC。但是问题也就在这里,学校的眼光,我必须知道,我必须去理解东区的决策。但是,我却不能给北区的成员说!我不能告诉他们我们要如何如何给基建处面子,给我们自己台阶下。我不能告诉他们SNC的 生存其实很不易。这不是我一个主任应该做的。在他们面前,我应该是撑起一片尽可能大的天地,让他们去发展。这也就是矛盾的所在。从东区看,我显得幼稚,不 能最大限度“少惹麻烦”,没有深入理解东区的意图。从北区看,我又没能为成员争取到他们想要的环境,显得无能。实际上,作为主任,在开发、管理等一系列问 题上的决定权是非常非常有限的。我只能尽可能地让底下的成员有事情做,还想做事情。

2007年7月13日星期五

SNC的岁月(十二)

04级的副部竞选有了一些改变。在04级竞选之前,各个部已经推选出了自己的副部人选,而部长和齐老师也渐渐有了一些眉目。技术部的副部人选主要集 中在陈承松、陈申这两个人身上。当时的原则是这样的,要有一个主要负责的,有一个管开发的,还有一个管设计的。这样技术部就有三个人选,办公室有两个人 选,新闻部有两个人选,宣传部有两个人选,市场部有两个人选。而不设主任助理这个竞选岗位。后来,在我离开北区之后,北区很长一段时间都没有主任。

竞选过程本来是波澜不惊的,但还是有不少细节值得总结。有不少候选人可能知道我们其实已经定好了人选,所以有一些等不及。当然,这种心情也可以理 解,但是仍然让我们感到有一些意外。郭汉东当时在竞选的时候过于放松了,一下子就惹得了不少部长和齐老师的反感。郭汉东的能力我还是比较认可的。但是当时 包括夏冰在内的好几个部长都觉得郭汉东太过于圆滑。倒是办公室的车君,能力和魄力都让我感到很不错。技术部又是最麻烦的部门。陈承松本来是技术部的不二人 选。但是经过考察发现,陈承松并不特别适合做那种领导人才。倒是李熠熠讲话还有一些魄力。但是李熠熠平时又不太合群,再加上一个小女生,很难说在以男生为 主的技术部能够服众。齐老师和好多部长都不太肯定是否要选李熠熠。但是04级当时的情况下,搞设计的似乎就这么一个人。陈申也有和李熠熠相同的问题,太腼 腆。

不过总算不错的事情是,04级的副部没有出什么问题。只是最终没看出谁能够接任我主任这个职位。所以,最终没有选出主任助理。