Skip to main content

后记、致谢

后记

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

2006 年,公司几个同事鼓动我一起写书,赚点外快。我们对当时市面上的 LabVIEW 书籍以及它们的销售情况都进行了分析。结论是,撰写 LabVIEW 方面的书籍,并不会取得很好的经济收益。所以几个同事渐渐对写书失去了兴趣。不过,对于我来说,最大的吸引力在于写书带来的成就感。因此我并没有马上放弃这个念头,开始认真研究写书的可能性。

真正动笔尝试写书的时候,我才发现自己写作的进度太慢。我需要一边构思内容,一边编程调试,一边写作。每星期也只能写一千字左右,照这样进行下去,不知猴年马月才可拼凑成册。

通过这次尝试,我清楚地意识到了自己的不足。于是改为从短片文章写起,先锻炼自己的写作能力,同时积累素材。我开始不断地把自己平时的一些想法记录下来,并发表在个人博客上。这之后,又有几次同事或者出版商和我联系讨论写书的事项,而我都觉得自己准备还不充分,没有参与。

2008 年夏,北航出版社的胡晓柏老师,给我展示了他们的一个出版计划。我觉得他们的计划和设计非常好,如果能参与其中也不错。而我太太此时也积极鼓励我,于是我又动了出书的念头。虽说当时写博客只有两年多,积累的文章还不算丰富,但我觉得第一次写书也不必过分追求完美,不需要一下子就写部大著作出来,先把一部分经验总结出版,也是个不错的开端。

写博客时,可以随兴而写,想到什么话题,就写什么话题。写书虽然不要求面面俱到,但至少也应该前后连贯。所以,需要补充大量原来在博客上没有提及的知识点。这次写书的难度和工作量大大超过了以往写博客。由于只能利用个人的业余时间进行写作,我不得不放弃了大量看电视、打游戏、上网吹牛聊天的时间。跟出版社签订了合同后的头三个月,我干劲十足,一口气写完了全书近一半的章节。但是随后,由于赴国外出差,比较忙碌,加上工作任务繁重,渐渐感到心力疲惫,写作进程一度十分缓慢。在接下来的两个月,我只写完了一章,眼看就赶不上交稿日期了。但想到我出书的心愿终于可以达成,我于是重新打起精神,再接再厉,又用了三个月时间,完成了书中其余章节。又反复检查和修改了两个月,最终定稿。

本书在 2009 年首版发行之后,几年内又多次增印和改版。但是 2012 年秋天开始,由于工作变动,我失去了使用 LabVIEW 的授权。之后多年我都无法再更新本书中的内容,本书在 2014 年最后一次增印后就没再印刷了。直到 2020 年,NI 发布了 LabVIEW 的社区免费版,我才有机会作为业余爱好者再次使用 LabVIEW。2021 年,在得到北航出版社的支持后,我把本书的全部原稿公布在 GitHub 网站,希望这样可以帮助到更多的人。今后我会利用业余时间继续对书中内容进行维护更新。

这里是个彩蛋。我写了一个写诗的小程序,给大家娱乐一下:http://www.qizhen.xyz/

制作电子书

当我开始考虑把这本书发布到网上的时候,我还没有任何制作网站的经验。只是考虑到,我的网站不需要任何花哨的功能,只用来分享文字图片等内容,应该不是太难做,可以边学边做。

首先要考虑的是网站放在哪?当时有两个主要的选择方案:一是租一个云服务器来假设网站;二是直接利用 GitHub 的网页服务。二者我都研究了一下,都是基本可行的方案。租用域服务器的好处是可以租国内服务商的机器,不用担心网站被墙,而且有了服务器的控制权,任何功能都可以实现,不用担心有限制。我最终放弃了这个方案的原因是,我不想自己维护网站,毕竟精力有限,我需要专注在内容制作上。GitHub 的网页服务是理想的网页搭建平台,我唯一有些担心的是 GitHub 服务器是在墙外的,这就有被墙的风险。

选好了网站服务,下面就开始制作网页了。最开始,我也不知道有什么工具可以帮我的,所以,就直接打开 Notpad 写 HTML 和 JavaScript, JavaScript 还是现学的。最直接的做法当然是把书的每一页写成一个 HTML 文件。但是 HTML 格式可不是设计来给人阅读的,文档一旦做成 HTML 格式就很难维护了,新写一个 HTML 文档也是很麻烦。于是,我采用了时下比较流行的做法,把所有文本内容保存为 Markdown 格式(*.md)。 Markdown 格式是纯文本格式,使用了少量特殊字符来表示文本的排版样式。它不支持复杂的排版,但这些基础的格式恰好最适合用于展示技术文档。是我的理想选择。有现成的 JavaScript 库可以把 Markdown 格式的文档渲染成网页。这样,一个电子书网站的核心功能就有了。

可是,再想增加点什么功能,工作量会越来越大。比如,我想要一个站内搜索功能,可是自己没有能力做到了。这时,我已经对制作电子书有一定了解了,尤其是发现了原来市面上是有很多工具可以帮助制作电子书的。我尝试的第一个电子书制作工具是 Docsify。 Docsify 是一组 JavaScript 库,这其中包含了很多第三方制作的插件。它的工作原理与我自己制作的网站极其类似:把服务器上的 Markdown 格式的文档传递到读者的浏览器,然后渲染成一个页面。不同之处在于它的功能强大多了,使用也方便。比如要个搜索框,要个状态条什么的,再配置文件里写上一条就有了。我对 Docsify 的功能非常满意。然而,它还是有一条让我无法忍受的缺陷:对搜索引擎的支持非常糟糕。使用 Docsify 建立的网站,网站上保存的都是 Markdown 文件,并没有 HTML 格式的网页。尽管这对于网页浏览器不是问题,网页浏览器总是会运行网站传过来的 JavaScript 程序,把这些 Markdown 文件渲染成网页(这一技术被称为客户端渲染)。然而,几乎所有的搜索引擎的爬虫都不会运行 JavaScript 程序,它们只能接收已有的 HTML 格式的文字。这就造成了搜索引擎的爬虫几乎不会从我的网站上爬到任何有意义的内容。也就不会有任何人可以 Google 或者百度到我的网站。

没办了,只能再找一个支持服务端渲染(也就是在服务器上就把所有 Markdown 文件渲染成 HTML 格式文件)的制作工具。最终我选择了 Docusaurus。 Docusaurus 功能强大,技术先进(基于 React),审美也符合我的要求,采用默认布局生成的页面就很漂亮。缺点是 Docusaurus 使用起来比 Docsify 要麻烦一些,所需技术门槛也更高。这一是因为 Docsify 专用于电子书网页制作,而 Docusaurus 还可以用来制作个人主页或博客,功能复杂了不少,虽然都是我都用不上的。二是因为 Docusaurus 制作的是服务端渲染的网站,它多了一个 Build 也就是渲染的步骤。好在多出来的这一点复杂度对于我来说不是个问题。终于可以在搜索引擎上搜到本书了。

致谢

首先要深深感谢我的父母,我是在他们坚持不懈的建议下,才开始写作的。没有他们的鼓励,我恐怕也不会想到把工作经验记录成文。我的父亲是本书的第一位读者,他仔细阅读了书中每个章节并实验了几乎全部的示例,帮助我修正了初稿中的大量错误。

感谢我的同事们,写书虽是个人行为,但他们还是给予我最大限度的帮助。NI 公司上海研发部的经理郭文哲先生,在百忙之中为本书撰写了序言;本人所在部门的经理李春沅女士,主动为我联系了公司市场、法律等部门的同事,帮助我从公司取得了出书的许可;还有张南雄、陈东、张若凡等同事,帮助我审阅了书稿,并提出了宝贵意见。

感谢吴玮、王瑶、叶永青、许健等好友,他们最初提议并参与了写书计划的讨论。他们的对我开始尝试写作给予了巨大鼓励。

感谢所有通过论坛、博客、Email 等与我探讨 LabVIEW 的网友们。写书时,很多灵感都来源于和网友们的交流。本书出版发行之后,收到了不少热心读者的反馈,帮助指正了书中错误,使得笔者可以修正这些错误。在此谨向读者们表示诚挚的感谢!

最后,我要特别感谢我的太太。太太相夫有方,在生活上对我体贴照顾,对于写书之事又严加督促。在太太的陪伴下,我才得以克服自身惰性和各种困难,完成此书。