Epilogue
The Writing Process
Not long after I embarked on my career, my parents encouraged me to document the lessons and insights from my daily work. Their idea was twofold: to summarize experiences and to share them with others. At that time, I felt my experience was limited and my writing clumsy. Coupled with a tendency towards laziness, I procrastinated on starting.
In 2006, some colleagues suggested we write a book together to earn some extra money. We analyzed the LabVIEW books available in the market and their sales figures. The analysis revealed that writing a book on LabVIEW was unlikely to be financially rewarding. This realization gradually diminished their enthusiasm for the project. However, for me, the allure was in the sense of accomplishment that comes from writing a book. Thus, I didn't immediately abandon the idea and started to seriously consider the possibility of writing one.
When I finally began to write, I realized just how slow my writing process was. I found myself juggling content brainstorming, programming and debugging, and writing simultaneously. I could barely manage a thousand words per week; at this rate, completing a book seemed an indefinite goal.
This attempt made me starkly aware of my shortcomings. So, I decided to start with short articles to develop my writing skills and accumulate material. I began recording my thoughts and publishing them on my personal blog. Over time, colleagues and publishers discussed book-writing proposals with me, but feeling unprepared, I declined.
In the summer of 2008, Mr. Hu Xiaobai from Beihang University Press presented their publishing plan to me. Impressed by their vision and design, I saw potential in participating. With active encouragement from my wife, the idea of publishing a book rekindled within me. Though I had been blogging for just over two years with a modest collection of articles, I believed that the first attempt at writing a book need not chase perfection. Publishing a summary of some experiences seemed a suitable beginning.
Blogging allowed for spontaneity in topic selection, but book writing demanded coherence. It necessitated covering a wide array of topics not previously mentioned in my blog. The challenge and workload of writing a book far surpassed that of blogging. Utilizing only my spare time for writing, I sacrificed much of my leisure activities like watching TV, gaming, and socializing online. The first three months post-contract saw me highly motivated, completing nearly half of the book. However, an overseas business trip and a hectic work schedule soon drained my energy, slowing the writing process significantly. In the next two months, I completed only one chapter and was far behind the deadline. Reminded of my long-held publishing dream, I found renewed energy and spent another three months finishing the rest of the book. After two additional months of revisions and checks, the final draft was ready.
The book was first published in 2009 and saw several reprints and new editions over the years. However, by the fall of 2012, a job change meant losing access to LabVIEW. I couldn't update the book for many years, and it hasn't been reprinted since its last run in 2014. It was only in 2020, with NI releasing LabVIEW's free Community Edition, that I got the chance to revisit LabVIEW as a hobbyist. In 2021, supported by Beihang University Press, I published the book's entire manuscript on GitHub and updated it, aiming to assist more readers.
In 2023, the emergence of large language models was groundbreaking. Impressed by their capabilities, I started applying this technology in both my professional and personal life. Given my limited English proficiency, I've relied on these models to proofread and improve every piece of writing since. They've not only corrected my linguistic errors but also enhanced my articles beyond my solo capabilities. After experiencing their exceptional utility, I decided to translate this book into English, hoping to maximize its value and reach.
Crafting an E-Book
When I first entertained the idea of publishing this book online, I had zero experience in web development. However, I realized that my needs were simple – a space to share text and images without any fancy functionalities – so I decided it could be manageable to learn as I built.
The initial decision was choosing a hosting solution. I had two main options: renting a cloud server to host the website or leveraging GitHub's web hosting service. After exploring both, I found them equally viable. Renting a cloud server offered the advantage of choosing a domestic provider, avoiding internet censorship concerns. It also meant having full control over the server, allowing for any complex functionality without limitations. Nevertheless, I abandoned this idea, preferring not to shoulder the burden of website maintenance. I wanted to concentrate on content creation instead. GitHub's web hosting, limited to hosting static web pages, perfectly suited my requirements for an e-book platform. My only reservation was the potential risk of being blocked due to GitHub's servers being located outside of certain internet censorship jurisdictions. Should that day come, I reasoned, I would seek alternative solutions.
With the hosting service decided, it was time to tackle web development. Initially unaware of the helpful tools available, I started by writing HTML and JavaScript directly in Notepad, learning JavaScript on the fly. The simplest method seemed to be converting each book page into an HTML file. Yet, HTML isn't inherently reader-friendly, making maintenance difficult and creating new documents a hassle. Consequently, I opted for the modern practice of saving all text in Markdown format (*.md). Markdown, a plain text format, uses a minimal set of special characters for styling, supporting basic formatting sufficient for technical documentation. This format was my ideal choice. Existing JavaScript libraries allowed for the rendering of Markdown documents into web pages, enabling me to launch the initial version of the e-book.
I soon realized that adding new features to the site would be overwhelmingly laborious. For instance, implementing a site search feature was beyond my capability. By then, I had acquainted myself with e-book creation, particularly discovering various tools designed to facilitate the process. My first trial was with Docsify, a set of JavaScript libraries including numerous third-party plugins. Its operating principle closely resembled my original website setup: transferring Markdown documents from the server to the reader's browser and rendering them into pages. Its comprehensive functionality was ready to use, simplifying tasks like adding search boxes or progress bars to just adding a line in the configuration file. Docsify's features impressed me, but it had one insurmountable drawback: poor search engine support. Docsify sites store Markdown files without generating HTML pages, and while browsers can run the JavaScript to render pages (client-side rendering), search engine crawlers, which typically don't run JavaScript, can only index existing HTML content. This made my site virtually invisible to search engines.
Left with no choice, I sought a tool that supported server-side rendering (transforming Markdown files into HTML format on the server). My choice fell on Docusaurus. Docusaurus, with its robust features and modern technology base (React), matched my aesthetic requirements and generated beautifully laid-out pages by default. The catch was that Docusaurus proved more complex and technically demanding than Docsify, partly because Docsify is tailored specifically for e-book websites, while Docusaurus caters to a broader range of web projects, including personal sites and blogs. Additionally, Docusaurus required a build step due to its server-side rendering process. I noticed many non-tech individuals using Docsify for their e-books, showing its accessibility to those without a deep internet technology background. Docusaurus users, on the other hand, were almost exclusively programmers. Fortunately, I too am a programmer... And at last, my book became searchable on Google.
Acknowledgments
First and foremost, I owe a deep debt of gratitude to my parents. It was under their relentless encouragement that I began my journey into writing. Without their support, the thought of transcribing my work experiences into words might never have crossed my mind. My father, the book's first reader, meticulously went through each chapter and tested almost all the examples, aiding me immensely by identifying numerous errors in the initial draft.
My colleagues deserve a heartfelt thank you. Though writing a book is an individual endeavor, their unwavering support was crucial. Mr. 郭文哲, the manager of NI's Shanghai R&D department, generously contributed a foreword to this book despite his busy schedule; Ms. 李春沅, my department's manager, went out of her way to liaise with colleagues from marketing and legal departments, securing the necessary permissions for publication; and colleagues such as 张南雄, 陈东, and 张若凡 reviewed the manuscript, providing valuable feedback.
I am also grateful to my friends 吴玮, 王瑶, 叶永青, and 许健, who initially suggested and engaged in discussions about the book project. Their encouragement played a pivotal role in my decision to take on writing.
A big thank you goes to all the online community members who engaged in discussions about LabVIEW with me via forums, blogs, and emails. The inspiration for much of this book came from these interactions. Post-publication, I received constructive feedback from numerous readers, pointing out mistakes that I was then able to correct. I sincerely appreciate the engagement and help from all my readers!
Lastly, a special note of thanks to my wife, whose support has been indispensable. Her care in our daily lives and her firm encouragement on this project were invaluable. Her presence and support were the antidote to my own inertia and the various challenges encountered, enabling me to complete this book.