We try to keep our books accurate, but sometimes mistakes creep
in. This page lists the errors submitted by our astute readers.
If you've found a new error, please
submit it.
The latest version of the book is P1.0,
released almost 4 years ago.
If you've bought a PDF of the book and would like to upgrade
it to this version (for free), visit your
home page.
| PDF |
Paper |
Description |
Found in |
Fixed in |
| PnHrr |
BTciJ |
#48805: This is one of the *best* tips on wiritng that I've come across (and I get lots of them coming into my mailbox all the time!).I'm going to apply it today!~Deborah,The Happiness Coach!--TrVKVZtTwW #48805: This is one of the *best* tips on wiritng that I've come across (and I get lots of them coming into my mailbox all the time!).I'm going to ...more...
|
P1.0
25-Feb-12
|
|
| 46 |
|
#44719: Seems IB changed a bit.. in item 3 and 4 refer to creating Actions and Outlets for the controller. Its no clear as to how this gets completed.. A little reading and I got to it. Thought it best to point out the reader's experience (the novice) is taken off the target focus of the author's intent.
--Joseph E. Savard #44719: Seems IB changed a bit.. in item 3 and 4 refer to creating Actions and Outlets for the controller. Its no clear as to how this gets completed ...more...
|
P1.0
26-Aug-10
|
|
| 46 |
|
#40881: in Interface Builder 3.2 the definition of actions and outlets has moved from the doc window to the library. In the classes tab you can select your new class and add your actions and outlets.--Dirk Neumann #40881: in Interface Builder 3.2 the definition of actions and outlets has moved from the doc window to the library. In the classes tab you can select ...more...
|
P1.0
28-Sep-09
|
|
| 47 |
|
#40549: Note that if you are building this yourself (and you should), and drag the line from the outlet to the surrounding NSScrollView, everything will look fine, but when you save, then run your code from Xcode, you will get a puzzling error in the console that informs you that a selector was not found. The problem is that you hooked the outlet to the container view (NSScrollView) instead of the text view NSTextView. This is sufficiently puzzling that it deserves a second mention.--Steve Ross #40549: Note that if you are building this yourself (and you should), and drag the line from the outlet to the surrounding NSScrollView, everything wi ...more...
|
P1.0
23-Aug-09
|
|
| 49 |
|
#45504: I found that I had to name the file controller.rb (note the lowercase filename). When it was Controller.rb it was throwing all kinds of errors.--David Mitchell
|
P1.0
03-Nov-10
|
|
| 58 |
|
#40552: Typing in the text field doesn't provide the immediate feedback suggested on a keystroke-by-keystroke basis. You have to end editing (i.e., press enter or tab to another field) for this to work.--Steve Ross #40552: Typing in the text field doesn't provide the immediate feedback suggested on a keystroke-by-keystroke basis. You have to end editing (i.e., pr ...more...
|
P1.0
23-Aug-09
|
|
| 70 |
|
#40553: To make this work, you have to:
sudo gem install ramaze
Also, this is where it is crucially important to be using the version of Ruby that ships with Leopard. I've set an alias to get to that Ruby as follows:
alias aruby=/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
Then I can just do:
aruby start.rb
and everything is just hunky-dory.--Steve Ross #40553: To make this work, you have to:
sudo gem install ramaze
Also, this is where it is crucially important to be using the version of Ruby th ...more...
|
P1.0
23-Aug-09
|
|
| 87 |
|
#41944: Some of the classes use `ib_outlets`, only `WindowController` uses the singular `ib_outlet`. I guess they're aliased, but the difference was enough to raise my eyebrows. ;)--Carlo Zottmann #41944: Some of the classes use `ib_outlets`, only `WindowController` uses the singular `ib_outlet`. I guess they're aliased, but the difference was e ...more...
|
P1.0
30-Dec-09
|
|
| 95 |
|
#40523: """--Joseph Grace
|
P1.0
21-Aug-09
|
|
| 95 |
|
#40527: Hmm, first comment got lost in posting... Argh. (Apparently triple-quotes do not work in these comments?)
"--Joseph Grace
|
P1.0
21-Aug-09
|
|
| 95 |
|
#40528: Hmm, first and second comments got lost in posting. Apparently, any quotations get lost in posting?
Hmm, first comment got lost in posting... Argh. (Apparently triple-quotes do not work in these comments?)
>--Joseph Grace #40528: Hmm, first and second comments got lost in posting. Apparently, any quotations get lost in posting?
Hmm, first comment got lost in posting ...more...
|
P1.0
21-Aug-09
|
|
| 95 |
|
#40529: Hmm, third try at this suggeston. Frustrating. Apparently, dragging comment box bigger causes problems? (Or is it the quotation marks?)
Hmm, first comment got lost in posting... Argh. (Apparently triple-quotes do not work in these comments?)
>--Joseph Grace #40529: Hmm, third try at this suggeston. Frustrating. Apparently, dragging comment box bigger causes problems? (Or is it the quotation marks?)
...more...
|
P1.0
21-Aug-09
|
|
| 95 |
|
#40530: Hmm, comments 1-4 got lost in posting. Apparently, any quotation marks or greater than signs get lost in posting?
-Here, a notification is posted to the default NSNotificationCenter. (I
-aliased that to Center in the Controller superclass.) I used the con-
-stant AppChosen instead of a literal string because typos in con-
-stant names fail more obviously. I’ve defined it and related con-
-stants in a new file, Constants.rb.
I think this chapter would benefit from displaying the key files alluded to above: Constants.rb and Controller.rb. These are key files to the files displayed. Including them in the book would make the book semi-self-sufficient which I think is a necessity for offline reading. Even today, books have the advantage that they do not require a computer. I think this book loses some of that value if it's not semi-independent of a computer.
Also for those of us newer to ruby, it would be nice to have a few extra explanations when advanced ruby concepts or multi-file solutions (complexity) are engaged the first time. For this chapter, I had to go offbook and examine the files to figure out exactly what was going on. It was not overly complex, but the multi-file organization added some opacity that a little expose in the book could have clarified without much ado.
Thx.
--Joseph Grace #40530: Hmm, comments 1-4 got lost in posting. Apparently, any quotation marks or greater than signs get lost in posting?
-Here, a notification is ...more...
|
P1.0
21-Aug-09
|
|
| 95 |
|
#40531: Last comment (#5th attempt on page 95) should be a suggestion.--Joseph Grace
|
P1.0
21-Aug-09
|
|
| 101 |
|
#40524: Add (new) subsection 8.1 called "A DSL FOR DELEGATIONS" since you really are covering a DSL like the current 8.1 (reborn as 8.2) which makes a great lead-in to the more complex "A DSL FOR NOTIFICATIONS". This addition will structure the chapter a little better and give more room for discussing DELEGATIONS.--Joseph Grace #40524: Add (new) subsection 8.1 called "A DSL FOR DELEGATIONS" since you really are covering a DSL like the current 8.1 (reborn as 8.2) which makes a ...more...
|
P1.0
21-Aug-09
|
|
| 101 |
|
#40525: This chapter has great and valuable material in it. It brings out the best in ruby. Thank you.
However the approach is a bit of a deep dive into Ruby metaprogramming in sheeps clothing. The major pieces (files) are not displayed or explained, and it takes the reader some sleuthing offbook (i.e., online) in order to figure out what's going on. As with my comment on chapter 7, I believe the book should be at least semi-independent.
I suggest beefing up the section on DELEGATION (and making it a first-class subsection as noted in my first comment on this chapter). Perhaps show Delegatable.rb and take a quick look at the hooks and mechanics that make this delegation DSL work.
For instance, why is Delegatable split into two modules. To the newer rubyist, that looks unnecessary. I gather from some sleuthing it's actually necessary since the Delegatable::self.included hooks into a parent class, so that it can hook DelegatableClass into all the children. So the double module is necessary for the parent-child hooks. If so, that could bear explaining (or whatever is appropriate).
Some readers are not fully versed in ruby, and anything which requires multiple files or modules to implement probably warrants a little explanation to keep the determined readers rolling.
Thx.--Joseph Grace #40525: This chapter has great and valuable material in it. It brings out the best in ruby. Thank you.
However the approach is a bit of a deep dive ...more...
|
P1.0
21-Aug-09
|
|
| 101 |
|
#40526: Oops. Last comment should be a suggestion. Thx.--Joseph Grace
|
P1.0
21-Aug-09
|
|
| 106 |
|
#40533: NotificationBox.rb uses case statement with "when ...:". Apparently, these are not valid Ruby 1.9 (though they work in 1.8). For forward compatibility, I suggest changing the "when ...:" to "when ... then". That seems to work.
--Joseph Grace #40533: NotificationBox.rb uses case statement with "when ...:". Apparently, these are not valid Ruby 1.9 (though they work in 1.8). For forward com ...more...
|
P1.0
21-Aug-09
|
|
| 135 |
|
#40550: immoralized → immortalized--Joseph Grace
|
P1.0
23-Aug-09
|
|
|
345 |
#41943: Bullet point 8 mentions `requireosx/cocoa` — there's a space missing after "require".--Carlo Zottmann
|
P1.0
30-Dec-09
|
|