By Developers, For Developers
PDF Pg | Paper Pg | Type | Description | Fixed on | Comments |
---|---|---|---|---|---|
37 | TYPO | Just before the middle of the page you got a small explanation typo mistake. $$(‘#navbar li’ , ‘#sidebar li’ ) might be $$(‘#navbar li’ , ‘#sidebar li’ ) Hope this help ;-) | 2007-07-19 | ||
151 | OK | At the end of the tip box, I guess it might be more clear to change the CSS selector to add the className from : #myForm *:disabled to #myForm *[disabled] as it is shown few lines upper. Hope this help, | 2007-12-17 | ||
139 | ERROR | “Do note the attribute names are HTML names, not DOM property names Element.writeAttribute accepts both, mainly because Safari will choke on something like this: element.writeAttribute({class: ‘disabled’}); So you have the choice between writing: element.writeAttribute({’class’: ‘disabled’}); Same goes for htmlFor. | 2007-07-19 | ||
26 | SUGGEST | Did I miss something or don’t you go over Element.addMethods at all ? | 2007-07-19 | ||
16 | OK | Second line of the page: | 2007-12-17 | ||
16 | OK | Please forget what I wrote, knot in my eyes :( | 2007-12-17 | ||
15 | TYPO | charset in meta tag needs to be ‘utf-8’, not ‘utf8’ | 2007-07-19 | ||
217 | TYPO | Mislav’s family name hates everything but utf-8 ;) | 2007-12-17 | ||
191 | TYPO | In the ‘Careful with Hash keys…’ section, ‘alredy’ should be ‘already’ | 2007-07-19 | ||
192 | TYPO | In the first bullet, “The first element is | 2007-07-19 | ||
56 | ERROR | The escapeHTML and unescapeHTML example appears to be mising the / in the escaped version (both directions). It has at the end going to <ht> when I think it should be </h1> | 2007-07-19 | ||
116 | SUGGEST | I’m confused about the distinction between n and node in Staff.init(). They seem to be equal, so I don’t understand the purpose of node. | 2007-12-17 | ||
179 | SUGGEST | Consider not to pass the deprecated insertion: Insertion.Top as a parameter to Ajax.Updater. It was stated on page 131 that the Insertion object has been replaced, so it is a bit confusing when it appears on page 179 as the way to go about inserting with Ajax.Updater. | 2007-07-19 | ||
35 | TYPO | $$(‘#navbar li’ , ‘#sidebar li’ ) “links” should either be “LI elements” or “list items” | 2007-07-19 | ||
41 | TYPO | Misconception aleter: for…in is not intended to iterate over an array. “aleter” in there is a typo | 2007-07-19 | ||
115 | ERROR | The code on this page returns an error at line 24 of the example: I’m running with Firebug in Firefox 2.0.0.4 | 2007-12-17 | ||
49 | TYPO | The art of observing events, on page 90, properly should read The art of observing events, on page 90, properly | 2007-07-19 | ||
71 | ERROR | In the second code example for ‘each’, the comment at the top has the order of the results reversed. It should say: | 2007-07-19 | ||
187 | TYPO | Small typo: “du to viewport size” should be “due to viewport size” | 2007-07-19 | ||
233 | TYPO | OS X versions are all mixed up. 10.2 is Jaguar, 10.3 is Panther, 10.4 is Tiger (Puma is 10.1) | 2007-07-19 | ||
60 | SUGGEST | The 2nd line of the 3rd paragraph (copied below) protrudes out into the margin, almost to the edge of the page. Text: “aimed at turning the query string part of a URL (stuff like name=john&text=cool%20stuff&show=yes” | 2007-12-17 | ||
85 | TYPO | On 2nd-to-last line | 2007-12-17 | ||
123 | TYPO | Last paragraph: “That’s for the staff logic…” | 2007-12-17 | ||
127 | TYPO | End of last paragraph: “let’s to it.” | 2007-12-17 | ||
129 | TYPO | Last sentence of 2nd bullet: “An highlight effect would be nice, too, but we’ll get to that later.” | 2007-12-17 | ||
230 | TYPO | It is in Appendix B (there is no page number on the bottom): There are a couple of Blahs left. You probably should change them to a description or remove them. | 2007-12-17 | ||
319 | TYPO | Weird character encoding issue editableHTMLs = [ | 2007-12-17 | ||
367 | SUGGEST | I don’t think it’s really necessary to explain why you chose Ruby. I’m glad you use Ruby as the server component for your examples, but I still find myself disagreeing with some of your reasons. Why not just get to the meat, and save stuff like this for your blog? Respectfully yours, Nathan. | 2007-12-17 | ||
164 | TYPO | Last line: | 2007-12-17 | ||
231 | TYPO | paragraph “Common effect callbacks”. | 2007-12-17 | ||
246 | TYPO | “Figure 13.4: Effect.Wavein action” | 2007-12-17 | ||
254 | TYPO | “We’ll equip our Tux element with an expando isOut( ) function:” | 2007-12-17 | ||
58 | TYPO | at the bottom … spacedOutText.strip() // -> ‘Hello there’ | 2007-12-17 | ||
185 | TYPO | 8.4 title: " olling: Ajax. eriodicalUpdater" (missing P’s) | 2007-12-17 | ||
30 | TYPO | ‘instanciation’ should be ‘instantiation’ | 2007-12-17 | ||
220 | SUGGEST | The first sentence of the first para should read, “…knowledge under our belts,” instead of “…knowledge behind our belt.” Corrects the cliché and corrects the case agreement (belts instead of belt). | 2007-12-17 | ||
223 | SUGGEST | At the start of para 3, say, “In order to use the effects capabilities of script.aculo.us,” instead of “In order to use script.aculo.us’ effects capabilities.” | 2007-12-17 | ||
99 | TYPO | In first paragraph ‘uniformously’ should be ‘uniformly’. | 2007-12-17 | ||
53 | TYPO | Very often, we find yourselves needing to pass a method around, only Typically, we’d find yourself doing something like this: | 2007-12-17 | ||
154 | TYPO | … | 2007-12-17 | ||
65 | TYPO | Section 3.6, 2nd para., 2nd sentence, replace “hoist” with “host”. | 2007-12-17 | ||
83 | SUGGEST | … (here comes sortBy(), which we will describe later on) … Actually you described sortBy() before (not later). | 2007-12-17 | ||
22 | TYPO | unobstrusively- typo, should be unobtrusively (there’s an extra s after the b). Looks like the same mistake is spread throughout the rest of the book too. | 2007-12-17 | ||
119 | ERROR | Some details re #8716. Line 24 of sample code doesn’t work using prototype 1.5.1+ because down(selector) doesn’t work on a node not attached to the DOM. The sample file you can download at media.pragprog.com/titles/cppsu/code/prototype/dom/people.html works because it uses prototype 1.5.1pre0. To see the difference, try $(document.createElement(‘div’)).update(’
abcdef ‘).down(’span’) in Firebug. With 1.5.1pre0 this works. With any later prototype (at least up to 1.6.0rc0) it fails. | 2007-12-17 | ||
129 | ERROR | These lines in the removeSelected() function don’t do what they seem to: var container = this.selected.container; This does not remove the selected node from the container, it merely creates a copy of the containing array and assigns it to a local variable. You can demonstrate this by removing the HR node, then evaluating “Staff.nodes[0].children” in Firebug. You will see that the HR node still exists. I don’t see a simple fix. I would replace the “container” property with a “parentNode” property pointing to the parent node itself (rather than the parent node’s children array). Then you could do parentNode.children = parentNode.children.without(this.selected). You’d also need to rename Staff.nodes to Staff.children. | 2007-12-17 | ||
101 | SUGGEST | 2nd para. under “The duality of Event.stop( )”, sentences 4 and 5 might read better this way: ‘Obviously, when you register a client-side form-checking method as a listener for a form’s submit event, you want to inhibit the default behavior if your checks fail. A so-called “smart popup” unobtrusively listens to its link’s click event to open it in a popup window, at which point navigation should not take place in the link’s window.’ | 2007-12-17 | ||
101 | SUGGEST | 3rd para. under “The duality of Event.stop( )”, 1st sentence might read better this way: ‘Because these two behaviors –- stopping propagation and preventing default | 2007-12-17 | ||
20 | TYPO | at the end of second last paragraph: | 2007-12-17 | ||
20 | TYPO | at the end of second last paragraph: | 2007-12-17 | ||
215 | ERROR | fireworks application not working | 2007-12-17 | ||
213 | ERROR | In the “fireworks example” the event arg is/was missing in fireworks.js function bindUI(event) | 2007-12-17 | ||
251 | SUGGEST | “Chess notation” para: as a chess player I’d like to suggest that you describe it properly. Columns are lettered a-h (on an 8x8 board) left-to-right. Rows are numbered 1-8 from bottom to top. Also the lower-right-hand square is a light-colored square, not dark. Sorry, I couldn’t help myself! | 2007-12-17 | ||
254 | ERROR | A tiny one: Line 9 does not require the abs() function since squaring returns a positive result. | 2007-12-17 | ||
189 | TYPO | missing “:” after onComplete i Ajax.Responders.register | 2007-12-17 | ||
155 | TYPO | Under the Heading “Streamlining AJAX forms with request( )” it says “Just now that this simple call (e.g. $(’myForm’).request()) submits your…”. ‘now’ should be ‘know’. (from sample chapter 7 pdf) | 2007-12-17 | ||
202 | ERROR | missing a closing paren after people.each(function(person) { … } | 2007-12-17 | ||
81 | TYPO | When describing the syntax of the three methods eachSlice, inGroupsOf and zip (written in blue font), zip(sequence should probably be written zip(sequence… [ , iterator = Prototype.K ] ) —> Array | 2007-12-17 | ||
20 | TYPO | Para 2, “duplicate” should be duplicates, or duplication. | 2007-12-17 | ||
23 | TYPO | Para 3 - “couple tables” missing “of” | 2007-12-17 | ||
19 | TYPO | “As you may know, functions in JavaScript get an automatic arguments Is there supposed to be an “all” between “holds” and “of”? | 2007-12-17 | ||
23 | ERROR | Your description of the table code indicates you will be showing a “couple” of tables yet your actual code only has one table. This is confusing. | 2007-12-17 | ||
35 | TYPO | “you’ll be able to express in a very few characters of code what used to be bor - Is there an extra “a” in between “in” and “very”? | 2007-12-17 | ||
151 | ERROR | In the following text, type=“input” should be replace by type=“text”. Original version: it first focuses the field, then if it’s an appropriate field type (e.g. | 2007-12-17 | ||
28 | TYPO | “Manually creating all the required DOM nodes would be fastidious” should probably read “Manually creating all the required DOM nodes would be tedious”. | 2007-12-17 | ||
29 | ERROR | The downloadable code doesn’t work for me. Firebug says “document.observe is not a function”. Grabbing prototype 1.6 and putting it in prototype/intro/basic gets rid of the error, but still a blank screen. Changing line 72 of basic.js from document.observe(‘contenloaded’) to document.observe(‘dom:loaded’) (as in the book) causes the example to work ok. | 2007-12-17 | ||
36 | ERROR | Again, downloaded code doesn’t work. Downloading prototype 1.6 fixes. | 2007-12-17 | ||
38 | TYPO | “Sometimes an object is neither a regular namespace nor a proper Shouldn’t one of those namespaces be “class”? If not, you haven’t until that point explained the difference between regular/proper so it doesn’t make much sense. | 2007-12-17 | ||
234 | TYPO | var tpl = new Template( You’re missing a } in #{0.interests[2] | 2007-12-17 | ||
74 | TYPO | Page 74 only has 1 paragraph and 3 lines. Which should be 2nd paragraph appears directly in page 75, leaving a huge blank in this page. | 2007-12-17 | ||
178 | ERROR | For instance, assuming your required fields all have Req in their id= attributes, Which is checking for the name attribute, not id as described. This might work on msie of course :) | 2007-12-17 | ||
182 | TYPO | Last paragraph of “Joe asks..” has: Note than a later version of … s/than/that/ | 2007-12-17 | ||
183 | ERROR | The first code example uses ‘contentloaded’ still, which should now be ‘dom:loaded’. | 2007-12-17 | ||
189 | TYPO | As we’ll see in Section 9.2, Hooking Up Our Code: Ajax Callbacks, on page 203, Prototype defines a series of callbacks for state changes and events mapping to the official states, plus a few ones. .. There’s a missing ‘new’ here, and the rest of the sentence doesn’t make much sense either. | 2007-12-17 | ||
100 | TYPO | the second line of text on this page says “The iterator computes a new value for the iterator and returns it.” - should this be “computes a new value for the accumulator”? | 2007-12-17 | ||
212 | TYPO | It’s time we look at the two new options Ajax.Updater has over Ajax. “yet” looks like a hangover. | 2007-12-17 | ||
141 | TYPO | where the second last paragraph says ‘That “regular” way appears in createDOMFragment( ), on line 20.’ the createDOMFragment() call is on line 21 of the listing | 2007-12-17 | ||
141 | TYPO | (re: #29932) by which I mean the createElement() call | 2007-12-17 | ||
All | ERROR | The use of the work “iterator” to mean the function that is passed to “each” or any of the other methods created by Enumerable is really confusing to me — and I think technically wrong. I don’t really want to debate if it is right or wrong. I may be full of it. But I really do find it terribly confusing. To me, an iterator reminds me of C and other languages where it is an object used to iterate through another object. It matches closely to “index”. The function passed in to each and the other methods is closer to a ‘thunk’ that Algol created, perhaps a ‘predicate’ although that seems not really proper either. ‘lambda function’ maybe… | 2007-12-17 | ||
102 | TYPO | If ‘hello’.length is 5, how can ‘is’.length be 3? | 2008-04-29 | ||
116 | SUGGEST | English grammar: “say you got only one” should be either “say you have only one” or “say you’ve got only one.” | 2008-04-29 | ||
23 | TYPO | thebungeebook.net looks for a local link | 2008-04-29 | ||
323 | OK | The whole scriptaculous chapter is completely different to the downloadable code. For instance the advanced page and ajax page contain only 1 texbox in the code wwhereas the pictures imply multiple and different boxes… Confused :-( | 2008-04-29 | ||
74 | TYPO | Unusual page break after only 4 lines of text. Text on next page begins: “Or you may just want to evaluate the scripts in an HTML fragment: ” | 2008-04-29 | ||
42 | SUGGEST | On the for() code snippet for (var index = 0, l = array.length; index < l; ++index) // etc It would be advisable to change l to read as another variable. On brief review, that letter l can be read as a number one. Just a thought :) | 2008-04-29 | ||
62 | OK | ‘Vowels are bad for you’ .gsub(/[aeiouy]/, ‘-’) Please note that Y is a consonant when it comes at the beginning of a word. Example: “you” | 2008-04-29 | ||
200 | OK | The ruby code for example search does not work on MAC OS (I tried it on Linux just fine). Maybe the method “get_search_results()” which searches through directories is the culprit: probably the ruby libraries are organized in different places on MAC OS than for example on Linux? | 2008-04-29 | ||
284 | ERROR | In chapter 15 that talks about Draggables, the text talking about the “delay” option says that the value is in “seconds”, despite the preceeding paragraph and footnote saying that this value is in “milliseconds”. Testing shows it to be millis. Thanks for a great book! Dan | 2008-04-29 | ||
259 | OK | There isn’t revertcolor option in Effect.Highlihght I guess revertcolor is restorecolor. | 2008-04-29 | ||
345 | ERROR | Builder shorthand methods (perhaps all builder create methods too) require the second arg to be an array of elements and not the element itself. So for example this does not work. P ({ className: 'submission' }, INPUT({ type: 'submit', value: 'Sign in'})) But this does. P ({ className: 'submission' }, [INPUT({ type: 'submit', value: 'Sign in'})]) | |||
19-20 | TYPO | HTML on page 19 contains one table, but all subsequent figures 2.2 and 2.3 display two tables. | |||
258 | ERROR | the correct name for the option in the Effect.Highlight is restorecolor and not revertcolor | |||
33 | TYPO | In the syntax block that shows the definition for multiple elements, what is shown is But I think it really is this (note the comma location) Otherwise the syntax produces a hanging comma, no? Cheers Terry | |||
330 | ERROR | The downloadable code for this book has a comment at the top of scriptaculous/autocomplete/advanced/suggestions.rhtml that does not appear in the sample code in the text. I find that the code does not work unless the comment is removed from the sample code. This is probably true on p. 324 also. | |||
183 | ERROR | The document.observe(‘contentloaded’ should be document.observe(‘dom:loaded’ as to be consistent with others and the 1.6 way of doing this. | |||
175 | 165 | TYPO | line 4: Replace ‘ with type=“input”’ with ‘ with type=“text”’. | ||
233 | 224 | ERROR | The template is missing a closing curly brace } after 0.interests[2]. | ||
28 | SUGGEST | Grammar: in the second paragraph, “shortly in a moment” is redundant. | |||
89 | TYPO | Top of the page, last sentence in the paragraph, replace the second appearance of “iterator” with “accumulator. Thus, it should read, ”The iterator computes a new value for the accumulator and returns it." | |||
104 | TYPO | The code in this page has ‘y’ as vowel: | |||
27 | SUGGEST | The english is a bit jolty generally in this book. In particular, this paragraph: Perhaps you come from a programming background with languages I had to read it 3 times, and only when I read the following paragraph did I understand what the author was trying to say. This would be better: Perhaps you come from a programming background with languages I thought he was explaining lack of higher order functions because of the topic of the sentence (languages that do NOT have higher order functions). | |||
28 | ERROR | This is not what fastidious means. | |||
112 | ERROR | All download links to media.pragprog.com return 404. Removing the extra ‘code’ from the url, returns resources. | |||
53 | ERROR | This is actually in the “P2.0 printing, May 2008” version of the book, but that’s not listed in your dropdown on the add erratum page. Anyway: The code snippet towards the bottom of the page that reads: for (var index = 0, len = array.length; index < l; ++index) should compare “index < len”, not “index < l”, which obviously won’t work. | |||
66 | TYPO | The second method should be The fifth method | |||
67 | TYPO | The fourth addition should be the seventh | |||
90 | SUGGEST | They’re likely to be standardized in JavaScript 2.0 (ECMAScript, 4th edition, due in 2007). Isn’t this a little bit outdated? This is 2010, and the fifth edition was released in december 2009. | |||
102 | SUGGEST | I think the = sign in the examples is hard to read. It looks way too much like a - sign. | |||
111 | TYPO | (in separate Java-Script files) shouldn’t this read (into separate Java-Script files) | |||
112 | TYPO | Prototype used to sport an extra … should read Prototype used to support an extra … | |||
177 | TYPO | ( should read ( | |||
30 | TYPO | result += (this.country || “); should be result +=(this.country || ”"); Without the terminating quotation mark, gives an error noting such in Firefox’s error console. | |||
42 | ERROR | Book version May 2008 - version # 2008-5-5 index is checked against variable l, shouldn’t this be the variable len which has been defined and set to zero, where is variable l defined and initialized? |