Typos
Typographical errors in books, papers, etc. that I have found through the years.
When there was an easy way of reporting typos, I did.
Some of these have since been fixed.
I also keep track of stories behind typos:
I also keep track of real-world mojibake, which are related to typos.
Advanced Topics in Term Rewriting
Author: Enno Ohlebusch
On page 65:
First, we show by contraction…

should be:
First, we show by contradiction…
Automatic Sequences
Authors: Jean-Paul Allouche, Jeffrey Shallit
Page 350: In Theorem 11.2.2, change the mention of u in the last line to s. (Brent[sic] Bostick, June 29 2011)
Beej’s Guide to Network Programming
Author: Brian “Beej Jorgensen” Hall
In chapter 7.7:
You should be now be able to do all those sends that failed, above.
should be:
You should now be able to do all those sends that failed, above.
In section 3.3:
(this due to #defines)
should be:
(this is due to #defines)

The Best Writing on Mathematics 2020
Editor: Mircea Pitici
Author: Stan Wagon
On page 35:
We know that \(\frac{-mile}{kWh}\) and \(\frac{kWh}{-mile}\) are mathematically identical…
should be:
We know that \(\frac{-mile}{kWh}\) and \(\frac{mile}{-kWh}\) are mathematically identical…
A Course in p-adic Analysis
Author: Alain M. Robert
In Table of Contents, Section 5 Differentiation:
4. The Exponentiel and Logarithm
should be:
4. The Exponential and Logarithm
Computer Network Time Synchronization: the Network Time Protocol on Earth and in Space, Second Edition
Author: David L. Mills
On page 18:
In datestamp format, era 0 represents the years from the beginning in 1900 to some time in 2036 when era 1 begins, while era −1 represents the years from 1900 to some time in 1854 when era −2 ended.
But era -2 ended in 1763. NTP eras are 136 years.
It is possible that the author mistakenly calculated 1990 - 136 = 1854 instead of the correct 1900 - 136 = 1763.
Note: The Errata page for the book is blank.
On the boundaries of solvability and unsolvability in tag systems. Theoretical and Experimental Results.
Author: Liesbeth De Mol
Section 3 opens with a quote from Marvin Minsky:
Post found this (00, 1101) problem “intractable”, and so did I even with the help of a com- puter. Of course, unless one has a theory, one cannot expect much help from a computer (unless it has a theory) except for clerical aid in studying examples; but if the reader tries to study the behaviour of 100100100100100100100 without such aid, he will be sorry.
Marvin Minsky, 1967.
but the correct quote is:
Post found this (00, 1101) problem “intractable”, and so did I even with the help of a com- puter. Of course, unless one has a theory, one cannot expect much help from a computer (unless it has a theory) except for clerical aid in studying examples; but if the reader tries to study the behavior of 100100100100100100 without such aid, he will be sorry.
Marvin Minsky, 1967.

OpenGL ES 2 for Android
Author: Kevin Brothaler
PDF page: 211
In the last sentence of the paragraph:
“To
do this, we can take the difference between the current system time and
globalStartTime, and since System.nanoTime() returns the time in nanoseconds, we’ll
just need to divide the difference by 1 trillion to convert this into seconds”
But it should say 1 billion, not 1 trillion.–Brenton Bostick
Term Rewriting and All That
Authors: Franz Baader, Tobias Nipkow
On page 114, in section (1) of the proof of Kruskal’s Tree Theorem, the sentence:
Otherwise, \(t_i = f_i(s^{(i)}_1. \dotsc, s^{(i)}_{n_i})\) for a function symbol \(f_i \in \Sigma^{(n_i)}\) and terms \(s^{(i)}_1. \dotsc, s^{(i)}_{n}\), and we define \(S_i := \{ s^{(i)}_1. \dotsc, s^{(i)}_{n} \}\).
should be:
Otherwise, \(t_i = f_i(s^{(i)}_1. \dotsc, s^{(i)}_{n_i})\) for a function symbol \(f_i \in \Sigma^{(n_i)}\) and terms \(s^{(i)}_1. \dotsc, s^{(i)}_{n_i}\), and we define \(S_i := \{ s^{(i)}_1. \dotsc, s^{(i)}_{n_i} \}\).
The occurrences of \(n\) need subscripts, i.e., \(n_i\).
Term Rewriting Systems
Author: Terese (Marc Bezem, Jan Willem Klop, and Roel de Vrijer, eds.)
On page 209, the first full paragraph starts with the sentence:
Between total termination and simple termination one has the notion of non-self-embeddingness from Plaisted [1985b]…
should be:
Between termination and simple termination one has the notion of non-self-embeddingness from Plaisted [1985b]…
Non-self-embeddingness is between simple termination and termination, not total termination and simple termination.
On page 224, on the (1) line for the definition, it says:
\(s_i = t\)or …

but there is no space between the \(t\) and or.
On page 251, the paragraph starting Assume that…:
…we conclude that \(x^{\sigma_i}\) contains one more f-symbol then \(x^{\sigma_{i+1}}\)….

should be:
…we conclude that \(x^{\sigma_i}\) contains one more f-symbol than \(x^{\sigma_{i+1}}\)….
The Theory of Well-Quasi-Ordering: A Frequently Discovered Concept
Author: Joseph B. Kruskal
On page 300, paragraph 2 sentence 2:
sequence of positive interges
should be:
sequence of positive integers
Paragraph 2 sentence 5:
Using the qo based on divisibility, tthis
should be:
Using the qo based on divisibility, this
On page 302, previous paragraph last sentence:
Bqo is stonger …
should be:
Bqo is stronger …
Writing a Compiler in Go
Author: Thorsten Ball
On page 267 of the PDF, there is:
…besides the fact that countDown so simplified that it never stops…
but should be:
…besides the fact that countDown is so simplified that it never stops…
Zero Configuration Networking: The Definitive Guide
Authors: Daniel H Steinberg, Stuart Cheshire
Version: Printed
Location: Page 53, 1st paragraph
Description: connec[t should be connect
Submitted by: Brenton Bostick
Date Submitted: Aug 04, 2021
Zero Trust Networks
Authors: Eval Gilman & Doug Barth
On page ix, there is strange spacing with We’d.
On page 190, there is:
The following case study is based on excerpts from those three articles, with permission from Google and :login;.
but should be:
The following case study is based on excerpts from those three articles, with permission from Google and ;login:.
wi-fi.org
Strange dates on https://www.wi-fi.org/

makersfund.com
“Acquired” and “Aquired” on the same page at https://makersfund.com/

Java documentation at oracle.com
Java Native Interface Specification Contents
Multiple pairs of GetPrimtiveArrayCritical and ReleasePrimitiveArrayCritical may be nested
should be:
Multiple pairs of GetPrimitiveArrayCritical and ReleasePrimitiveArrayCritical may be nested

has is
should be:
is

Occurs for many methods:
a boolean indicating if the address has is a multicast address of global scope, false if it is not of global scope or it is not a multicast address
a boolean indicating if the address has is a multicast address of node-local scope, false if it is not of node-local scope or it is not a multicast address
a boolean indicating if the address has is a multicast address of link-local scope, false if it is not of link-local scope or it is not a multicast address
a boolean indicating if the address has is a multicast address of site-local scope, false if it is not of site-local scope or it is not a multicast address
a boolean indicating if the address has is a multicast address of organization-local scope, false if it is not of organization-local scope or it is not a multicast address
Returns the scoped interface, if this instance was created with with a scoped interface.
should be:
Returns the scoped interface, if this instance was created with a scoped interface.

Android typos at developer.android.com
THe definition of security type OPEN.
should be:
The definition of security type OPEN.

The setup of Wi-Fi Aware data paths has been simiplified.
should be:
The setup of Wi-Fi Aware data paths has been simplified.

ConnectivityManager connMgr.requestNetwork(myNetworkRequest, callback);
Not valid code.

Context#startService(android.content.Intent)
in the Throws BackgroundServiceStartNotAllowedException section:
…BackgroundServiceStartNotAllowedException is thrown This excemption extends IllegalStateException…
should be:
…BackgroundServiceStartNotAllowedException is thrown. This exception extends IllegalStateException…

When the gesture navigation is enabled, the system gestures can be triggered regardless the visibility of system bars.
should be:
When the gesture navigation is enabled, the system gestures can be triggered regardless of the visibility of system bars.

Android typos at cs.android.com
WifiAwareNetworkSpecifier.java
throw new IllegalStateException(
"Port and transport protocol information can only "
+ "be specified on the Publisher device (which is the server");
should be:
throw new IllegalStateException(
"Port and transport protocol information can only "
+ "be specified on the Publisher device (which is the server)");

Indicates that this network has ability to support Bearer Independent Protol
should be:
Indicates that this network has ability to support Bearer Independent Protocol

Android Bionic typos at android.googlesource.com
New code should prefer poll() from instead for this reason,
should be:
New code should prefer poll() from poll.h instead for this reason,

It is unclear whether this is an Android Bionic bug (fix the markup) or Android Studio bug (fix the rendering).
Returns a pointer to the first character not parsed, or null if no characters were parsed.
But this comment is incorrect. strftime does not return a pointer. It looks like the comment for strftime was a copy-and-paste from strptime.

C++ typos at cplusplus.com
For joinable threads, thread::get_id returns a unique value of this type that does not compare equal the one returned for any other joinable or non-joinable thread.
should be:
For joinable threads, thread::get_id returns a unique value of this type that does not compare equal to the one returned for any other joinable or non-joinable thread.
