跳到主要内容

用鼠标在波形图控件上选取一条曲线

· 阅读需 2 分钟

https://labview.qizhen.xyz/

前几天上课的时候,有同学问起,LabVIEW是否提供了这样的功能,用鼠标在波形图控件上选中一条曲线。LabVIEW还真有这样的功能,它是波形图控件的一个方法“Get Plot At Position”。这个方法能可以查看波形图上一点附近是否有曲线经过,如果有,就返回这条曲线的索引。我写了一段示例程序:

这段程序的功能是,当鼠标点击在波形图控件的某一条曲线上时,把这条曲线变粗显示。程序框图如下: image

这个程序开始先造了两条随机数据的曲线。当用户在波形图上点击时,就调用“Get Plot At Position”方法查看是否有点击在了某条曲线上。如果是,则使用“Plot.LineWidth”这一曲线的属性把曲线宽度设置为2,其他曲线宽度都只有1。

程序运行效果如下:(蓝色曲线被加粗) image

查看或添加留言

不可解问题

· 阅读需 2 分钟

这两天看到一篇算法方面的文章,提到了不可解问题。于是我自己也想了一下。我能想到的不可解问题只有一类(不知道是否还有其它类型的不可解问题?):是由无限引起的不可解。

比如这个问题“打印出所有的整数”就是一个不可解问题,因为整数是无限的,无论哪种算法都无法将其全部列出。图灵提出的The Halting Problem也是这样一种情况,由于它是一段可能被无限次递归调用的代码,因此无法判断其运行结果。

有一类问题是暂时不可解的,不可解是因为它没有被现有公理所覆盖到。这类问题一旦被发现,人们就会补全公理体系,问题就解决了。比如说哥德巴赫猜想就有可能是这样一个问题。哥德巴赫猜想还没有被证明,所以现在不能确定它是否可解,不过也许有一天人们会发现从现有所有的数学公理都无法证明这个题目,它本身可能就会变成一条公理,被加入到数学体系里去了。

查看或添加留言

豆豆一岁了

· 阅读需 3 分钟

12月6号是豆豆的生日, 不过我们为了赶在周末,提前了两天给他过。

我们给豆豆买了一个生日蛋糕,蛋糕店不肯写字,豆豆妈自己动手写上了豆豆两个字。

DSC02974

我们还特地教豆豆比划出1这个数字。蛋糕店送了个好玩的帽子,不过豆豆不是很喜欢。

DSC02994DSC03120

中午吃完蛋糕,就带豆豆去外面草坪玩。

DSC03131

豆豆爬得可开心呢。

DSC03238

豆豆是大力士,已经可以把他的大汽车搬起来了。

DSC03198

豆豆看见一个美女,赶紧凑过去亲密一下。

DSC03159

回家前,又跟爸爸疯了一阵。

DSC03177

DSC03306

虽然豆豆只能说一些简单的单词,比如爸爸、妈妈、袜袜等,但是大多数日常用语他都可以理解的。比如问他奶奶在哪呢,他就会去吧奶奶找出来。豆豆其实很爱说话的,只不过他说的话俺们都听不懂。

上午我和豆豆妈领着豆豆去取他的大蛋糕。本来是推着小车出去的,可是豆豆不喜欢坐车,非要让我抱不可,我只好抱着他。一路上,他就指着每一家路过的小店,跟我呜呜哇哇的说话。豆豆可真沉啊,出去取蛋糕,我来回抱了他差不多40分钟的时间,等回到家里胳膊就酸的抬不起来了。

豆豆现在跟爸爸可好了。我每天回家,一进门看见豆豆,他总要先大叫一声,然后就过来让我抱。然后就赖在我身上让我陪他玩。有时候我上个厕所他也要跟进来看看。

查看或添加留言

博客写些什么

· 阅读需 2 分钟

昨天和经理聊天,谈论起博客些什么的问题。不得不承认,博客的黄金时代已经过去了,现在最主要的个人网上信息分享手段是微博。可惜微博不适合我这样的人。目前,我写作的内容主要就是两类:一类是技术内容,写写我工作中想到的问题;另一类是关于豆豆的。微博完全不适合技术文章,因为我通常会考虑一个问题很长一段时间才动笔写上一大段。所以我会继续留在博客上的。

关于豆豆的内容,经理倒是提醒了我一个问题,就是豆豆的隐私。也许豆豆将来会很讨厌别人从我博客里看到有关他的内容呢。所以我打算等豆豆上学以后,就把他的内容都隐藏起来了。

查看或添加留言

对计算机病毒的免疫

· 阅读需 2 分钟

早些时候,看新闻得知今年诺贝尔医学奖得主是三位免疫系统的专家。这几天豆豆生病,我看护他的时候难免就联想到了豆豆的免疫系统是如何工作的。出于软件工程师的本能,我最后由琢磨到计算机病毒防御上来了。人的免疫反应分为两类,第一类是固有免疫,任何细菌病毒侵入之后,人体都会产生增多白细胞,加强它的活力等反应,试图杀死病原。固有免疫若不成功,第二类适应性免疫就会启动,找出病原的特征值,针对这种病原制造抗体将其杀死。现在的杀毒软件的工作方式中,人脑负责了计算机适应性免疫系统的主要工作:分析病毒的特征,制造抗体。不过我想,人类会慢慢把这些工作都交给计算机自己去做的。我想象的将来防病毒软件发展的方向是:首先让计算机具备固有免疫,杀毒软件不需区分病毒的具体类型,只要发现有异常的程序,就对他卸载,删除。再之后,就是考虑如何让计算机自己找出顽固病毒的特征和弱点,有针对性的攻击特定病毒。

查看或添加留言

豆豆发烧好了

· 阅读需 2 分钟

豆豆爷爷今天有事回无锡去了,于是我请假在家照看豆豆。豆豆上个星期五开始发烧,整整病了三天,这个星期一的早上才好。之后发现豆豆身上有很多小红点,又有点拉肚,看来豆豆是得了幼儿急疹。

豆豆生病这几天,我们怕他的温度太高,每次一旦他的温度达到39C就开始给他吃退烧药。泰诺林和美林两种药轮流吃。发烧比较厉害的时候,吃一次药,药效只能坚持四个多小时。药效一过,豆豆的手脚就开始发凉,然后体温迅速升高。好在豆豆这几天除了发烧没有任何其它症状,还让我们安心一些。

查看或添加留言

豆豆又发烧了

· 阅读需 2 分钟

早上起来,豆豆体温有点高,中午时候就已经烧到39.3度(腋下),还把上午吃的东西都吐了出来。我于是提早回家来陪豆豆。摸着豆豆滚烫的脑瓜,我多希望发烧的是自己。

中午量过体温就给豆豆吃了退烧药,泰诺林,对豆豆还是挺灵验的。豆豆深得我的遗传:体温一降到39度之下就立刻恢复淘气本性。他不喜欢奶瓶,为了给他喝水,我们只好把水放在一个大碗里吸引他喝。他喝了没几口就开始玩起来了,用手拼命拍水。看见水溅了我一身,他高兴的咯咯直笑。

由于不晓得豆豆发烧的原因,下午,我还是带豆豆去了医院。医院里的孩子们一个个都蔫了吧唧的,只有豆豆活力不减,在我怀里跟我嬉闹,一会拍拍我的脸,一会又抢我的眼镜。轮到豆豆看病时,他又一把抢过医生的听诊器不肯撒手,搞得医生哭笑不得。

验血的结果和上次发烧时一样,是病毒感染。等我们从医院回来,豆豆又饿又困,豆豆妈喂了他一会,他就睡着了。我一直坐在床头看护着豆豆,看见这张甜美的小脸,心里就会洋溢起幸福。

查看或添加留言

豆豆十一个月

· 阅读需 1 分钟

豆豆现在很喜欢模仿大人做事情。我看见我梳头,就也拿起木梳往我头上比划;看见我拧开一个瓶子盖,就也把盖子和瓶子往一起塞。

最近秋高气爽,每个周末都抱着豆豆去绿地上玩。

DSC02703

DSC02767

DSC02823

DSC02847

DSC02889

查看或添加留言

一个翻墙浏览器的想法

· 阅读需 2 分钟

最近,天朝有封堵了所有Wordpress的二级域名,导致我的博客无法在国内打开了。郁闷之下,我想到如果有人做一个自带翻墙功能的浏览器。

做个可翻墙的浏览器,在技术上应当不难。我的想法是利用p2p技术。当在国内的A电脑上,用浏览器访问wordpress,发现连不同,浏览器就查找自己保留的其它浏览器的ip地址,然后询问其它浏览器是否可以访问wordpress。假如恰好查询到位处美国的B电脑可以访问这一网址,那么A就把自己的请求加密,发给B,B解密后把请求发给wordpress,B读取了wordpress的网页后,再加密传回给A。

不过,这样一来,浏览器的主人就要承担很多不属于自己的流量,可能不会有太多人愿意承担这些额外开销。

查看或添加留言

递归调用的层次限制

· 阅读需 2 分钟

今天调试一个大程序中出现崩溃的Bug。程序不是我写的,而且崩溃的时候Visual Studio也没有给出调用链,我只好自己去定位bug。最后确定程序是在一个自调用的递归函数中崩溃的。一看到递归函数我就发愁了,它的调用深度可能成百上千,根本没法跟进去确定它崩溃在哪一层。后来经同事提示,我才恍然大悟。因为程序崩溃时Visual Studio给出了错误信息是“Stack Overflow”,所以这里最可能的问题就是递归调用层次过深,导致了栈溢出。

我还是挺喜欢使用递归的,因为写起来简单。今天真正调试了别人的程序才发现它缺点也不少,主要是不容易调试,递归层次较深的时候,很难找出错误出现的那一层。相对来说,循环中找出错误出现在哪一次迭代还是比较容易的。

至于递归深度的限制还是个小问题,如果程序正确,很少有递归需要达到那么深的层次。

我仔细阅读了一遍我调试的那段程序,果然发现它有一个逻辑错误,导致了在特定情况下递归永远达不到截止条件,以至于系统出现栈溢出错误。

查看或添加留言