那是十多年前了,记不清是因为什么任务需要编程,我的领导说你去试试
labview吧,我说,怎么拼写?
他给了我一个陌生的单词“LabVIEW”
那个项目时间紧,任务重,一个程序,用VC6.0编写了很多天,才勉强实现了一个调试小框,运行起来不流畅,做为DEMO展示都勉强,更别说当做成果了,实在不行,有人建议试试C#,我们从CSDN上下载了几个程序,结合研究生时期的课题代码,十来天没怎么休息,又出了一版,效果是好很多,本来是兴高采烈的拿给领导看,没想到还是被泼了冷水,“你这也仅仅实现了局部”。
那还是下午下班的时候。
晚饭后回到宿舍,赶快就在笔记本电脑上查资料,找安装包、学习资料和例程。记得那时下载的是LabVIEW8.2版本,网上的资料很少,安装包比较大,用了3个小时,好不容易down下来,赶快迫不及待的安装、试用。因为有一定的VC编程基础,并且用过组态软件,打开LabVIEW面板的一刹那,就感觉到了难得的得心应手。前面板放置各类工程控件,按键、旋钮、油罐图、波形图、表格等等,双击一下,就跳转到后台,for、if、while、数学运算……,文本编程突然转换到鼠标连线编程,有一些笨拙,但当晚真还是high到不行,拿现在潮的话说,我是真的被这个平台get到了。以前用VC,一个波形图,上千行代码,稍不注意就错了;VC控件与工业应用相去甚远,做象形控件,做个圆锥扫描,几百行代码,都还是线条乱跑的;VC多线程难以调试,变量名称难以控制……。现在这些苦恼全没了,LabVIEW啥都有,啥都方便,除了不同数据类型需要用不同函数,比如数字和字符串,以及数组,要用各自对应的函数包,其他简直就是可以随心所欲了。
于是乎,那一夜无眠。
第二天早上,我把成果拿到办公室给同事看,几个人正在围观的时候,突然一个声音:“这个不错”,是领导也在看,我内心带着几许兴奋,但仍然念叨着“我做的不好……”。
就这样,我们7个人,琢磨了2个月的东西,因为换了一个平台,让我们的进度飞速提升,于是我迅速展开培训,给大家都教了几遍,我们分工协作,没几天功夫,项目大有成果,不仅得到了领导的肯定,我们一群人,还难得的得到了2天休息时间,大家相约去步行街,一个人失约,她发信息告诉我:“感觉空气都是自由的了”。我想是啊,如果不是LabVIEW,不知自由什么时候才能到来。
笨了很长时间,摸着石头过河
得心应手的事情,但并不一定轻松,更谈不上厉害,尤其是几个小错误,让我可能终生羞涩。
第一就是图层叠加。大家知道,前面板的控件是可以叠加的。为了形象,美观,我们甚至需要很多修饰图层。那个项目的确规模有点大,修饰图层都有好几十层,有时觉得不错了,就继续添加图层,但问题也随之而来。前期的图层或者控件不协调,需要删除了重新导入,怎么办。我当时想了一个“聪明”的办法,为了方便程控,我把修饰图层,也放在控件上,然后在后台把控件和程序一起分类,这样要修改谁,就剪贴到另外一个VI,然后复制回来就行了。我们一群人,乐此不疲三个月,最后因为我们做的不错,NI工程师说过来看看,他对我们很是赞赏,但也给了我一个小建议,“尽量使用工具栏里的图层移动功能”,那是八月酷暑,我顿时汗如雨下。殊不知,我们有时为了改一个小东西,要粘贴复制上百个控件,我还信誓旦旦的给大家说,LabVIEW没有图层整理的功能。
随着项目的增多,成果的积累,我们做的东西,不能仅仅是源代码跑起来就行了,还要拿去给别人使用。为了保护源代码,我们想到了程序发布。可问题也随之而来。那时网上没多少资料,国内熟悉LabVIEW的人也比较少,英文资料看的似懂非懂。我琢磨了几天,好不容易可以生成exe了。但别的电脑不安装LabVIEW平台,还是运行不了。制作Setup,怎么弄都不成功,硬是不知道要添加什么好,源代码,exe,一愣的往里塞。话说回来,那时的平台,自动化程度没有现在的高,的确是比较麻烦。最后还是不成,实在没办法,只好手动裁剪LabVIEW,一点点的删除,然后拷贝到其他电脑,留下最核心的库,终于,我花了几个月的时间,做了一个压缩包,把它解压到另一个电脑的指定文件夹下,exe就可以运行了!真可谓大功告成,从此,我们的成果不仅获了奖,还和几个单位签了合同,卖出去了很多套,领导带着大家举杯庆祝了好几次。实在是意义重大,什么“人生第一款第三方应用产品出炉”,什么“咱们单位卖出的第一套软件”,一系列的评价接踵而至,作为事业单位,以前都是问国家要钱,做完了发个论文,报个奖就行了。突然赚钱了,那个兴奋,真是无法言语描述。领导一开心,每人发了一百元过节费。
殊不知,现在生成一个Setup,几分钟的事情,并且网上教程,少说也有几十个版本。
转眼两年后,做的软件慢慢多起来了,对我认可的人也多了。但有一个软件,却折腾人的很。本来就是十来个功能,中文做,最后不断增加功能,程序规模越来越大,界面元素越来越多,尤其是还加了好几种语言版本,不同语言,描述的长短不一样,问题随之而来。相比于以前做的展示类软件,这个软件是应用型的,客户会安装在不同的电脑上,面对分辨率、语言以及客户左右手习惯等现实,控件的布局就尤其显得重要了。随着产品的推出,各种抱怨、投诉接种而至,有一些截图摆到我面前,简直是不忍直视。逻辑不合理、位置错乱、颜色奇怪、文字跑偏,描述起来,似乎就是几十个字,但那种痛苦,不知道有多少人经历过。因为接下来三年,我都因为要微调颜色、位置、大小和对齐,不断生产exe和setup,发布……,发布……,再发布。我几乎每天最主要的技术工作,就是午饭前发布,晚饭后发布,睡觉前发布,半夜偶尔被叫醒发布了。这种因为没有良好的UI习惯,没有人伴我而行,独自闭门造车引起的煎熬,没多少人知道有多么苦涩。这其中,真还让人感受到了一点“天将降大任于斯人也”的感觉。
我儿时是一个自卑的人,随着自己的拼搏,以及成果的取得,慢慢变得自信起来,但这件事,把我打回了原形,我意识到,LabVIEW虽然门槛低,简单易学,并且在很多方面的理解上,都能比其他平台更容易让人悟透,但如若长期独自编程,闭门造车,不去学习,不与高手交流,那自己永远就是一个让用户抱怨的“技术猿”而已!
深深的爱,且行且珍惜
能,然后不能,而后使其能。学习大抵都是如此。
看书是让人感觉酣畅淋漓的,尤其是闭门造车久了,感觉别人都不如自己的时候,看看别人的书,那真是大开眼界。每逢出差空隙,我就赶去当地的书店,买LabVIEW、UI和美学设计的图书。我喜欢的是陈树学教授的《LabVIEW宝典》,它就像一个字典,无所不包。而我最喜欢的是阮奇祯工程师的《我与LabVIEW十年》,这本书,我推崇备至。但有一个人让我推荐LabVIEW教材,我推荐了阮老师,他买到了,看了几天后,告诉我,写的不怎么样,我电话中当场发飙,并且从那以后,再也没和此人交往。因为我感觉这个人,大言不惭,实在不适合在技术领域“修行”。是的,我认为做技术就是修行。不过现在想来,我是不是过激了一点,毕竟人家是新人,没有经历我这样工作的痛苦,自然不懂作者写的奥妙。
这是一爱。
对LabVIEW的爱,还能体现在我想让它在国内发扬光大,这不是口头的,还付诸很强的行动了。我和朋友们一起,利用LabVIEW做生态,那就是结合市场上LabVIEW配套硬件品类不足,其他厂家与LabVIEW兼容性不好,使用不便,定型太差等问题,我们从USB ADIO入手,利用
STM32芯片,做LabVIEW配套硬件。别看ADIO这个产品鸡蛋大小,那可是一番心血的结晶。
没有轰轰烈烈的计划,没有伟大的规划,ADIO的出生,仅仅是因为不想面对其他公司无动于衷而给我带来的苦涩回忆。我们做的也并不高深,仅仅是利用HID协议,努力让它发挥到极致而已。但这条路,这个板子,我们整整优化了4年。亚为有一个光荣榜,记录着ADIO与LabVIEW的兼容之路上,亚为人前赴后继的努力。它硬件升级了二十余次,软件升级了数百次,大大小小,亚为人在100余个技术点上,有三十余人,为其出谋划策,为其舔砖加瓦。不为其他,只为LabVIEW在基层,在不太有经费的人手里,被用的更多,更好。
公司运营久了,烦于琐事,会让人觉得业务不前,或者管理不畅,此时,我总是习惯浏览一下NI的官网,哦,其实不是浏览,应该是看的痴迷,经常一看就是几个小时,详细了解每一个板块更新了什么,尤其是每年LabVIEW升级的时候,我会关注和测试新功能,并推荐给大家;平时给大家培训的时候,我会了解最新产品和动态;年终做公司规划的时候,我会看NI的行业白皮书,并带领大家一起学习,有时候他们介绍的内容,并不一定和我们业务相关,但我也竭尽去理解、领悟、宣传,总感觉别人能驾轻就熟、高屋建瓴,也可以让我们触类旁通。
一晃就是十多年,不是回忆,还真不在意那些苦痛,更多的,是与LabVIEW为伴,感觉到了人生的惬意与轻松。