By Developers, For Developers
| PDF Pg | Paper Pg | Type | Description | Fixed on | Comments |
|---|---|---|---|---|---|
| 11 | TYPO | “In this chapter you’ll see a simlified version of this action.” simlified > simplified | 2008-02-18 | ||
| 7 | TYPO | First paragraph: | 2008-02-06 | ||
| 7 | TYPO | First paragraph, last sentence: “more and more natual” — should be natural | 2008-02-06 | ||
| 8 | TYPO | Second paragraph: Third paragraph: | 2008-02-06 | ||
| 9 | TYPO | Second paragraph: Third paragraph: | 2008-02-06 | ||
| 11 | TYPO | First sentence - missing “and” — [and] it would just disappear | 2008-02-06 | ||
| 15 | TYPO | Second paragraph, third sentence. “its of course obvious” should be “it’s of course obvious”. Fourth paragraph, last sentence. “its so complex” should be “it’s so complex”. Last paragraph, “[…] implement animation ourselves its all encapsulated […]” should be something like “[…] implement animation ourselves; it’s all encapsulated […]” | 2008-02-06 | ||
| 18 | TYPO | Second paragraph: “(for examples sake and to make the math easy lets use […]” should be “(for example’s sake and to make the math easy let’s use […]” | 2008-02-06 | ||
| 19 | TYPO | Second-last paragraph: “[…] in detail in Chapter Chapter 5” - extra word. | 2008-02-06 | ||
| 8 | TYPO | Third paragraph: “arrises” should be ‘arises’ | 2008-02-06 | ||
| 19 | TYPO | Third paragraph: “…why and unexpected…” should be “…why an unexpected…” | 2008-02-06 | ||
| 22 | TYPO | Fourth paragraph: “Figure Figure 3.1” - extra word. | 2008-02-06 | ||
| 23 | TYPO | First paragraph: “key frame’s” should be “key frames” | 2008-02-06 | ||
| 23 | TYPO | Third paragraph: “animations duration” should be “animation’s duration” | 2008-02-06 | ||
| 23 | TYPO | Fifth paragraph: “Figure Figure 3.1” - extra word. | 2008-02-06 | ||
| 24 | TYPO | Second paragraph: should be new sentence after “…supply that to the animation” | 2008-02-06 | ||
| 9 | SUGGEST | Adding “on page xx” after every mention of a chapter makes this page harder to read than it needs to be. In the first few paragraphs it is tolerable but in the next to last paragraph, which begins “In Chapter 8…” the constant mention of page numbers makes the paragraph impossible to follow. As a matter of fact, I would replace all mentions of specific chapters in this paragraph with “in the preceding chapters” | 2008-02-06 | ||
| 16 | SUGGEST | First sentence of section 2.3; I think you need a comma: “As we have seen, ” | 2008-02-06 | ||
| 28 | TYPO | “… looking at filters latter in Chapter 7, Core Animation, on page 73 we will make use of the keyPath to animate the properties of the filter.” “latter” should be “later” | 2008-02-06 | ||
| 28 | TYPO | “Any of the animations we have seen thus far can be put into groups. We Should read, “… we can add …” | 2008-02-06 | ||
| 28 | TYPO | “It starts at the center of the screen grows and rotates then retur ns to its original position.” Good writing means (among other things) dropping as many commas as possible. Modern dogma would have a writer believe he should simply drop all commas unless absolutely required. This is wrong. The sentence above is difficult to parse quickly as breaks are not demarcated by that all-important punctuation mark: “It starts at the center of the screen, grows and rotates, then returns to its original position.” You’re enumerating a list of actions. Use commas. | 2008-02-06 | ||
| 30 | TYPO | Suggestion on formatting: Objective-C method signatures are not usually usually shown in this format: Usually, they’re shown this way: -groupAnimation: … or … groupAnimation: Another example would be [someObject doSomethingWithSomeArgument:arg1 someOtherArgument:arg2] : -doSomethingWithSomeArgument:someOtherArgument: Putting parentheses on this latest example would look funny: -doSomethingWithSomeArgument:()someOtherArgument:() … or incorrect … - doSomethingWithSomeArgument:someOtherArgument:() I suspect you’re using a style sheet which is automatically appending the “()” for text marked as method signatures, so that would be easy enough to fix. :-) | 2008-05-29 | ||
| 79 | SUGGEST | I’m not sure if it’s just my setup; It looks like you are using Garbage Collection in your example code, but you haven’t enabled GC in the build settings of these examples. | 2008-02-18 | ||
| 45 | SUGGEST | “And keep in mind that there are QuickTime movies of all This seems completely out of place. This should probably be in a sidebar. Better yet, something like the “Download …” tags could be used to link to the animations. | 2008-02-18 | ||
| 45 | TYPO | “Now lets look at the code need to make this happen. Lets start with the 1 - The word “lets”, though defined as an archaic spelling, is really a contraction of “let us”, which should be spelled, “let’s”. 2 - The word “need” should be “needed”. 3 - While I’m on it (lots of others have posted typos on this too), you should go through every “its” and “it’s” and make sure they’re the right ones (instead of “their” the right ones or “there” the right ones :-D). | 2008-02-18 | ||
| 48 | SUGGEST | “In this chapter we are going to This is very wordy. You start three sentences with, “In this chapter” and in each of those three sentences you say almost the same thing. Consolidate the first “In this chapter” sentence with the last paragraph and summarize the points you make therein. | 2008-02-06 | ||
| 49 | TYPO | “So we can still use many of the approaches we are “accoustomed” should be “accustomed” | 2008-02-06 | ||
| 49 | TYPO | “This first step along the jour ney is about backing our view’s with lay- The word “view’s” should be “views”; the view doesn’t own anything in this sentence. :-) | 2008-02-06 | ||
| 49 | TYPO | (Not just page 49; I had to give at least one page) All instances of the word “journey” seem to have a hidden space in them … they’re not visible when reading the PDF but when pasting errata, the plaintext form of the string shows it. It’s also apparent when you select the text in the PDF (there’s a little ‘hump’ over the ‘n’). | 2008-05-29 | ||
| 16 | TYPO | You have: “As we have seen animation of Cooca classes is performed…” | 2008-02-18 | ||
| 16 | SUGGEST | You have: “In this section we are going to look at what this proxy is and how it works. Including how the …” Try: “In this section we are going to look at what this proxy is, how it works, how the animator finds…” | 2008-02-18 | ||
| 17 | TYPO | “animationForKey:( ) first looks in the receivers[*] animations dictionary” *change receivers to receiver’s (possession) | 2008-02-18 | ||
| 8 | TYPO | “In fact we can get 80% of the benifits…”, should be benefits | 2008-02-18 | ||
| 8 | TYPO | Third paragraph: “…animations that are avalible…”, should be available | 2008-02-18 | ||
| 6 | TYPO | You need to pay more attention to the difference between it’s (= it is or it has) and its (indicating possessive) | 2008-04-22 | ||
| 21 | TYPO | “..we did not point it out the basic animation…” should be “…we did not point out that the basic animation…” | 2008-02-18 | ||
| 14 | SUGGEST | In BaseView, targetFramePosition doesn’t need to be a member variable. | 2008-02-18 | ||
| 25 | ERROR | As far as I can see, the following is true only for images of a specific size: | 2008-02-18 | ||
| 26 | SUGGEST | in heartPath: first building the path on constant values and scaling it afterwards to fit right into frame may be more readable. | 2008-02-18 | ||
| 31 | TYPO | mouseDown: in the first paragraph after code listing need to be changed to keyDown: | 2008-03-26 | ||
| 30 | TYPO | “The groupAnimation:( ) method on line 1 creates the group and configures “is” should be “it” | 2008-03-26 | ||
| 30 | TYPO | “The duration we have discussed earlier so lets get into the autoreverses property.” Missing apostrophe in “let’s”, and starting with the direct object makes the first half of the sentence awkward. | 2008-03-26 | ||
| 30 | TYPO | “In other words if one of the contained animations were to set the autoreverses property to NO it would be ignored in favor of the groups setting.” “groups” should be “group’s”. There seem to be many missing apostrophes (this is the second in this paragraph), so I’ll stop reporting each one. Definitely have the copy editor focus on catching them. | 2008-03-26 | ||
| 33 | TYPO | “Which usually makes for a nice smooth animation. If we use our own animations however we need to be careful to make sure the animations idea of initial value and the view’s current value are the same. If they are not we can get ’choppiness’ at the front or back of our animations.” The first sentence is a fragment and should be appended to the previous sentence with a comma. As a general suggestion, it feels that you could use more commas overall. For example, commas around “however” and after “If they are not” would help the reader with the flow. The main reason I stopped here, however, was because I had to reread the second sentence 3 times. It’d be easier to parse if it were more parallel and the verbs weren’t split up; something like: “If we use our own animations, however, we need to be careful to make the animation’s initial value and the view’s current value the same” or even “…set the animation’s initial value to the view’s current value.” Also, there’s a missing apostrophe in “…animations idea of…” (Hope I’m being more helpful than annoying.) | 2008-03-26 | ||
| 34 | SUGGEST | I really like your warning about setting an animation’s initial value to a value other than the view’s initial value, but you don’t mention that the easiest way to avoid this problem is to simply avoid setting an initial value for the animation. If I understand the docs correctly (“Setting Interpolation Values” section at the top of the CABasicAnimation class reference), the animation will just use the view’s current setting as its fromValue/toValue if either of these are nil. | 2008-03-26 | ||
| 22 | TYPO | The time scale of figure 3.1 doesn’t match the text. The text says the points are at 0.25, 0.50, 0.75 but the figure looks more like 0.1, 0.5, 0.9 (assuming the green box is supposed to extend from 0 to 1 — as it appears to do for the other figures). | 2008-03-26 | ||
| 49 | TYPO | “Things like, only draw when necessary, only draw what has actually changed, when appropriate I’ll make sure to point out when to look out for this issue.” This should be two sentences; the first half is just a fragment, so it may need to be reworded. | 2008-03-26 | ||
| 52 | TYPO | “For example consider the doc changes that were part of Leopard.” “doc” should be “dock” (insert bad medical pun here) | 2008-03-26 | ||
| 60 | TYPO | “A background filter might be used to emphasis a view by softly blurring the background” “emphasis” should be “emphasize” | 2008-03-26 | ||
| 58 | SUGGEST | Hi here are some questions I’d like to see answered in the final version: 1) How can you handle large layers (eg larger than max texture size) using CATiledLayer. Can you do it with layer backed views? 2) How can you control the drawing order (back to front) of layers that are not in the same layer hierarchy? This might be the case if you have a view hierarchy where some leaf views are layer backed, but the superview isn’t. Thanks, | 2008-05-29 | ||
| 77 | ERROR | On lines 23 & 24 you create two variables named width & height. The names are a bit confusing because these variables don’t actually represent the width and height of anything. Instead, on p. 79 you use them as the x and y coordinates of the origin of the layer’s frame, so they might be better called something like x & y or xOffset & yOffset. | 2008-03-26 | ||
| 81 | TYPO | “Instead of using a straight NSString and therefore having a single font and color we could intead use an NSAttributedString and then we could use all the expressive power of the attributed string.” I wish this were true, but unfortunately CATextLayer appears to limit its support of text attributes to those that correspond to its properties (foreground color, font, font size, and alignment — I haven’t tested all the other attributes, but it’s definitely ignoring stroke and shadow). Since Apple’s documentation doesn’t make this clear (bug filed), it would be a useful gotcha to confirm and highlight in the book. | 2008-03-26 | ||
| 14 | TYPO | Maybe “Build and run the application and press any button” should read “Build and run the application and press any key”? | 2008-03-26 | ||
| 17 | TYPO | missing apostrophe: should be receiver’s | 2008-03-26 | ||
| 24 | TYPO | should be “it’s” - it is Basically its any property that is typed, | 2008-03-26 | ||
| 33 | TYPO | it’s - So as its | 2008-03-26 | ||
| 24 | TYPO | arrayWithObjects: needs a nil at the end of the list | 2008-03-26 | ||
| 13 | TYPO | The code formatting is a bit messed up. It doesn’t seem to be using consistent spacing. One code example on this page reads: - (BOOL)acceptsFirstResponder { - (void)keyDown:(NSEvent *)event { The former method body has two spaces before it, whereas the latter has eight (or a hard tab that has been mapped to eight spaces). It should continue to use the K&R brace style that it already does, but four-character indentation with spaces rather than tabs is traditional for Cocoa code. Keeping all of the code in the book consistent will this will make it much, much easier to read. | 2008-03-26 | ||
| 13 | TYPO | Cocoa has no method named “acceptsFirstResponder()”. The proper way to write this is “-acceptsFirstResponder” to refer to just the selector, or “-[NSResponder acceptsFirstResponder]” to also specify its class. Furthermore, the name of a method ALWAYS includes the colon. There is no “keyDown()” method in the first example. The proper name of the method is “-keyDown:” including the trailing colon. This is long-standing convention that any book on Cocoa-related technologies must follow. Otherwise it makes it look like the author does not understand Cocoa or Objective-C, which I know is absolutely not the case for Bill. | 2008-03-26 | ||
| 13 | TYPO | “You will also need to override the following two methods to handel key- “handel” should be “handle” | 2008-03-26 | ||
| 17 | SUGGEST | The notation of method names in text is inconsistent with those in Apple documentation and other books like Cocoa Programming For OS X (Hillegass). Instead of referring to the “animationForKey:()” method as is done, it may be better to note it as “animatonForKey:” in a different font (possibly even prepending them with a - or + for increased clarity), saving confusion with C functions like NSMakeRect(), which are notated properly. Love the book! | 2008-05-29 | ||
| 1 | TYPO | The parens at the end of every method is a bug in the typesetting and will be fixed before the book is finalized. Just wanted to let everyone know. | 2008-05-29 | ||
| 109 | ERROR | On page 109 you mention that “[you] will also touch on how to add a default animation for [our] custom properties.” However, I don’t see where this is covered. The closest the text comes is on pages 110 and 111 where you cover defaultActionForKey: method. However, in my experience, this method is not called for “custom properties”, only properties that are defined in Apple’s documentation as animatable. I would love to be wrong in this. I think that CALayer should better support custom animatable values. | 2008-06-30 | ||
| 7 | TYPO | "Its not ‘just’ eye candy…’ Its should be It’s | 2008-04-22 | ||
| 8 | TYPO | “Just tell the view or window that you want animation and change a property Core Animation takes care of the rest of the details and smoothly animates the change from the old value to the new value.” Needs period after property and before Core Animation | 2008-04-22 | ||
| 9 | TYPO | “Its actually quite easy to pick up” Should be It’s. | 2008-04-22 | ||
| 10 | SUGGEST | Why put page numbers in? Doesn’t seem to serve any purpose since I’m not likely to flip to the chapter while reading the quick overviews and we have a table of contents. They also seem to make it harder to read, especially the chapter 8 paragraph. | 2008-04-22 | ||
| 10 | TYPO | Not really a typo per se, but you are missing the Chapter 9 summary on this page. | 2008-04-22 | ||
| 10 | TYPO | “Core Image is apples way of doing image procesing on the GPU” Should be “Apple’s” | 2008-04-22 | ||
| 11 | TYPO | “Junk is the raw materials of a great invention…” materials should be singular since junk is singular. | 2008-04-22 | ||
| 9 | SUGGEST | Some sentences are very long which require much more attention when reading. This makes reading technical info harder. For example: Perhaps this can be broken into two sentences. At the least, it needs a semicolon between “Core Animation” and “we”. I’d suggest taking a look at any sentence that spans more than 3 lines. | 2008-04-22 | ||
| 10 | TYPO | " Core Animation API’s.Chapter 3" Missing space before “Chapter 3” | 2008-04-22 | ||
| 1 | SUGGEST | Would it be helpful to add a references section? I really find these sections useful for a single subject book like yours. It gives me some (hopefully) advanced places to go when I reach the end of the book. I’ve found the “Programming with Quartz” book helpful since it talks about loading CGImageRefs (which are set at the contents of the layer). Also helpful would be a few web sites (the Apple GeekGameBoard example is very helpful for animation transactions for dragging layers around). Maybe mention of the cocoadev wiki and Apple’s mailing lists. I wonder if the new Aaron Hillegass update is going to mention Core Animation? Perhaps that could be listed as an additional source if you could get an advance copy to look at. | 2008-05-29 | ||
| 1 | SUGGEST | Can you add a section on who you are, why you are interested in Core Animation and perhaps a link to your site (or another method of getting in touch)? It would also be helpful to put in a paragraph or two on what skills I should have before reading this. Objective-C and Cocoa seems like a must, but how much depth do I need with them before starting. Also what versions of Xcode and Interface Builder have been used with the examples. If a CD is not to be put with the book, we’ll also need a url to download the examples from. Thanks :-) | 2008-05-29 | ||
| 28 | SUGGEST | The code download and the generated PDF seem out of sync. You’re referring to code KeyFrameMoveAView but it’s located in CocoaAnimation and without an XCode project. Would be great to have the code updated so that I can just compile it and see how the text translates to real life | 2008-05-29 | ||
| 29 | SUGGEST | I disagree with not detailing the Quartz path more. I came to this book to learn how to do animations, and a path seems to me like a logical part of that. So give an intro and then refer to a book. I would like to know more about NSMinY, NSMinX, NSHeight and NSWidth, for instance why you don’t say frame.size.height or frame.origin.x. | 2008-05-29 | ||
| 31 | TYPO | A little bug in the code. Try holding ‘g’ down a bit (so that the animation stutters), then release it and see what position it ends in. And no, it’s not the original position :-) | 2008-04-22 | ||
| 31 | SUGGEST | I think it would be nice if you’d add a comment about why you’re using CGFloats rather than regular floats. | 2008-04-22 | ||
| 36 | TYPO | There’s an equivalent retrigger problem just like in the heart-shaped bounce animation. It becomes very apparent if you add your suggested code (I’ve added a delay to make it very visible) - (CATransition *)animation { and the suggested Hit the r key with 1 second intervals and you’ll see a jumping effect on the picture that should be fading out. It jumps to being the other picture. | 2008-04-22 | ||
| 113 | TYPO | in the grey box: | 2008-04-22 | ||
| 12 | OK | Second last paragraph ‘When you press any key the picutre will shrink’ | 2008-05-29 | ||
| 12 | SUGGEST | Pages beginning a chapter don’t have a link to report erratum | 2008-05-29 | ||
| 15 | TYPO | The isRigth = !isRight code fragment is indented too far | 2008-05-29 | ||
| 1 | SUGGEST | Someone else mentioned earlier having discussions of CATiledLayer, which is something I need to use, and something probably others will be interested in. However, I don’t see it in the Table of Contents. Since Apple has nothing on their site on how to use this class, its a great opportunity for you! | 2008-05-29 | ||
| 153 | TYPO | Quart instead of Quartz in first Paragraph of section 11.2 | 2008-05-29 | ||
| 14 | TYPO | The indentation of the -initWithFrame: and -keyDown: code fragments is inconsistent. | 2008-05-29 | ||
| 19 | SUGGEST | It would be nice if the sequence diagram in Fig 2.2 were expanded to show the entire animation search process discussed in the text. As it stands it only shows the first couple of messages. | 2008-05-29 | ||
| 114 | ERROR | ‘scroll’ in figure 9.1 ought to be a CAScrollLayer rather than CALayer, although that is technically correct. | 2008-05-29 | ||
| 69 | TYPO | “…keyPath notice that it’s set to backgroundFilters.torus.kCIInputWitdhKey.” kCIInputWidth not kCIInputWitdhKey | 2008-06-30 | ||
| 101 | SUGGEST | There is no code for the PhotoPop example provided for download in the current code archive, nor via the direct link in the pdf | 2008-05-29 | ||
| 108 | SUGGEST | The LayerDrawing example is also missing from the code | 2008-05-29 | ||
| 89 | ERROR | The image used to display the Y-Axis constraints uses kCAConstraintMinX instead of kCAConstraintMinY | 2008-05-29 | ||
| 88 | TYPO | The X-axis constraint image has a caption of ‘Example layer tree’ which doesn’t seem to make sense | 2008-05-29 | ||
| 89 | TYPO | The Y-axis constraint image has a caption of ‘Example layer tree’ which doesn’t seem to make sense | 2008-05-29 | ||
| 109 | TYPO | ‘or return, and NSNull to signify that the search’ and -> an | 2008-05-29 | ||
| 127 | ERROR | The quote used to start Chapter 10 is the same as the quote used in Chapter 7. | 2008-05-29 | ||
| 85 | ERROR | Using the size setting of boldSystemFontOfSize doesn’t seem to have any effect on the output rendering. The font always gets the default size of 36.0 I had to set layer.fontSize = 18; setting on the layer to get the font size to actually change. | 2008-05-29 | ||
| 13 | SUGGEST | The Edison quote is “To invent, you need a good imagination and a pile of junk.” | 2008-05-29 | ||
| 15 | SUGGEST | It would be nice if the expressions were nicely spaced. NSMakeRect(0.0, 0.0, frameX / 4, frameY / 4) instead of NSMakeRect(0.0,0.0,frameX/4,frameY/4) | 2008-05-29 | ||
| 29 | ERROR | You wrote “bounce is called from keyDown:( ) when any key is hit”. This is not true. In the current code example, bounce is called when the ‘b’ or ‘B’ character is hit. | 2008-06-30 | ||
| 31 | SUGGEST | The GroupAnimation example reports warnings. I would suggest declaring the “- (CAAnimation *)frameAnimation:(NSRect)aniFrame” and “- (CABasicAnimation *)rotationAnimation” methods in GroupAnimationView.m into the header file. To make this work, also move the QuartzCore import into the header file. | 2008-06-30 | ||
| 33 | SUGGEST | In the KeyFrameMoveAView example, you catch both ‘b’ and ‘B’. In the GroupAnimation, you only catch the lower-case ‘g’. This feels inconsistent. | 2008-06-30 | ||
| 159 | SUGGEST | CALayer’s +(id)layer; is almost certainly defined as: +(id)layer { therefore, you should never override it, but instead override init: since the file CALayer.h says that init is the default initializer, this will cause programs that use [[myLayer alloc] init] to work, while putting code in +(id)layer; will cost them hours. (Guess how I know.) | 2008-06-30 | ||
| 23 | TYPO | Second paragraph, first sentence reads “Up to this point, we have seen only AppKit APIs, but in this chapter we I believe that should be “…are going to start to mix…”. | 2008-06-30 | ||
| 23 | SUGGEST | Paragraph 3, sentence 2 makes reference to the “CocoaAnimation” sample on page 12. Jumping back to page 12 and reviewing the text there, I do not see a single instance of the sample being referred to as “CocoaAnimation”. That text exists as part of the path to the sample, but the actual project is entitled “FirstAnimation”. This could create some confusion (it did for me). I would recommend changing the text in Chapter 3, pg 23 to refer to the “FirstAnimation” sample, or refer to the project at some point in Chapter 12, pgs 12-13 explicitly by the name “CocoaAnimation”. | 2008-06-30 | ||
| 23 | SUGGEST | Paragraph 4, sentence 1 uses the phrase “suits the bill”. Should this not be “fits the bill”? “Suits the bill” seems awkward. | 2008-06-30 | ||
| 23 | SUGGEST | I’d suggest making a section for “Basic animations” before “3.1 Keyframe Animations”. Perhaps just inserting a section header between pg 23 paragraphs 2-3 would accomplish the goal. This would make it clear that the basic animation is a proper animation type, even though it was used in the previous chapter. It would also then show up in the bookmarks list, which would make it more obvious when quickly scanning to get an idea of all the available animation types. | 2008-06-30 | ||
| 24 | SUGGEST | First paragraph of section 3.1, last sentence reads “… and exactly the length of time we want it to have that value.” This makes it sound as if the change to the property is temporary, and it will be set back to the original value after some elapsed time. It may be more clear to say something like “..and exactly the length of time over which that property is applied” or something which indicates that you arrive at the specified value at the end of the time period. | 2008-07-14 | ||
| 28 | SUGGEST | The first paragraph of text on pg 28 refers the reader to pg 18 of section 2.3 as a reminder of being able to add custom animations to the animations dictionary. Section 2.3 does not seem to clearly express that one can add to the animations dictionary. It seems (to me) to only express that the animations dictionary is searched, but not that it can be modified. Specifically this text on page 18: " animationForKey: first looks in the receiver’s animations dictionary, and if an animation is found, it is retur ned. If not, then the class method defaultAnimationForKey: is called, and that animation is returned." seems to say nothing about adding custom animations. Then the final paragraph of section 2.3 alludes to adding custom animations, but does not go into any detail on how to do so: “As we move into our discussion of animationobjects, remember the process that the animator uses to find the animations. We will take advantage of this process to eventually attach our own animations to our views and windows to create our own custom animation effects.” | 2008-06-30 | ||
| 14 | SUGGEST | Indentation in the code examples as printed in the book — is way off. In the Xcode it’s displayed correctly only with Tab width: 2, Indent width: 2. To get them looking correctly in the book as well, I think all examples should either be converted to use Tab character for indentation everywhere, or some internal setting should be used. | 2008-06-30 | ||
| 40 | TYPO | Computers are incredibly fast, accurate, and stuipd. Should be stupid. | 2008-06-30 | ||
| 123up | SUGGEST | Figures 9.3 - 9.7 have some “fuzzy” text. It seems some of the text is actually bitmap-text (e.g. “CALayer (image1)” looks fuzzy) | 2008-07-14 | ||
| 34 | SUGGEST | In GroupAnimationView.m, in function “keyDown”, we setoff a group animation by typing ‘g’, which triggers: i’ve found that if you press ‘g’ again in the middle of the animation, it restarts (expected) however when it finishes the frame then resets it’s rotation to whatever angle it was as when that second ‘g’ was pressed, because [mover frameRotation] wasn’t zero at the time the second ‘g’ was pressed. at that point your frame is stuck sideways until you changing it by hitting ‘g’ twice again, but still it’s hard to get it back to the starting point with out quitting and relaunching. hitting ‘g’ to kick it off again then moves it back to 0.0 in a choppy way, and re-animates from 0.0 to 45.0, then back, then back to whatever angle you were at when you hit the second ‘g’. if you swap [mover frameRotation] with just 0.0f you avoid this behavior. | 2008-07-14 | ||
| 46 | TYPO | file AnimationTiming/CustomAnimationTiming/MyView.m without setting the duration the animation is terribly choppy, can’t visualize the animation going on the curve. adding it in makes it very obvious. | 2008-07-14 | ||
| 98 | ERROR | method - (void)mouseDown isn’t found in code downloaded from website. Furthermore, even if added the method will not work unless the photolayer is named “photo” in the setup method. | 2008-07-14 | ||
| 16 | ERROR | The suggested code change won’t compile, because targetFramePosition is never declared. Also, it’s a tad easier to edit by adding [mover animator] in each case of the if statement, even if it’s less tidy. | 2008-07-14 | ||
| 33 | SUGGEST | You say, " We discussed the duration earlier, so let’s get into the autoreverses property." However, I couldn’t find any substantial discussion of the duration property. My biggest question was, are those seconds, or some unitless value that can be scaled in time? (The line before says seconds.) | 2008-07-14 | ||
| 162 | OK | Suggestion for Example code. | 2008-07-14 | ||
| 56 | TYPO | Box refers to next chapter, but there are two chapters in between. | 2008-07-14 | ||
| 130 | ERROR | “It has the ef fect of making things in the layer | 2008-07-14 | ||
| 56 | TYPO | Correction to my errata: There is one chapter in between. | 2008-07-14 | ||
| 50 | TYPO | The description of the example states, “As it arrives, the snowman animates from the center to the left side of the screen.” It should be, “As it arrives, the snowman animates from the center to the right side of the screen.” | 2008-09-29 | ||
| 68 | ERROR | In the example project the Custom View in the Background Filtered View is of type SimpleView which doesn’t exist. It should be changed back to being a standard NSView. | 2008-09-29 | ||
| 70 | ERROR | The description of the example project mentions a subview called SimpleView. The SimpleView class does not exist in the example project so it either needs to be added or the view need to be changed to use the standard NSView class and the reference to SimpleView removed from the descriptive text. | 2008-09-29 | ||
| 74 | ERROR | In the example project the Custom View in the Composited View is of type SimpleView which doesn’t exist. It should be changed back to being a standard NSView | 2008-09-29 | ||
| 87 | TYPO | In the first paragraph, when explaining the color creation code, the black method is on line 9, not line 1. | 2008-09-29 | ||
| 127 | TYPO | The origin of the frame has moved from {25, 10} to {35,20} | 2008-09-29 | ||
| 110 | ERROR | The provided source files don’t include the filecode/CoreAnimationLayers/TiledLayer/Images/SilverGreen_0.25.png which causes an error when trying to compile that project. Deleting the reference from the project seems to fix things though. | 2008-09-29 | ||
| 110 | OK | I don’t see any info on UIView classes & Layers. We need more iPhone coverage. (Dave says: I agree, but unfortunately Apple doesn’t. Under the terms of the NDA signed by Bill, he can’t discuss iPhone APIs) | 2008-09-26 | ||
| 1 | ERROR | Stage 5 source code: Line Location Controller.m:56: warning: no ‘-setNeedsLayout’ method found | 2008-09-29 | ||
| 70+ | SUGGEST | The “Pointillize” filter is constistently and incorrectly referred to as “Pointalize”. This doesn’t seem like a simple typo, but even if it’s intended by the author, I find it quite grating. | 2009-05-27 | ||
| 87 | OK | “We can do a lot more with CATextLayer than this simple example | 2009-05-27 | ||
| 26 | OK | Top of the page. You need to find 14 positions between the starting and ending positions for the animation. The starting position is 0 and not counted as one of the animation positions. There are 15 time periods so each needs a new position at its end (the final one and the 14 intermediate positions). | 2009-05-27 | ||
| 14 | OK | In my reading of your book so far, you have changed tenses from ‘we’ to ‘I’ and ‘you’ several times. This makes the book hard to read. Who is the ‘we’? The author and the reader? But only I am reading the book, not the author. There are many works of a technical nature that do not have to resort to ‘we’ and ‘you’ in order to impart information. Also, at the top of page 15, you introduce a certain ‘Daniel’. Daniel who? Regards, Karl | 2009-05-27 | ||
| 31 | OK | It would be nice to have a complete sample code for the chapter “3.2 Keyframe Animations” | 2009-05-27 | ||
| 33 | OK | > In this first bit of code, we are initializing the mover view (the NSImageView Actually, mover view is located not in center of the screen but 3/8 of it (according to sample code) | 2009-05-27 | ||
| 39 | TYPO | > You might notice that if you hold down a key or hit one during the animation, But there is no any discussion about key press on page 34! | 2009-05-27 | ||
| 40 | TYPO | > To show the transitions in action, we have another simple example. In Sample code on this page accepts all keys not just ‘r’. | 2009-05-27 | ||
| 40 | OK | > Now, there is a bit of a trick here. As mentioned earlier, layer backing I don’t see any layer backing properties in animation inspector. Could you provide a screenshot? | 2009-05-27 | ||
| 48 | TYPO | Sample code returns not defined variables (cx1, cy1, cx2, cy2) instead of already defined (c1x, c1y, c2x, c2y). | 2009-05-27 | ||
| 53 | TYPO | > That brings us to the setDefault: method on line 1. | 2009-05-27 | ||
| 76 | TYPO | The method - (void)pointalze appears to be a typo, but further references to this method in the other code samples on this and neighboring pages spell it the same way; it should be pointalize (or probably even pointillize as mentioned in another erratum report). | 2009-05-27 | ||
| 76 | TYPO | The first paragraph refers to the buttons in the figure 6.2 as “Heavy Pointalize” and “Light Pointalize” but the buttons say “More Pointalize” and “Less Pointalize”. | 2009-05-27 | ||
| 166 | ERROR | In the final paragraph, “animationForLayer:forKey:” should be “actionForLayer:forKey:”. | 2009-05-27 | ||
| 57 | OK | On page 57, “Chaining Animations,” The phrase “when we’re using strictly layers” seems awkward. Try something like this: Also, the line above seems awkward, too. | 2009-05-27 | ||
| 74 | TYPO | Figure 6.2 has the button labels “More Pointalize” and “Less Pointalize” whereas the text on the page refers to “Heavy Pointalize” and “Light Pointalize” | 2009-05-27 | ||
| 82 | TYPO | The example project QCBackground starts without the image layer and responds only to a specific key a/A. This is confusing as there is no reference in the book to using the “a” key to toggle the image, infact the implication is that running the demo will show the composited image. | 2009-05-27 | ||
| 65 | TYPO | pointalize should be pointillize | 2009-05-27 | ||
| 67 | TYPO | “controls is filtered” should read “controls are filtered”. | 2009-05-27 | ||
| 67 | OK | Use Objective-C 2.0 conventions consistently for your code throughout the text, e.g. use self.bounds instead of [self bounds]. | 2009-05-27 | ||
| 71 | TYPO | Change “pointalze” to “pointillize”. | 2009-05-27 | ||
| 93 | TYPO | “gong” should be “going”. | 2009-05-27 | ||
| 40 | OK | How about some feedback from the author about technical errors? If you don’t provide feedback for errata, you soon won’t get more errata. | 2009-05-27 | ||
| 66 | ERROR | “The only time we need to turn on layer backing is if we want alpha, center rotation, filters, or a shadow on our view.” If you want to do transitions, you also need layer backing. | 2009-05-27 | ||
| 36 | ERROR | Lines 8, 9, 10 and 11 of initWithFrame: do nothing and should be removed. | |||
| 34 | SUGGEST | The call to CGPathAddLineToPoint() right before CGPathCloseSubpath() is unnecessary and should be removed. | |||
| 5 | TYPO | P2.0 printing, June 2009; Version 2009-5-26 First sentence of 3rd full paragraph: “…, there many Apple publications …” should probably read “…, there are many Apple publications ….” | |||
| 17-18 | ERROR | (Duplicate of #35393, reported on PDF page 26 seven months prior to the latest printing.) The book indicates that x needs to be interpolated for 13 points between 0 and 0.25 (exclusive), giving 15 points (or 14 intervals) all total, but then performs the calculation for 16 points (or 15 intervals). | |||
| 135 | ERROR | When I ran the Menu Layout Project first mentioned on PDF page 135, each time I pressed the down arrow, the next menu item would get all scrunched up against the previous, so by the end, they were all overlapping in the top of the view. | |||
| 139 | ERROR | I got the same error as #41206 for the other two apps in “Layers in 3D” (Platter and Platter 3D Transform)… Also, the menu options didn’t have the effect shown in the figures. | |||
| 34 | ERROR | In the bounce method of KeyFrameView.m, you’re animating from the current origin of mover’s frame. This works well enough so long as the animation isn’t interrupted before it can finish — in this case the origin of mover’s frame is constant. But if the animation is interrupted by a subsequent key press, the animation stops and the new origin for the frame is wherever the frame was before the interruption. The origin should be stored after the mover’s frame is initialized in the initWithFrame method and that stored value should be used in the bounce method. | |||
| 18 | SUGGEST | Setting Up the Window This is at the beginning of the book and i’ve been looking inside the book where i should go to download this, but there is no trace to be found, which makes this line an error. code/CocoaAnimation/FirstAnimation/FirstAnimation.xcodeproj <— no downloadable code link. Best regards. | |||
| 45 | ERROR | “Computers are incredibly fast, accurate, and stupid. Human beings are incredibly slow, inaccurate, and brilliant. Together they are powerful beyond imagination.” Does that even sound right? Surely not, do a quick search and you’ll find this: benshoemate.com/2008/11/30/einstein-never-said-that/ | |||
| 45 | TYPO | “The perceived speed of an animation gives subtle cues to our users about what has happened or is about to happen. Subtle clues are the ones that seem to make a deeper impression.” Shouldn’t the second sentence begin with “Subtle cues”? | |||
| 31 | NULL | TYPO | When is the actual i phone five ( or even the successor of the iPhone 4) likely to be released? I personally lost my apple iphone a month ago, and I was wondering if I should just get the apple iphone 4 right now or wait for the iPhone 5… Additionally, I been told the i phone 4’s screen shatters simply if you drop it w/o in a situation. Is definitely that correct? | ||
| 19 | ERROR | P2.0: The NSMakeRect() function is called a method one sentence after it’s introduced. | |||
| 115 | ERROR | “We will discuss perspective transformations in the section on layers in 3D space.” I consider a “perspective transformations” to be a rotation about the y-axis with a specified vanishing point. This is not discussed — only pushing it back on the z-axis. | |||
| 115 | TYPO | Figure 37 caption is wrong. Same as Figure 36. |