We try to keep our books accurate, but sometimes mistakes creep in. This page lists the errors submitted by our astute readers. If you've found a new error, please submit it.

The latest version of the book is P1.0, released almost 9 years ago. If you've bought a PDF of the book and would like to upgrade it to this version (for free), visit your home page.

Key: Typo Tech. Error Suggestion Not a problem Next edition

By default this page displays the errata for the latest version of the book. If you have a previous version, select it here:  

(To find out what version you have, look at the copyright page, a few pages in from the front of the book. If it says (say) 'Second Printing', then here it'll be P2.0. If there are interim PDF releases in that printing, they'll be 2.1, 2.2, and so on.)

PDF Paper Description Found in Fixed in
2rand 2rand

#47531: +z$8frZdyL%68pSU/:>w<:E3.lG-!XIB--KaixOUrhRosMVyyn

P1.0
10-Sep-11
10

#39437: The PDB URL has suffered from link rot.--Andrew Grimm

P1.0
13-Jun-09
10

#29860: "And do the CMPND and AUTHOR lines.."
CMPND should be COMPND--Cristian Vat

P1.0
09-Nov-07
11
#49772: Trying to read the .mobi version using the Kindle for PC reader, it seems that all pages consisting of only source code show black boxes inste...more...
P1.0
30-Aug-12
23
#23997: Page 23 Near the middle it says: ... keys didn't actually have to be unique within sections. Should be: ... keys only have to be unique wi...more...
P1.0
29-Jan-06
33
#49406: Shell script at top and text at bottom mention using cut -f 5 to extract the fifth field, but as field numbers start from 1, the sixth field c...more...
P1.0
04-Jun-12
35
#23998: Near the bottom it says: It will read from all the files the user specifies (...), unless the -o argument is used, ... Should be: It wil...more...
P1.0
29-Jan-06
49
#23190: The listing of the Regular Expressions search pattern contains an error - at least according to running the program on page 48 in python22 on ...more...
P1.0
20-Aug-05
53-59
#23457: To the best of my knowledge, the domain component of an email address has to contain two segments, e.g. a@b.c is OK but a@b isn't. Your RE mat...more...
P1.0
24-Oct-05
54

#22791: The horizontal bracket showing the extent of group 1 is too wide: it should not include the final "(.*)" of the regular expression.--Matthew Wilson

P1.0
14-Jun-05
54

#22792: The horizontal bracket showing the extent of group 2 is too wide: it should not include the trailing "*)", which is actually the end of group 1.--Matthew Wilson

P1.0
14-Jun-05
66

#22793: "if val > 127" in code fragment should be "if val > 255"--Mathias Meyer

P1.0
14-Jun-05
67-68

#22794: The last "\d{3}" in each RE should be "\d{4}" (to capture the last four digits in each phone number).--Matthew Wilson

P1.0
14-Jun-05
67
#23202: 2nd paragraph end with: "And once again, the only way to solve the problem is case by case (Figure 3.3)." There are other options, e.g. th...more...
P1.0
21-Aug-05
70

#23201: First paragraph reads:
"Bytes in the range 0-255 (hex 0000-007f)"
Should read:
"Bytes in the range 0-127 (hex 0000-007f)"
--Per Holst

P1.0
21-Aug-05
81
#23238: In "Joe Asks..." you mix up the counting in the last paragraph. Your writing "The third is mostly.." probably meant "The fourth is mostly..". ...more...
P1.0
09-Sep-05
104
#25582: In the first paragraph that starts on the page, "/project/*/author" will match only authors of tickets. It will NOT match authors of comments...more...
P1.0
28-Jul-06
125

#23217: In the "Joe Asks" block it says:
"15 (base 10) (negative acknowledge)"
Which should be:
"15 (base 16) (negative acknowledge)"

--Per Holst

P1.0
25-Aug-05
125
#23218: Near the bottom it says: "32-bit integer 1027(base 10) (which is 0x0407 (base 16))" Should be: "32-bit integer 1031(base 10) (which is 0x...more...
P1.0
25-Aug-05
128-129
#22867: The methods for storing integers as binary data are namend packVec() and unpackVec(), but the text relates to them as packIntVec() and unpackI...more...
P1.0
18-Jun-05
132
#22795: All implementations of Java in widespread use today will optimize repeated string concatenation, so that "abc"+"def"+"ghi" doesn't allocate an...more...
P1.0
14-Jun-05
138
#41107: Under section "6.1 Simple Queries". Original Text: "[...] To get them, we need to know which table to examine, and which *columns* to get fro...more...
P1.0
26-Oct-09
139
#23489: You have included a CustId column in the Assigned table. I don't think it is ever used from there, and it really shouldn't be there because it...more...
P1.0
27-Oct-05
150
#23221: The query "Find people in 904 or 905, but not both." is incorrect. SELECT Person.FirstName, Person.LastName FROM Person, Assigned WHERE...more...
P1.0
26-Aug-05
154
#23490: According to SQL standards, as I understand them, the statement near the bottom of the page that the condition CustId <> 1027 will match rows ...more...
P1.0
27-Oct-05
156

#22866: The description for the SQL type DECIMAL should be "...one that has a fixed number of digits..."--Mathias Meyer

P1.0
18-Jun-05
166

#22868: The first paragraph of section 6.6 should end with "...who didn't understand that data is for grepping".--Mathias Meyer

P1.0
18-Jun-05
178
#27367: Base-64 Encoding The order of the characters for base64 is not arbitrary. The author wonders, why the list of characters doesn't start with...more...
P1.0
07-Mar-07