喜欢聊天的豆豆

豆豆最近不像前两个月那么爱学习了,那时候我对着他说啥,他就学着我说啥。他现在更多的时候不是学我的声音,而更像是在和我对话。他虽然早就已经清楚的发出过“爸”这个音了,但是平时说的很少,更多的时候是我朝他叫“爸”,他就“哎”得答应一声:(

豆豆还是最喜欢跟我聊天。豆豆百天还是比较安静的,等我晚上下班,一见了我就开始兴奋了。然后就乌鲁乌鲁得跟我说一大堆话,虽然我听不懂他说的是啥,不过我猜他可能在问我一白天不见,我干啥去了吧:)

豆豆爱聊天,所以哄他睡觉也比较容易。豆豆很困的时候,他的爷爷或者二姨奶就会把他抱起来,一遍溜达一遍给他讲故事。他就好像听得懂故事一样,大人每讲一句,他就哼哈的答应一句。开始睁着眼睛答应,慢慢得就闭上眼睛答应,然后声音越来越小就睡着了。

前几天豆豆爷爷感冒了,别人主张把爷爷隔离,但我坚决不同意,我觉得小宝的免疫力就要从小锻炼,小时候不接触点病原体,以后会更容易得病的。不过我也没想到这个感冒病毒传染力还挺强的,家里出了我和老婆,其它4个人包括豆豆都被传上了。豆豆感冒的第一天开始咳嗽,而且是有痰吐不出来的感觉,我和老婆很犹豫要不要给他吃点抗生素。结果第二天豆豆自己就开始好转了,药也不用吃了,自己就战胜了病毒,真是个强壮的豆豆啊!

广告

用上了3g上网

前一阵子为了方便给豆豆喂奶,在老婆单位附近租了套房子。预计租期不会太久,也就不打算装宽带什么的了。可是上网已经成为我生活一部分了,离开它很多事情都办不了,于是决定搞个无线上网临时用用。

正当我准备研究一下用哪个公司的3g服务的时候,电信给我来了个推销电话,说他们正在搞活动,可以送我一个3g网卡和每月300M流量免费用一年。既然有免费的,我也就不想太多了,直接选用了电信的服务。

真是应了便宜没好货这句话,电信送的这个上网卡是我看到的最马虎的产品之一了。3G上网卡的外观像个u盘,它也带有一定量的存储单元,里面保存了它自己的驱动程序。头一次插在电脑上就像u盘一样,找到它的驱动安装,然后就可以使用了。不料,我的上网卡安装驱动后就是无法使用,好在我每天跟计算机打交道,从它的症状看,它的驱动安装不正确。于是我检查了一下这个上网卡中的驱动,发现:上网卡是A公司的产品,里面带的驱动居然是给B公司的另一款产品的。难道这个工厂同时给好几个产品代工的?后来我找了A公司的售后,跟他们换了一个上网卡,才终于上了网。

3g上网收费有两种方式,一是按流量收费,二是按照时间收费。从长远眼光考虑,用户是绝对不应该选择按流量收费的。网络应用的发展就是越来越费流量,视频,音频,高清图片会越来越多。我上了网,先跟家人来了个视频通话,半小时费了一百多兆的流量,要是按照电信送我这个卡的自费来算至少要花五六十块钱(0.5元/MB);好在我用的是按时间按收费的方式,只花了9毛(1.8元/小时)。假如我平均每天上网两小时,一个月的网费就还不到100,比我现在用的ADSL包月还便宜呢。可惜在这个垄断市场里,用户的选择权小的可怜:按时收费不限流量的套餐几乎已经停办了,就算是以前办的套餐,电信也可以随时觉得不爽就给你停了。

这件事让我联想到我工作中遇到的类似情况:我正在做的项目会自动去公司的某一服务器上服务,而这一服务是公司买了的,并且是按次付费的。照理说,我们使用这项服务越频繁就说明公司的业务越兴隆,公司的领导们该高兴才对。可惜是,这项服务按次收费,以至于服务器的管理员处处限制我们,就怕我们用多了,真别扭啊。

豆豆变成小光头了

豆豆百天的时候,我给他剃了头发。不过我们买的婴儿理发刀功能单一,不能用来剃光头,我只给豆豆修短了一下。周末时候,和老婆商量着,用剃下来头发给豆豆做个胎毛纪念品。后来上“小阿华”的网站一查,做个胎毛印章只要一百多,可以接受,于是就打了电话给他们,他们第二天就上门来了。

做胎毛印章的人上门时,我去上班了,而家里其他人都可以为了豆豆毫无理性的消费,结果就是我们被小阿华狠狠宰了一笔。他们首先说那个一百块钱的漂亮印章没货,然后拿出来的样品不是丑的要死,就是贵的要命。老婆挑来挑去越挑越贵,最后做了两个水晶印章,再加上花梨木的印章盒子,总够一千三百多块钱,比我的预算超了十倍:(

来推销的人心满意足,临走时候很热情的帮豆豆剃了个小光头。我晚上下班回家,摸着豆豆的小光头想,这个小光头还真是不便宜啊。

不过话说回来,豆豆的头型不错,剃光以后显得格外可爱。老婆当时就给豆豆拍了几张光头照:

DSC01112

豆豆发出“爸”的声音了

经过一个月的不懈努力,我终于教会了豆豆发“爸”这个音。最近,老婆天天冲着豆豆叫“妈妈”,我则冲着豆豆叫“爸爸”,我们竞赛看谁先教会豆豆。不过,教豆豆说话从来都是我的工作,不用猜也知道老婆赢不了。

这几天豆豆已经熟练地掌握了“不”这个音,于是我就引诱他在“不”后面在加一个“啊”,[bua]听起来就很像“爸”这个音了。引诱多时,晚饭时分,豆豆终于像模像样的叫了几声,虽然他还不懂“爸爸”是什么意思。

豆豆是我见过的小宝里最还说话的,从两个月大开始,每回见了我都依依呀呀说个不停。相比于语言来说,他似乎没什么运动天赋。按说三个月的小宝应该开始学翻身了,可是豆豆一点想翻身的意愿都没有。要是我把他翻过来趴着,他还会大发脾气。

最近还很担心豆豆的大便。豆豆出生后,每天大便两三次,很正常的。可是前两个星期开始,豆豆就突然改成没两天一次大便了,而且还有减少的趋势。他最近一次大便是4天前,搞得一家人都很着急。

豆豆唱歌

过完今天,豆豆正好出生三个月。豆豆自打一个月前开始练习说话,就变成了一个话匣子,逮机会就哇啦哇啦的讲个没完。前两天又教豆豆学了一个新词:“饿”,我现在每次问豆豆“俄不饿?”,他就会回答“饿”。豆豆妈对此很不满,埋怨我也不教他点好词,比如爸爸妈妈之类的。我其实很冤枉的,我发现豆豆这么小的年龄,发元音还容易些,发辅音是非常困难的。我教他带福音音节的次,他常常是抻着脖子费了老大的劲也说不出来。所以目前只能教他说一些诸如“爱”“哦”“饿”之类只有原音的词。

最近几天,豆豆有又学会连续着咿咿呀呀的叫唤了,就像唱歌一样,而且每天都唱的更熟练一些。今豆豆唱歌的时候给他录了一段录像,这是豆豆在和爸爸对唱呢:http://v.youku.com/v_playlist/f5520621o1p6.html

这里还有一段前几天豆豆和妈妈练歌的录像,看看豆豆的唱功是不是有进步啊:http://v.youku.com/v_playlist/f5520621o1p5.html

LabVIEW中LVClass数据转换成XML格式的问题

https://labview.qizhen.xyz/

前一段时间,一个同事的程序出了问题。他在程序中把一个LVClass类型的数据转换成XML格式,再保存成文件。但是从文件中把数据转回成LVClass时,却出了问题:在调用“Unflatten XML”这个函数时,程序有时出错,有时又不出错。他的程序中使用了大量的LVClass,并且它们之间有着复杂的继承与包含关系,以至于花了两三天的事件,才找出问题所在。其实是个简单的问题,只是在设计程序时他没有意识到。

我做了一个简化的程序,可以重现这个问题:

首先,给一个子类的对象设置一些数据。然后把它当做父类类型的数据,平化成XML文本,存盘:

image

关闭LabVIEW,然后重新打开LabVIEW。再编写一个反向程序,把XML数据转换成父类类型的数据:

image

发现Unflatten From XML函数返回一个错误,value中是一个空的数据。

错误产生原因如下:在把子类数据转换成父类数据类型,这个类型虽然是父类的,但其数据仍然是子类的。再转换成XML格式,XML格式中记录的仍然是子类的数据。

在反向过程中,Unflatten From XML拿到的数据是子类的,但它企图转换时,却发现内存中没有子类的类型信息,因此它也就不知道如何转换这个数据,所以报错。

如果这个程序稍微改动一下,把XML数据直接转换成子类的数据,就不会出错了:

image

实际上,子类的数据总是可以用父类来表示的。因此这个XML数据亦可以直接被转换成父类的类型,但前提是,一定要保证子类的类型别家在到内存中去了。只要在程序中放置一个子类的对象,自然就可以把子类加载至内存。像下面这个程序就可以正常工作:

image

这个实验反映出两个问题:

  1. 把XML中的内容如果是属于某个LVClass类型的数据,把这些数据转换回LVClass数据时,那个LVClass一定要已经存在于内存才行。
  2. 在之前的一篇文章“LvClass 的一个效率问题”中提到过:当子类被加载如内存时,它所有的父类也会被加载入内存。但反过来并不成立。因为一个类有哪些父类是确定的,父类的地址就记录在子类中。但一个类并不知道他会有多少子类,任何人都可以从它派生出不同的子类来,因此它在装入内存时,不可能把自己的子类也都装进来。