南京十年

今天是我来到南京十周年的日子。

十年前,背着行囊来到这座陌生的城市,在略显偏僻的校园开始了我的大学生活。

十年间,学到了很多的知识,懂得了很多的道理,改变了很多的想法,认识了很多的人,得到了很多的帮助,领悟了很多的人生。

十年后的今天,生活在这个熟悉的城市,不再为陌生的环境所困扰,体会着城市角落中的点点滴滴。

我曾经评价南京是一个很土的城市,因为这个古老的都城沉淀着很多的历史,凝重而又充满韵味。我是土人,土人生活在这个土城市中,很踏实。

周末同学结婚,顺路回到学校看了看,新生刚刚报道,而且今年一改以往的传统,军训由大二改到了大一, 操场上充满了生机和活力。

十年,这个城市、这个城市中的人,很多发生了变化、很多还是没有变。贴几张学校的照片,体会一下这变与不变。

新建筑:“见山园”暨中国艺术研究院中国雕塑院创作基地

新建筑:“见山园”暨中国艺术研究院中国雕塑院创作基地


建设中:逸夫楼

建设中:逸夫楼


建设中:图书馆与实验中心楼群

建设中:图书馆与实验中心楼群


老校门

老校门


南楼(尚贤楼)

南楼(尚贤楼)

我和Unix-Center.Net

已经不记得是在什么地方看到Unix-Center的了,不过注册的时期倒是有据可查:2007年3月20日。

最初上UC到UC成为一种习惯的过程,现在也已经不可考证了。不过我承认,丰富的礼物应该是一个很重要的因素,在UC,似乎是我一辈子中运气最好的地方,什么好事都能轮得上:

  • 为什么时光不能够倒流》一本
  • 站徽评选活动站衫一件
  • Sun Studio集成开发环境的教程测验,电话卡50元,后接到电话说由于发放延迟,做为补偿,涨到100元。(未收到)
  • Sun Studio动手实验课程站衫一件(未收到)
  • CSDN笔记本一本(未收到)
  • 学习Solaris 10红宝书iPod Nano一台
  • 组织一周年站庆南京地区活动,申请到30件站衫、30张SXDE光盘
  • 《Solaris应用程序设计》一本

最初使用UC,主要是为了在上面体验不同的操作系统。后来为了能有机会得到iPod,UC也成为我学习Solaris红宝书和做实验的地方。也是在UC,我第一次使用到龙芯。

平时在工作和生活比较专注在Linux上,对Solaris没有什么需求,而平时能接触的Linux的机会也很多,所以使用UC的时间也就变少了。

不过UC对我来说,仍然是一个非常重要的平台,因为像我在这篇博客中写的那样,UC目前是我的Blog的主要创作平台。我的Blog是用Emacs和Muse搭建的,为了做到能在任何时间任何地点都可以写Blog,PuTTY到UC上是我目前最佳的一个选择。

这几天突然看到Unix-Center的运营遇到了一些困难,虽然有点出人意料,却也在情理之中。做为个人要去支撑这样一个没有营利的平台,实在是一件不容易的事。尤其是了解到每年的托管和带宽上花费后,更是让人为这个系统的继续运行捏一把汗。

UC的站衫我一直在穿,背上硕大的UC标志常常引起同事的好奇,如果有人问起,我就会向他们介绍这个网站和这个网站背后的故事。

我个人不是很看好以捐款的形式来作为支持这个系统运营的一种方式,因为网站运营需要的是续持的投入,而捐款常常会是烧光一个人热情的一锤子买卖。寻找一种合适的营利模式才是维持运营的必要的方式,希望现在发起的捐款本来也只是一种支撑系统走过难关的临时方式吧。UC有很多热情和忠实的用户,这是一笔非常宝贵的财富。虽然在国内搞这样的一个系统没有一个良好的大环境,但也许在小众中,可以用一些更有针对性、更有效率的方式去实现网站和用户的双赢。

祝福Unix-Center.Net。

参考阅读:Unix-Center.Net需要您的帮助

一次愉快/郁闷的旅行

昨天下午,闲着看了李开复的《做最好的自己》的几个章节,写下面的两篇长篇流水帐作为读后感。

一次愉快的旅行

上周末去北京参加MM的学位授予典礼并帮忙收拾东西准备离校,也许这是很长一段时间里最后一次去伟大的首都吧。

Z50停运以后,南京就没有火车可以在早上七点钟之前到北京了,这对于要在八点前到中科院玉泉路校区来说显得有点困难。不过 善于专研 的火车迷们早就发现合肥到北京的Z74增停蚌埠给南京提供了一种高性价比的进京方案。果不其然,在南京直达北京的车票一票难求的情况下,我很顺利买到了1512南京去蚌埠和Z74蚌埠去北京的车票。而且南京站售票大妈很和谐,都没有收取5元的异地票手续费(也许因为是联程票的原因?)。

周四,下班回家拿了东西去往南京站,一切顺利。同时发现在1512前的几趟去蚌埠的特快列车都晚点,看来选择1512是个正确的选择。不过很快就发现1512在已经晚点了近40分钟的情况下还被车站打出了“晚点时间未定”的提示。有点紧张。20:33时1512终于在最后一个备份方案T34到站前进站了,在车迷ChinaRH2的指点下, 果断 继续选择1512旅行。

虽然是1512的无座票,但显然预留给蚌埠的2号车厢是全空的,随便躺都可以。22:10时,在GPS和Google Maps以及计算器的帮助下,我认定按当时不到70的时速,是不可能及时赶到蚌埠的。决定去找车长开客运记录,万一晚点赶不上Z74又签不到别的车,可以在退票时少一些损失。挤过拥挤不堪的8节车厢( 这些人为什么不走几节车厢到2号来看看呢? ),列车长很 友好 的承诺帮我签当晚去北京的别的车票。吃了定心丸回到座位上,发现列车正在驶入蚌埠车站,时间是22:35。看来在后面T34顶着跑的 压力 下,1512充分发挥了它赶点的 潜力

下车下地道换站台,这时Z74跟在T34后面刚刚进站。22:43,Z74准点开出。美美睡了一觉,早晨06:20,准时到达北京车站。

上午一切都很顺利,下午没事,决定去位于环行铁道附近的中国铁道博物馆看看。上次去中国电影博物馆时已经路过了,没有来得急去,以后来北京的机会少了, 抓紧 去看看吧。Google Maps给我算了一条比较愚蠢的路线,还好我自己对路的感觉比较准,自己找到了条更合理的路线:知春路地铁10号线到三元桥换403到环行铁道。

铁博的位置很偏僻,参观的人也很少。巨大的展厅里陈列了很多具有历史意义的机车和车辆。大部分车辆都允许登车参观,看到很多平时坐车时看不到的东西。各式各样的蒸汽机车更是让人感受到了一个时代的缩影。

……

周日,行李打包完毕,找速递公司托运,业务员承诺下午来取货。虽然因为号称的“堵车”延迟到了18:00才来取货,但倒是正好避开了一场大雨。业务员很热情,一百多公斤的东西差不多都是他 一个人 搬的,比较省心。

在青年公寓附近的饭店吃完晚饭,20:30出发去北京站,不幸的在西直门错过一班内环地铁,不过又正好来了一班外环的。虽然走外环去北京站会慢2分钟左右,不过还是比等一班内环要快。上车走人。

21:24到北京站,偏偏遇到入口处排长队,还好 秩序井然,没有等太久就进入候车厅。到检票口时是21:35,屏幕上刚刚切换到D305停止检票的提示。检票员很 和谐 的直接放我上站台了。

以前很多人抱怨长途卧铺动车的二等座车厢灯光太亮,没法打瞌睡。现在显然人性化改进了,22:00以后就只留了车厢前后两侧各一盏灯。我的003号座位在第一排,在脚边放了行李也还能伸直腿,比后面几排好多啦。

今天早上,列车早点到达南京站,结束了这次幸运之旅。铁博的顺利成行,也算是了却了一个小小心愿。很开心。

PS. 收藏了一张北京地铁票,虽然上面有一点划痕,但是那个有某银行广告的老版本票。比起那些全新的几乎是白版的新版地铁票,还算漂亮。

一次郁闷的旅行

上周末去北京参加MM的学位授予典礼并帮忙收拾东西准备离校,也许这是很长一段时间里最后一次去伟大的首都吧。

铁道部想钱想疯了,Z50停运换抢钱动卧,再加上T66改点,南京去北京就没有一趟有性价比的车了,为了确保7点钟之前到北京以便在八点前到中科院玉泉路校区,只好选择1512到蚌埠转Z74的折腾方案。南京站售票厅的人一如既往的多,还好人品还凑合,Z74还有票。至于去蚌埠,只能1512无座了,长途车的无座,想想都可怕。

周四,下班回家拿了东西赶快奔去往南京站,好像那天下午沪宁线的电力接触网又故障了,N多动车晚点,还不知道有没有恢复正常。到站一看,果不其然,1512前的几趟去蚌埠的特快列车都晚点,今天死定了,想改签南京发的别的去北京的车也肯定没票了。站了半天,一直没有1512的消息,终于,1512在已经晚点了近40分钟的情况下还被车站打出了“晚点时间未定”的提示。打电话请教其它车迷是不是应该改乘T34,居然告诉我不如还是坐1512普快。汗,不知道是怎么想的,普快晚点、特快正点的情况下让我选普快,一不小心就被特快踩死了。

还好1512赶在T34前开了,真是担心到滁洲临时停车让T34先过。心神不定在在车上用GPS、Google Maps和计算器计算赶上Z74的可能性,怎么算都是Mission Impossible。算了算了,做最坏打算打车长去开客运记录准备退票吧,T66在蚌埠没什么票额,基本上签不到的。好不容易挤到8号车厢列车长办公席,车长不在,一问,说是去餐车了。真不负责。又挤了两节车厢到餐车找到车长,对于编客运记录,车长一百个不情愿,就说他负责帮我签到北京的票。算了算了,鬼知道算不算数,到时他一关门一开车就走了,还能顾上我?

1512居然赶在Z74前进站了。小松口气,换站台准备上Z74。嗯?刚看见显示屏上提示是Z74的,怎么突然又变成T34了,别的站台上也没有Z74了啊。吓出一身冷汗,才发现显示屏上又变成Z74了。原来是轮换显示的,这个设计实在太烂了。

睡得迷迷糊糊的时候就到北京了,郁闷,起来吧。

下午天气超热,不过傻坐着也不是个事儿,决定去中国铁道博物馆看看。要横穿半个北京城,该死的Google Maps又给我规划了一条傻得不能再傻的绕圈子线路。都上过它几次当了,直接无视,自己找了条还算合理的路线,出发。到了那个破破的地方,沿着破路顶着太阳走了老长一段,才看到个破破烂烂的大门和指示牌。继续沿着破路走,走到像车库一样的展厅前,向左还是向右呢?随便选了一边走,发现没有门,直到转到另一边才看到门。这一路上,我都已经认定这地方要拆迁了:杂草丛生,破门破窗。

参观完破破烂烂灰尘厚到可以在上面写字的机车展厅,看到另一侧有个展览馆一样的建筑,绕了一圈发现没有开着的门。一问才知道,打建好以来就没开放过。好嘛,打道回府吧。这个圣地,我算是朝拜过了,没遗憾了。

……

周日,行李打包完毕,找速递公司托运,业务员承诺下午来取。下午好好的凉快的天气不来,一直拖到开始下大雨才过来,虽然搬东西的时候雨已经停了,潮湿的地面还是很不方便。业务员算出来的价格跟心理预期相差太远,讨价还价了N次才稍稍让了一点。算了,算了,没时间了肚子也饿了,赶快把东西拖走就好。

好不容易吃个晚饭,还上错菜,服务员信誓旦旦的指着肉片说是肥肠。换了菜,扒完饭,已经快20:30了,赶快走吧。在知春路正好错过一班13号线,在西直门又正好错过一班2号线,这么巧的事情怎么都让我碰上了,是不是因为行李太重影响了走路速度啊。

好不容易到北京站,已经离开车只有16分钟了,进站口的人是始无前例的多得令人发指,而且居然这节骨眼上还又关闭了一个进站通道,耐着性子老老实实的排队,终于进了候车厅。赶到检票口时,正好遭遇停止检票,还好看我可怜放我进去了,不然没时间改签就只能去混D349无座了,那样理论上是要补票的,钱包里只有不到100块钱了,不知道该怎么办。

卧铺动车的二等座的灯光不知道干什么要这么亮,这次改进了点,一个车厢只留了前后两侧各一盏灯。不过我的003号座位上面正好是亮着的灯,边上两个人还有幸成为唯一两个在车厢里大声聊天的乘客。上车晚了,没有发到5100的矿泉水,跟乘务员要,她很客气的说了声“稍等”就没有下文了,直接经济损失6元以上(按超市价)。

今天早上,列车早点到达南京站,结束了这次坎坷的郁闷之旅。

PS. 在北京坐了那么多次地铁,每次都是挺新的磁卡,偏偏准备收藏一张时吐出了一张带有划痕的旧票。北京回来数数钱包里又有了十几张一元的纸币,北京一元的纸币实在是太多了。但地铁自动售票机却不吃一元纸币,非要吃在北京很稀缺的硬币,不知道怎么想的。

再见,小猪

今天是南京到北京的直达特快列车Z50次的最后一天运营,从明天开始,它会被新开行的D350次卧铺动车组所取代。

我对火车感兴趣,是从2007年5月开始的。最初的动因也就是为了能更多的了解客车售票的规律,在客运的高峰时期可以更顺利的买到票,或者在平时可以找到最有性价比的列车乘坐。做为技术青年,我对火车的兴趣也很快增加到对车型、线路、调度的研究。不过与其它火车迷相比,很长一段时间中,我都没有对火车倾注过感情。

2007年11月23日,资深车迷ChinaRH2相邀,一起去南京站拍摄了9列直达特快列车依次高速通过的壮观景象。回来第一次使用Premiere把它剪辑成视频短片,虽然这个短片做得非常的粗糙,不过确实是注入了不少的心血。制作视频时不断的重播和预览让我对这一列列洁白的列车变得熟悉起来,似乎跟他们成了朋友。

所谓“直达特快”列车,是指在2004年4月18日的第五次中国铁路大提速中引入的新型客车。客车的车次字冠是Z。直达特快列车的特点是大部分采用戚墅堰机车厂研制的东风11G机车牵引,使用25T(国产或BSP产)客车,以卧铺车为主,采用夕发朝至一站直达的方式运营,最高时速160。由于直达特快的拼音简写是ZT,东风11G机车的外型又是很特别的圆圆的,所以车迷们管它们叫“猪头”。

东风11G机车

东风11G机车

国产25T软卧车

国产25T软卧车

刚刚开行直特列车时,因为大量直特都只有软席卧铺,相比硬卧来说还是贵了不少。加上中途不停站,客流也可能不是那么充足,很多人质疑这种列车。然而,时间还是证明了直达特快的性价比,跟以前的特快列车相比,直特确实是做到了提速提服务不提价,夕发朝至的时间安排,也非常的合理。

2007年铁路第六次大提速后,被车迷们称为“带鱼”的动车组列车开始广泛的投入运营。刚开始的时候,动车组列车没有卧铺车,所以在沪宁铁路上,白天带鱼肆虐,而晚上则还是猪头的天下。带鱼和猪头,俨然代表了中国铁路客运最先进的部分。

2008年12月,CRH2E型卧铺动车组开始投入运营,逐步取代正在运营的直达特快列车。这些冠以“和谐号”的动车组列车,从某种意义上来说,真的不是那么和谐:

1. 无意义的提速。Z50南京21:42开,北京06:54到,运行9小时12分钟,正好睡觉。而升级后的D350次,南京23:16开,北京07:20到,运行8小时4分,到点晚了不少,而且似乎睡的不是那么安稳。下行的D349次,北京21:45开,南京5:49到,也是够垃圾的时刻。如果说卧铺动车提速对京沪列车来说还有一点意义的话,对于京宁列车来说,实在意义是不大。

2. 提价。以南京到北京为例,原先直特软卧的价格是400元,而动车软卧的价格则上涨到了520元(打折后)。

3. 普通特快列车时刻调整。宁京间的T65/66次列车的时刻在安排入卧铺动车后,开点和到点都变得更晚了,变得很没有性价比,逼着大家只能选择卧铺动车组。虽然这也许是不是故意所为,而是运行图调整中技术性的调整,但客观上,有时我们确实是少了一种选择。

随着Z50次的退出,京沪和京宁的直特列车已经全军覆没,经过南京站的直达特快列车从原先的9列减少为2列,只留下苏京Z85/86和沪津Z41/42苟延残喘。

犹豫了一下,还是决定今天去送别末班Z50,虽然我自己只乘坐过两次,但想到一个曾经如此熟悉的车次即将退出历史的舞台,还是有那么一点的不舍。有人说过,在路上奔跑的列车,就像生活在世界上的一个个人,每天他们都在奔走,期待未知的相遇与发现,履行自己的责任和诺言。当一个朋友即将离开,这点送别的情谊还是很应该的。

中国的铁路,正在飞速的发展,从绿皮到红皮到蓝皮到白皮,从蒸气到内燃和电力,从时速几十公里到现在的350公里。中国的铁路,承载着比别的任何一个国家的的铁路更重的负担和责任。热爱中国铁路,期待它的进步,就要允许老朋友的离去,不论是猪头、带鱼还是以后的什么别的动物,只要能够让老百姓更方便快捷的出行就是中国铁路和很多火车迷的心愿。

今天的行程非常顺利,与好友一同,去机务段看猪头,去客技站看车体,去南京站送别Z50。回来写下这段罗嗦的文字,纪念曾经的猪群。

今天末班Z50由京局京段0039/0040号东风11G机车牵引,列车编组18辆,RW 25T 554211, 554229, 554260, 554263, 554252, 554256, 554248, RW 19T 554280, CA 25T 893310, RW 25T 554221, 554220, 554262, 554275, 554251, 554276, 554222, 554257, 554210。负责南京西站到南京站牵引的调机是上局宁东段DF5 1791。

下面是照片,如果RSS阅读器无法识别,可访问http://picasaweb.google.com/lifanxi/080627Z50

学习机时代

不知道有没有朋友对下面的这个画面有所记忆。

游戏截图

游戏截图

那是15年前没有电脑用的年代。那时,在中国市场上,基于任天堂FC(Family Computer)的所谓“电脑学习机”曾经风靡一时,借着“学习”两字,欺骗了无数望子成龙的家长,大家争先恐后的把这种新型的家电引入家中,结果发现,家里又多了一台浪费时间、浪费视力的游戏机。

对于我来说,我是先看书学了电脑,然后才拥有了学习机,所以虽然学习机担负着游戏机的重任,更多的,它还是担负着模拟电脑的作用。在上面,我最多时间都花在写BASIC程序上面,其次是练打字(包括五笔字型),再其次是LOGO语言。我的学习机是金字塔的PEC-9388,跟下面这个图除了型号以外一模一样。金字塔是当年我觉得最有技术含量的一个学习机品牌,在我的印象中,它有很多创新的地方,比如,它可以外接打印机、软驱,可以扩展内存,可以通过图中那个简单的“声像转换器”播放“普里奇声像带”。然而,市场一次又一次的证明,技术不能代表一切。在“你拍一,我拍一,小霸王出了学习机”的广告声中,金字塔这个牌子很快消失在大众的视野中。

学习机照片

学习机照片

前几天跟一朋友聊天,他说,小时候玩学习机的时候一个很大的遗憾就是说明书上有一个很长的游戏程序一直没有成功运行起来过。

这个话题似乎很容易引起共鸣。要在学习机上成功运行这个最大行号达到2770的程序(实际上也就200来行)几乎每个人都会遇到共同的困难:打字可能还不够熟练;不熟悉F-BASIC语言;早期的学习机没有外存(或者虽然有存磁带的功能,但你没有一个可靠的录音机),断电输入的程序就没有了;程序运行出错不会调试;有些学习机说明书上的程序印刷存在错误……

迄今为止我总共把这个程序输入过4次,第一次完全没运行成功,一堆错误;第二次运行后在过第一关时出现逻辑错误,无法继续;第三次通过自己修改和调试,成功运行,并把它存入到磁带中;第四次,这几天在电脑上的学习机模拟器中把它又输入了一次,存入到虚拟磁带中。到现在我还清楚得记得前两次录入这个程序后把要学习机关机前的那种不舍的心情。

为了重温这个程序,上网找了一大圈,但毫无所获,只好辛苦母亲把当年那本学习机的说明书找出来,拍成照片传给我。真没想到这本书已经被我看得这么破了,上面还写着那时试图分析代码而写上去的注释。现在来看,这些注释写得真傻,完全不能帮助理解代码。Code Reading也是一门本领,还是要多多修练才是。

说明书

说明书

要找一个完美的模拟器,也不是一件容易的事,网上有很多小霸王学习机的ROM,但真正能在上面完全正常的运行这个程序的却并不好找。最后终于找到了一个可用的ROM,而且这个ROM中恢复了被小霸王学习机去掉了的存取磁带的功能。更让人惊喜或郁闷的是:这个ROM的压缩包里还带了一个虚拟磁带文件,读入内存后发现,这就是我踏破铁鞋无觅处的这个游戏程序,只不过做了一些修改。令人有点费解的是,这份代码的可读性很不好,比如:FOR循环的NEXT子句都放在一个语句的后面用冒号隔开而不单独写一行;很多语句中省略了很多空格:

2400 IF XPOS(4)>222ORXPOS(4)<24ORMOVE(4)=0 THEN ERA4:POSITION4,0,0

这种语法对于BASIC来说好像是不合法的,不过学习机可以正常的解析。

不过当我看到这个程序最后被加上了一段在通关以后播放音乐的子程序的时候,我马上就理解了为什么要把程序改得如此没有可读性:学习机的F-BASIC环境中可用的内存只有4030个字节,这个程序原本就很长,基本上已经到了内存用光的程度,为了加上这段子程序,就必须从前面的代码中省出内存来,所以,少打几个空格,把多行程序并入一行,都是为了省出宝贵的内存啊。这在现在这种内存跟大白菜一样便宜的年代,哪怕就是在做嵌入式相关的开发,也不太可以想象吧。

对于我自己来说,学习机给我留下的最大的遗憾是我一直没有搞明白它的汇编语言和调试环境。所以它的BASIC语言中PEEK/POKE和CALL这几个语句,对于我来说也是没有什么用而又异常神秘的。在那个资源和信息缺乏的年代,我抄过一本讲6502汇编的小册子,但这本书最终并没有帮助我学会6502汇编。如今,我有足够的积累和足够的信息可以去弄明白6502,但却是缺少了动力和精力去研究它,也许这个东西就已经永远的成为记忆的一部分了吧。

PS. 几个背景知识:

学习机中可以用来写游戏程序的BASIC环境,叫F-BASIC,也就是Family BASIC。可是小霸王偏要把它改叫G-BASIC(Game BASIC),而把F-BASIC用于Float BASIC,也就是指可以支持浮点运算的BASIC语言环境,结果就把这两个名词给搞混乱了。本文中的F-BASIC是指Family BASIC。

有关普里奇声像带,这个东西现在应该很多人都不知道了,好像连Wikipedia上都没有。这是一种可以用普通的磁带和立体声录音机,通过适当的设备,在电视上播放出画面(主要是静态的图像,过一段时间翻一页)和声音的技术。原理是在立体声磁带的两个声道上,一个声道录正常的单声道音频信号,另一个声道上录调制过的数据信号(听起来跟调制解调器发出的声音类似),然后由转换设备把数据信号解调出来并转换成图像显示出来。