豆豆19个月

豆豆这个月过得可开心了,豆豆爸最近比较清闲,带他外出的频率明显增高。

ColorMe

先是豆豆爸公司里组织了一次儿童节活动,在世纪公园旁边的ColorMe,一个专门组织儿童游乐的公司里举办。大约有三十来个小朋友参加了活动,可惜这些游戏活动都比较适合三岁以上的小朋友,豆豆太小了,没法参加任何集体活动。

活动原计划下午1点就开始了,但是豆豆睡醒午觉就快两点了,等我们赶到地方,已经将近三点了。大多数小朋友都已经来了,在活动场所里面的屋子里画画呢。我看见ColorMe一进门就有一处活动区域,都是软塑料积木,我又闻到他们活动场所里面的屋子都有一股装修味道,于是就直接让豆豆去积木区玩了,没有再进去。豆豆对积木毫无兴趣,但是他很快就发现积木区旁边有个小餐台,是给小朋友过家家用的。上面有各种木质的小锅、铲勺、饭碗等厨具,这些倒是挺好玩的,于是上去抓起几样就开始敲敲打打。

过了一会,里面有人喊,小朋友们做集体游戏啦。我就也把豆豆抱进去了,让他见见别的小朋友。在里面一间大屋子里,稍大一些的小朋友们都已经围坐在屋子四周了,中间空出一片活动区域,主持人正站在中央讲话。我把豆豆往地上一放,他就立刻冲到场地中间去手舞足蹈,全然不顾其它小朋友的感受。主持人发现有人抢了他的镜头,直皱眉头。我赶紧跑过去,一把抱起豆豆离开了游戏室。俺们还是单独活动吧。

嘟嘟家

从ColorMe出来,我们直接去了嘟嘟家。嘟嘟比豆豆小了四个月,虽然嘟嘟是个大美女,不过豆豆似乎对嘟嘟的玩具更感兴趣一些。

image

doudou smile

动物园

再过了两天,豆豆爸要去打疫苗,地点就在动物园旁边。于是想干脆把豆豆带去动物园玩吧。就这样,豆豆又去了一趟动物园。去动物园的路上,爷爷奶奶特地买了几个便宜水果打算喂猴子。等进了动物园,已经快到中午了,豆豆饿了,于是我们直奔动物园的餐厅而去。去餐厅的路上,路过金鱼展区。我喂了几块饼干给池塘里的鱼,豆豆也学会了,朝我要了饼干渣扔给小鱼们。小鱼张着大嘴巴在豆豆脚下抢吃的,逗得豆豆咯咯直笑。

动物园里的餐厅很一般,但价格不菲,我们吃了点家常菜也要三百多块钱。但是餐厅的环境可真好,绿荫环抱。餐厅的中庭里还有一座人造瀑布,抱着豆豆去看瀑布的时候,豆豆无比兴奋:伸着脖子,指着瀑布,小腿直踢。

吃完饭,我们就进去看猴子。先去看的是狒狒园,这是个开放式的池子,狒狒们在里面,我们在墙外。矮墙不高,但池子很深,又有水沟阻隔,所以狒狒们逃不出来。没了笼子,游人们可以方便的扔食物进去,爷爷奶奶买的便宜水果就全送给这些狒狒了。从天而降的水果引起了狒狒们一阵骚动,他们嚎叫着开始争抢食物,豆豆看的眼花缭乱。准备离开狒狒园的时候,我抱着豆豆问他:“猴子是怎么叫的?”他于是扯着嗓子“嗷……”地喊了一声。旁边一圈人本来在看狒狒的,现在全都转过头来看豆豆了。

从猴子区出来,我打疫苗的时间就快到了,于是我告别了豆豆去扎针。据说我一走,豆豆就躺在小车里睡着了。等两个小时后,我回来的时候,远远看到豆豆还在睡觉,等走到跟前,豆豆就像知道爸爸来了一样,一下子醒了过来。东张西望了一会,又伸了几个懒腰,然后就屁颠屁颠追鸽子去了。

由于这一天不是周末,人很少;天气也很好,阴天没有太阳,难得的出来玩的好时机,我决定让豆豆多玩一会。于是,我又推着豆豆去看大狮子。上次豆豆来动物园,狮子老虎都在睡觉,大熊猫前面挤满了人,豆豆玩的很不尽兴。这次好了,熊猫馆前一个人也没有,豆豆趴在玻璃窗上看大熊猫吃了一整棵竹子。大狮子也还算给面子,母狮子虽然在睡觉,但公狮子起床了,坐在地上一个人发呆,也许在回想自己在大草原上的风光往事呢吧。老虎就太懒惰了,依然在睡觉。

我们最后参观的是黑熊。黑熊也被关在一个深坑里,看到我们来了,又作揖又鞠躬。奶奶想起来我们还带了肉包子,于是掏出来喂给黑熊,它还挺爱吃的。我赶紧抢过肉包,递给豆豆喂。哪知道豆豆小气的很,每次只揪下来一小块,还要等上好半天才扔给黑熊。

棒棒家

月底,豆豆妈去北京开会,我抱着豆豆也跟去了。趁着豆豆妈开会的时候,我带豆豆去看他北京的小表弟——棒棒。棒棒家住通州,而我们的旅馆在大钟寺,过去一趟,单程两小时左右。以前经常跟同事声讨上海地铁的各种设计缺陷,这次带着豆豆长途体验了一下北京地铁,才发现,原来还有比上海烂的多的地铁系统。

首先,北京地铁是绝对不欢迎轮椅和童车的,因为别说是升降电梯,很多站台连扶梯都没有。新一点的线路虽然有升降梯,也都是摆设,全部都显示着“Out of service.”不同线路之间的换乘也都老长老长,相比之下,上海的一二号线之间换乘都显得好快捷啊。没办法,到了楼梯处,我只好把豆豆连车带人一起抱起来上上下下,幸好最近这一年半常常抱豆豆锻炼了点臂力。

豆豆倒是非常喜欢坐地铁,他逐渐掌握了地铁开关门的规律,等地铁一进站,就开始拍着小手叫:“开,开”。若是恰好对面也开来一辆的话,他还会兴奋的大喊“呜……呜……”。

棒棒的奶奶是豆豆的二姨奶。二姨奶在豆豆三个月大的时候,曾经照顾过豆豆一个月,对豆豆很有感情的。可惜豆豆不记得了,到了棒棒家,一看都是陌生人,有点紧张。稍微安静了一会,他就牵着我的手去各个屋子参观。这时候二姨奶偷摸过来换了我,领着他转。豆豆走着走着一回头,发现领着他的居然不是爸爸,哇一声就大哭起来。我赶紧去抱起他,随后二姨奶又拿出准备好的西瓜递给他,他这才破涕为笑。给了吃的就是熟人了,这回二姨奶也可以对他搂搂抱抱了。

吃饭的时候,二姨奶让豆豆叫奶奶,豆豆不肯。二姨奶夹起一块肉,递到豆豆眼前说:“叫奶奶”。豆豆立刻甜甜的说了一声“奶奶”。势利眼本性暴露无遗啊。

吃过午饭,已经下午两点了。豆豆该睡午觉了,我有一阵子没哄过豆豆睡觉了。没想到豆豆还是很给我面子的,我抱着他讲了几分钟故事,他就睡着了。

等豆豆再醒过来,可就不把自己当外人了。先是抓起拖把来拖地,然后又拿起蒲扇来跟棒棒的爷爷打打闹闹,疯得别提多开心了。

这是豆豆正在投抹布,准备擦地呢:

DSC04159

这是棒棒,刚45天大:

DSC04183

晚上从棒棒家回来,出大钟寺地铁站的时候已经9点了。这时我看看豆豆的尿不湿,已经很大了,我想出了地铁了,也不怕他乱尿了,捂着怪难受的,就解下他的尿不湿扔掉了。我还有点不放心,于是又问了他一下,你要不要嘘嘘啊。豆豆很干脆的说“啊不啊不”,豆豆已经能够清楚的判断自己是否要撒尿了。

回旅馆途中路过一个便利店,我想到我们还需要饮用水,顺路嘛,就进去买了一大桶。结帐的时候,我把豆豆往收银台上一放,付了钱。正准备走的时候,发现坏了,豆豆尿了一大泡在人家桌子上。收银员正在一边规整东西,也没看我们,我于是问他说你们这有没有抹布、纸什么的,我擦一下,这里湿了。他大概也没意识到出了什么事,没好气的说了句“没有”。我想,这可就不怪俺们了,于是夹起豆豆赶快溜。

我当时身后背着个重重的书包,装满了豆豆的换洗用品和食物,右手抱着豆豆,左手拎着水桶,眼看就撑不住了。幸好这时候接到了豆豆妈的电话,说她已经到了附近。又等了一会,豆豆妈终于出现解救了我。

天安门

豆豆妈说,豆豆来北京一趟,去看看天安门是必须的。可惜我们去的不是时候:正午时分,太阳火辣,我们拍了几张照,就草草收兵了。

DSC04228

DSC04234

DSC04249

豆豆是分时段的:晚上9点到早上7点段跟妈妈亲,我抱他一下,他都会哇哇大叫。其它时段是跟爸爸亲,这时候不让妈妈抱呢。

DSC04268

鸟巢和水立方

白天太热,只好晚上行动了。晚上我们领着豆豆去看鸟巢和水立方。

DSC04357

开始跟妈还不错

DSC04345

DSC04365

后来就开始找爸爸了

DSC04448

游乐场

由于白天太热,我们不想带豆豆去外面了。大钟寺广场有几个儿童玩乐的场所,于是我就找了一个,让豆豆进去玩。由于是工作日,里面玩的小朋友不是很多,总共四五个吧,看上去都在两三岁左右。期间,豆豆撞到了一个小男孩,那个小家伙比豆豆矮一块,但是行动非常灵活,豆豆想追他都追不到。我开始以为他比豆豆小,就问了他的爷爷,结果那个小男孩已经两岁零三个月了,比豆豆大了八个月呢,难怪已经运动的这么自如了。

豆豆18个月打完疫苗后去检查了身体,他当时身高是89厘米,体重25.5斤,都超标三个月以上。最夸张的是他的大脑壳,头围已经相当于三岁小宝了。我听到了还有点担心,不知道脑袋太大会不会有问题。

洗澡

豆豆平时就喜欢玩水,这回有了旅馆的免费洗澡水,可是玩乐个痛快。每天都要在洗澡间里带上个把小时,用喷头到处喷。他玩水的时候,我就蹲在地上扶着他,怕他摔倒。他有时回头看看我,然后就突然拿出喷头对着我的脸哗哗淋过来。我用一只手把脸上的水抹干净,然后等着他说“坏豆”,他就得意的哈哈大笑。

旅馆里地方太小,他又惦记着水龙头,有时一不注意,他就溜进去了。有一次,他跑进卫生间后,斜眼一看:“咦,这里有盆水啊”。于是把手伸进马桶里和弄了一通,豆豆妈这个气啊,心想:“我一个洁癖,怎么会生出这么个脏豆呢?”

DSC04308

豆豆18个月

豆豆最近长速减缓了,目前身高大约86厘米,体重大约25斤,与同龄小宝平均水平差别不大。

最近六一儿童节,豆豆妈所在的生化所组织一次小朋友聚会。与会的大多是4~7岁的小宝,他们已经可以表演节目什么的了。可是豆豆啥都不懂,可是他发现舞台上似乎是个好地方,全然不顾别的小朋友正在演出,冲上去就开始捣乱。

DSC04118

DSC04124

DSC04128

DSC04135

DSC04139

豆豆可以熟练的说一些两字词了,比如:“吃奶”,“这个”。豆豆想要爬高的时候还会喊口号,一面使劲一面嘴里念念有词的喊着“一二一二”。豆豆很早就识别大小了,比如我拿两块馒头给他,他必定是挑大的那个。但是他也不算特别贪心啦,通常不会同时把大小两个吃的都拿走。

豆豆记性很好,一个月前我们带他到生化所的大院里玩,他看着一个老爷爷浇花看了半天。一个月后又来到了大院里,他立刻指着上次浇花的地方比比划划地说“哗哗”。

豆豆怕飞机

昨天做了件蠢事,害得豆豆被吓到了,自己也半宿没睡。豆豆平时看见天上的飞机就兴奋的啊啊直叫,我想他这么喜欢飞机,要是去机场看见大飞机一定更高兴。于是昨天就带他到了虹桥机场外围,选了个可以看见跑道的开阔位置让他过过瘾。当巨大的飞机轰鸣着从头顶掠过时,豆豆并没有预想的那么兴奋,后来才意识到他可能有点害怕吧。白天还好,等晚上睡觉,豆豆就开始噩梦不断,快三点的时候更是哇哇大哭起来,要我们把灯打开才敢再睡觉了。

事后,我才回想起自己小时候也对这种轰隆巨响的机器很是害怕的,比如火车,远远看着还好,离近了就不敢了,生怕自己被卷进去。哎,当时怎么就没想起来呢,以后再也不带豆豆去看这种东西了。

内嵌子VI

从提高程序的可读性、可维护性、可重用性的角度来说,在设计LabVIEW程序时,应当经可能多的使用子VI。基本上,每个相对比较独立的功能都应当被做成子VI,而子VI最大也不应到超过30个节点。

但子VI过多,可能会对程序的运行效率带来一定影响。

首先,调用子VI是有一定的开销的,比如调用子VI时需要把参数压栈等,但是这些开销是非常小的,可以忽略不计。

造成嵌入式子VI提高整个程序的性能的主要原因是在于LabVIEW编译器的优化工作。LabVIEW编译器是可以比较智能的做一些优化工作的,在不改变程序逻辑的前提下,提高生成代码的执行效率。比如下面列出了其中几种常见的编译器优化方法:

  • 去除死代码:把永远的不会被执行到的代码删除。
  • 转移循环中的不变量:若循环每次迭代都做某些相同的运算,编译器会把这个运算挪到循环之外,制作一次就可以了。
  • 相同代码合并:编译器自动发现程序中对同一数据进行的重复运算,把重复的运算去掉。
  • 常量合并:编译器会发现程序中对常量进行的运算,在编译时就计算他们的结果,把结果直接保存在程序中,这样就不需要每次程序运行都对其进行计算了。

LabVIEW编译器的优化有一个局限性,就是这些优化措施只能在一个VI上进行,不能应用于全局。当把一个子VI B的代码合并到上层VI A中去,编译器可能就会发合并后的代码有很多可以优化的地方;若VI A和B的代码分别在不同的VI中,编译器分开查看每个VI中的代码,可能就找不出太多可以优化的地方。

LabVIEW中有一个解决方案,可以兼顾可读性与运行效率,就是在编辑程序时,多划分子VI,而编译程序时,又把子VI合并起来当作一个大VI来处理,这就是嵌入式子VI。

在VI属性对话框的“执行”页面上有个选项是“在调用VI中内嵌子VI”,英文叫“Inline SubVI into calling VIs”。若读者学过C语言和它的inline函数,就会非常容易理解LabVIEW中的这个设置。

image

当这个选项被选中,这个VI就变成了嵌入式子VI。当嵌入式子VI被拖拽到其它VI上,从编辑代码的角度上看,它与其它VI没有什么区别;但是在程序编译的角度来看,它与普通VI是不同的,那就是嵌入式子VI在编译时,并不是独立存在的,它的代码被全部复制到了调用它的VI中。用一个实际的例子来讲,假如一个程序中有两个VI,A和B,A调用了B。假如B是一个普通的VI,这个程序便编辑成可执行代码后,代码中还是有两个VI,A和B;若B是嵌入式子VI,编译好的程序就只剩下一个VI了,被扩充了的A,被扩充的A中包含原A和B两个VI的代码。

需要注意的是:嵌入子VI这个选项并不是用的越多程序效率就越高。使用嵌入式子VI也会给效率带来负面影响,比如它在每处调用子VI的地方都会生成一份拷贝,使得程序体积膨胀,占用过多的内存等。因此,建议把调用不频繁,输入参数常常为常量的VI设为嵌入式子VI,而一般的子VI不需设置。

下面用一个具体的示例来看一下LabVIEW编译器是如何优化程序的:

首先,我编写了一个子VI,这个VI有三个输入;其中两个输入是数据,另一个输入表示对两个输入数据进行何种运算,是相加还是相减等;让后把运算结果输出。

image

image

这个“Inline sub VI.vi”被设置为嵌入式子VI。对于嵌入式子VI,它必须是可重入的(嵌入式子VI的代码在每个子VI被调用的地方都会有一个副本,就更不要说是数据空间了)。LabVIEW暂时不支持嵌入式子VI的调试和自动错误处理。所以,在VI属性对话框中设置嵌入式子VI时,要把其它的设置做相应改动,否则LabVIEW会在其它设置项上打个叹号,提示这里的设置有问题。

image

接下来我在下面的程序中调用的这个子VI:

image

下面咱们要看一下,LabVIEW的编译器是如何对这个程序进行优化的。为了更直观的展示这些优化,我会画一些示意程序框图。这些用于示意的程序框图并不是LabVIEW优化出来的,而是我手工制作的,LabVIEW的优化只针对编译好的可执行代码,它并不会修改VI的源代码(程序框图)。但是经过LabVIEW的优化,main.vi生成的可执行代码,与我制作的示意程序框图编译成的可执行代码是完全相同的。

因为“Inline sub VI.vi”是嵌入式子VI,对于编译器来说,它的代码是被拷贝到main.vi上来的,所以对于编译器来说,它看到的代码是这样的:

image

在这段代码中,条件结构分支选择器的输入是一个常量“Add”,这就意味着程序每次都只会进入“Add”这一分支,而其它分支永远不会被执行到。编译器会把那些执行不到的分支移除,因此,优化后的程序代码等效如下:

image

程序中循环内所作的运算,在每次迭代中都是相同的,因此它可以被挪到循环之外,只运行一次。优化后代码等效如下:

image

程序中的平方运算的输入值是一个常量,因此这一运算会在编译时就完成这一计算,等效优化后代码如下:

image

程序中,对data这个输入数据进行两次完全相同的运算,这是没有必要的,编译器也会将其合并,于是优化后的代码最终等效与如下的代码:

image

可见,一个看似复杂的程序,经过LabVIEW编译器的优化,它的运行效率可以媲美一段极其简单的程序。但是这并不是说程序员可以不关心代码的效率了。编译器毕竟还是能力有限,它只能做简单的优化,程序效率的决定因素还是在于程序员本身的。

豆豆17个月

上个月新搬了一个地方住,新地方干净一些,可以让豆豆下地自由活动了。为了给豆豆创造更清洁的环境,我还特意弄了一个吸尘器,用于打扫卫生。豆豆平时若是看到地上有脏东西,就会指着它说“嗯,嗯”,然后大声叫“爷爷”,让爷爷把它收走。吸尘器以来,豆豆就被这个神奇的东西吸引住了,所有的脏东西,呼一下就被吸进了它的管子,都不需要爷爷来捡了。每次我干活,他都要在一旁指挥,告诉我脏东西在哪。不过豆豆还是有一点害怕这个嗡嗡作响的家伙的,每次我一说:“爸爸开始吸了”,他就急忙往后退,最好躲到妈妈身后再来观察我工作。也许是因为吸尘器噪音太大,也或者豆豆怕自己也被它吸进去吧。一旦我停下开关,豆豆就又立刻冲上来,拿起吸尘器的进气管,一边在地上比划着,一边嘴里还要发出“呜呜”的声音,干的有模有样。

DSC04046

DSC04095

豆豆16个月

昨晚豆豆妈加班,很晚才回来。豆豆9点就困了,看不见妈妈,豆豆就找爸爸。我想让他躺床上给他讲故事,但是他不干,一定要让我抱。于是我抱起他,对他说:趴到爸爸肩膀上。豆豆就往我肩上一趴,我抱着他在屋子里边走边讲故事,走了两圈豆豆就睡着了。这是近来豆豆头一次晚上不吃奶睡觉。豆豆现在跟妈妈可粘糊了,看他每晚在妈妈怀里的赖叽样,让人觉得他离开奶就过不了了呢。以至于我常常担心他将来断奶的时候会不会太过难过。现在看来,豆豆是相当现实的一个小宝:有奶吃就吃,没有奶也不影响睡觉。这让我放心了很多。

最近上海天气转暖,于是我们又把豆豆头发剃光了。

DSC03917

豆豆每天要在外面草地上待三四个小时,走路的水平大有长进,摔跤次数越来越少了。这天,豆豆在草地上遇到了三只小兔。

20120403499

豆豆对陌生动物倒是一点也不害怕,上去一把就抓起了兔子耳朵。

20120403501

月初的时候,豆豆的姥姥姥爷来看他,而爷爷奶奶则回无锡去了。豆豆是个势利眼,只要有给他做饭、陪玩就行,根本不管是谁。姥姥姥爷一来,他就适应了,丝毫看不出有想念爷爷奶奶的意思。这几天我们一直在训练豆豆喊“姥姥”,豆豆三天就学会了,不过发音还不太准,现在见了姥姥就喊“欧欧”。

有一天白天,豆豆妈不在家,姥姥姥爷喂豆豆吃饭。豆豆贪玩,把饭往外掘。姥爷板着脸,对他一瞪眼,他立刻识趣得乖乖吃饭了。晚上又到了吃饭时间,还是姥姥姥爷在外屋喂豆豆吃饭。豆豆顽皮劲又来了,姥爷故技重施,又一瞪眼。这次豆豆知道妈妈在家,可就没那么乖乖就犯了,他立刻跑到妈妈面前满含热泪的哼唧,一副受了委屈的面孔。豆豆还挺有做演员的天赋呢。

可执行代码与源代码分离

我在书中和之前的文章中介绍到了LabVIEW的一个与其它语言不同之处:它把程序源代码和编译好的可执行代码存储在了同一个文件中。我一直觉得这并不是一个好的方法。对于普通LabVIEW用户,这也许不是一个严重问题,甚至很多人都不需要关心LabVIEW是怎么保存文件的,只要他的程序能正确运行就万事大吉。

但是,源代码与可执行代码混合存储的弊病还是给我的开发带来了一定影响。我开发的项目较大,有多个人同时参与开发,这样一来,同一个VI文件就会在不同的开发者之间传来传去。每个开发者有自己的喜好,有人有64-bit的LabVIEW进行开发,有人用32-bit的LabVIEW,有人用Windows,有人用Linux。这本来不应该是一个问题,LabVIEW支持跨平台,相同的源代码不加修改就可以在任何平台下运行。

问题在于不同平台下编译出来的可执行代码是不同的,我的程序复制到同事的电脑上,即便代码不做任何修改,VI也会被修改,因为VI中包含的可执行代码变了。这样,我就没法简单的判断一个VI是否被同事做了修改,还是仅仅编译后的代码变了,非常不利于程序源代码管理。

这个问题可以通过分离VI的源代码与可执行代码来解决,这是LabVIEW2010开始出现的功能。在VI的属性对话框中,有一个选项是“分离编译后代码与源代码”。若这一选项被选中,则VI中只保留程序的源代码,而编译生成的代码则被移出VI之外。

image

被分离出来的编译好的可执行代码又LabVIEW统一管理,在我的Windows 7 系统中,文件夹C:\Users\[user name]\Documents\LabVIEW Data\VIObjCache\[LabVIEW version number]\ 下有一个objFileDB.vidb 文件,这就是用来存储LabVIEW 程序所有可执行代码的数据库。

若程序会在不同平台下协同开发,或者程序会被发布到不同平台下去,都可以考虑采用可执行代码与源代码分离的策略,避免不必要的VI变动。

理论上,可执行代码与源代码分离开来,可以提高程序的加载速度:程序可以各取所需,只加载源代码或只加载可执行代码。不过我并没有太明显的感觉到速度的变化。

豆豆逛动物园

今天是春节过后第一个晴朗的星期天,我们决定带豆豆去动物园玩一玩。上了地铁10号线就发现车厢里全是小孩,一问都是去动物园的。看来小朋友们都憋坏了,难得一个好天气,不容错过。动物园里果然也是人山人海,我排队买票居然还排了二十分钟。

DSC03837

整个动物园里,豆豆最喜欢的是猴子。上海动物园的猴子种类还真不少,大大小小。其中一只猴子还抢了豆豆的橙子吃。

image

豆豆还去看了大象和长颈鹿

DSC03854

DSC03862

DSC03864

看完了长颈鹿,豆豆就困了。然后就趴在爸爸肩膀上睡着了。

豆豆睡了一个小时,然后又去看狮子、老虎。狮子老虎全是懒蛋,全都在睡觉,一动不动,真没意思。

接下来豆豆又去看了大熊猫、小熊猫、各种大鸟。然后就回家了。豆豆今天玩的好累,到了家里一改好动性格,老老实实坐在床上。不过吃东西的力气还是有的,豆豆的晚餐水果是火龙果。

DSC03888

DSC03886

豆豆15个月

豆豆这个月学习说话的速度明显加快了,现在不但把家里四个人的称呼都学会了,还学会了两个非常有用的动词:“吃”和“抱”。豆豆不愧是馋豆,看见认识的食品,立刻就会兴奋的叫“吃,吃”。前两天看见我的时候直接就说了个句子:“爸爸,抱抱”。

豆豆可以直接从坐这的状态直接站起来了,算是正式会走路了。

上海整个二月都在下雨,进入三月也不见转好,现在只要没有雨就算好天气了。我每个周末都要抽出一天带豆豆出去玩,豆豆是野孩子,只要不在家里,去哪都很开心。

上个周末回张江了,这是在家门口的紫薇公园里:

 

DSC03709

现在豆豆走路仍然跌跌撞撞,离不开学步带的保护。豆豆在公园里走着走着,突然发现草坪里躺着一辆小滑车,立刻过去扶起来研究研究。豆豆天性就对各种有轮子的东西感兴趣。小滑车是属于身后那个红衣服小姐姐的,她正在一旁疯跑呢。后来一回头,看见自己的爱车被豆豆捡去了,立刻气势汹汹冲了过来。小姐姐比豆豆大了十个月,身高比俺们差了一大截,但是可凶呢,一把就夺过自己的小车。豆豆也不甘示弱,冲着小姐姐啊啊大吼。幸好奶奶急中生智,掏出一个漂亮的公交卡,吸引走了豆豆注意力,才化解一场战争。

DSC03742

这个周末带豆豆出远门,去了滴水湖。豆豆听说要出去坐嘀嘀,立刻兴奋了。挂着一脸的早饭,蹦起来就要出发。

DSC03765

早上出发的时候天气非常恶劣,到达滴水湖的时候甚至有点开始飘雨,结果忘记给豆豆拍照了。

中午就在滴水湖边上吃的。这里游客稀少,饭店也少,我们抱着死沉的豆豆走了好远才看到一家饭馆。但幸运的是,吃过午饭,天气居然转好了。等我们驱车到了滴水湖东面的观海公园,阳光已经穿透稀薄的云层照在了海岸上。豆豆刚学会走路,一旦有机会自己走,就千方百计想摆脱大人的控制。我有时候不得不抱起他,免得他乱跑。他也会反抗,把两只手朝上一身,拼命扭动身体,有时候还真包不住他。

DSC03800

豆豆这张一本正经的照片,看上去很像个大孩子:

DSC03805DSC03808

DSC03814

这时候早已过了豆豆午睡的时间了,我把车停在了海堤上,豆豆妈在车里哄豆豆睡觉,而我则溜达到堤岸下面去看看。上海虽然临海,居然连一处沙滩都没有,只看得到碎石和烂泥。

DSC03824

豆豆14个月

我最早最早的记忆也只到两岁左右,我像豆豆这么大的时候是个什么状况,自己一点印象也没有。可是我每次看见豆豆,都有一种感觉,好像正在看着一岁大的我自己。

豆豆成长的真快,最近新学会了很多东西。

首先是走路。豆豆严格的讲还不会走路,他踉踉跄跄的走几步还行,站着没人扶就会摔倒。豆豆站在床的另一边,我在这边叫他,他再也不会爬过来了,而是直接就走过来。有一次,大鸟阿姨来看豆豆,她不知道豆豆不会走,直接就把豆豆放在了地上。豆豆居然毫无惧色,自己就走到前面沙发那里去了,倒是把我吓了一跳。很多小孩站不稳的时候,是不敢走的;豆豆可不管,抬腿就走,摔跟头也不怕。这样的小宝尤其容易受伤,我特别担心他这一点。

豆豆说话也比较自如了,尤其是袜袜,爸爸,妈妈这三个词。豆豆最先熟练掌握的词居然是袜袜,每次脱下他的袜子,他都会说一句“袜袜”。他现在还会用“袜袜”指代身上所有的衣服,有时候想出去玩了,他就会说“袜袜”,表示要求穿衣服,然后好出去。爸爸、妈妈是豆豆最近才搞清楚的,他一度把我和老婆都叫做爸爸。

豆豆说话比我晚,据豆豆的爷爷奶奶回忆,我在14个月的时候已经掌握很多单字了。有一次爸妈带我外出去玩,拿了两个梨。一坐到车上,我就对他们说:“梨”,于是爸妈给了我一个梨。我呼噜呼噜啃了几口就把它给扔了,然后又一伸手说:“拿”。于是爸妈又给了我一个梨,我知道这是最后一个,啃到只剩一个小核了也不肯扔。爸妈最后劝我说,扔了吧,咱们一会再买。我一听,就把梨核给扔了。等过了一会,路过一个水果摊,我马上就对爸妈说:“买”。

豆豆虽然只能说几个词,但很多话他都听得懂了。比如我每次一说带他去玩点什么,他马上就会兴奋的扑过来;给他吃完饭,如果他没吃饱,奶奶说去洗碗,他就会大叫表示不满,如果说再去盛一点饭来,他就会欣然同意。我有一次抱着豆豆散步,豆豆妈在一旁,我就对豆豆说,咱们去踢妈妈几脚好不好?豆豆一听,立刻兴奋的咯咯大笑,然后就跃跃欲试的去踢妈妈。

豆豆还在妈妈肚子里的时候,我就每天给他听音乐,也不知道对于培养乐感有没有帮助。最近发现豆豆喜欢旋律简单、节奏欢快的音乐。每次一听到这样的音乐就情不自禁地手舞足蹈。豆豆最爱的歌曲是甩葱歌。

最近豆豆的第二批牙开始冒尖了。豆豆9个月大的时候长全了8颗门牙,之后沉寂了好一段时间,直到这个春节,他其它的大牙开始破土而出了。长大牙明显比门牙还要疼一些,这两天豆豆已经连续因为牙疼哭了两次了。为了帮助豆豆缓解疼痛,爷爷特地准备了冰镇大萝卜给他啃。

豆豆的2012春节

豆豆趴在大床的正中:面向左侧,右脸紧贴着床单,嘴巴在挤压下嘟成了一小团;两条腿蜷在肚子两侧,屁股撅撅着,把被子顶了个大包;豆豆右手向屁股的方向耷拉着,左手被我紧紧攥着快两个小时了。我斜躺在豆豆边上,看他安详的一呼一吸。要不是春节长假,我恐怕还很难找出这么长的时间看着他睡午觉。随着年纪变大,我明显察觉时间开始加速流逝。仿佛就在前天,老婆打来电话说她似乎有了;昨天我还在产房外焦急的等待;今天豆豆就已经开始呀呀学语了。即便是现在正握着他的小手,仍然感到有些惶恐,生怕还没享受够他带来的快乐,再一觉醒来,豆豆就已经长大要远走高飞。

我们的长假也给豆豆带来了惊喜,因为他可以出远门了,这个野孩子就喜欢往外跑。豆豆先去了无锡爷爷奶奶家,又去了济南姥爷姥姥家。无锡距离近,来回都方便;济南就相对远了些,要不是去年开通了京沪高铁,我还真不知道如何带豆豆去呢。我特别讨厌飞机,如果没有高铁,济南到上海的路程最快也要8个小时,豆豆坐这么久的车肯定会闹的。高铁把行程缩短到了三个半小时,这样的间隔,豆豆还是可以忍受的。

动身去济南那天是正月初二,火车上根本没有几个乘客。我们所在的车厢就只有两家人,我们和一对台湾夫妻。台湾阿姨一下子就被豆豆吸引住了,豆豆也会讨人喜欢,乖乖得让阿姨抱着玩了一会。豆豆开心,爸爸妈妈就有心情给他拍照了:

DSC03446
DSC03450
DSC03470

除夕那天是在无锡过得,豆豆可不管什么春节,只是夜晚不时升起的烟火吸引了他。豆豆一点都不害怕爆竹声,每次听到了还会兴奋的跟着喊一声“嘣……”。晚上才9点多,豆豆就困了,而我也早就对春晚失去了兴趣,于是把豆豆洗洗干净就陪他一起睡了。快到0点的时候,鞭炮声四起,把我们一家都吵醒了。豆豆倒是也不闹,闭着眼睛“嘣”“嘣”嘟囔了两声便倒头再睡。

这是除夕的晚上,豆豆在和妈妈疯呢:
DSC03359

这次带豆豆出来最大的担心就是怕他到了新地方会不适应,尤其是去济南,离开了每天照顾他的爷爷奶奶,不知道他会不会难过呢?结果我们惊喜的发现,豆豆是个“没心没肺”的家伙,只要有饭吃,有玩具玩,在哪都一样。

DSC03390
DSC03395

豆豆对大车情有独钟,初一带他去散步,看到一辆平板大货车,拗不过他,我只好抱他上去转了几圈:
DSC03424

姥爷家里有一只玩具大老虎,豆豆可以喜欢了,常常扑上去搂住它的脖子又亲又啃:
DSC03485

好玩的豆豆

豆豆很贪玩,玩起来可以不吃不喝不睡觉。在豆豆心目中:妈妈提供饭饭,爸爸陪玩,奶奶负责哄睡觉,爷爷是坏人。由于玩耍成了豆豆现在的第一需求,我在他心目中的地位直线上升,一举超过妈妈和奶奶,就更别提总是管着他的爷爷了。为此,我颇为得意,陪豆豆疯得更起劲了。

提起玩,总离不开玩具。豆豆刚出生那会的玩具数量很少,主要都是别人送的。他那会其实不怎么会玩,不管是什么东西,抓到就往嘴里塞。直到他大约10月大的时候,才不那么爱咬东西了。拿到一个新鲜玩意,他会首先拿在手里翻来覆去看,然后甩来甩去或是梆梆敲上一阵子,最后才放嘴里尝尝。

发现豆豆比较会玩了,我最近两个月开始大量采购玩具给他。淘宝是我的主要购买场所,我通常按照玩具的销量排序,一个一个往下看,如果遇到豆豆可能会喜欢的款式,就买来一个玩玩。在所有的玩具中,豆豆对小汽车情有独钟。他最大的享受,就是跟我一起玩小车。豆豆自己也会开小车呢:如果是惯性车,豆豆就自己推着他们在地上爬;如果是发条车,我就把发条上满,让豆豆抓在手里,然后他把小车放在地上,一松手,小车就开出去了。有时候我刚把上好弦的车递给他,他就会开心的“哈”一声;如果是遥控车,豆豆就坐在我怀里看我开。我试图教会豆豆使用遥控器,不过他显然还无法把遥控器和小车的运动联系起来。

我买的玩具里也有豆豆不喜欢的,比如前两天买的一款大鳄鱼。大鳄鱼可以“咬”人的,我琢磨着豆豆也许会喜欢,就买了一个,哪知道豆豆看了鳄鱼并不很感兴趣:递给他,他就往外推。也许鳄鱼长得不好看,又没有轮子吧。我于是想演示一下大鳄鱼的玩法,吸引一下豆豆:我抱着豆豆,把鳄鱼嘴巴掰开放在床上,然后一颗一颗的按下鳄鱼牙齿。突然,鳄鱼咔嚓一声合上了嘴巴,咬住了我的手指。我“哎呦”一声缩回手,一个劲吹气表现出很疼的样子。结果豆豆“哇”一声就大哭起来,我赶紧扔了鳄鱼,哄了他半天他才不害怕了。

豆豆另一项非常喜爱的游戏是捉迷藏。小婴儿时候的豆豆以为他看不见我,我就看不见他。所以他的藏猫猫方法就是把头藏到手绢后面或是埋在我怀里。现在他大了,已经可以理解在什么情况下我才看不见他了:只有把全身都挡住,或者我面向别的方向,才是看不见他的。不过呢,他现在的幼稚想法是:只要我看不见他,我就不知道他在哪了。昨晚,我把豆豆放在他自己的小床里,他就扶着栏杆站起来,然后扯过床边的窗帘,把自己整个罩在窗帘后面。我知道他跟我藏猫猫呢,于是就自言自语:“豆豆哪去了?”他确信我不在看他的时候,就放开窗帘来查看我的状况,而我这时通常在背对着他,一边翻箱倒柜,一边说:“豆豆上哪了?怎么找不着了?”然后慢慢回过头,一把抓住他说:“原来你藏到这儿啦!”豆豆于是得意的哈哈大笑。笑够了再扯过窗帘重来。

我偷偷观察了一下躲在窗帘后面的豆豆:他缩着个身子,尽量隐蔽好;低着头,眼睛盯着小脚丫,生怕一抬起来就会被我发现;抿笼嘴,使劲憋着笑,但有时还是憋不住,会发出噗哧噗哧的声音。我真没想到一个还不会说话和走路的小宝,可以玩藏猫猫玩得这么专业。

豆豆2012元旦的照片

这次回无锡没有带上豆豆的专用相机,只用手机抓拍了几张。

这是豆豆在新京杭大运河边看货船:
20120101454

站在河边的小树林里:
20120101458

第二天领豆豆去寻访爷爷家老屋“遗址”,顺便游览了无锡古运河。远处那座拱桥是无锡古运河的标志性建筑:清明桥
DSC00028

2011 in review

The WordPress.com stats helper monkeys prepared a 2011 annual report for this blog.

Here’s an excerpt:

The concert hall at the Sydney Opera House holds 2,700 people. This blog was viewed about 58,000 times in 2011. If it were a concert at Sydney Opera House, it would take about 21 sold-out performances for that many people to see it.

Click here to see the complete report.

豆豆的2012元旦

豆豆这个元旦过得又非常开心,我们一家人回无锡过节去了。

平时,爷爷奶奶在上海照顾豆豆,无锡的房子很久没人住了,里面落满了灰。为了迎接豆豆,奶奶特地提前一天找来钟点工打扫了房间。三个钟点工花了4个小时才把房间打扫干净。等我们到达无锡的时候,发现他们干的还挺认真的。地面上几乎没什么灰尘,于是直接让豆豆下地去爬了。

奶奶家的房子比我们现在租住的地方可大多了,豆豆可以尽情玩耍。豆豆首先参观了每一间屋子,然后选定了客厅这块空间最大的地方,开始追他的小水泥车:我把他的小车一推,跑出去几米远,豆豆就蹭蹭蹭爬过去,举起小车给我;我再朝另一个方向一推,豆豆又追过去。豆豆也会自己推着小车爬,把奶奶的地板划的一道一道的。豆豆玩腻了小车,会自己去探索周围的环境。看见有抽屉,就去拉一拉;看见有插座,就去捅一捅。紧张得我赶忙找来封箱带,把所有豆豆够得到的插座全部封起来。

豆豆会自己藏猫猫了。我陪他在客厅里玩的时候,他会突然爬到走廊里我看不到的地方去。我等他不见了,就在客厅里喊:“豆豆哪去了,豆豆怎么找不着了?”他听到我找他就飞快的从走廊出来爬向我。我就故意很惊讶的看着他说:“哎呀,原来豆豆在这儿呢!” 豆豆于是笑得非常得意。

有时候豆豆在前面爬的时候,我故意在后面张牙舞爪的吼:“我来抓豆豆啦,就要抓到了!” 豆豆就会加快速度拼命爬,我如果一把抓起他,他还会兴奋的尖叫,嗷一嗓子把在厨房里的爷爷奶奶都吓一大跳。豆豆逃跑过程中还不时停下来,回头看看我是不是已经很近了。一次,他一回身发现我就在屁股后面,吓得赶忙调头。不料用力过猛,小胳膊没有撑住大脑壳,一嘴巴啃在了地板上,气得他哇哇大哭了好一通。

豆豆食欲旺盛,看见吃的就像从没吃饱过一样。到无锡的第二天,奶奶抱着他去隔壁串门,临走时看见人家在煮红枣。大枣是豆豆最喜爱的食物之一,他看见大枣也顾不得丢人了,叽歪个脸啊啊直叫。到底混了两个枣子吃,才心满意足的回家来。我抱他去逛超市的时候,看到有卖麻辣锅巴的,我很久没吃这东西了,于是装了一小 包,并且掏出一个来尝了尝。本来超市里的物品玲琅满目,豆豆也不知道什么能吃,他也并不特别想要什么。但是看见我吃了锅巴,他的馋虫也被勾起来了,指着锅 巴“嗯嗯”两声,我居然没领会他的意思,把锅巴口袋递给了服务员去称重。豆豆一看好吃的没了,立刻不干了,冲着服务员“啊啊”大喊两声,吓得服务员赶紧把称好的锅巴递给他。无奈豆豆还不能吃这么不健康的东西,我只好又拿了个蛋糕来糊弄他,才算过了这一关。

豆豆每天上下午都要各出去放风一次。在上海的时候,每天去上医,他早就玩腻了,无锡可是个新鲜地方。爷爷家的小区比邻新京杭大运河,下了楼走两步就来到河边。豆豆一看见往来的货船就傻了眼,直勾勾看了半个小时才缓过神。沿河绿化带修得非常漂亮,有浓密的树林,有平缓的草地,有木质的小路。整个绿化带就只有我们一家人,尽管是寒冬时节,走在林间小路上仍然温馨而惬意。

走着走着,我发现路边长着一丛蒲公英,心想豆豆肯定喜欢这东西。我于是摘了一支举到豆豆眼前,豆豆还在好奇的端详着这一簇白毛的时候,我用力一吹,顿时一朵绒球化为漫天飞絮。豆豆一愣,然后立刻开怀大笑。接着就指着地上其它的蒲公英说:“嗯嗯嗯”。于是我又给豆豆采了一大把花束,直吹到我面红耳赤了方才作罢。

平时都要上班,我很少有这样的整段时间陪豆豆玩。豆豆似乎也发觉了这是个难得的机会,整个假期都缠着我不放,出去散步也必须我抱,换个人都不行。豆豆有22斤重了,真沉啊。那天逛完超市,回来的路上我看他困了,就对他说:“趴到爸爸肩膀上”。他往我身上一趴立刻就睡着了。我怕弄醒他,不敢换姿势,就这样抱着他回到家。到家时,两只手臂酸疼酸疼,就快失去知觉了。

趁着回无锡,还带豆豆回老房子的“遗址”参观了一下。无锡的老房子修建于一百年前,坐落于古京杭大运河河畔,现在的南长街附近。我一直觉得周庄、乌镇之类的景点了然无趣,主要就是因为我小时候也曾生活在这种环境中,毫无新鲜感。

为了兴修步行街,老房子几年前就被拆除了。抱着豆豆走在步行街上,我仔细端详了一下两旁的建筑。这些建筑都是仿古风格的,很多建筑并非全新,而是利用了原有房屋修葺而成。请转绿瓦依旧,远处高耸的拱桥也还在,但装着咖啡厅、西餐馆的房屋无论如何都散发不出江南古镇的韵味。记得我小时候,初冬的早上,弄堂里总是烟雾缭绕,徐徐送来无锡小笼特有的甜腻香味。这种感觉也许永远只能是记忆了:眼前煤炉不见了,早点铺子消失了,甚至连弄堂都拆迁了。

步行街眨眼就走到了尽头,这在我儿时的记忆里可是一段相当远的路程呢。那时候吃过晚饭,我率领着弟弟妹妹们出来消化食,最远也只探索至此,就不敢再走,转头回家了。现在看来,那段路程是如此的短暂。