Tal Cohen's Bookshelf: A Collection of Personal Opinions about Books


Science Fiction


Computer Science

Book In-Jokes
The Fiction Collection
“I wonder... What's in a book while it's closed... Because as soon as I open it, there's a whole story with people I don't know yet and all kinds of adventure and deeds and battles... All those things are somehow shut up in a book. But it's already there, that's the funny thing. I just wish I knew how it could be.”
Michael Ende, The Neverending Story

The Science Fiction Collection
“A wild dream and a far one -- but no wilder and no farther than some of the dreams of man.”
Clifford D. Simak, City

The Non-Fiction Collection
“That's the reason they're called lessons: because they lessen from day to day.”
Lewis Carroll, Alice's Adventures in Wonderland

The Computer Science Collection
“Think of a computer program. Somewhere, there is one key instruction, and everything else is just functions calling themselves, or brackets billowing out endlessly through an infinite address space. What happens when the brackets collapse? Where's the final “END IF”? Is any of this making sense?”
Douglas Adams, Mostly Harmless

Book In-Jokes

Here I try to maintain a list of book in-jokes: little jokes that most readers won't notice, hidden in otherwise serious books (for more about what "in-jokes" are, see at the end of the list).

I'll need your help: if you find any such in-jokes, let me know. Please include the word “injoke” in the subject.

The books are listed in no particular order.

Foundations of Discrete Mathematics
K. D. Joshi
(Wiley-Interscience, 1989)

Discrete mathematics is “the study of mathematical structures that are fundamentally discrete in the sense of not supporting or requiring the notion of continuity.” This is the context in which one should read Joshi's dedication:

“To my discreet wife Swarada, for her continuous support.”

(Special thanks to Martin DeMello for contributing this item.)
[Added 2008-08-31]
Discuss this entry...

C Traps and Pitfalls
Andrew Koenig
(Addison Wesley, 1989)

Benjamin Levy writes:

In the index, you'll find “pitfalls, see traps” and “traps, see pitfalls.” It also has the obligatory “recursion 88, 146” on page 146 of the index.

The book is filled with practical examples of easy to make mistakes while programming in C (it's a very useful book). Some of the examples came from contributors, and in the index there are the names of the contributors and the page their example can be found, including “anonymous contributor, 22.”

Also in the index there is the entry:
mistakes, stupid     vi
Page vi in the preface has the phrase “stupid mistakes”. I assume it is coincidental, and that Koenig is not an opponent of the text editor “vi”.
[Added 2006-11-12]
Discuss this entry...

Advanced CORBA Programming with C++
Michi Henning and Steve Vinoski
(Addison Wesley, 1999)

Shortly after the book was published, the authors announced a prize-bearing Easter Egg hunt. The announcement only specified that the book “contains two Easter eggs, personally planted by Michi and Steve”.

As it turns out, the eggs were not found before a additional hint was published. This isn't surprising -- the eggs are certainly not something you will find on a casual read of the book.

Special thanks to Sergiy Matusevych for pointing my attention to this.
[Added 2006-11-08]
Discuss this entry...

Object-Oriented Software Construction
Bertrand Meyer
(2nd Edition, Prentice-Hall, 1997)

While the book uses the Eiffel language as its notation, the language itself is not mentioned by name except as the very last word in the text. Most readers will notice that the Epilogue is titled “Epilogue: In Full Frankness Exposing the Language” -- the first letters forming the word “EIFFEL”. But few readers will notice that the language is also hinted at earlier. The first chapter (not the title, but the chapter itself) starts with the letter “E”. The second starts with “I”, and so on, so that the first six chapters form “EIFFEL”. This is then repeated, so all in all, the 36 chapters present the word “EIFFEL” six times.

(Also in the Bookshelf: a full review of this book.)
[Added 2006-11-04]
Discuss this entry...

Learning Perl
Randal L. Schwartz and Tom Phoenix
(2nd Edition, O'Reilly, 1997)

I am told that this book is full of various jokes. Here are two examples, sent to me by Zed Lopez:
Benjamin Franklin, quoted (and even double-quoted)     225
Page 225 includes three unattributed quotations as examples in a program. Two are from Franklin; however, Franklin is not explicitly mentioned.
Scooby Doo, pronouncing “Windex”     166
Page 166 mentions the “rindex” function.
[Added 2006-11-01]
Discuss this entry... Comments so far: 5

Michael Spivak
(Publish or Perish, 1994)

If you look up yellow pig in the index, you find a quite a few page references. When you check these out, you find that each page has some reference to a pig, like the phrase “hog tired”. Apparently it was an inside joke between him and one of his classes. This fact of reference is only true of the first and second editions, but when you open to the the title page of the third edition, you find that the book has been “Dedicated to the Memory of Y.P.” -- which is of course “yellow pig”.

Special thanks to Joe Mermelstein for contributing this item.
[Added 2006-11-01]
Discuss this entry... Comments so far: 1

Finite Dimensional Vector Spaces
Paul Halmos
(Springer, 1993)

(from “Math Words & Other Words”): “G. P. Hochschild worked with Halmos at the University of Chicago, and on hearing that Halmos was writing a book asked if his name would be in the book.”

And indeed, on page 198 we find the index entry:
Hochschild, G.P.     198
Special thanks to Alon Amit for contributing this item.
[Added 2006-06-29]
Discuss this entry...

Effective C++
by Scott Meyers
(3rd edition, Addison Wesley, 2005)

The index of this book contains several “allusion to...” entries. These include:
Barry, Dave, allusion to     229
On page 229: ג€œ... I am not making this up ...”.
Monty Python, allusion to     91
On page 91: “This version of operator*, then, doesn't return a reference to a Rational - it returns a reference to an ex-Rational; a former Rational; the empty, stinking, rotting carcass of what used to be a Rational but is no longer, because it has been destroyed.”

Also in the index:
pun, really bad     152
On page 152, while discussing the Bird and Penguin classes: “Yet we're not finished with these fowl matters.”

goddess     see Urbano, Nancy L.
Urbano, Nancy L.     vii, xviii, xx
        see also goddess
Nancy L. Urbano is Meyers' wife.

Special thanks to Ian West for contributing these items.
[Added 2006-06-19]
Discuss this entry...

The C Programming Language
by Brian W. Kernighan and Dennis M. Ritchie
(2nd edition, published by Prentice Hall)

In the index, on page 269:
recursion     86, 139, 141, 182, 202, 269
Thanks to R.C. for contributing this entry.
[Added 2000-01-01]
Discuss this entry... Comments so far: 4

The Art of Computer Programming
by Donald E. Knuth
(2nd edition; Addison-Wesley, 1973)

In the introductory section “Notes on the Exercises”, Knuth includes several sample exercises for the reader's pleasure. The fourth one reads:
4. [M50] Prove that when n is an integer, n > 2, the equation xn + yn = zn has no solution in positive integers x, y, z.
The book was published about two decades before the centuries-old problem was solved. The “Answers to the Exercises” section lists the following answer:
4. See W.J. LeVeque, Topics in Number Theory 2 (Reading, Mass: Addison-Wesley, 1956), Chapter 3. (Note: One of the men who read a preliminary draft of the manuscript for this book reported that he had discovered a truly remarkable proof, which the margin of his copy was too small to contain.)
(BTW, if you're interested in the story of the problem and its solution, read this review.)

Another small in-joke can be found after the book's index. The comment at the bottom of the very last page reads:
Any inaccuracies in this index may be explained by the fact that it has been prepared with the help of a computer.
At the end of the second volume, Seminumerical
Algorithms (2nd edition, Addison-Wesley, 1981), the end of the index reads:
Any accuracies or inaccuracies in this index may be explained by the fact that it was prepared with the help of a computer, but not blindly.
Finally, the end of the third volume, Sorting and Searching, (Addison-Wesley, 1973), reads:
Any inaccuracies in this index may be explained by the fact that it has been sorted with the help of a computer.
Note that in the recently published 3rd edition, most of these jokes were removed -- or rather, replaced.
[Added 2000-01-01]
Discuss this entry... Comments so far: 2

Borland Pascal with Objects 7.0: Language Guide
(Borland International, 1992)

Check the index:
recursive loop     See recursive loop
I realize this is certainly not the first time this joke appears in print. Can anyone find older references?

Update: According to John Cowan, this joke probably appeared in print for the first time in 1983, with the publication of The Hacker's Dictionary by Guy L. Steele et al. There being no version control of the corresponding on-line JARGON.TXT file before 1990, the entry could have been placed in it any time between 1975 and 1982.

In The Hacker's Dictionary, BTW, the entry is recursion, not recursive loop. In the current version (4.2.3) of JARGON.TXT, we find:
recursion n.     See recursion. See also tail recursion.

tail recursion n.     If you aren't sick of it already, see tail recursion.

[Added 2000-01-01]
Discuss this entry... Comments so far: 1

Computability: Computable Functions, Logic and the Foundations of Mathematics
by Richard L. Epstein and W. A. Carnielli
(Published by Wadsworth Publishing, 1989)

In the preface:
Each author wishes to indicate that any mistakes still left in this text are not due to those above who have so generously helped us, but are due entirely to the other author.
This entry was mailed to me by one of the book's authors, or the other.
[Added 2000-01-01]
Discuss this entry...

Electronic Principles
by Albert Paul Malvino
(Glencoe McGraw Hill, 1993)

The dedication runs as follows:
To Joanna,

My brilliant and beautiful wife without whom I would be nothing. She always comforts and consoles, never complains or interferes, asks nothing and endures all, and writes my dedications.
Thanks to Ananda DasGupta for contributing this entry.
[Added 2000-01-01]
Discuss this entry...

by G. B. Thomas and R. L. Finney
(Ninth Edition, Addison-Wesley, 1996)

The index includes an entry for whales, pointing to pages 365 ff. These pages include no mention of whales (they deal with applications of integrals); but there are several graphs there that look remarkably like whales.

It seems like this in-joke first appeared in the sixth edition; thanks to Dave Collins and Anton Sherwood who helped confirm this. The joke can also be found in the authors' Calculus and Analytic Geometry, Part I.

Thanks to Greg Friedman for contributing this entry.
[Added 2000-01-01]
Discuss this entry... Comments so far: 6

Common LISP: The Language
by Guy L. Steele
(Second Edition, Digital Press, 1990)

This book, known as “CLtL2”, is still the de-facto LISP reference for many people. It includes a huge index (in fact, several indices), with numerous crazy entries like “Teenage Mutant Ninja Turtles” and many other seemingly unrelated subjects. These, however, are real references to actual mentions in the text (most often, in the sample code fragments).

The index also includes an entry for kludges, pointing to pages 1-971 -- namely, the whole book.

Thanks to John Cowan for contributing this entry.
[Added 2000-01-01]
Discuss this entry... Comments so far: 1

Fourier Analysis
by T. W. K?¶rner
(Cambrdge University Press, 1988)

In the index we find the entry:
fractals: not mentioned, 112
Sure enough, there is no mention of fractals on page 112 (or elsewhere in the book). However, what we do find on page 112 is a brief mention of catastrophe theory, or rather the “popular stir” it caused. The parallels with the hype surrounding fractals (and chaos) are manifest. There are many hints of the occurence of fractals in the book, but they are never called such.

Thanks to Dr. Andy H. Osbaldestin (Loughborough University, England) for contributing this entry.
[Added 2000-01-01]
Discuss this entry... Comments so far: 1

Gödel, Escher, Bach: an Eternal Golden Braid
by Douglas R. Hofstadter
(Basic Books, 1979)

A detailed review of this book can be found elsewhere in the Bookshelf. The book includes an annotated bibliography, but many people skip reading these parts of most books.

The third page of the bibliography includes this entry:
Gebstadter, Egbert B. Copper, Silver, Gold: an Indestructable Metallic Alloy. Perth: Acidic Books, 1979. A formidable hodge-podge, turgid and confused -- yet remarkably similar to the present work. Professor Gebstadter's Shandean digressions include some excellent examples of indirect self-reference. Of particular interest is a reference in its well-annotated bibliography to an isomorphic, but imaginary, book.
(The words Hofstadter uses to describe this book, “turgid and confused”, are the same words that were used by others (see page 3) to describe J.S. Bach's works.)

Egbert B. Gebstadter, by the way, also wrote Thetamagical Memas: Seeking the Whence of Letter and Spirit (described by Hofstadter as “A curious pot-pourri, bloated and muddled... This is a collection of Gebstadter's monthly rows in Literary Australian together with a few other articles.”) His latest book is The Graced Tone of Clément: A la lounge de la mélodie des mots, reviewed here.

GEB's index also includes some very interesting entries. Look up, for example, “chunked versions of this book”. Or look up “Dboups, Hfpsh”. Hint: there's nothing about this strange beast on pages 515 and 533. Rather, you should look at pages 404 and 422.

(Special thanks to Pablo Nogueira for suggesting an improvement to this entry.)
[Added 2000-01-01]
Discuss this entry...

An Introduction to the Theory of Groups
by Joseph J. Rotman
(3rd edition; published by Allyn and Bacon)

Unless you studied university-level algebra, you probably never encountered this book. And even if you did, you probably never bothered to really read the index. If you do, check out the entry for Moishe Pippik. It reads:
Pippik, Moishe     (see Navel, Morris)
Which automatically leads the reader on the following trail:
Navel, Morris     (see Ombellico, Mario)
Ombellico, Mario     (see Nombril, Maurice)
Nombril, Maurice     (see Pippik, Moishe)
Which forms, as any reader of the book could tell you, a perfect cyclic group. The words Pippik, Navel, Ombellico and Nombril all mean “bellybutton”, BTW.

And in a totally different note: Most non-Hebrew speaking readers will find a very strange thing in the first page of this book: the dedication is printed in Hebrew. This isn't an in-joke. The dedication roughly translates to: “In the eternal memory of my father and respected teacher, Eliyahu, son of Yosef Yona HaLevi”.
[Added 2000-01-01]
Discuss this entry... Comments so far: 1

The Java Language Specification
by James Gosling, Bill Joy and Guy Steele
(Addison-Wesley, 1996)

The large index of this book (pages 767 to 821) includes numerous bogus, obscure, self-referential and silly entries. In fact, there are so many of them around that a special entry indexes them! It reads (on page 788):
index entries
        Fibonacci numbers, 783
        prime numbers, 801
        warp factors, 820
        Bell, Alexander Graham, 769
        Bovik, Harry, 770
        Fifth Dimension, 784
        first cat, 784
        index entries, 788
        not, see Russell's paradox
        banana-fana, 769
The complete entry includes a whopping 39 lines. The bogus entries include things like:
Fibonacci numbers, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610
Worse still is the “prime numbers” entry, which lists every prime number from 1 to 826 (the number of pages in the book) -- 142 values, which require twenty lines.

The entry for “Star Trek” lists pages 793, 805 and 820. All of these pages are in the index. Page 793 includes the index entry for “make it so”, and page 820 has an entry for “warp factors”. I found nothing on page 805 that is related to the issue, except maybe for the catch-all entry about self-reference (which naturally includes its own page).

Special thanks to Peter Norvig for contributing this item.
[Added 2000-01-01]
Discuss this entry...

The Java Programming Language
by Ken Arnold, James Goslingand Davlid Holmes
(3rd edition, Addison-Wesley, 2000)

In the index, we find (p. 579):
IndexOutOfBoundsException: 30, 196, 210, 596
The book is only 595 pages long.

This entry was contributed by Jonathan Lange.
[Added 2000-01-01]
Discuss this entry...

What are in-jokes? “In-jokes,” or “inside jokes,” are jokes whose humor is clear only to members of a certain group, and not the general audience. For example, in-jokes in textbooks will often be understood mostly by people fluent in the subject matter. Other cases include jokes targeted at an even smaller population, even as small as the author's family.

In computer science books, many in-jokes deal with self reference; others deal with loops, and others still are about repeated ideas. But of course, there are many other kinds, including obscure references to other works of art.

This list includes not only in-jokes per-se, but also jokes that hide in a book's appendices, in the index, in the “solutions” sections of textbooks, and other infrequently-read parts of books.

In-jokes count as such only when they aappear in otherwise serious books -- not jokes in generally comical books. Certain books, like Gödel, Escher, Bach or The Cyberiad, are loaded with jokes -- but mostly, these are obvious puns, word-games, and suchlike rather than in-jokes. So most jokes from GEB won't qualify. (Two examples that do qualify are listed here.)

Book Reviews / Read Log Book Reviews: Fiction Science-Fiction Book Reviews Non-Fiction Book Reviews Computer Science Book Reviews
©1997-2022 by Tal Cohen, all rights reserved. [About]