1. OK, I have downloaded this stuff. What do I do now? A. First, install the Steel City Comic font from fonts/steel-city-comic.regular.ttf. On most modern Linux systems, this can be done easily from your desktop environment, or by copying the file to the ~/.local/share/fonts directory. You may need to run "fc-cache" to rebuild your font cache. Type "make" from the top-level directory. If all goes well, this will produce a file named "perfbook.pdf", which prints two virtual pages per physical page. See FAQ-BUILD.txt for other Q's and A's related to build issues. 2. Why the heck did you use this strange-looking text-based ca. 1980s typesetting package instead of something more modern, like OpenOffice? A. Although latex takes a bit of getting used to, its automatic handling of bibliographies, tables of contents, figures, and tables is extremely useful for large documents. In addition, its text-based nature is much more compatible with modern source-code-control systems such as "git". Finally, the more-modern WYSIWYG text formatters tend to get a bit cranky when working with hundreds-of-pages documents. 3. Where can I purchase a hardcopy of this book? A. You can use any of a number of web-based printing services, for but one example, lulu.com. Images suitable for cover art may be found in CoverFront.jpg and CoverBack.jpg in the cartoons directory. In addition, edition-level releases will be made more readily available in printed form. Finally, Chinese-language hardcopy is available, as called out in this blog post: https://paulmck.livejournal.com/47651.html 4. This book doesn't mention my favorite parallel-programming tools, languages, and algorithms. Plus its Makefile and Latex formatting are imperfect. What is up with that? A. Please see the following question. 5. Can I contribute? A. Of course!!! The contribution process is similar to that of the Linux kernel and of the Samba project. See the Documentation/SubmittingPatches file in a Linux source tree. The email list for discussion and review is perfbook@vger.kernel.org. Please put a "Signed-off-by:" line in your patches, for an example see: http://lkml.org/lkml/2007/1/15/219. This "Signed-off-by:" line has a very specific meaning as follows: --------------------------------------------------------- By making a contribution to this project, I certify that: 1. The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or 2. The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source License and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or 3. The contribution was provided directly to me by some other person who certified (1), (2) or (3) and I have not modified it. 4. I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved. --------------------------------------------------------- This is similar to the DCO used for the Linux kernel, with the addition of #4. This says that you wrote the contribution yourself, as opposed to having (say) copied it from somewhere. If multiple people authored a contribution, each should have a "Signed-off-by:" line. 6. May I have permission to translate this book to my native language? A. Of course! In any case, this permission is implicitly granted by the choice of the Creative Commons Attribution-Share Alike 3.0 United States license for the text and GPL for the code. Please keep in mind that all translations must preserve the licenses. Yang Lu (luyang.co@gmail.com) and Zhouyi Zhou (zhouzhouyi@gmail.com) are translating the second edition to Chinese. Please contact them to contribute to their great work. People who have worked on previous Chinese translations include: 谢宝友(xie.baoyou172958@zte.com.cn,scxby@163.com), 鲁阳(luyang.co@gmail.com), 陈渝(wilbur512@gmail.com), Cheedoong Drung (cn-boy@china.com.cn), and 王贺涛 . See http://code.taobao.org/p/perfbook/src/ for more information on Cheedoong Drung's and 王贺涛's effort. For a PDF of the translation by 谢宝友, 鲁阳, and 陈渝, please see: http://kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook-cn.2011.10.18a.pdf Motohiro Kanda has a Japanese translation of Chapters 1-16 and Appendices A-D and F based on the 2014 print edition, but with the "Parallel Real-Time Computing" and "Axiomatic Approaches" sections taken from later editions: https://sites.google.com/view/kandamotohiro2/perfbook SeongJae Park has Korean translations of the first two editions of this book. The translation of the first edition contains some of later-first edition changes, though[*]: https://github.com/sjp38/perfbook-ko_KR [*] Refer to 'Translation Strategy and Editions' section of https://github.com/sjp38/perfbook-ko_KR-pdf/blob/master/README 7. I am working on a translation. What do I need to do to get my name of the list in #6 above? A. Send at least one chapter of your translated work in machine-readable form, preferably PDF, to the email list called above. 8. May I please have permission to sell hardcopies of my translated version of this book? A. Yes, in fact, you already have permission, thanks to the Creative Commons and GPL licenses in use. I do request that you send me one copy of the translated work (hardcopy if available), but that is a request made from professional courtesy, and is not in any way a requirement for the permission that you already have under the Creative Commons and GPL licenses. 9. I hate Quick Quizzes!!! Could you please get rid of them? A. Quite a few people like them a lot, so they will be staying. However, you can easily produce a copy of the book that hides the quiz part of Quick Quizzes in the text by "make nq". If the resulting perfbook-nq.pdf does not satisfy you, you can edit the Makefile and qqz.sty files in the top-level directory as you like. One approach is to make the "\QuickQuiz" command in qqz.sty be a no-op and to add line to the Makefile that transforms "perfbook_flat.tex" by removing the Quick Quizzes, each of which starts with the line "\QuickQuiz{}" and ends with the line "} \QuickQuizEnd". This transformation should happen after the invocation of "utilities/extractqqz.sh" in the "perfbook_flat.tex" Makefile rule. This would remove the inlined Quick Quizzes from the running text, but retain the chapter containing the answers. It should be possible to move each chapter's Quick Quizzes to the end of that chapter, but that would require more work and is left as an exercise to the reader. It is possible to move the quizzes to the ends of the chapters, with the answers still at the end of the book, or any of a number of other transformations. "Just a small matter of scripting." More seriously, one of the advantages of making a book available under Creative Commons and GPL is that it enables similar transformations and remixes. That said, one of the advantages of the current form of the Quick Quizzes is that this promotes faster and better learning. 10. What is the difference between a "release" and an "edition"? A. A release is a snapshot provided for readers who would like something reasonably up to date, but who do not wish to install all the pieces of LaTeX required to build one themselves. Every few years, there will be a special release with more-consistent look and feel, and with fewer (and preferably no) sections under construction, and these special releases are called "editions". Also, as noted earlier, each edition has a version that may be more easily printed.