luke.bace (66) [Avatar] Offline
#1
Please post all errata here. Thanks.
Hybrid (4) [Avatar] Offline
#2
Re: Errors and Corrections
Timer or Pomodoro?

PG 54...

def start_stop_timer(sender)
if @pomodoro_timer.nil?



PG 56...

def start_stop_pomodoro(sender)
if @pomodoro_timer.nil?


PG 58...

The last item we need to connect is our start_stop_pomodoro action
Hybrid (4) [Avatar] Offline
#3
Re: Errors and Corrections
PG 57...

Connecting Our Controller to Our Interface

May want to give a quick blurb as to why we are grabbing and dragging "Object" from the library to the App window and setting"Object" properties to "PomodoroController". And why we are not using "Object Controller" for this since it appear right under "Object". This may leave some readers scratching there head and wondering.
zhu1230 (4) [Avatar] Offline
#4
Re: Errors and Corrections
page 11.

Message passing is
......
runtime, whereas message calling will call the method directly without doing a check.
.....
This is one of the reasons why languages like Smalltalk, Objective-C, and Ruby are
considered to be dynamic


I think the message calling may should be method calling?
slynch (1) [Avatar] Offline
#5
Re: Errors and Corrections
A few details that I noticed as I worked through the examples, etc:

Section 3.3.3 references a figure 3.13 (which is not the right figure). It appears that a figure may have been dropped?

Your final source code solution in Listing 3.2 shows an attr_accessor of :create_button that is not needed. It seems to have been omitted earlier because it's not discussed as you go through the example, and also does not appear in your figure 3.15.

A suggestion on the Pomodoro app? While the focus is on the introduction of the new technology, your implementation could be "cleaner". For example, you set the "default" time to 25 minutes in multiple locations instead of setting it in one place and referring to it throughout your code.

Overall, really enjoyed reading the chapters you have developed, and look forward to the future updates!
brendan.lim (9) [Avatar] Offline
#6
Re: Errors and Corrections
Thanks for all of the notes and suggestions!
Matthew Marshall (3) [Avatar] Offline
#7
Re: Errors and Corrections
page 9 "When the host receives a delegate message it actually checks with it's delegate"
"it's" -> "its" (possessive, not contraction)
Matthew Marshall (3) [Avatar] Offline
#8
Re: Errors and Corrections
page 10 "...objects play duel roles.." It's dual or there will be blood.
Matthew Marshall (3) [Avatar] Offline
#9
Re: Errors and Corrections
page 10 "it's design pattern usage" its (possessive)
brendan.lim (9) [Avatar] Offline
#10
Re: Errors and Corrections
Matthew, thanks for the corrections!

We'll make sure this gets fixed.
CVBruce (1) [Avatar] Offline
#11
Re: Errors and Corrections
Page 6: Message Passing twice.

Both languages provide a dynamic runtime, message passing, runtime access to class and object information, meta classes, and message passing to name a few.
kshipley (4) [Avatar] Offline
#12
Re: Errors and Corrections
Page 23 -- "atr_accessor" should be "attr_accessor."
kshipley (4) [Avatar] Offline
#13
Re: Errors and Corrections
Page 41 -- "No we can start..." --> "Now we can start..."
kshipley (4) [Avatar] Offline
#14
Re: Errors and Corrections
Page 55 -- att_accessor :start_button should be attr_accessor :start_button
kshipley (4) [Avatar] Offline
#15
Re: Errors and Corrections
Page 93 -- def respond_to_selected_column(notfication) should be notification
spyclj (9) [Avatar] Offline
#16
Re: Errors and Corrections
PDF page 67 (numbered 63)

"Each task object will have a status and a task attribute"

->

"Each task object will have a status and a title attribute"
spyclj (9) [Avatar] Offline
#17
Re: Errors and Corrections
PDF page 75

Instead of the C-like code

return (alert.runModal == NSAlertDefaultReturn ? true : false)


you can simply write

alert.runModal == NSAlertDefaultReturn ? true : false


Btw. when running from the Terminal, you cannot use enter, the Terminal still has the focus.

Could you also elaborate why you chose windowWillClose instead of windowDidClose? Does it matter whether you call the parameter sender or notification?
brendan.lim (9) [Avatar] Offline
#18
Re: Errors and Corrections
Thanks again for catching all of these errors.
nosedog (6) [Avatar] Offline
#19
Re: Errors and Corrections
p. 9 Section: Ruby Introduction

It's very minor, but I thought it best to point it out.

"Ruby classes are defined in a single class file ending with a .rb extension, in fact all Ruby source files end in a .rb extension."

Ruby source code does *not* need to have a .rb extension, and you do *not* need to limit yourself to one class per file. You can have many classes per file; you can have one class defined across many files; or, of course, you can have no classes at all.

Naturally, it's wise in most circumstances to follow some conventions, but Ruby is more flexible than the sentence above suggests.