2009年2月16日星期一

Remember The Milk

这是篇广告文。
不知道你有没有听说过GTD?我长话短说介绍一下,如果你每天都有成堆的事情要做,经常忘记做什么事情,每天都在焦虑是否有什么被忘记了。或者你经常被意外的事情打断,无法顺利工作,甚至忘记正在做什么,那么你真的需要好好看一下Get Things Done这本书。这本书的主旨在于推荐你一种生活方式,一种不需要焦虑是否忘记了什么的生活方式。他的步骤很简单,最少只需要纸和笔就可以进行(当然,贝壳推荐用电脑)。如果你需要做什么,用纸记录下来。做好一件事情,用笔划掉。每隔一段时间,回顾一下,什么事情还没做,什么事情拖沓了,哪些事情应该先做,哪些事情应该后做。简单来说,就是Todo List。
那么Remember The Milk(下面简称RTM)好在哪里,值得贝壳特意推荐呢?事实上,贝壳在GTD上换过不少工具。Mozilla Sunbird,太庞大,要用的时候老去开笔记本?gtodo,很小巧,问题大同小异。Rainlendar,很漂亮,显示还不错,Todo List就碰到了一样的问题,贝壳总不能天天开着笔记本走路吧(虽然实际情况差不多)。Google Calendar,倒是非常好,行事历丰富,支持短信提醒,同步选项众多。Outlook,Sunbird,Rainlendar,甚至可以直接同步到手机上(不知道的同学,请参考GooSync)。但是有个致命缺陷,无法将事件标记为完成。这样要表示完成就只有删除事件,导致无法回顾。因此,贝壳最终选择了RTM,配合Google Calendar使用。
贝壳已经将RTM设定为主页,这是贝壳的第二个主页,头一个是iGoogle,可惜做到后来太杂乱无章,废弃。每天贝壳空下来了,跑到RTM上,看看今天需要完成什么事情。如果有突发事件(例如你在写论文的时候突然需要找一些资料,有人突然说贝壳来一下),那么评估一下突发事件的状态。一般来说,如果突发事件没有上下依赖关系,没有回顾的必要,没有突发中的突发(这是最主要的),那么完全可以不用记录。否则你需要先记录突发事件,将他标记为最优先。如果不这么做,当再次发生突发事件的时候,你要么补充记录上一个的,要么就会忘记事情。一般来说,10分钟以内可以处理掉的事情是很少被再次打断的。当然,如果可行,贝壳推荐突发-延后的处理方式。就是说,当突发发生后,将突发要处理的目标记录下来(例如,12点前去客户那里一下),标记为最优先,然后接着处理当前的事务。这样一般只会中断1分钟的思考,不会造成记忆的混乱,你的工作可以顺利的继续下去,不会受到各种因素的干扰(当然,必须先处理例外,例如:贝壳来一下),也不需要担忧忘记事情。
如果在不能开机的状况下,例如路上,贝壳优先考虑使用RTM的mobile版本。如果不行,那只有记录在写字本里面,回去补充。而后,每天晚上,贝壳会翻看一下今天的记录,看看明天有什么需要做的事情,哪些优先,哪些可以推迟。如果有空,可以做什么计划好的事情。等等等等。那么同学们会问了,Google Calendar呢?
GC可以和RTM结合,从而看到RTM的事件列表(方法就自己gg吧,贝壳不废话了)。当然,这只是有限的结合,意义并不大。GC真正的意义在于方便的和手机同步,从而对固定议程,重复议程有很好的显示和提醒作用。例如记忆生日,提醒周报,记忆飞机等等。这个和RTM的GTD并不冲突和重复。

2009年2月11日星期三

磁盘对倒迁移

贝壳的本本坏了。
Acer的质量真不怎么的,只是正常使用而已,买来不到一个月就返修。费时费力不说,还差点因为IWT的问题无法修理而要付钱。结果刚刚过保半年,总共买了一年半后,坏了。
趁机问老板要了一台ThinkPad,虽说联想的做工不如IBM,不过依旧非常舒服,不愧是商务王者。但是,贝壳原来在笔记本上配置的复杂到死的系统,要是在新机器上一一重装的话,费力先不说,项目肯定是无法按期完工了。
贝壳修旧机器的时候,拆下了硬盘和电池。这里顺便提醒送修笔记本的同志们,记得拆下硬盘和电池。硬盘是你机要数据的所在,将来要恢复系统就全靠他了。而电池——到时候要是发现电量少了,这种东西谁都说不清楚。所以还是拆下来的好。那么,最低限度的,要从旧硬盘上读出数据,否则很多东西完全无法运作了。所以——贝壳找人借了一个移动硬盘盒。嘿嘿,这种东西可以将笔记本的SATA转换成USB使用,从而在新电脑上直接读取旧电脑数据。
为了不重装电脑,贝壳决定在新电脑上直接使用旧电脑的系统。将旧电脑的数据整个复制到新电脑上,就是俗称的磁盘对倒。下面是一个关键的问题,是重建文件系统,然后复制数据好呢?还是直接镜像整个系统?如果是复制数据,相对的数据清晰干净,但是容易发生一些莫名其妙的错误。如果是整个镜像,对了错一并带入新系统。贝壳在这里选择比较保守的方案,镜像整个磁盘。
首先贝壳从U盘启动(刚刚做了U live debian,冲着拯救去的系统,不知道是说幸运呢,还是乌鸦嘴呢),而后删除原有磁盘的所有分区,输入dd if=/dev/sdc of=/dev/sda,将整个磁盘复制到新电脑上。这里注意,贝壳没有设定区块大小,因此速度比较慢,正确的设定大小有助于加速复制。贝壳的数据是 120G(因此向公司申请的电脑最低是120G硬盘),复制速度是10M/s多一点,复制时间大约是3小时15分钟。从晚上9点一刻一直到晚上12点半。在完成复制后,直接重启,从硬盘启动Linux,成功!
在几乎没有任何干预的情况下,Linux就可以开机成功,不得不说这给了我很大信心。然后我去启动windows——不动。
贝壳被迫回到了Linux,仔细调试驱动,设法最快的弄出一个可用的系统。下面详细记录了ThinkPadT61上安装Debian的全过程,有兴趣的可以看看。至于六牙四皂和某猫小姐就可以跳过了。
首先贝壳调整了复制后的硬盘上的分区。由于分区表是按照120G的时候计算的,因此新硬盘上的分区使用不足。启动gparted调整大小后,sda6占用了全部新增空间,暴增到200G。而后贝壳开始查看pci设备和驱动。

# lspci -nn
00:00.0 Host bridge [0600]: Intel Corporation Mobile PM965/GM965/GL960 Memory Controller Hub [8086:2a00] (rev 0c)
00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller [8086:2a02] (rev 0c)
00:02.1 Display controller [0380]: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller [8086:2a03] (rev 0c)
00:19.0 Ethernet controller [0200]: Intel Corporation 82566MM Gigabit Network Connection [8086:1049] (rev 03)
00:1a.0 USB Controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #4 [8086:2834] (rev 03)
00:1a.1 USB Controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 [8086:2835] (rev 03)
00:1a.7 USB Controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 [8086:283a] (rev 03)
00:1b.0 Audio device [0403]: Intel Corporation 82801H (ICH8 Family) HD Audio Controller [8086:284b] (rev 03)
00:1c.0 PCI bridge [0604]: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 [8086:283f] (rev 03)
00:1c.1 PCI bridge [0604]: Intel Corporation 82801H (ICH8 Family) PCI Express Port 2 [8086:2841] (rev 03)
00:1c.2 PCI bridge [0604]: Intel Corporation 82801H (ICH8 Family) PCI Express Port 3 [8086:2843] (rev 03)
00:1c.3 PCI bridge [0604]: Intel Corporation 82801H (ICH8 Family) PCI Express Port 4 [8086:2845] (rev 03)
00:1c.4 PCI bridge [0604]: Intel Corporation 82801H (ICH8 Family) PCI Express Port 5 [8086:2847] (rev 03)
00:1d.0 USB Controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 [8086:2830] (rev 03)
00:1d.1 USB Controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 [8086:2831] (rev 03)
00:1d.2 USB Controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 [8086:2832] (rev 03)
00:1d.7 USB Controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 [8086:2836] (rev 03)
00:1e.0 PCI bridge [0604]: Intel Corporation 82801 Mobile PCI Bridge [8086:2448] (rev f3)
00:1f.0 ISA bridge [0601]: Intel Corporation 82801HBM (ICH8M-E) LPC Interface Controller [8086:2811] (rev 03)
00:1f.1 IDE interface [0101]: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) IDE Controller [8086:2850] (rev 03)
00:1f.2 SATA controller [0106]: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA AHCI Controller [8086:2829] (rev 03)
00:1f.3 SMBus [0c05]: Intel Corporation 82801H (ICH8 Family) SMBus Controller [8086:283e] (rev 03)
03:00.0 Network controller [0280]: Intel Corporation PRO/Wireless 4965 AG or AGN [Kedron] Network Connection [8086:4230] (rev 61)
15:00.0 CardBus bridge [0607]: Ricoh Co Ltd RL5c476 II [1180:0476] (rev b6)

下面我们可以看到,我们需要驱动的设备主要有有线网卡,无线网卡,声卡,显卡。下面我们针对这些设备一一查看。

# lspci -s 00:02 -v
00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 0c) (prog-if 00 [VGA controller])
Subsystem: Lenovo T61
Flags: bus master, fast devsel, latency 0, IRQ 16
Memory at f8100000 (64-bit, non-prefetchable) [size=1M]
Memory at e0000000 (64-bit, prefetchable) [size=256M]
I/O ports at 1800 [size=8]
Capabilities: [90] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable-
Capabilities: [d0] Power Management version 3
Kernel modules: intelfb

00:02.1 Display controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 0c)
Subsystem: Lenovo T61
Flags: bus master, fast devsel, latency 0
Memory at f8200000 (64-bit, non-prefetchable) [size=1M]
Capabilities: [d0] Power Management version 3

# lspci -s 00:00 -v
00:00.0 Host bridge: Intel Corporation Mobile PM965/GM965/GL960 Memory Controller Hub (rev 0c)
Subsystem: Lenovo T61
Flags: bus master, fast devsel, latency 0
Capabilities: [e0] Vendor Specific Information
Kernel driver in use: agpgart-intel
Kernel modules: intel-agp

# lspci -s 00:1b -v
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)
Subsystem: Lenovo ThinkPad T61
Flags: bus master, fast devsel, latency 0, IRQ 17
Memory at fe020000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [50] Power Management version 2
Capabilities: [60] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-
Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00
Capabilities: [100] Virtual Channel
Capabilities: [130] Root Complex Link
Kernel driver in use: HDA Intel
Kernel modules: snd-hda-intel

# lspci -s 00:19 -v
00:19.0 Ethernet controller: Intel Corporation 82566MM Gigabit Network Connection (rev 03)
Subsystem: Lenovo ThinkPad T61
Flags: bus master, fast devsel, latency 0, IRQ 1272
Memory at fe000000 (32-bit, non-prefetchable) [size=128K]
Memory at fe025000 (32-bit, non-prefetchable) [size=4K]
I/O ports at 1840 [size=32]
Capabilities: [c8] Power Management version 2
Capabilities: [d0] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable+
Kernel driver in use: e1000e
Kernel modules: e1000e

# lspci -s 03:00 -v
03:00.0 Network controller: Intel Corporation PRO/Wireless 4965 AG or AGN [Kedron] Network Connection (rev 61)
Subsystem: Intel Corporation Device 1010
Flags: bus master, fast devsel, latency 0, IRQ 1273
Memory at df3fe000 (64-bit, non-prefetchable) [size=8K]
Capabilities: [c8] Power Management version 3
Capabilities: [d0] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable+
Capabilities: [e0] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [140] Device Serial Number e3-9e-03-ff-ff-e0-1d-00
Kernel driver in use: iwl4965
Kernel modules: iwl4965

仔细看看,其实显卡已经被默认驱动了,无法启动X是因为xorg,暂时不去理他。声卡驱动正常,有线和无线都正常。所以,贝壳首先接上了有线——果然,系统可以联网了。
而后,贝壳设置无线上网,但是——不起作用。经过仔细的查找,贝壳发现这么一件事情。虽然系统中有无线网卡驱动,但是还需要一个firmware来驱动网卡工作。这个包的名字叫做firmware-iwlwifi,安装后,系统就可以正确的使用无线了。
当然,其中还要修改一些系统配置,例如,贝壳原来的网络设备名称叫做ath0,现在叫做wlan1。首先是因为iwl驱动和madwifi的命名规则不一样。但是之所以叫做1,是因为udev的关系。打开/etc/udev/rules.d/70-persistent-net.rules,里面有很多网络设备的MAC和名称,删除后就重命名了。贝壳删除了记录,而后/etc/init.d/networking restart。系统成功的修改了名字。
下面是显卡和声卡,贝壳先搞显卡问题。打开/etc/X11/xorg.conf,删除其中指定的驱动名称,fglrx,换成intel。系统就可以成功的引导到X下面,而贝壳的系统DRI库高于7。0(testing),于是设定了以下两个项目。
Option "RenderAccel" "on"
Option "DRI" "true"
进入X后声音还是不对,贝壳运行了一次alsaconf,问题解决。
而后,贝壳仔细查找了系统驱动模块,发现kvm-intel和k8-temp没有正常加载。经过查找,k8-temp的替代模块叫做acpi- cpufreq,已经被自动识别和加载。使用cpuinfo可以看到系统经处于节能模式,速度800MHZ。而kvm-intel则是原来kvm-amd 的替代模块,用于加速kvm(qemu)的运行速度。这个软件经常被贝壳用来虚拟windows。经过贝壳的查找,是BIOS中关闭了虚拟化的关系。此时可以在系统中看到如下内容,但是虚拟化无法执行。

# grep vmx /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm ida
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm ida

去BIOS中,打开虚拟化设置(默认关闭),重启,再试?没用!
原因是,这个选项修改后,必须彻底关机才能启用。仅仅重启是没有用的,奇怪吧?无论如何,关机,拔电源,接上,开机,系统可以正确的虚拟windows了,速度很快。
==,windows不是不能启动么?经过贝壳的实验,这次最奇怪的事情来了,windows可以在虚拟机上跑,但是无法在实际机器上跑——这还是个实际的windows,生产环境——
经过贝壳多次测试,还是如此。。。
下面贝壳说说一些细节问题。虽然系统正常的启动了,但是很多功能还是有问题。例如功能键不起效,亮度无法调节等等。下面一一说明怎么处理。
睡眠和待机的按钮一直起效,触摸板关闭需要添加以下一项。

Section "InputDevice"
Identifier "Synaptics Touchpad"
Driver "synaptics"
Option "SendCoreEvents" "true"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "HorizScrollDelta" "0"
Option "SHMConfig" "true"
EndSection

注意最后一项SHMConfig,开启后可以用Fn+F7关闭触摸板。
而后安装hotkey-setup,很多功能键都可以了。剩下两个最主要的功能,音量和亮度。音量贝壳用自定义热键来调整了Win+Down->aumix -v-10,Win+Up->aumix -v+10。而亮度,贝壳自己做了一个小程序解决。

# cat /usr/local/bin/brightness
---------------------/usr/local/bin/brightness-----------------------
#!/bin/bash

LCD_DEVICE=/proc/acpi/video/VID1/LCD0/brightness

CURRENT=$(cat "$LCD_DEVICE" | grep current | sed "s/current: \(.*\)/\1/")
if [ -z $1 ]; then
echo $CURRENT
else
MOVE=$1
let 'TARGET=CURRENT+MOVE'
echo $TARGET > $LCD_DEVICE
fi
-------------------------------end------------------------------------

将这个文件赋予执行权限后,记得让用户可以sudo执行,否则普通用户是无权修改/proc/acpi/video/VID1/LCD0/brightness文件的。
在安装好这个文件后,可以试试看,brightness显示当前亮度。brightness +...增加亮度,brightness -...降低亮度。而后绑定Win+Left->brightness -10,Win+Right->brightness +10。现在就可以用快捷键来修改亮度了。
下面还有一个很容易被忽视的问题,电池充电管理和磁盘抗震,首先,安装hdapsd包,他会自动安装一个内核模块补充。而后将/etc/default/hdapsd中DISK修改为sda(多数都是sda吧?),运行以下指令加载模块。
modprobe tp_smapi
modprobe hdaps
/etc/init.d/hdapsd start
而后,我们可以如下调整电池开始充电电量
echo 40 > /sys/devices/platform/smapi/BAT0/start_charge_thresh
echo 90 > /sys/devices/platform/smapi/BAT0/stop_charge_thresh
这样只有低于40的时候才会充电,充电到90停止。根据IBM的文档,将电池电量保持在30-85%有利于增加电池寿命。贝壳截止在90,是因为会减少电池充放次数,从而很好的保护电池。当然,开始的时候本本电池很好,所以一点电也可以顶很久,于是可以设定低点。后来电池糟糕了,就必须设定高百分比开始充,这样会加速电池损耗。因此电池的寿命是越糟糕消耗的越快的。
另外,磁盘抗震可以通过hdapsd和相应模块来驱动,但是需要下载内核源码,加入补丁才可以真正起效。贝壳不高兴打补丁,而且据说2.6.28内核就会加入这个补丁,因此——等新内核吧。
最后,大家可以加入一个比较好玩的功能,笔记本的指纹识别。首先从http://www.debian.org/distrib/packages搜索 thinkfinger,将libthinkfinger0,libpam-thinkfinger,thinkfinger-tools依次下载安装。而后就可以用tf-tool --acquire来收集指纹。一般来说,普通用户的收集总是失败,可以以root收集了放到普通用户目录中用,只需要运行tf-tool --acquire $USER/.thinkfinger.bir,而后chown就可以了。另外,要使用指纹验证登录机器还需要修改pam模块,修改如下。
将/etc/pam.d/common-auth文件的原本内容注释,修改为以下内容。
auth sufficient pam_thinkfinger.so
auth required pam_unix.so nullok_secure try_first_pass
另外,如果你使用的是xdm,进入系统后发现有些变量缺失的话,可以试试看如下修改(/etc/pam.d/xdm):
# $Id: xdm.pam 189 2005-06-11 00:04:27Z branden $

auth requisite pam_nologin.so
auth required pam_env.so
auth required pam_env.so envfile=/etc/default/locale
session required pam_limits.so

@include common-auth
@include common-account
@include common-session
@include common-password
掉换上下的顺序,事情就OK了。
经过上述的动作后,贝壳可以在新的笔记本上使用老系统的所有东西。除了windows无法在真实机器上启动之外——

参考资料:
[1].Installing Debian Etch Linux on Lenovo Thinkpad T61.http://ejahn.net/Members/eric/stories/t61_etch
[2].Installing Debian Lenny on a ThinkPad T61.http://www.thinkwiki.org/wiki/Installing_Debian_Lenny_on_a_ThinkPad_T61
[3].Etch_on_Thinkpad_T61.http://www.klabs.be/~fpiat/linux/debian/Etch_on_Thinkpad_T61.html
[4].Lenny_on_Thinkpad_T61.http://www.klabs.be/~fpiat/linux/debian/Lenny_on_Thinkpad_T61.html
[5].Linux on the Lenovo T61.http://pdis.rnw.nl/~hansl/linux/T61/T61.html
[6].Tp smapi.http://www.thinkwiki.org/wiki/Tp_smapi#Battery_charge_control_features
[7].debian etch 简要安装指南 2007-1-26.http://www.linuxsir.org/bbs/thread287473.html
[8].Debian/testing简要安装记录.http://hi.baidu.com/airpot/blog/item/7e72b0b4d05de3708bd4b2d9.html
[9].Debian 笔记本驱动安装.http://www.unifiedkernel.com/forum/viewtopic.php?f=5&t=10

2009年2月8日星期日

回京感想

昨天临时接到通知,贝壳周五(二月六日)要去北京出差。具体情况不多说了,不过——贝壳要回老家了。可一年半没回去了阿——
早上5点半从杭州的宿舍出来,赶7点半的飞机。打车走了快一个小时,杭州的机场确实也够远的。师傅紧赶慢赶总算给我提前40分钟赶到了机场,离停止办理手续只有10分钟。这点住北京就很有优势,出门10分钟就到机场。6点半起床,赶8点的飞机绰绰有余。飞机很顺利,事情很顺利,贝壳就不多废话了。唯一的插曲就是贝壳的linux不支持投影仪,搞了半天总算在老板的机器上成功演示。
别的不多说了,就说说北京的风景吧。多了一堆莫名其妙的建筑,其中多数是政府机关的办公楼。贝壳原来认得的地方全都不认得了,鼓楼,宣武门,东直门,也就长安街还保持了一点原来的风景——当然,不算那个巨蛋的话。东直门改的面目全非,斜街那里完全看不到了,建了一个什么汽车中心。西单图书大厦已经快7年没去了,门口那堆书的摆设还在,但是被围起来不能坐了。西单文化广场被修的光怪陆离,完全看不出原来的样子。灵镜胡同没去,不过想必也不复旧观。
贝壳干完事情,被放到了丽都。本来准备和几个高中同学聚聚,可无奈前天才刚刚接到通知。刘江陵同学和佟国美同学非常义气的回了消息,不过很遗憾的,都没赶上机会。李鸿国比较忙,就不说了。老猫直到贝壳快闪了才有反应,够迟钝的。贝壳最后无奈的决定,不去顺义了,直接去机场,第二天可是8点的飞机。丽都旁边贝壳只认得915,那是去顺义的。所以贝壳弄了部车去机场,走的是附路。
机场附路,算算可是有年头没走了。自从在牛栏山上学以后,京顺路通了,附路修路。贝壳就主要坐915去北京,很少走附路了。现在的附路路面都翻修过,比原来顺了很多。运河上的桥还是那个老样子,不过有一段因为要修轻轨,因此被重修了。到了机场,贝壳碰到了一件非常囧的事情,贝壳被锁在家门外了。算算都26的人了,居然还会碰到这种问题。家门口等家长回家,又不是小学生。不过无奈的,贝壳就碰到了这种事情。老妈去上海探亲,老爹上班。大老远的从上海来北京出一次差,居然被锁在了自己家门口。无奈,贝壳出门转一圈吧。
从家里出来,贝壳绕着机场走了一圈。发现机场多了很多小店,建筑也被翻修过了。想必是为了迎奥吧,机场这里是最敏感的地方。唯一没变的就是机场高速的收费站和贝壳的破窝。呆在小时候常爬的假山旁边,不出意外的发现当初奋斗(真的是奋斗,贝壳小时候很胖)很久才能爬上去的山顶差不多就是一伸手的距离。公园的松树还在,前面的大广场却没人跳舞了。工人文化俱乐部(原来唯一的作用就是放电影,我们过去常常在这里看)被改成了XX货真价实的俱乐部,上了金色的招牌,不过恐怕就和工人无关了。最大的变化是贝壳的小学,机场二小,永远的消失了,变成了94中机场分校。估计是机场这里去94中的太多了,干脆弄个分校过来,省得费力。家后面的一排树全推了,改成了通向三号航站楼的大道。
坐在家门口的公园旁边,贝壳感觉五味沉杂。这么多年在外面,始终觉得自己是个过客。没想到到了自己家,才发现家已经不再是从前的样子,自己还是过客。上次出差,呆了两个月。这次出差,呆24小时。贝壳始终来来去去,来了又走走了又来,到底哪里才能停下呢?