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 |
---|---|---|---|---|---|
Page 19 Figure 1-12 |
It looks like you have the wrong graphic for Figure 1-12. This does not look like git repository commits, and instead looks like you mistakenly put in Figure 2-5 from page 34. Note from the Author or Editor: |
Jim Wiedman | Feb 16, 2014 | Aug 01, 2014 | |
ePub | Page 45 2nd paragraph |
The second paragraph ("Add index.html and follow up ...") seems to be a recap of the immediately preceding steps. Is it meant as a summary? If so the language should be adjusted to make this clear. Note from the Author or Editor: |
Ken Hommel | Apr 07, 2014 | Aug 01, 2014 |
PDF, ePub | Page 47 United States |
The reference to the lightbulb image returns a 404 error. Note from the Author or Editor: |
Jim Wiedman | Mar 01, 2014 | Aug 01, 2014 |
Page 64 Section "Cascading Rules" |
The class in the CSS is called p.selected, however the class applied to the p element in the actual HTML is called <p class="greeting"> Note from the Author or Editor: |
Kasper Meyer | Oct 09, 2014 | ||
PDF, Mobi | Page 68 CSS example |
To avoid an horizontal scroll bar under "<main>" container the CSS rule "nav" require "overflow: hidden" or the CSS rule "nav p" require "width: 100px" . (Verified in Linux Firefox and Google Chrome.) Note from the Author or Editor: |
Anonymous | Mar 15, 2014 | Aug 01, 2014 |
Page 108 Code sample at end of page |
"var $new_comment" appears twice, first as a variable declaration, second line of the snippet, and again inside the nested block where it's used -- but also as a declaration ("var" occurs in both places). Note from the Author or Editor: |
Ken Hommel | Apr 29, 2014 | Aug 01, 2014 | |
Printed | Page 113 2nd block of example code |
"var $newUL = $("<ul>"); //create a new li element" should be: Note from the Author or Editor: |
Nick Litwin | Apr 04, 2014 | Aug 01, 2014 |
Printed | Page 116 Figure 4-7 at the top of the page |
Figure 4-6 and Figure 4-7 have the same caption, but the caption no longer applies to Figure 4-7. Note from the Author or Editor: |
Nick Litwin | Apr 04, 2014 | Aug 01, 2014 |
Page 121 Code snipped, bottom of page |
Just a note about communicating with new programmers: in the JavaScript code snippet, the test is "number >= 3". In the log message, the text is "The number is bigger than 3!". In fact, the number is bigger than or equal to 3. Note from the Author or Editor: |
Ken Hommel | Apr 30, 2014 | Aug 01, 2014 | |
Page 135 Code snipped, third block |
In the block for activating the third tab, the line to set the tab active refers to the second tab. This: Note from the Author or Editor: |
Ken Hommel | May 01, 2014 | Aug 01, 2014 | |
Page 136 Code snippet, first block (makeTabActive) |
The block that demonstrates refactoring the code for activating each tab omits the line from the previous version for clearing the main content ("$("main .content").empty();"). Note from the Author or Editor: |
Ken Hommel | May 01, 2014 | Aug 01, 2014 | |
Page 140 First code snippet |
Missing semicolon at the end of the code sample. Note from the Author or Editor: |
Ken Hommel | May 02, 2014 | Aug 01, 2014 | |
Page 164 United States |
On page 164 the text says to create a "to-dos.json" file but in the follow code on page 165 the call to getJSON passes "todos.json". However, I will completely concede that this could be due to the unfortunate positioning of "to-dos.json" straddling 2 lines. Note from the Author or Editor: |
Anonymous | Dec 08, 2014 | ||
Page 170 Setting up a test bed, first para, second sentence |
"and tests it" should be "and test it". Note from the Author or Editor: |
Ken Hommel | May 12, 2014 | Aug 01, 2014 | |
Page 171 First code sample, second and third blocks |
Why are there two definitions for the function "organizeByTags", one inside of main() and one before it? They have different function signatures; does JavaScript support polymorphism? Note from the Author or Editor: |
Ken Hommel | May 12, 2014 | Aug 01, 2014 | |
Printed | Page 191 2nd Paragraph, last sentence |
"The req.writeHead function creates the HTTP header that sets the attributes of the response, and the res.end function completes the response by adding "Hello World."" Note from the Author or Editor: |
Nick Litwin | Apr 09, 2014 | Aug 01, 2014 |
Printed | Page 193 Last paragraph |
The last sentence states: "Let's start by creating a new directory in our app directory called Express. Create a server.js file that looks like this:" Note from the Author or Editor: |
Nick Litwin | Apr 10, 2014 | Aug 01, 2014 |
Printed | Page 194 Second block of code, 3rd line |
Missing an ending parenthesis: Note from the Author or Editor: |
Nick Litwin | Apr 10, 2014 | Aug 01, 2014 |
Page 196 1st para |
The text refers to the "Consumer key" and "Consumer secret". The terms on the Twitter app page are "API key" and "API secret". Similarly, the text refers to "access_token_key" while the Twitter app page uses "Access token" (the text refers to "Access token" and "access_token_key" but it isn't clear these are the same value). Note from the Author or Editor: |
Ken Hommel | May 19, 2014 | Aug 01, 2014 | |
Page 197 3rd para |
In the instructions for installing ntwitter, at the step for verifying the installation, should the command be "ls ../node_modules" and not "ls node_modules"? At that point the user is in the Twitter directory, but the module directory is one level removed. Note from the Author or Editor: |
Ken Hommel | May 19, 2014 | Aug 01, 2014 | |
Printed | Page 200 if statement in large code block |
The code "as is" on page 200 produces an error. Since tweet is an object, we can't use tweet.indexOf. I got it to work by replacing it with tweet.text.indexOf, which is hinted at on page 199 under "Using the indexOf function to find words." Note from the Author or Editor: |
Nick Litwin | Apr 10, 2014 | Aug 01, 2014 |
Page 201 United States |
On page 201 you have: Note from the Author or Editor: |
Anonymous | Jan 01, 2015 | ||
Printed | Page 202-203 code blocks |
The code throughout pages 202-203 refers to counts.json, but I don't think we ever created this file up to this point in the book. I tried to get the code at the top of 202 to work, but using node app, tweetCounts = require("./tweet_counter.js"), and app.get("/counts.json"...) all seemed like bits of the code that I couldn't reconcile. Were we supposed to come up with this on our own, or is there an explanation missing? Either way, I think a sentence or two to clear this up would benefit the reader. Note from the Author or Editor: |
Nick Litwin | Apr 11, 2014 | Aug 01, 2014 |
Page 202 2nd code block |
The text says to run the server from the app directory and the command line to run the server shows "vagrant $ node app.js". Should this be "node server.js", running server.js in the app directory? Note from the Author or Editor: |
Ken Hommel | May 20, 2014 | Aug 01, 2014 | |
Printed | Page 219, 221 function(stream) in code blocks |
I believe the if statement shouldn't have the = in >=. Note from the Author or Editor: |
Nick Litwin | Apr 11, 2014 | Aug 01, 2014 |