By Developers, For Developers
| PDF Pg | Paper Pg | Type | Description | Fixed on | Comments |
|---|---|---|---|---|---|
| 29 | SUGGEST | The installation instruction for node v8 didn’t work for me. I’m on ubuntu 16.04 (linux mint).
detail: i installed this OS only a month ago, with the latest stable packages. However, when i started out with this book, Node was on version 4. Kind regards | 2017-10-11 | Are you working from the new Node.js 8 the Right Way book? or is this feedback based on the first edition? The new edition shows you how to install Node.js with nvm. | |
| 9 | TYPO | Paragraph 5, only sentence - missing word “like”: Modern JavaScriptisms discussed in this book include things ^ arrow functions | 2017-06-22 | ||
| 13 | SUGGEST | “Arrow functions are new in ECMAScript version 6”. Starting with the 6th edition of the ECMA-262 spec, releases are named by publication year rather than version number, so such citations should probably all say “ECMAScript 2015” instead of “ECMAScript version 6”. | 2017-06-22 | ||
| 34 | TYPO | and the full path to the watcher-argv.js as its first two elements. | 2017-06-22 | ||
| 17 | TYPO | Beyond the code block () => { … } in the sentence starting with Unlike there are missing some i characters => functon expresson | 2017-06-22 | ||
| 368 | TYPO | Command should be: instead of | 2017-06-22 | ||
| 86 | TYPO | s/sucessfully/successfully/ Also, on page 175: s/sucess/success/ | 2017-06-27 | ||
| 209 | ERROR | Code snippet includes case statement for ‘#list-bundles’ which has not been introduced yet, and which calls getBundles which has not been defined yet | 2017-06-27 | ||
| 174 | ERROR | Comment includes curl command for POST, but function is for GET: /
| 2017-06-27 | ||
| 213 | TYPO | s/One we add/Once we add/ | 2017-06-27 | ||
| 215 | TYPO | s/as-yet-unwriten/as-yet-unwritten/ | 2017-06-27 | ||
| 216 | TYPO | s/with the give name/with the given name/ | 2017-06-27 | ||
| 217 | TYPO | s/handle requests as scale/handle requests at scale/ | 2017-06-27 | ||
| 218 | TYPO | s/in you Node.js and front-end code/in your Node.js and front-end code/ | 2017-06-27 | ||
| 132 | TYPO | The example command $ ./esclu url ‘some/path’ -p 8080 -h my.cluster should be $ ./esclu url ‘some/path’ -p 8080 -o my.cluster, the help flag is -h, the host flag is -o, running the code as is will display the help not the output of the command as expected. | 2017-06-27 | ||
| 104 | SUGGEST | The test:debug line does not work on Cygwin on Windows 10. This alternative does: “test:debug”: “node —inspect node_modules/mocha/bin/_mocha —watch —no-timeouts” Also the way to access the Chrome DevTools is now easier - just browse to chrome://inspect and it should find your mocha target. | 2017-07-22 | ||
| 45 | 32 | SUGGEST | Running command: “$ nc -U /tmp/watcher.sock” for the second time, gives a Error: “Error: listen EADDRINUSE /tmp/watcher.sock”. A solution is to remove the file: “/tmp/watcher.sock”, before running it again. | 2017-07-22 | |
| 9 | TYPO | 3rd paragraph in first section of Preface: enivornment => environment in | 2017-07-22 | ||
| 70 | 58 | TYPO | When confirming version of OMQ (node -p -e “require(‘zeromq’).version”) printed results shows version 4.1.6 but install instructions dictated 4.2.1. | 2017-07-22 | |
| 62 | 49 | TYPO | setTemout should be setTimeout | 2017-07-22 | |
| 68 | 56 | TYPO | widespread atoption should be widespread adoption | 2017-07-22 | |
| 68 | 56 | TYPO | shoul must be should The zeromq module shoul take care of building the necessary underlying libraries. | 2017-07-22 | |
| 70 | 58 | SUGGEST | Version numbers don’t match exactly: | 2017-07-22 | |
| 49 | TYPO | In last code block: s/setTemout(done, 4500);/setTimout(done, 4500);/ | 2017-07-22 | ||
| 124 | ERROR | As it stands the command ‘$ ./esclu get’ returns nothing as program.json is undefined? The command ‘$ ./esclu -j get’ sets program.json and prints the expected data, although in a single line, not formatted as shown on the page. | 2017-10-11 | ||
| 124 | SUGGEST | Nope sorry, my previous submisson about page 124 is NOT an error - my bad. Made a mistake with the code around throwing the error. Apologies. | 2017-10-11 | ||
| 97 | 86 | SUGGEST | …create a subdirectory called test… The sub-directory called ‘test’ for unit testing was already created before chapter “Declaraing (Declaring) Expectations with Chai”. | 2017-10-11 | |
| 97 | 86 | TYPO | “Declaraing with Chai” should be “Declaring with Chai” | 2017-10-11 | |
| 103 | 92 | SUGGEST | Why not install “cheerio” as a dev dependency? “npm install —save —save-exact cheerio@0.22.0” | 2017-10-11 | |
| 103 | SUGGEST | Please ignore #81863. I mixed up cheerio with chai. | 2017-10-11 | ||
| 145 | TYPO | In last line of “Deleting an Index” there’s a typo in word ‘issues’: | 2017-10-11 | ||
| 112 | TYPO | Obects should be object | 2017-10-11 | ||
| 113 | TYPO | The last property of object ‘options’ ends with a comma: | 2017-10-11 | That was intentional. Trailing commas are allowed in object literals as of EcmaScript 5. | |
| 119 | TYPO | develompent should be development Acquiring, transforming, storing and querying data are crucial skills in modern software develompent with Node.js. | 2017-10-11 | ||
| 151 | TYPO | conver should be convert Likewise, if the user provided a filter on the command line with the -f flag, we conver this to a _source parameter for the query string | 2017-10-11 | ||
| 165 | TYPO | es.hostname should be es.host | 2017-10-11 | ||
| 11 | TYPO | On the second line on the PDF page, EventEmitter is hyphenated Even-tEmitter. I think Event-Emitter would be more legible. | 2017-10-11 | ||
| 167 | 158 | ERROR | url constant variable is not correct. So, //${es.host}:${es.port}/${es.books_index}/book/_search`; Should be //${es.host}:${es.port}/${es.books_index}/_search`; | 2017-10-11 | I think leaving the /book/ is correct but may not be required? The /book/ part indicates the type of document that we're searching for. |
| 94 | 83 | TYPO | Error: The Art of War by Sunzi The author’s name is Sun Tzu | 2017-10-11 | I've seen it written that way too, you're right that that's the most widely used name in the West. I was going by the name listed on the Project Gutenberg page: http://www.gutenberg.org/ebooks/132 since that would match the catalog data. |
| 219 | TYPO | Second para in “Deleting Bundles” is “To get started, navigate to the listBundles() function and add this block of code inside the try block.” but there is no try block in listBundles()? | 2017-10-11 | ||
| 44 | TYPO | npm install —save —save-exact mocha@3.4.2 does not include the —save-dev option that is mentioned 2 par’s later, so mocha ends up in std dependencies list. | 2017-10-11 | ||
| 230 | TYPO | At the end of the second last paragraph “… as Sign Out link.” should be “… a Sign Out link.” | 2017-10-11 | ||
| 7 | TYPO | Take the concept of a variable. In algebra it’s common to see equations like equasion should be replaced with equation | 2017-10-11 | ||
| 43 | ERROR | On page 43, the test script to run is named “net-watcher-json-test-service.js” but was named “test-json-service.js” on pages 37-38. | 2017-10-11 | ||
| 49 | TYPO | “timeout” is misspelled as “timetout”: “To set the Mocha timeout for the whole run, use the —timeout flag to specify the timetout in milliseconds.” | 2017-10-11 | ||
| 170 | 161 | TYPO | exract should be extract Finally, if there were no errors, we exract just the _source objects (the true documents) from the Elasticsearch response, and report these to the caller as JSON. | 2017-10-11 | |
| 26 | 12 | TYPO | Page 26/12 says to create a file called “file-system/watcher.js” after moving into an empty directory (is this empty directory “file-system” or is the “file-system” directory to be created within the empty directory?). Then, on page 27/13 the user is asked to run “watcher.js” without changing directories. Does “file-system” just need to be removed from the file path? | 2017-10-11 | |
| 29 | 15 | TYPO | Line: fs.watch(filename, () => console.log(`File ${filename} changed!`)); Has tick marks instead of single quotes. | 2017-10-11 | |
| 29 | 15 | TYPO | (Ooops — ignore my suggestion for these pages a moment ago, on tick marks. Seems that you can’t edit/delete a suggestion after submitting on this page. Sorry!) | 2017-10-11 | |
| 83 | 71 | TYPO | In one of the code comments " // Fork three worker processes.“, it says ”three" when the code actually spins up as many worker processes as “const numWorkers = require(‘os’).cpus().length;” returns. The comment is above this line: “for (let i = 0; i < numWorkers; i) {” | 2017-10-11 | |
| 259 | 251 | TYPO | user.profile should be user.provider This terse arrow function uses nested destructuring assignment to pull out the user.profile and user.id properties from the Express Request instance passed in. | 2017-10-11 | |
| 171 | ERROR | It appears that I am having issues with “express”: “4.14.1”and the app.post, create bundle example having url parameters. If I change the app.post to app.get it appears to work fine. | |||
| 98 | TYPO | “Here, instead of finding each subject’s The word “it” should be “in” here. | |||
| 8 | TYPO | On “Programming for the Node.js Event Loop”, Expected as: | 2018-02-14 | Hi sshida, \n \nThe comma after echo in 'echo,' was intentional, I know it looks weird. Putting a punctuation mark after echo in Windows creates a file with a single empty line (or so I understand). | |
| 33 | TYPO | On the last line: Should be: | |||
| 29 | 30 | SUGGEST | In Version 8.9.3 of node and the net library there will be a hard error if you do not use an on(‘error’) clause. Gunnar BTW: I love this book - finally a book with the right Speed and Informations. Thank you so much for finally getting into node. | ||
| 78 | ERROR | Missing code example for “Bidirectional Messaging” within downloadable code. | |||
| 100 | 87 | ERROR | The code example doesn’t have closing braces and parenthesis. | ||
| 18 | ERROR | As copied from the page, the last line of the code example watcher-spawn-parse.js gives me an error on the extra paren: ); fs.watch(filename,() => {constls = spawn(‘ls’, [‘-l’,‘-h’, filename]);letoutput=’‘;ls.stdout.on(’data’, chunk=> output+= chunk);ls.on(‘close’, () => {constparts= output.split(/\\s+/);console.log([parts[0],parts[4],parts[8]]);}); }); I do not know JS, so please forgive me if I mis read the example. I am just learning. | 2018-02-14 | In the code pasted here, some spaces are missing. For example 'const ls' shows up as 'constls'. It's common for pasted text from PDFs to omit important whitespace, so you may have better luck by following along with the code downloads that accompany the book. Thanks! | |
| 5 | TYPO | In the last paragraph of the page, second sentence: Platforms for protyping the Internet of Things… Should be prototyping I’d think. | |||
| 74 | ERROR | On the figure the top heavy arrow should point towards worker processes and not master process | |||
| n/a | n/a | TYPO | My dear shattered Fire Kindle has no page numbers, but makes up it’s own ‘Location 2701’. For those intrepid souls that type all the sample code themselves… The first coding pass at databases/test/parse-rdf-test.js missing a second and final bracket-paren-semicolon to close off the first ever ‘describe’ statement for that file. So, parse-rdf-test.js should have }); and then another (which is missing) }); Then your test should fail instead of throwing a compile error. Do programs still compile? Oh heck, you know what I mean. | ||
| 50 | SUGGEST | In Testability, the first question is asking to add a test that split message over two (or more) data events from the stream. However, that’s exactly the test that was already added on p. 48. | |||
| 102 | TYPO | Comment in the source file // Match file names that in ‘.rdf’. should probably read // Match file names that END in ‘.rdf’. | |||
| 130 | ERROR | In the code to do a bulk index you pass in the type arg on the command line but do not use it. Full URL should be: url: fullUrl(`${program.type}/_bulk`), | |||
| 98 | TYPO | In the first paragraph, second line, it says: … with the CSS selector [rdf\\:resource$=“LCSH”] . … ==> there is a missing “\\”, just as you can see in the code of parse-rdf.js, just above that paragraph: Note the double backslash between “rdf” and “:” => [rdf\\\\:resource$=“LCSH”] | |||
| 128 | SUGGEST | You are explaining jq function ‘keys’ again here - you already explained what it does on the previous page. | |||
| 195 | TYPO | the html on first line ‘fade in’ should be ‘fade-in’. | |||
| 239 | SUGGEST | Seems like when Authenticating with Facebook, http is not allowed. its suggests to try via https. | |||
| 34 | ERROR | The correct command is “$ nc -U /tmp/watcher.sock” not “$ nc localhost 60300”. | |||
| 178 | ERROR | In the code example at the bottom of the page the await keyword is missing in front of the function calls. Currently, the API response is not awaiting the Elasticsearch responses. | |||
| 87 | ERROR | Missing parentheses }); at the end of parse-rdf-test.js. | |||
| 32 | ERROR | $ nc -U /tmp/watcher.sock my netcat (Debian 8) don’t support a ‘-U’ option | |||
| 82 | ERROR | www.gutenberg.org/cache/epub/feeds/rdf-files.tar.bz2 is blocked for german IP | |||
| 83 | ERROR | In the section asking the reader to download the data via the command: “curl -O link/to/rdf-files.tar.bz2”, it will not work because it points to a redirect. But even following redirects (using the -L flag) won’t work as the site warns against such behavior. Just download it in a browser and copy to the right path instead. "DON’T USE THIS PAGE FOR SCRAPING. Seriously. You’ll only get your IP blocked. Download link instead, | |||
| 95 | TYPO | After code example it refers to book.title as book.text. I denote the error below in its context and before the [sic]. Relevant section | |||
| 83 | ERROR | The Gutenberg website feeds URL was not accurate. The page no longer exists. I scrolled through the home page until I reached the Site Map heading. Then, I found the New Books Feeds page link under the Find eBooks section. That page had a download link to the rdf-files.tar.bz file at the bottom of the page. I then moved the file from my Downloads folder to the data folder and unzipped the file with the tar command. | |||
| 234-9 | ERROR | Hi I am currently trying to debug the facebook passport authentication Seems facebook has disallowed http accessing authentication (from March The node.js documentation for creating an https server is fairly I am probably not the only person reading your book with this issue, but | |||
| 117 | ERROR | The following code should not have “!” at the beginning. if (!program.args.filter(arg => typeof arg === ‘object’).length) { The goal of this code is to run program.help() if the args array contains an object. But by negating everything, program.help() will only run if there isn’t any objects in the array. | |||
| 238 | ERROR | Unfortunately Facebook discontinued it’s support for http authentication requests. They can no longer be configured on the app’s properties page. For this purpose the authentication via Facebook service is no longer possible for http web applications. | |||
| 238 | ERROR | Unfortunately Facebook discontinued it’s support for http authentication requests. They can no longer be configured on the app’s properties page. For this purpose the authentication via Facebook service is no longer possible for http web applications. | |||
| 238 | ERROR | Unfortunately Facebook discontinued it’s support for http authentication requests. They can no longer be configured on the app’s properties page. For this purpose the authentication via Facebook service is no longer possible for http web applications. | |||
| 1782 | SUGGEST | Windows 10 users 0mq install -> node install —save zeromq - trying to get a specific version sends readers down compilation rabbit hole and dependency loops. Once installed, Windows users will run into api.zeromq.org/4-2:zmq-ipc “The inter-process transport is currently only implemented on operating systems that provide UNIX domain sockets.” That makes the cluster example zmq-filer-rep-cluster.js, throw unhandled exceptions of the type zeromq\\lib\\index.js:519 > node zmq-filer-rep-cluster.js - cool! | |||
| 123 | TYPO | In the listing that we get back from Elasticsearch, two of the response lines are run together on the same line /_cat/thread_pool/{thread_pools}/_cat/plugins should be two separate lines. | |||
| 78 | ERROR | Bidirectional Messaging code is missing in the code download | |||
| 54 | SUGGEST | Installing the 0mq package on Windows 10 was extremely painful because I did not have the Windows Build Tools installed, and on top of that, I had versions of Python (3.7) and Node (13.5.0) installed that were incompatible. I followed instructions on a blog and finally got the package to install after downgrading to Python 2.7 and Node 10.18.0. Since I can’t post links, if anyone gets stuck, Google “A Comprehensive Guide to Fixing Node-Gyp Issues on Windows.” | |||
| 71 | SUGGEST | Examples in this book are really problematic if you’re on a Windows environment. The code in “microservices/zmq-filter-rep-cluster.js” uses the IPC protocol, which is not supported on Windows. I’m trying to fallback to TCP based on earlier examples, but it doesn’t work with REP socket type. | |||
| 86 | SUGGEST | const rdf = fs.readFileSync(`${__dirname}/pg132.rdf`); there are two(2) underscores in front of __dirname |