Errata
The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".
The following errata were submitted by our customers and approved as valid errors by the author or editor.
Color key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update
Version | Location | Description | Submitted By | Date submitted | Date corrected |
---|---|---|---|---|---|
Printed | Page xviii 4th paragraph, last sentance |
"this book will show you to do it" should read "this book will show you how to do it" |
Anonymous | Feb 01, 2011 | |
Printed | Page xix |
"It shows" -> "We show" |
Anonymous | Feb 01, 2011 | |
Printed | Page 1 general note |
The note on page 1 states "Every URI on the web is also a URL". This is not true, an URL IS an URI but not all URIs are URLs. Note from the Author or Editor: |
Anonymous | Oct 16, 2009 | May 02, 2011 |
Printed | Page 2 last code snippet on page |
The comment says "amazon-book-search.rb", but the next page executes "ruby amazon-search.rb". Note from the Author or Editor: |
Anonymous | Dec 01, 2008 | May 02, 2011 |
Printed | Page 3 First paragraph |
It says "customize the Ruby code with your Access Key ID", however the code actually takes that as a command-line argument. Note from the Author or Editor: |
Anonymous | Dec 01, 2008 | May 02, 2011 |
Printed | Page 5.5.3 2nd to last paragraph |
Paragraph has double quotes after the '4' that should be removed: |
Anonymous | ||
Printed | Page 7 5/10ths down the page |
It says "This response has 11 headers", but I actually count 10 of them. Note from the Author or Editor: |
Anonymous | Dec 01, 2008 | May 02, 2011 |
Printed | Page 11 4/10ths and 6/10ths down the page |
It says the method information is "doGoogleSearch" and that that's also found in the SOAPAction HTTP header. However, that header says "urn:GoogleSearchAction". Note from the Author or Editor: |
Anonymous | Dec 01, 2008 | May 02, 2011 |
Printed | Page 13 |
"Starting in chapter 5" -> "Starting in chapter 4" |
Anonymous | May 02, 2011 | |
Printed | Page 17 |
"Split the Data Set into Resources [115]" -> "chapter 5" |
Anonymous | Jun 03, 2011 | |
Printed | Page 17 2nd Paragraph, 1st Sentance |
"happen to live into the URI portion" should read "happen to live in the URI portion" |
Anonymous | Feb 01, 2011 | |
Printed | Page 18 |
"a RESTful web services" -> "a RESTful web service" |
Anonymous | Feb 01, 2011 | |
Printed | Page 27 |
"under same rules" -> "under the same rules" |
Anonymous | Feb 01, 2011 | |
Printed | Page 28 |
The sentences starting "The del.icio,.us web service sends back..." should go between example 2-2 and example 2-3. |
Anonymous | Jun 03, 2011 | |
Printed | Page 31 4/10ths down the page |
It says, "I've added two keyword arguments to open::method, which lets...". There should be a space between those two colons. Note from the Author or Editor: |
Anonymous | Dec 01, 2008 | May 02, 2011 |
Printed | Page 31 |
The sentence "I've added two keyword arguments to open: :method" is |
Anonymous | Jun 03, 2011 | |
Printed | Page 32 HTTP feature matrix |
Your ditto marks are not clear to me. It seems that they must be read horizontally, e.g. Net:HTTP provides Basic support for Auth methods, No support for Caching, and Yes support for Proxies. Note from the Author or Editor: |
Anonymous | May 02, 2011 | |
Printed | Page 35 top third of page |
/** |
Anonymous | Feb 01, 2011 | |
Printed | Page 36 C# code example |
I've been working in C# lately, so I tried this example first. In a nutshell, https://api.del.icio.us/v1/ Note from the Author or Editor: |
Anonymous | May 02, 2011 | |
Printed | Page 38 |
"Basic HTTP, GET, and POST" -> "Basic HTTP GET and POST" |
Anonymous | Feb 01, 2011 | |
Printed | Page 40 Ruby: REXML, I Guess |
I was dismayed to find a reference (pg 40, Ch 2, Ruby: Note from the Author or Editor: |
Anonymous | Dec 04, 2009 | May 02, 2011 |
Printed | Page 45 |
Example 2-3; the line between the two "alert" calls should not be indented any more than the lines that surround it. That is, |
Anonymous | Feb 01, 2011 | |
Printed | Page 49 |
"defects the RPC style" -> "defects to the RPC style" |
Anonymous | Feb 01, 2011 | |
Printed | Page 51 |
"Object.value=" -> "S3Object.value=" |
Anonymous | Feb 01, 2011 | |
Printed | Page 55 |
"39 official HTTP" -> "41 official HTTP" |
Anonymous | Feb 01, 2011 | |
Printed | Page 58 |
"Now, as shown in Example 3-6, let's write the S3::Bucket class," |
Anonymous | May 02, 2011 | |
Printed | Page 65 |
"This is a job for public-key cryptography" -> "S3 solves this problem using a message authentication code (MAC)". |
Anonymous | May 02, 2011 | |
Printed | Page 65 2nd paragraph |
The book states that Amazon S3 uses "public-key cryptography" to authenticate requests. This is totally Note from the Author or Editor: |
Anonymous | May 02, 2011 | |
Printed | Page 66 |
signs it (again, Amazon has a copy of your "private"key) |
Anonymous | Feb 01, 2011 | |
Printed | Page 67 3/10ths down the page |
It says "# Add it to the header has." I think it meant to say "hash" ;) Note from the Author or Editor: |
Anonymous | Dec 01, 2008 | May 02, 2011 |
Page 72 5th Paragraph |
The paragraph suggests using the 'scaffold_resource' generator, but this does not exist in the version of Ruby shipped with OS X 10.6.2 (Ruby 1.8.7). Note from the Author or Editor: |
Anonymous | Feb 16, 2010 | May 02, 2011 | |
Printed | Page 82 |
"in Preface" -> "in the Preface" |
Anonymous | Feb 01, 2011 | |
Printed | Page 85 |
"Name the Resources" section. -> "Name the Resources" section of chapter 5. |
Anonymous | Jun 03, 2011 | |
Printed | Page 88 Figure 4-1 |
Two of the arrows in Figure 4-1 are wrong. The arrow going from |
Anonymous | ||
Printed | Page 89 |
"start=50, and" -> "start=500, and" |
Anonymous | May 02, 2011 | |
Printed | Page 89 and many other pages - do a global search (11 times total) Line 2 |
"neccessary" -> "necessary" |
Anonymous | Feb 01, 2011 | |
Printed | Page 89 Third complete paragraph |
"addressabile" -> "addressable" |
Anonymous | Feb 01, 2011 | |
Printed | Page 90 |
"bits of client state" -> "bits of application state" |
Anonymous | May 02, 2011 | |
Printed | Page 90 last paragraph, 3rd sentence |
"and the server restricts" -> "and the server" |
Anonymous | Feb 01, 2011 | |
Printed | Page 91 Last paragraph |
"unneccessary" -> "unnecessary" |
Anonymous | Feb 01, 2011 | |
Printed | Page 95 1st paragraph |
cache of the extrenal page |
Anonymous | Feb 01, 2011 | |
Printed | Page 98 |
"saw the HEAD method" -> "You saw the HEAD method" |
Anonymous | Feb 01, 2011 | |
Printed | Page 100 2nd Para, @nd Sentence |
'neccessary' -> 'necessary' |
Anonymous | Jul 19, 2010 | Jun 03, 2011 |
Printed | Page 100 3rd para, 3rd line, right hand end |
'...and use it...' -> 'and uses it' |
Anonymous | Jul 19, 2010 | May 02, 2011 |
Printed | Page 101 |
"accepts POST requests" -> "accepts a POST request" |
Anonymous | Feb 01, 2011 | |
Printed | Page 102 |
"Multiplying by any other number" -> "Multiplication by any other number" |
Anonymous | Feb 01, 2011 | |
Printed | Page 103 |
"50" -> "-50" |
Anonymous | Feb 01, 2011 | |
Printed | Page 109-110 |
. The given procedure for turning requirements into read-only resources is exactly the same as the procedure given in chapter 6. It |
Anonymous | May 02, 2011 | |
Printed | Page 112 Split the Data Set into Resources, first paragraph, 3rd line |
Anything that might be refereed to by name ought... |
Anonymous | May 02, 2011 | |
Printed, PDF | Page 119 2nd paragraph |
"I'm going to use a comma to separate latitude and longitude." Then the next paragraph uses semicolon "/v1/Earth/43.9;-103.46..." and semicolon runs rampant throughout chapters 5 and 6. Note from the Author or Editor: |
Shawn Hoover | Jan 25, 2009 | May 02, 2011 |
Printed | Page 121 |
The footnote should be attached to "detailed", not "get." |
Anonymous | May 02, 2011 | |
Printed | Page 125 Example 5-4 |
The closing tag of the XML example -- "maps" -- doesn't match the opening tag "planets". Note from the Author or Editor: |
Anonymous | Jul 15, 2008 | May 02, 2011 |
Printed | Page 125 Example 5-3 |
Says: Note from the Author or Editor: |
Anonymous | Dec 27, 2008 | May 02, 2011 |
Printed | Page 125 Example 5-3 |
[{url="http://maps.example.com/Earth,description="Earth"}, |
Anonymous | May 02, 2011 | |
Printed | Page 128, 129 |
Both figures should say "(Image data courtesy Google Maps") |
Anonymous | Jun 03, 2011 | |
Printed | Page 129 |
"directly to the east" -> "the part directly to the east" |
Anonymous | Feb 01, 2011 | |
Printed | Page 131 Example 5-8 |
To confirm and add to an existing report: the XHTML is poorly formed. For example, the opening <dd> tag is missing for the "maps" unnumbered list. Note from the Author or Editor: |
Anonymous | May 18, 2008 | May 02, 2011 |
Printed | Page 148 |
"steps 3 and 4" -> "steps 4 and 5" |
Anonymous | May 02, 2011 | |
Printed | Page 167 |
"ang architecture" -> "an architecture" |
Anonymous | Feb 01, 2011 | |
Printed | Page 170 Example 7-1, "create_table" commands for users and bookmarks |
The table definitions for "users" and "bookmarks" are incorrect. The column "user_id" should be in the "users" table, not the "bookmarks" table. Also, in order for the join table "user_bookmarks" to work, the "bookmarks" table should have a primary key column called ""bookmark_id". Note from the Author or Editor: |
Anonymous | May 18, 2008 | May 02, 2011 |
Printed | Page 176 mid page |
"if you know one you can calculate the other" -> "if you know the |
Anonymous | Feb 01, 2011 | |
Printed | Page 179 under "The Leftovers" |
"There's already a solution for this built into HTTP: conditional GET. I cover it briefly in __"Conditional HTTP GET"__ later in this chapter and I'll cover it in more detail in __"Conditional GET,"__ but in this chapter you'll see it implemented. By implementing conditional GET, I can give the time- and bandwidth-saving benefits of posts/update to most of of the resources I'm exposing, not just the single most expensive one." Note from the Author or Editor: |
Anonymous | May 02, 2011 | |
Printed | Page 179 |
The last sentence of the section "The Leftovers" contains a redundant "of". |
Anonymous | Feb 01, 2011 | |
Printed | Page 180 Table 7-4 |
All three occurrences of Note from the Author or Editor: |
Anonymous | Jan 06, 2011 | May 02, 2011 |
Printed | Page 183 Example 7-4 |
All the end tags are </body>, rather than matching the opening tag. Note from the Author or Editor: |
Anonymous | May 02, 2011 | |
Printed | Page 184 General Note, 1st paragraph |
...reimplements something you can already, do... |
Anonymous | Feb 01, 2011 | |
Printed | Page 187 |
The last sentence of the 4th paragraph missed a period at the end of the sentence after "more generally". |
Anonymous | Feb 01, 2011 | |
Printed | Page 196 Example 7-13 |
The title tag is not closed properly. Note from the Author or Editor: |
Anonymous | Dec 01, 2008 | May 02, 2011 |
Printed | Page 198 Example 7-15 |
# There was a problem saving the __bookmark__ to the database. Note from the Author or Editor: |
Anonymous | May 02, 2011 | |
Printed | Page 198 Second paragraph |
"data validation errors fail" -> "data validation fails" |
Anonymous | May 02, 2011 | |
Printed | Page 201 the second sentence in the last paragraph |
"I can get this data fairly easily with ActiveResource, and format it as a representation with to_xml__but what about security__?" |
Anonymous | Feb 01, 2011 | |
Printed | Page 202 Example 7-20, The second line the of comment |
This PUT handler is a little __tricker__ than others, .... |
Anonymous | Feb 01, 2011 | |
Printed | Page 207 middle |
Digest::MD5.new(new_uri).to_s doesn't work with the current version of Ruby Note from the Author or Editor: |
Anonymous | Jul 21, 2008 | May 02, 2011 |
Printed | Page 211 Top of the page |
It says: Note from the Author or Editor: |
Anonymous | Dec 01, 2008 | May 02, 2011 |
Printed | Page 217 3rd paragraph |
HTTP/1.1: Note from the Author or Editor: |
Aki Bj?rklund | Dec 07, 2008 | May 02, 2011 |
Printed | Page 217 the first sentence of the 4th paragraph |
"In the bookmarking service from Chapter 7, I exposed two representations of a set of bookmarks: a generic XML representation at /v1/users/leonardr/bookmarks.xml, and an __Atome__ representation at /v1/users/leonardr/bookmarks.atom. |
Anonymous | Jun 03, 2011 | |
Printed | Page 217 Third line of fourth paragraph |
"Atome" -> "Atom" |
Anonymous | Feb 01, 2011 | |
Printed | Page 219 |
see "Overloading POST -> see "Overloading POST" below |
Anonymous | Jun 03, 2011 | |
Printed | Page 225 middle of page |
"the link text indicate" |
Anonymous | May 02, 2011 | |
Printed | Page 235 |
The sentence starting "Except for the protocol change..." should be in |
Anonymous | Feb 01, 2011 | |
Printed | Page 237 |
"URI templates" -> "URI Templates" |
Anonymous | Feb 01, 2011 | |
Printed | Page 241 the 3rd paragraph |
qop-auth --> qop=auth |
Anonymous | May 02, 2011 | |
Printed | Page 248 |
"about it use" -> "about its use" |
Anonymous | Feb 01, 2011 | |
Printed | Page 249 |
"If the client then..." -> "If a client" |
Anonymous | May 02, 2011 | |
Printed | Page 254 the last sentence |
put this token the Authorization header -> put this token in the |
Anonymous | Feb 01, 2011 | |
Printed | Page 256 the last sentence of the 5th paragraph |
his --> her |
Anonymous | May 02, 2011 | |
Printed | Page 257 3rd sentence of the 2nd paragraph |
authorization --> authentication Note from the Author or Editor: |
Anonymous | May 02, 2011 | |
Printed | Page 259 the first sentence of the last paragraph |
A new line should be inserted after the Media type line. |
Anonymous | Jun 03, 2011 | |
Printed | Page 260 fifth paragraph, sixth sentence |
Lists one of the 15 possible resource relationships as "stylesteet" when it should read "stylesheet" |
Anonymous | Oct 23, 2009 | May 02, 2011 |
Printed | Page 262 (and also on page 2) Paragraph following "rel-nofollow" line |
"neccessarily" -> "necessarily" |
Anonymous | Feb 01, 2011 | |
Printed | Page 271 |
The sentence starting "The Universal Encoding..." should be a footnote or else put in parentheses. |
Anonymous | Jun 03, 2011 | |
Printed | Page 272 |
"if you're using UTF-16" -> "UTF-16" |
Anonymous | May 02, 2011 | |
Printed | Page 274 5th paragraph, last sentence |
WRONG: "...should now result in a response code of 310 ("Moved Permanently")..." |
Anonymous | Feb 01, 2011 | |
Printed | Page 279 3rd last line |
The URL in the "Location" header should presumably match the URL in the text on the following page. Note from the Author or Editor: |
Anonymous | May 02, 2011 | |
Printed | Page 280 1st line |
Delete the initial "<![CDATA[ " before the XML prolog. Note from the Author or Editor: |
Anonymous | May 02, 2011 | |
Printed | Page 285 |
'https://s3.amazonaws.com/, and then the bucket name' should be in quotes. |
Anonymous | May 02, 2011 | |
Printed | Page 287 5th "paragraph" |
The "name" of the <input> element does not match the name in the resulting search URLs. Note from the Author or Editor: |
Anonymous | May 02, 2011 | |
Printed | Page 289 |
"content type" should be "media type" throughout. |
Anonymous | ||
Printed | Page 292 2nd paragraph |
It says "v1 inside posts inside recent", however that doesn't match the actual nesting of the tags in the XML. Note from the Author or Editor: |
Anonymous | Dec 01, 2008 | May 02, 2011 |
Printed | Page 292 |
Indentation in example 9-10 is off. The second <doc> tag should be |
Anonymous | May 02, 2011 | |
Printed | Page 293 |
Similarly for Example 9-11. The <doc> tags should be indented beneath their enclosing <param> tags. |
Anonymous | May 02, 2011 | |
Printed | Page 305 First complete paragraph (after Example 10-4), penultimate sentence |
"SOAP messages, send over HTTP" -> "SOAP messages, sent over HTTP." |
Anonymous | May 02, 2011 | |
Printed | Page 307 |
"It abstracts away" -> "They abstract away" |
Anonymous | Feb 01, 2011 | |
Printed | Page 310 Last paragraph |
"It's possible to prove the originator of a given message was long after it sent, and that the message was |
Anonymous | May 02, 2011 | |
Printed | Page 311 First paragraph without a bullet |
"one-off solutions are possible" -> "one-off solutions are not possible". |
Anonymous | May 02, 2011 | |
Printed | Page 317 |
"this next." -> "this later." |
Anonymous | May 02, 2011 | |
Printed | Page 322 |
"The chart below has the details, but" |
Anonymous | May 02, 2011 | |
Printed | Page 331 |
Paragraph "There's also an insecure method" should be in parentheses. |
Anonymous | Feb 01, 2011 | |
Printed | Page 333 First sentence |
The text refers to "the Ajax application delicious-ajax.html," but I don't think the name is used Note from the Author or Editor: |
Anonymous | May 02, 2011 | |
Printed | Page 337 Code example at the top of the page |
img.setAttribute("title", image["Height"]); Note from the Author or Editor: |
Anonymous | Dec 01, 2008 | May 02, 2011 |
Printed | Page 340 |
"GET, POST, and/or DELETE" -> "GET, PUT, and/or DELETE" |
Anonymous | May 02, 2011 | |
Printed | Page 341 Last bullet point |
"PUT /weblogs/{id}: Delete a weblog." Note from the Author or Editor: |
Anonymous | Dec 01, 2008 | May 02, 2011 |
Printed | Page 341 |
"six standard methods" -> "five standard methods" |
Anonymous | Feb 01, 2011 | |
Printed | Page 351 Figure 12-2 |
Application box in Fig 12-2 should contain three different resources to match the subsequent code snippet: UserResource, BookmarksResource, and BookmarkResource. The (plural) BookmarksResource is missing from Figure 12-2. Note from the Author or Editor: |
Bob | Apr 15, 2009 | May 02, 2011 |
Printed | Page 353 Example 12-9, near the top of the page |
The indenting of the code in the if statement is inconsistent. Note from the Author or Editor: |
Anonymous | May 02, 2011 | |
Printed | Page 357 Two thirds of the way down the page, in the paragraph following Example 12-11 |
"users/jacobian/tags/python" should be "users/jacob/tags/python" to match the prose that follows, or the prose should change from "jacob" to "jacobian." Note from the Author or Editor: |
Anonymous | May 02, 2011 | |
Printed | Page 361 second code block - example 12.16 |
One part of the basic authentication code is incorrect and will not work for all cases: Note from the Author or Editor: |
Rebecca Koeser | Oct 20, 2010 | May 02, 2011 |
Printed | Page 365 |
"few resources of your own" -> "few new resources" |
Anonymous | Feb 01, 2011 | |
Printed | Page 384 last line |
Line reads: 'but in that case the response code is 414 ("Request Entity Too Large").' Note from the Author or Editor: |
UweS | Jul 21, 2010 | May 02, 2011 |
Printed | Page 384 |
"their request" -> "the request" |
Anonymous | Feb 01, 2011 | |
Printed | Page 391 Accept-Language, 3rd paragraph |
"The client sends an Accept-Charset header" should be "The client sends an Accept-Language header". |
Bruce Sinclair | Apr 16, 2009 | May 02, 2011 |
Printed | Page 393 First two "code" sections |
It says "Content-Type: text/plain" and then "Content-Type: text/html" when really they're supposed to be the same. Note from the Author or Editor: |
Anonymous | Dec 01, 2008 | May 02, 2011 |
Printed | Page 396 |
"described next" -> "described later" |
Anonymous | May 02, 2011 | |
Printed | Page 396 Second paragraph |
"take the value of Expires should as a rough guide" -> "take the value of Expires as a rough guide". |
Anonymous | Feb 01, 2011 | |
Printed | Page 398 If-Unmodified-Since, 3rd paragraph |
"If-Not-Modified" should be "If-Unmodified-Since" |
Anonymous | Jan 19, 2010 | May 02, 2011 |
Printed | Page 398 If-Unmodified-Since, 3rd paragraph |
[...] response code 417 ("Precondition Failed"). |
Anonymous | Jan 19, 2010 | May 02, 2011 |