我为了编写本书而使用的几乎所有软件都属于 FLOSS。
在撰写本书的第一版时,我使用 Red Hat 9.0 Linux 作为我配置的基础,到了第六版时,我使用 Fedora Core 3 Linux 作为我配置的基础。
最初,我使用 KWord 来撰写本书(正如在本书由来里所解释的那番)。
后来,我切换到 DocBook XML 并使用 Kate 写作,但我发现它太繁琐了。因此,我迁移到 OpenOffice,它具有非常好的控制水准,并且提供了格式化与 PDF 生成功能,但是它从文档生成的 HTML 太过潦草。
最后,我发现了 XEmacs,我(再一次)采用 DocBook XML 重写了原先那一潦草的版本,并将这一格式作为长期的解决方案。
到了第六版时,我决定使用 Quanta+ 来处理所有的编辑工作,并使用 Fedora Core 3 Linux 提供的标准 XSL 样式表。不过,我通过编写 CSS 文档来为 HTML 页面提供颜色与样式设定。我同时还编写了一个粗糙的词法分析器,当然,用 Python 编写, 它能够自动为所列出的所有程序提供语法高亮。
等到第七版时,我使用 MediaWiki 作为我配置的基础。我使用它在线编辑几乎一切内容并允许读者在 Wiki 网站中直接阅读、编辑、讨论,但是最终我耗费了比写作还要多的时间在打击垃圾评论上。
第八版时我使用 [Vim]({{ book.vimBookUrl }}),Pandoc 和 Mac OS X 来写作。
第九版时我切换至 AsciiDoc 文档格式 并使用 Emacs 24.3, tomorrow 主题, Fira Mono 字体 和 adoc-mode 来写作。
2016 年:我已厌倦去处理 AsciiDoctor 中的几个小的渲染问题,例如 C/C++
中的 ++
会突然消失,这个问题如其它一些小问题一样很难追踪。再加上,因为 Asciidoc 的复杂格式,我已经不愿意再编辑文本。
因此在第十版中,我切换至 Markdown 和 GitBook,并使用它们的格式,通过 Spacemacs editor 来写作。
请参阅 {{ book.authorUrl }} 。