By Developers, For Developers
PDF Pg | Paper Pg | Type | Description | Fixed on | Comments |
---|---|---|---|---|---|
30 | ERROR | The Customer class’ set_address and set_name methods reference observer (the argument to add_observer) rather than the_observer (the class member). | 2007-05-11 | ||
xv | TYPO | Text should read: | 2007-05-11 | ||
41 | TYPO | Sample code should read: XMLPullParser parser = new XMLPullParser(‘file.xml’) instead of: XMLPullParser xml = new XMLPullParser(‘file.xml’) To contact submitter poc0123, send email to pocguard-errata@yahoo.com. I would like to offer my services as a technical reviewer. | 2007-05-11 | ||
37 | TYPO | Last line of second code snippet: “a.list” should be “a_list”. | 2007-05-11 | ||
94 | TYPO | In this class description: The last set_size and get_size methods should be | 2007-05-11 | ||
116 | TYPO | Figure 7.5 The Interactions box should have PizzaDeliverer and not PizzaOrder | 2007-05-11 | ||
116 | TYPO | place_order(Order) should be in the OrderEnterer interface and not in the PizzaMaker interface. | 2007-05-11 | ||
56 | TYPO | Method “which_side_on_you_on()” in interface DoubleSidedPrinter should be named “which_side_are_you_on()”. | 2007-05-11 | ||
7 | TYPO | Change “to show that an class” to “to show that a class”. | 2007-05-11 | ||
10 | TYPO | In File interface, remove comma after write method. | 2007-05-11 | ||
29 | TYPO | In the third paragraph, change “in an dynamically” to “in a dynamically”. | 2007-05-11 | ||
29 | DEFER | The paragraph after the Customer interface uses different method names than in the interface. Readers not familiar with Ruby might not see that set_address and set_name are defined in the interface as address= and name=. | |||
48 | TYPO | In the last paragraph, change “don’t like way” to “don’t like the way”. | 2007-05-11 | ||
52 | TYPO | In the Flavor enumeration, add a space before Strawberry. | 2007-05-11 | ||
52 | TYPO | In the paragraph after the IceCreamOrdering interface, add a space between “IceCreamOrdering” and “interface”. | 2007-05-11 | ||
71 | TYPO | In the last paragraph of section 5.2, change “allows your to” to “allows you to”. | 2007-05-11 | ||
76 | TYPO | Change “multiple-selections lists and check boxes together” to “multiple-selection lists and check boxes together”. | 2007-05-11 | ||
77 | TYPO | DefensivePlayer and OffensivePlayer should extend from “FootballPlayer” rather than “Football Player”. | 2007-05-11 | ||
77 | TYPO | Change “Payton Manning” to “Peyton Manning” (this error occurs multiple times). | 2007-05-11 | ||
79 | TYPO | Remove the “(” before “Figure 5.5” in the last paragraph. | 2007-05-11 | ||
80 | TYPO | In the paragraph after the InputStream interface, change “into a InputStream” to “into an InputStream”. | 2007-05-11 | ||
80 | ERROR | The CustomInputStream class should extend from “InputStreamDefault” rather than “InputStream”. | 2007-05-11 | ||
81 | ERROR | The implementation of the read method contains a syntax error: read(byte[], 0, byte.length); The first parameter should be “bytes”. | 2007-05-11 | ||
83 | TYPO | Remove spaces before the two semicolons in the Markable interface. | 2007-05-11 | ||
84 | TYPO | Remove the period in FileOutputStream’s description. | 2007-05-11 | ||
103 | TYPO | In the first paragraph of section 6.6, change “have an remote” to “have a remote”. | 2007-05-11 | ||
133 | DEFER | Be consistent in the WebPage and URL data interfaces. URL is preceded with the word “data” while WebPage is not. | |||
136 | TYPO | Remove the space before the right paranthesis in the add_URL method of the LinkRepository interface. | 2007-05-11 | ||
137 | ERROR | The set_URL_as_unbroken method in Figure 8.3 does not agree with the set_URL_as_okay method in the LinkRepository interface. | 2007-05-12 | ||
142 | SUGGEST | Define a CommandLineParser interface with a method to get the initial URL, rather than duplicating code to get it from args[0]. | 2007-05-12 | ||
143 | SUGGEST | Be consistent in the naming of the URL. In the determineLinkStatus method, it’s called “beginningURL” while everywhere else it’s called “initialURL”. | 2007-05-12 | ||
152 | TYPO | In the DataGatherer description, insert a space between “find_by_location()” and “matches”. | 2007-05-12 | ||
155 | TYPO | Change “the three possible value for url” to “the three possible values for url”. | 2007-05-12 | ||
185 | TYPO | Remove the extra space between “web_page_parser” and “= new RegularExpressionWebPageParser”. | 2007-05-12 | ||
98 | TYPO | The internal representation’s method set_size(Address) should be set_address(Address). | 2007-05-11 | ||
xv | SUGGEST | Add information on how to submit errata. There’s a link at the bottom of each page of the PDF, and on the book’s home page. | 2007-05-11 | ||
8 | OK | “…, O_WRONLY or O_RDWR” should be “…, O_WRONLY, or O_RDWR” Allowed by this style sheet. | 2007-05-11 | ||
9 | OK | The text says that cat “… is nominally set so that …”. Perhaps the author meant “normally”, although I’ve never heard if cat(1) being set up any other way. | 2007-05-11 | ||
13 | TYPO | The title of Asimov’s book is “I, Robot”. | 2007-05-11 | ||
22 | DEFER | The paragraph that introduces “work case” seemed a bit murky to me. I had to read it a few times to figure out what was being said. How about saying “An internal use case, in contrast, describes …” and starting a new paragraph with “To differentiate …”? | 2007-05-11 | ||
23 | TYPO | “Figure 2.3, on the next page shows …” should be “Figure 2.3, on the next page, shows …”. | 2007-05-11 | ||
23 | TYPO | “Note in many languages, …” should be “Note: in many languages, …” or perhaps “Note that, in many languages, …”. | 2007-05-11 | ||
26 | SUGGEST | Point 5 of the “Order a Pizza” test case says nothing about checking the pizza for extra or missing ingredients, let alone issues such as ingredient use (e.g., distribution, layering, quality, quantity) and cooking (e.g., over It might be useful to discuss the possibility of these sorts of issues, as well as “unspoken” assumptions (e.g., “most pizzas have cheese and tomato sauce”) that may be broken in particular cases. | |||
32 | OK | “He created a program …” should be “He also created a program …” (or some such). | 2007-05-11 | ||
40 | TYPO | The “topping” items (e.g., Pepperoni) should be indented in the XML display. | 2007-05-11 | ||
41 | ERROR | Or really, a typo with technical implications (:-). “print length of theTopping” should be exdented. Otherwise, it looks like you want to print a running sum, rather than a single total. | 2007-05-11 | ||
26 | TYPO | The link in the footnote isn’t uptodate anymore. I couldn’t find the new one. | 2007-05-14 | ||
29 | TYPO | I believe “observer” in the Customer class’s set_address and set_name methods should be “the_observer”. | |||
40 | TYPO | I think “print length of theTopping” in the second pseudocode sample on this page should be “print length of theToppings” given the declaration “Node [] theToppings” on the previous line. | |||
7 | ERROR | Example for C is not quite correct. | |||
12 | ERROR | In the Kindle version of this book at location 291-97 (page 12 in the PDF) it says: | |||
114 | TYPO | In the last sentence before the interface list: “I have found that to combine […] and then separate an […]” The ‘and’ in front of the ‘then’ looks strange to me. | |||
115 | SUGGEST | In wouldn’t it be better (more correct) to say as we need to supply Pizza and Address information for a valid order (which are both included in the Order interface, according to the prior list of interface list) | |||
3 | TYPO | …you’ve probably performed the following scenario hundreds of time. [should be times] | |||
61 | TYPO | Who’s Job Is It Anyway? [should be Whose] | |||
5 | TYPO | enumeration Toppings {PEPPERONI, MUSHROOMS, PEPPERS, SAUSAGE} [Seems this should be called Topping, since it represents a single topping. Throughout the book, some code examples use Toppings, others use Topping. Also in some places there is a similar inconsistency, with a set_topping(Topping) and then a Topping[] get_toppings().] | |||
94 | TYPO | the amount of simultaneous connections to that database [should be either “number of simultaneous connections” or perhaps “amount of simultaneous connection”] | |||
52 | TYPO | only shop may implement the IceCreamOrderinginterface. [missing space between IceCreamOrdering and interface] | |||
22 | SUGGEST | Where design by contact is discussed, it should be made clear that a method whose precondition is X has no obligations if X is not met, not even avoiding crashing. How it responds to an unmet X is an implementation choice. The book makes it sound as if callers can expect unmet X to result in an exception or other sane behavior, but this is wrong; if the goal is for callers to be able to depend on certain behavior when X is NOT met, then X must not be a precondition, instead merely part of the described behavior, for example “If X holds, then method does Y, otherwise it does Z.” no preconditions there. To have it any other way is to water the meaning of precondition down to nothing, e.g. “You must be sure X holds when calling this function… well, you don’t have to, and if you don’t, the function will do Z instead of Y”. The author could make it clear where the second law, do no harm, fits into this. It does so in the implementation of a contract with preconditions. Here, you have a choice of what the method does when precondition X isn’t met, and the second law says to avoid doing harm. This way defects in the calling software won’t harm anything, even if they result in an unmet precondition. But they must still not DEPEND on this, otherwise the precondition is being watered down and other implmementations that assume it really is a precondition will not work, since clients are depending on behavior when it’s not met. | |||
58 | TYPO | ePub version - Missing text. Sentence states: | |||
64 | TYPO | ePub version. ‘If you add BALANCE to ChangeType, you do not have to change any Alternatively, you might have the method pass the new and old values:’ | |||
66 | TYPO | ePub version: ‘The code following frame.bind is executed when the window is’ Is what? | |||
68 | TYPO | ePub version: ‘You can alter the of calls in the stateless interface, and the text is always printed with the same font modifier.’ | |||
88 | TYPO | ePub version: Missing word: ‘Disadvantage-callers have to be changed if implementation’ If implementation what? | |||
91 | TYPO | ePub version: ‘SimplePizza method such asmake_by_slicing_before_placing_toppings.’ Should be: ‘SimplePizza method such as make_by_slicing_before_placing_toppings.’ | |||
25 | SUGGEST | In Footnote 17: | |||
21 | TYPO | Link to article about use cases in footnote #13 is broken, should be updated to alistair.cockburn.us/Structuring+use+cases+with+goals |