Qizhen's profileLabVIEWPhotosBlogListsMore Tools Help

Blog


    Express VI 2 - 工作原理

    普通的子VI有前面板和程序框图。子VI前面板上的控件定义了这个子VI所使用的参数;程序框图上的代码实现了这个子VI的功能。在某个VI程序框图上,双击一个普通子VI的图标,可以打开子VI的前面板;按住Ctrl键再双击子VI的图标可以同时打开它的程序框图。

    Express VI 的行为与普通子VI有所不同:在程序框图上双击一个Express VI的图标,弹出的是一个配置对话框。应用软件中的大量普通子VI都是有程序员自己开发的,因此,他需要打开子VI的前面板与程序框图进行编辑。而Express VI通常是LabVIEW或LabVIEW工具包自带的,不需要普通程序员去创建或修改一个Express VI,因此程序员一般也不需要看到它内部的代码。一个Express VI 通常会集成多种功能,因此程序员在使用它时,需要方便的打开Express VI 的配置对话框,根据自己的需要,选则适合的配置参数。

    普通的子VI的程序框图等被保存在一个.vi文件中,而你是看不到程序中使用到的某个Express VI的.vi文件的。对于普通子VI来说,不论在应用程序的哪个地方调用它,或是哪个应用程序来调用它,所执行的代码都是相同的,就是保存在.vi文件中的程序框图。对于Express VI来说,却不是这样。程序员可以修改Express VI配置对话框中的内容,配置一旦被改变,Express VI的执行代码也会发生变化。因此,在不同的地方调用同一个Express VI运行的代码却可能是不同的。这也就决定了Express VI的程序框不不能被保存在单一的一个.vi文件中。实际上,Express VI的程序框图是被保存在调用它的VI的.vi文件中的。比如说某个VI名为A,它被保存在A.vi中。A调用了一个Express VI,B。则B的程序框图也被保存在A.vi中。只不过咱们没办法直接看到B的程序框图。

    有些Express VI是允许用户查看其程序框图的(有些不提供这一功能)。在一个 Express VI 的右键菜单中选择“打开前面板”,LabVIEW会把Express VI转换成不可配置的普通子VI,这样它就有了可以打开的前面板和程序框图。

    以“从动态数据转换”Express VI 为例(函数选板“Express –> 信号操作 –> 从动态数据转换”)。在某一VI的程序框图上放置两个“从动态数据转换”Express VI,分别命名为“数据转换1”和“数据转换2” 。对“数据转换1”Express VI的配置是“结果数据类型”为“一维波形数组”,如图1所示。

    image图1:“数据转换1”Express VI 的配置对话框

    把Express VI 转换为普通VI并常看其程序框图,如图2所示。

    image
    图2:打开Express VI的前面板,然后打开程序款图

    这个Express VI 的程序框图由一个简单的子VI构成,如图3所示

    image
    图3:“数据转换1”的程序框图

    对“数据转换2”Express VI的配置是“结果数据类型”为“二维标量数据”;标量数据类型为“布尔”,如图4所示。

    image
    图4:“数据转换2” Express VI 的配置对话框

    使用同样方法打开“数据转换2” Express VI 的程序框图,可以看到,它与“数据转换1” 的程序框图完全不同,因为它们实际上需要完成不同的功能。

    image
    图5:“数据转换2”的程序框图

    Express VI 1 - 什么是 Express VI

    LabVIEW自带的子VI中有一些VI的图标看起来与普通子VI的不太一样,这就是Express VI。大部分Express VI可以在函数选板“Express”中找到。

    从函数选板上直接就可以看出哪些VI是Express VI,它们的共同特点是图标周围有一圈浅蓝色的边框。如图1中的“时间延迟”和“已用时间”VI。

    image 
    图1:函数选板上的Express VI

    Express VI在使用时,也与普通VI有些不同。Express VI通常都配有一个配置对话框(图 2),用于设定Express VI运行时用到的一些数据,因而不必再在程序框图上输入数据。这就大大简化了程序框图。Express VI的功能通常都比一般的VI强大,某些常见的简单程序,譬如基本的数据采集显示程序,仅需使用几个Express VI就可以实现。加之使用它编程也比较简单,所以得名“Express VI(中文直译快捷VI)”。

    image image 
    图2:“时间延迟”Express VI和它的对话框

    Express VI的功能强大、使用便捷,但付出的代价是效率较低。应用程序的功能可能比较简单,但是它所调用的Express VI中却包含了大量应用程序根本用不到的功能。这部分功能既占用内存空间,又会影响程序的运行速度。所以,对于效率要求较高的程序,不适合使用Express VI。

    拼图游戏

    大鸟送了我一套纸质拼图游戏,于是这两天有个好玩具玩。尽管已经二十年没玩这东西了,不过我当建筑工人的天赋还在,不用看图纸就把所有的零件都搭起来了。实际上,现在的拼图玩具跟我小时候玩的那种已经完全不同了。现在的拼图材质大为提高,印刷也很精美,更重要的是不再需要胶水了,所有的零件只通过插接就可以牢固的拼装在一起。

    这就是我搭起来的国会山:
     image

    放在地板上看:
    image

    转个角度看:
    image

    玩具还附带了三个小模型,大风车:
    image

    帝国大厦:
    image

    悉尼港大桥:
    image

    内容补充和注释

    在本书完稿后,我仍然会坚持记录一些使用LabVIEW的经验。这些文章可以作为对书中内容的补充。此外,如果书中某些段落解释的不够清晰或详细,我也会在此针对那些薄弱环节追加一些文字。

    针对书中章节 简要说明 详文链接
    2.4.5 属性节点 介绍控件的闪烁属性 控件的闪烁属性
    编写代码时的小技巧 鼠标配合Ctrl键的妙用
         
         
         
         
         
         
         
         

    返回《我和LabVIEW》主页

    鼠标配合Ctrl键的妙用

    LabVIEW中有众多的快捷键,这些快捷键可以大大加快编程速度。不过记住这些快捷键本身也是个挑战,比如说我吧,我只能记住几个最常用的快捷键,比如 Ctrl+C,Ctrl+V 等。我编程序主要还是依赖鼠标,单一个鼠标应付各种工作还是显得有些吃力的,编程速度可能没有熟练使用快捷键那么迅速。编的程序多了,不经意间就发现了一些鼠标配合Ctrl键的妙用,于是就把最有用的几种用法记录下来了。

    复制对象

    在前面板或程序框图上选中一个或多个对象(控件、接线端、函数等),然后拖动鼠标到另一个位置。这时如果按下Ctrl键,光标的箭头旁就会出现一个加号,表示这时的操作变成的复制,而不再是移动对象了。先松开鼠标,再松开Ctrl键,就会在光标的新位置上放置一个选中对象的副本。这种复制对象的方法比使用 Ctrl+C,Ctrl+V 还便捷。这个方法还可以复制一些使用 Ctrl+C,Ctrl+V 无法复制的对象,比如对控件的属性节点和调用节点。

    image
    图1:按下Ctrl键,用鼠标拖动一个对象

    image
    图2:生成了被拖动对象的一个副本

    先按下Ctrl键,再按鼠标选中一个对象,然后拖动它,也可复制这个对象。先按下Shift键,再按鼠标选中一个对象,然后拖动它,也有特定的功能。它可以使得对象只在完全水平或者垂直的方向上移动一个对象。如果同时按下Ctrl和Shift键,再按鼠标选中一个对象,然后拖动它,就是把前两项功能合用:在当前对象的正上下或左右方复制一份新对象,这有利于直接编写出整洁的代码。

    拓展程序框图空间

    有时候编着编着程序,就发现,需要在当前程序框图的某处插入一些额外的代码,而这里已经挤满的节点,在没有额外空间容纳新节点了。这时,可以按下Ctrl键,再在需要放置新代码的地方按下鼠标,拖动鼠标拉出一块矩形区域。松开鼠标,程序框图会自动把代码向周围拖动,空出这块区域用于放置新代码。

    比如图3中的程序,需要在程序最中央位置,“Play One”常量的左侧腾出一块控件放置新代码。这时,按下Ctrl键,再在这一位置点击鼠标左键,然后拖动,拉出合适大小的一个方块。松开鼠标,这个方块的位置就空出来了,原来的代码被挤到旁边去了(图4)。

    image
    图3:按下Ctrl键,用鼠标在需要插入代码的地方拖出一个方块

    image
    图4:腾出空间后的程序框图

    直接打开子VI的程序框图

    在程序框图上,鼠标双击一个子VI,会打开这个VI的前面板。实际上,对于子VI来说,我们通常不关心它的前面板,而是需要查看它的程序框图。如果按住Ctrl键,再双击程序框图上的一个子VI,就可以直接打开这个子VI的程序框图了。

    调换函数输入参数的连线

    图5中程序有一个加法函数,它的两个输入数据线相连。但是这两条线出现了交叉,如果能交换一下它们的位置,程序会显得整洁不少。这时,先把鼠标移动到加法函数的输入参数接线端上,再按下Ctrl键,光标会变成一个倒着的“&”符号的形状。松开鼠标,这两个输入端的连线就会交换位置,交换位置后的程序如图6所示。这个方法只对有两个输入参数的函数有效。

    image
    图5:准备交换加法函数两个输入数据连线的位置

    image
    图6:交换位置后的程序框图

    翻看选择结构、事件结构、层叠式顺序结构的页面

    以选择结构为例:它每次只能显示一个页面,也就是一个条件处理分支。如果需要查看下一分支或上一分支的代码,可以把光标移动到条件结构内部的空白处,按下Ctrl键,然后滚动鼠标滚轮。每滚一下,条件结构就会切换显示一页。

    《我和LabVIEW》内容介绍

    本书特点

    近几年,随着LabVIEW在中国的普及,市面上与之相关的书籍也越来越多。不过它们多以介绍LabVIEW的函数、VI的功能为主。比如,列举一个VI的功能为何,它的参数有哪些,表示什么含义等。而本书则更加侧重于介绍如何解决问题,比如针对一个具体的编程问题,本书会介绍LabVIEW中有哪些可以实现的方法,各自优缺点是什么。

    本书的内容都是我在学习和使用LabVIEW过程中积累的经验。受写作时间和个人能力的限制,本书并没有覆盖LabVIEW所有细节内容和功能,也没有详细解释书中所使用到的LabVIEW自带VI或函数的参数设置及用法。不过这些内容在LabVIEW的帮助文档中均有详细介绍,所以在阅读本书时,若对某些具体的函数有疑问,可以打开LabVIEW,查阅相关的帮助文档。

    内容选取

    在写作本书前,我陆续在博客上发表了多篇关于LabVIEW编程的文章。本书大约有三分之一的内容直接选取了博客上的内容。在把它们编辑成书的过程中,我又对它们进行了重新编辑和扩充。博客文章在介绍某些知识点时,面向的是是有经验的LabVIEW程序员,所以讲解并不详细。在本书的写作过程中,考虑到LabVIEW初学者也可能参考本书,所以对知识点的介绍更加细致。书中其余三分之二的内容则是完全新写的。

    在具体选择书中内容时,主要偏重如下几部分:

    LabVIEW中最常用的功能。本书所介绍的内容都是LabVIEW编程者最经常使用到的功能。随着LabVIEW版本的更新,其功能也越来越多,有一些功能是极少被使用到的。这些偏僻的功能对于大多数读者帮助不大,所以本书也未做讲解。况且,目前市场上已经有过多本比较详细介绍LabVIEW控件、函数使用的中文书籍,本书就没有一一详细介绍这方面的内容。

    LabVIEW学习过程中的常见问题及易犯的错误。我曾经作为LabVIEW高级课程的讲师,给客户讲授过LabVIEW的课程,也经常在博客、论坛或通过Email解答过LabVIEW使用者们的一些疑问,在公司内部,也经常检查和指导新员工改进他们编写的LabVIEW程序。在这一过程中,我发现有些问题在LabVIEW初学者中出现的频率相当高。指正这些通病可能会使更多读者收益,所以本书有相当部分篇幅用来讲解这方面的内容。

    我个人所擅长的领域。为了保证本书的质量,本书所介绍的内容都属于我比较了解的范畴。而我平时接触不多、没有太多实际经验的部分,则不是本书涉及的范围。

    尽量不重复LabVIEW帮助文档中的内容。LabVIEW的帮助文档应当是最全面、最权威的LabVIEW工具书,它记载了LabVIEW中每一个函数、VI的使用方法,每一个对话框上的内容……对于这些可以在LabVIEW帮助文档中直接查阅到的内容,本书就不再重复描述了。那些LabVIEW帮助文档中没有涉及到的内容,如LabVIEW程序设计的原理、原则,如何选取最适合当前情景的编程方法,编程时的注意事项,LabVIEW的学习方法等等,才是本书着重介绍的内容。

    列举实际案例。在介绍LabVIEW的功能和用法时,书中会配合编程实例进行讲解。

    LabVIEW版本

    书中介绍的LabVIEW功能和编程方法,是以LabVIEW 8.6专业版为范本的。这是在本书写作时LabVIEW的最新版本,也将是今后一段时间内,使用最为广泛的LabVIEW版本。本书侧重介绍的是那些最为常用的功能,所以书中绝大部分内容同样适用于更早版本的LabVIEW。

    当本书出版时,也许更新版的LabVIEW已经面世了。但是,LabVIEW的编程思想不会有任何改变,并且新版本的普及也需要较长一段时间。所以即便读者使用的是新版本的LabVIEW,同样可以使用本书作为学习LabVIEW的参考书。

    如果新版本的LabVIEW有较大改进,导致本书介绍的内容不再适用时,我将会在个人博客中,及时更新,进行详细的解说。

    插图和示例

    为本书编写的示例和以及在书中截取的大部分插图是在LabVIEW 8.6中文版下编写和截取的。但受条件限制,有小部分示例和插图是在旧版本的LabVIEW,或英文版的LabVIEW中制作的。书中部分插图在Windows XP系统下截取,部分在Windows Vista系统下截取。因此,书中不同截图窗口风格可能略有不同。

    受篇幅的限制,本书一般只收录一些关键设置和程序关键部分的截图。没有收录的程序框图,读者在学习本书时可以自己尝试编写,也可以直接下载本书的示例辅助学习。本书所用到的全部示例,包含插图中出现的VI,都可以从网上下载到,具体下载地址可参考我博客中的链接。

    更正和注解

    受本人水平所限,在编写此书的过程中难免会有疏忽和差错。在此,诚挚希望各位读者及时批评指正书中纰漏,也欢迎读者就书中内容进行讨论。对本书的任何意见和建议都可以直接发表在我的博客中。

    本书出版之后,我会继续对其进行维护,包括修订错误、补充相关内容、回答读者疑问等。所有相关的更新也都会及时发布在我的博客中。

    相关链接:
    搜索书中内容(以后添加)
    本书详细目录(以后添加)
    《我和LabVIEW》主页

    控件的闪烁属性

    今天在MSN群上看到有人讨论这个属性,于是自己也研究了一下。以前还真没用过这个属性。

    设置了闪烁属性后,程序在运行时,控件的颜色会不断变化。比如说一个文本框控件,它的底色会不断的在白色和红色之间切换。控件不停闪烁可以引其别人注意,在程序中,正好可以利用控件的这一特性进行报警。界面上,如果某一控件的值超出了预定范围,让它闪烁起来就可以提醒用户注意了。

    image
    图1:当旋钮的值超过50时,设置其闪烁

    image
    图2:当旋钮闪烁时,它的指示标志会不断切换颜色

     image
    图3:在LabVIEW选项对话框中的前面板页面上,可以设置闪烁的频率;在颜色页面上可以设置闪烁的颜色

    下载示例:http://bbs.gsdzone.net/showtopic-482.aspx

    LabVIEW论坛、博客和群

    如果在学习过程中遇到问题,可以考虑通过互联网来寻求帮助。把相关的问题张贴在相关的论坛或高手博客上,便可得到别的的帮助。

    论坛

    论坛网址 论坛名称 注释
    http://forums.ni.com/
    http://forums.ni.com/ni/board?board.id=2170
    NI官方论坛
    NI官方中文论坛
    这个论坛活跃程度很高,并且时常有NI的技术支持和研发工程师来回答问题。论坛有专门的中文讨论区,但如果自己英文尚可,最好是去英文讨论区提问。英文讨论区人气更旺,更容易获得帮助。
    http://forums.lavag.org/ LAVA
    (LabVIEW Advanced Virtual Architects)
    这是官方之外最大的LabVIEW社区,也是寻求帮助的好地方。该网站没有官方背景,讨论起来可以更自由些,但这里只能用英文讨论。
    http://www.vihome.com.cn/bbs/ 测量与测试技术交流社区 这是目前最活跃的中文LabVIEW论坛。
    http://www.gsdzone.net/community.aspx 图形化设计LabVIEW社区 新开张不久,但是得到了NI官方的大力支持。应该非常有潜力
    http://www.cpubbs.com/bbs/forum-4-1.html CPUBBS论坛  
    http://bbs.avrvi.com/thread.php?fid-8.html AVR与虚拟仪器  
    http://forum.simwe.com/forum-25-1.html 仿真科技论坛  

     

    MSN和QQ群

    群地址 群名 注释
    msngroup7773@hotmail.com LabVIEW MSN 群 把它加为MSN好友即可。在它上面讨论问题最大的好处是可以即时得到回应。在群上发言,所有在线用户都会即时收到信息。

     

    博客

    (注释内容引自“虚拟仪器技术文摘”博客

    博客网址 博客名称 注释

    http://ruanqizhen.spaces.live.com/

       
    http://labview7i.blog.sohu.com/   第一次查有关LabVIEW的博客就查到了这里,以前是在ednchina的,现在搬到了sohu;对于LabVIEW的感情很深,去年的NI Days上也有幸见到了真人,非常和蔼的一个LabVIEW老“粉丝”,里面的内容可能会觉得没有阮大侠的那么技术,却更有人情味。
    http://tm.eefocus.com/myspace/blog/indexx.php?bid=43958   国内某LabVIEW大牛的技术博客,里面对于LabVIEW编程技巧有很多很细致深入的探索。
         
         

     

    返回《我和LabVIEW》主页

    初读《大话设计模式》

    昨天把新买的《大话设计模式》翻了一下,发现它在介绍面向对象编程时居然使用了和我同样的例子。我在《我和LabVIEW》中使用的一个例子是编写程序让一只小狗叫一声,再让一只小鸡叫一声;《大话设计模式》是让小狗和小猫叫一声,而它又注释说这个例子改变自《编程的奥秘》一书。看来大家的想法经常是会有类似的。这本书的作者也是先在博客上发文章,受到大家欢迎后才整理成书的。
    初看《大话设计模式》这本书,觉得他写的还是相当不错的。我以前买过两本设计模式方面的书,不过它们都是理论性太强,看起来太累,所以都只看了一点就放弃了。新买的这本书一是语言比较通俗,二是讲解方式增加了不少娱乐性,读起来没那么枯燥了,这次终于有希望把设计模式看完了。

    《一生的理财功课》读后感

      这绝对算不上一本优秀的书,所以没几天我就把它翻看完了。书中主要是在介绍一些基本的经济知识,没什么作者的创新思想。不过看完一本书能想明白一两个问题,也算是没白看了。我看完这本书,唯一想明白了的一个问题就是“通货膨胀对富人的影响大还是对穷人的影响大?”。
      我以前只粗略的想过:通货膨胀就是钱贬值,富人比穷人钱多,所以通货膨胀对富人更不利。不过读完这本书,重新考虑一番,才发现通货膨胀其实是劫贫济富。现实生活中是这样的:穷人稍微有点钱就去存款,然后银行把穷人的钱再拿去借给富人。所以,现金和存款主要是属于穷人的,一旦通货膨胀,穷人会更穷。单算现金的话,富人通常是欠债的,一旦通货膨胀,他们就可以少还债了。富人的资产主要体现在其拥有的房地产、股票、实业等方面,这些资产并不会受通货膨胀影响而贬值。

      我上次去书城的时候,正好看到这本《一生的理财功课》摆在一摞书最上面,所以就顺手买来了。最近业余时间充裕了,所以今天又逛了一趟书城,买了两本书来看,都是专业相关的。一本《算法导论》,一本《大话设计模式》。可是不知道有没有毅力把它们都看完Embarrassed

    《我和LabVIEW》的写作过程

      我刚踏上工作岗位不久,父母就鼓励我把日常工作中的经验教训和心得随时记录成文。一来可以总结经验教训,二来可以与人分享。当时我总觉得自己经验有限、文思笨拙,又加之比较懒惰,所以迟迟没有行动。

      大约三年前,公司几个同事鼓动我一起写书,赚点外快。我们对当时市面上的LabVIEW书籍以及它们的销售情况都进行了分析。结论是,撰写LabVIEW方面的书籍,并不会取得很好的经济收益。所以几个同事渐渐对写书失去了兴趣。不过,对于我来说,最大的吸引力在于写书带来的成就感。因此我并没有马上放弃这个念头,开始认真研究写书的可能性。
      真正动笔尝试写书的时候,我才发现自己写作的进度太慢。我需要一边构思内容,一边编程调试,一边写作。每星期也只能写一千字左右,照这样进行下去,不知猴年马月才可拼凑成册。
      通过这次尝试,我清楚地意识到了自己的不足。于是改为从短片文章写起,先锻炼自己的写作能力,同时积累素材。我开始不断地把自己平时的一些想法记录下来,并发表在个人博客上。这之后,又有几次同事或者出版商和我联系讨论写书的事项,而我都觉得自己准备还不充分,没有参与。

      2008年夏,北航出版社的胡晓柏老师,给我展示了他们的一个出版计划。我觉得他们的计划和设计非常好,如果能参与其中也不错。而我太太此时也积极鼓励我,于是我又动了出书的念头。虽说当时写博客只有两年多,积累的文章还不算丰富,但我觉得第一次写书也不必过分追求完美,不需要一下子就写部大著作出来,先把一部分经验总结出版,也是个不错的开端。
      写博客时,可以随兴而写,想到什么话题,就写什么话题。写书虽然不要求面面俱到,但至少也应该前后连贯。所以,虽然这本书的名字还继续沿用了我博客上LabVIEW文章系列的名字《我和LabVIEW》,但其大部分内容却是全新的。
    这次写书的难度和工作量大大超过了以往写博客。由于只能利用个人的业余时间进行写作,我不得不放弃了大量看电视、打游戏、上网吹牛聊天的时间。跟出版社签订了合同后的头三个月,我干劲十足,一口气写完了全书近一半的章节。但是随后,由于赴国外出差,比较忙碌,加上工作任务繁重,渐渐感到心力疲惫,写作进程一度十分缓慢。在接下来的两个月,我只写完了一章,眼看就赶不上交稿日期了。但想到我出书的心愿终于可以达成,我于是重新打起精神,再接再厉,又用了三个月时间,完成了书中其余章节。又反复检查和修改了两个月,最终定稿。

    写书过程中大事记:

    返回《我和LabVIEW》主页

    《第十三楼》观后感

    最近虽然工作时间还是一样忙,不过下班总算不用再写书了,所以一下子轻松不少。终于可以安安心心的看几部电影了。电影中我最喜欢看的是科幻电影,我喜最欣赏想象力丰富的故事,科幻电影通常都充满各种奇思妙想。昨天看了一部影片叫做《The Thirteenth Floor》的电影,中文翻译为《异次元骇客》或《第十三楼》。

    电影中的男主角是一家软件公司(公司在一栋大楼的第13层)的技术骨干,跟着老板一起开发了一套游戏软件。游戏玩家可以身临其境的进入到1937年的世界中,游戏中每个人物都和真实世界的一模一样:有感情、有思想。公司老板是第一个开始尝试此游戏的人。他在不断往返于真实和虚拟的世界的过程中,发现了一个不应被他知道的秘密。他深知此秘密事关重大,自己可能因此而被灭口,于是在虚拟的1937世界中,给男主角留下了一封信。之后,老板果然被杀,男主角为了找到真凶,进入了虚拟的1937世界。

    俺们软件行业有句著名的话:“Software has bugs.”。电影中主角和他老板编写的这套虚拟游戏也同样充斥着各种漏洞,最糟糕的是其中一个漏洞被1937虚拟世界中的一个酒店职员发现了。这位店员是个聪明人,并且与进入游戏的老板有过接触。经过一番对漏洞的调查和研究,店员得出结论:自己是被虚拟出来的,他周围的一切都是虚幻的。哪一天,真实世界中的计算机电源插头一拔,他就会和自己的世界一起消失。虚拟世界的店员在知道真相后非常痛苦,对这一虚拟世界的制造者充满了怨恨。当他发现了进入虚拟世界的男主角后,就和他角争吵起来,甚至打算杀死男主角。

    “世界是虚拟的,虚拟世界中的人物也可以发现真相”,这就是老板留给男主角的信息。死里逃生的男主角在返回自己的世界后,开始循着老板留下的提示去调查,终于发现了这个“真实”世界的漏洞。他痛苦的意识到,自己所处的世界也是被虚拟出来的,不过是另一世界玩家的一场游戏。
    什么是幸福?幸福就是无知!

    《生活随笔》目录

    重新整理了插图

    弄了三天,终于把书中所有的图片都转存成了TIFF格式的文件,正好顺便统计了一下书中图片的数量。书中共有692幅图片,其中623幅是带标签标注的图片。不带标签的图片或者是尺寸非常小,就直接嵌在文字中间;或者是图片嵌在表格中,而表格是有标签的。

    《我和LabVIEW》的写作过程

    重新截取书中插图

    本以为交稿就万事大吉了,结果才没轻松几天,就又要忙了。今天收到编辑的信说书稿中图片分辨率太低,需要重新截取。虽然打开word文档看那些插图还蛮清楚的,但放在排版软件中就非常模糊了。估计是因为常用的排版软件和word文档的兼容性不好,在格式转换时,图片质量损失严重。我现在只好再把所有插图重新存为TIFF-无压缩RGB格式的文件。
    我书中插图量特别大,至少四五百幅。天啊!这下有的忙了。
    把编辑给我的建议分享一下,也许以后大家写书用得上:
    “拷屏键然后粘贴到Word中的插图,采用的PNG格式。虽然在Word中,可以很清楚的看到这个图片,在打印机上打印也是清楚的,但用到出版社和后面的出片,就很容易产生图片模糊的情况。出版社一般使用的都是方正书版、方正飞腾这样的专业排版软件,与Word这样的字处理软件有很大不同。最好是保存图片的时候选择“TIFF文件”,且“子格式”是“未压缩的RGB”。TIFF格式是图片质量最好的一种格式,且可以跨平台使用,是出版上的首选格式。”

    《我和LabVIEW》的写作过程

    《我和LabVIEW - 一位NI工程师的十年编程经验》

    本书尚未出版,预期八月底面世。这里是本书相关的链接(正在建设中)。

    预计《我和LabVIEW》出版的时间

    昨晚收到编辑的回复。他们收到稿件之后先要编辑加工,需要一个多月时间;然后排版,需要近两个月;然后校对,印刷,出版。等这本书上架,最快也要八月底了。

    《我和LabVIEW》的写作过程

    第一次拿到稿费

    这篇文章本来应该两个月前写的,不过那时候正绞尽脑汁的写书,其它什么都写不出来了。但如此有意义的事件,一定要纪念一下,所以今天补写。
    《今日电子》杂志的编辑在我博客上看到了几篇有关招聘的文章,非常感兴趣,向我约稿。于是,我就把相关的内容重新编排整理后在这本杂志上发表了(文章链接)。几星期后收到稿费,居然有将近900元,大大超出我的预期(我以前发文章都是没收入的,所以以为一篇文章稿费能有两三百块就很不错了)。于是,我立马臭屁起来,跟老婆吹牛说:我以后就算失业了,每星期写一篇文章也够糊口的。
    不过,吹牛归吹牛。实际上,我觉得现在单纯靠稿费为生是越来越难了。
    从前,发表文章的门槛是非常高的。因为传统传媒的成本相对较高,他们必须通过限制传播内容的数量来保证其质量,以维持收支平衡。那时候,没点文学功底或极强的专业知识,是不可能指望赚取稿费的。但是,一旦你跨进这个门槛,业界认可了你的水平,再发表个文章就会变得非常轻松,完全可以靠稿费来生活。
    网络的出现颠覆了这一切,尤其是 web 2.0 时代到来之后,个人发表文章,除了写作本身之外,几乎不再需要任何其它成本。个人发表作品的门槛一下子消失了。假如没有网络和博客,我是不可能开始写作的。因为我开始水平很差,写出来的东西不会被报社认可,不能发表也就失去了写作动力。但现在不一样了,就算没有出版社愿意发表我的烂文章,我至少还可以在个人博客上发表。写了文章就会有读者,有了读者就有了动力,这样坚持写几年,水平提高了,也就有可能在报刊上发表文章了。
    发布成本的降低使得人人都有可以当一把作家,业余写手们开始逐渐侵袭了专业作家们的领地。以娱乐小说为例,早几十年,能在报刊上发表武侠言情小说的也就只有区区可数几个人,于是金庸、琼瑶红透了大江南北。而现在呢,随便去个文学相关的网站都能看见一堆堆的由业余作家们创作的小说。我无聊的时候也曾浏览过其中几部,个人觉得其中不乏比精品,可读性绝不输于射雕、还珠等作品。但是,今后娱乐作家们很难有人再达到金庸、琼瑶这样的知名度了,因为现在类似的小说多如牛毛。可供读者选择的实在太多,哪一部作品都吸引不了太多人,也没有哪个作家可以再靠这些娱乐小说赚取曾经丰厚的利润了。写作这个行业的整体利润应该没有下降,只是竞争变得激烈了。以前,写过几部好作品,就可以一辈子吃老本,而现在一旦江郎才尽,立刻就会被读者遗忘。
    网络给职业作家们带来的主要是压力,而给业余写手们带来的却更多是机遇。作为业余写手的我,则要格外感谢互联网为大家带来的便利:)

    《生活随笔》目录

    终于交稿了

    五一放假前终于把书稿寄给了出版社,心情一下子轻松了很多。
    最初计划写书是从去年7月份开始的,到现在整整十个月的时间。这段时间里,写书占据了我大部分的业余时间,以至于平时上网发帖聊天的时候都不安心,生怕耽误了写作进度。交稿的前两周尤其紧张,担心书稿中错误太多。我甚至还发动了老婆和老爸来帮我检查书中错别字。
    在我看来交稿和发布软件的过程有一点挺类似的。我们这个行当有句俗语:“Software has bugs”。,写书也同样难以做到完美,。至今每次读自己写的东西也仍然总是觉得它还可以修改一下,写得更好。但是,改进不能没完没了,否则这本书永远也见不到读者。凡是我发布的软件,我都会负责维护的,出书也一样。虽然这本书里离出版可能还有几个月的时间,不过我打算接下来就开始准本准备它发布后的维护工作了。我会在博客上给它建一个页面,把书中用到的示例、勘误、补充信息等都连接链接在其中。,以后也可以通过这个页面跟读者交流。

    《我和LabVIEW》的写作过程

    书名确定了

    我除了在博客上邀请大家给书名提意见,还在论坛上也发了一个贴:http://www.vihome.com.cn/bbs/viewthread.php?tid=13340&extra=page%3D1

    最后结果是《我和LabVIEW》这个书名受到的欢迎度远高于其它选项,也可能有大家习惯这个名字的关系。我打算就采用这个最受大家欢迎的书名了。

    非常感谢每一位为我提出意见的网友!有些网友喜欢的可能并不是这个名字,非常遗憾。不过我这些书名还可以为后来者提供参考,说不定不远将来就有以其它几个选项为名的书出现了。

    《我和LabVIEW》的写作过程

    帮忙给我的书起个名吧

    经常浏览我博客的朋友可能都知道,我最近在忙着写一本关于LabVIEW的书。书的风格和我写的博客文章差不多,只不过更加系统和全面些。现在书已经写的差不多了,只剩一个章节还没写。再有两个月交稿,接下的时间主要用来审阅。还不清楚我这本书由来的,可以参考这个链接:http://ruanqizhen.spaces.live.com/Blog/cns!1pU-rgQVTuuWM1TX8W8PfmDA!1073.entry

    现在要开始正式考虑给书定名了。下面列出的是我觉得比较靠谱的几个书名。它们中有一些是我自己想的,有些是网友给我建议的。这之中有些名字比较直观,有些委婉一点,有的是故弄玄虚来勾起读者好奇的。我想听一下大家的意见,书名受欢迎,可以直接提高销量啊:)

    备选书名如下:

    • LabVIEW 编程艺术
    • LabVIEW 编程专题集锦
    • LabVIEW 高级编程技巧与实例
    • LabVIEW 编程思想
    • 我和 LabVIEW - 我的十年编程经验
    • 来自土星的编程技巧 - 和我一起学习LabVIEW
    • 学会土星话编程语言 - LabVIEW

    这里需要解释一下“土星”的由来。现在网上流行火星文,所以我就搞个土星话出来啦:) 固然这是一个谐音:土星话 - LabVIEW是“图形化”编程语言。起名土星也因为土星是LabVIEW 8.6的乳名。公司给新一版的LabVIEW定名,和我给我的书定名一样,都是开发工作已经做了一大半了,才开始考虑。在LabVIEW没发布之前,谁也不知道它将来会是8.1还是8.2、9.0或者2009。但是在开发过程中他总要有个称呼吧,所以每个LabVIEW在发布之前还有个小名,LabVIEW 8.6发布之前就叫“土星”。我的书中的内容是针对LabVIEW 8.6来写的,所以就把这本书跟土星扯上关系了。

    《我和LabVIEW》的写作过程