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 over 2 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 |
| 1 |
|
#25610: For ActiveRecord, handling legacy databases has been an achilles heel (as others have pointed out). Recently one of the problems may have been solved with the CompositeKeys extension - see http://compositekeys.rubyforge.org/ - including this would make the book more 'enterprisy' for those that like that kind of thing--Kev Jackson #25610: For ActiveRecord, handling legacy databases has been an achilles heel (as others have pointed out). Recently one of the problems may have bee ...more...
|
P1.0
01-Aug-06
|
|
|
28 |
#26034: From printed version 2006-6-16:
The first paragraph states "Similarly, exec() becomes execute() on line 18", but the code listing has it on line 20.--KOster #26034: From printed version 2006-6-16:
The first paragraph states "Similarly, exec() becomes execute() on line 18", but the code listing has it on ...more...
|
P1.0
28-Sep-06
|
|
| 30 |
|
#23890: In the "Object-Relational Mappers for Ruby" sideline on
page 30, for people who don't know that there is a package
or project named ActiveRecord, the box doesn't distinguish
between the Active Record definition outlined by Martin
Fowler and the project with the same name, as the
ActiveRecord project isn't introduced until the top of page
31.
--Blair Zajac <blair@orcaware.com> #23890: In the "Object-Relational Mappers for Ruby" sideline on
page 30, for people who don't know that there is a package
or project named ActiveR ...more...
|
B1.1
29-Dec-05
|
|
| 31 |
|
#24195: Massive SOL injection vulnerability!
Why not use parameterized statements?
Also, the code in this edition doesn't feel as "Rubyish" as it could. Consider, for example, This approach for some update SQL (from the Ruby DBI docs):
sql = "insert into simple01 (SongName, SongLength_s) VALUES (?, ?)"
dbh.prepare(sql) do | sth |
1.upto(13) { |i| sth.execute("Song #{i}", "#{i*10}") }
end--eric kramer #24195: Massive SOL injection vulnerability!
Why not use parameterized statements?
Also, the code in this edition doesn't feel as "Rubyish" as it co ...more...
|
B1.4
25-Feb-06
|
|
| 45 |
|
#23870: The transition from the AddLifeTime class to the actual migration code on the following page is somewhat abrupt. It is not clear to someone who is not familiar with migrations exactly what is going on and how to run / use this code.--Gregory Brown #23870: The transition from the AddLifeTime class to the actual migration code on the following page is somewhat abrupt. It is not clear to someone w ...more...
|
B1.1
21-Dec-05
|
|
|
62 |
#25369: I fail to find the source code or cross reference per the reference to file 33?
|
P1.0
30-Jun-06
|
|
|
62-63 |
#30719: pg 63 mentions on line 8 of code listing on page 62 refers to code block with bind() using LDAP_AUTH_SIMPLE
That code doesn't exist in the listing
|
P1.0
09-Feb-08
|
|
|
89 |
#25421: (Sorry, please ignore #4161, p. 113 below; it was meant for pg. 89 and 'encode_markup' and I got confused with 'decode_markup' post.)
I think you will have a problem with encode_markup given that Person passes in self.address.to_xml to the tag method as value; all your opening and closing brackets for address will get encoded. #25421: (Sorry, please ignore #4161, p. 113 below; it was meant for pg. 89 and 'encode_markup' and I got confused with 'decode_markup' post.)
I thi ...more...
|
P1.0
08-Jul-06
|
|
|
102 |
#25420: to_event doesn't appear to be setting the consignee to anything other than nil.
perhaps?
consignee = if !element.elements['consignee'].nil?
element.elements['consignee'].text
else
nil
end--Victor #25420: to_event doesn't appear to be setting the consignee to anything other than nil.
perhaps?
consignee = if !element.elements['consignee'].n ...more...
|
P1.0
08-Jul-06
|
|
|
113 |
#25411: Maik, I think you'll want to check the code again for the previously reported problem with encode_markup.
The version inside extract_todo is different than in the book in that it returns the text variable in the end.
Another way to do this would be:
text.gsub('&', '&').gsub("'", ''').gsub('"', '"').gsub('<', '<').gsub('>', '>')
However, you're still going to have a problem with this approach given that Person passes in self.address.to_xml to the tag method as value; all your opening and closing brackets for address will get encoded now!--Victor #25411: Maik, I think you'll want to check the code again for the previously reported problem with encode_markup.
The version inside extract_todo is ...more...
|
P1.0
08-Jul-06
|
|
|
118 |
#26035: From printed version 2006-6-16:
"namespace" should be hyphenated "name-space", not "names-pace"--KOster
|
P1.0
28-Sep-06
|
|
|
119 |
#26037: From printed version 2006-6-16:
In the paragraph starting with "XPath expressions...", both instances of "package-history" should be "parcel-history"--KOster #26037: From printed version 2006-6-16:
In the paragraph starting with "XPath expressions...", both instances of "package-history" should be "parce ...more...
|
P1.0
28-Sep-06
|
|
|
125 |
#26038: From printed version 2006-6-16:
There is a missing ']' (right bracket) in the last line of code -
'//event[@state="delivered"]|//event[@state="picked-up"'
should be
'//event[@state="delivered"]|//event[@state="picked-up"]'--KOster #26038: From printed version 2006-6-16:
There is a missing ']' (right bracket) in the last line of code -
'//event[@state="delivered"]|//event[@ ...more...
|
P1.0
28-Sep-06
|
|
|
132 |
#26036: From printed version 2006-6-16:
"whitespace" should be hyphenated "white-space", not "whites-pace"--KOster
|
P1.0
28-Sep-06
|
|
| 138 |
|
#24366: Fantastic book!
I've enjoied tle class to read fixed-length records: what about a class to write fixed-length records?--fabio vitale
|
B1.5
23-Mar-06
|
|
| 158 |
|
#24150: RPC chapter link goes to the page before the chapter starts--dána watanabe
|
B1.3
17-Feb-06
|
|
|
166 |
#26039: From printed version 2006-6-16:
In the second paragraph, "encode(string)" should be "escape(string)"--KOster
|
P1.0
28-Sep-06
|
|
|
179 |
#25447: A really minor quibble, but on line 8 that prints the URL for the webrick-SSL really should specify 'https://....' instead of 'http://....'. I concede that this is a trivial typo/oversight but it may catch others (like me) who tried to C&P the emitted URL into a browser and was briefly confused why it didn't work.
Fantastic book, though.--Victory #25447: A really minor quibble, but on line 8 that prints the URL for the webrick-SSL really should specify 'https://....' instead of 'http://....'. ...more...
|
P1.0
14-Jul-06
|
|
|
185 |
#25813: Table of XML-RPC types: Description of 'String' and 'Base64' types in second column (Values) are transposed.--Victory
|
P1.0
29-Aug-06
|
|
| 212 |
|
#24242: I could use a one-page blurb on generating ruby from XSD's. It's mentioned with the wsdl, but if I'm consuming (not producing) it would be handy to know.
On the other hand, it has paid for itself in time saved already! #24242: I could use a one-page blurb on generating ruby from XSD's. It's mentioned with the wsdl, but if I'm consuming (not producing) it would be ha ...more...
|
B1.5
07-Mar-06
|
|
| PDF |
Paper |
Description |
Found in |
Fixed in |
| X |
|
#23840: I really enjoy the content of the book. Since this books
deals with ENTERPRISE solutions. I would like to ask if you can spend some time to touch about:
1. Switchtower (http://manuals.rubyonrails.com/read/book/17)
which deals with sofware deployment in general (other than Rails)
2. Puppet (http://reductivelabs.com/projects/puppet)
for system management
I believe the book will become a SUPER Bible with the above
topics which are very important in ENTERPRISE environment.
Thanks,
Hoang Uong
--Hoang Uong #23840: I really enjoy the content of the book. Since this books
deals with ENTERPRISE solutions. I would like to ask if you can spend some time to ...more...
|
B1.1
12-Dec-05
|
|
| 0 |
|
#23553: JMS is very sorely needed, as another errata mentions. The best way is probably to talk about STOMP and ActiveMQ. It's a brilliant concept otherwise.
(Maik says:
here's a list of things I'd put into a second edition:
Databases chapter:
* Og
* LDAP and SSL
XML chapter:
* the new libxml binding
* create XML documents with XmlSimple
Low Ceremony Distributed Applications chapter:
* http-access2
* Mongrel
Distributed Applications with RPC chapter:
* SOAP and SSL
Messaging (new chapter):
* ActiveMQ (http://stomp.codehaus.org/Ruby)
* JMS
Tools and Techniques chapter:
* domain specific languages
* Switchtower
* Puppet (http://reductivelabs.com/projects/puppet)
* Ruby and .NET
)--Ola Bini #23553: JMS is very sorely needed, as another errata mentions. The best way is probably to talk about STOMP and ActiveMQ. It's a brilliant concept oth ...more...
|
B1.0
15-Nov-05
|
|
| 31 |
|
#23578: Current support for IBM DB2 while claimed for Ruby doesn't appear to work at all on Windows. There is an appeal to IBM to fix this, but this is currently a real barrier to Ruby in enterprises.
Ruby cannot act as a wholesale replacement for Java in the enterprise, but rather will need to operate alongside of it.
The productivity gains for using Ruby on Rails are much more credible in the enterprise when they can be realized against the existing legacy database schemas.
Along the same line, I also concur with the other postings on the need for integration with JMS.
Also, the mapping of ORM such as ActiveRecord to legacy databases deserves much more detailed information in the book. For instance, there are cases where the 'legacy' database schema is in fact one that has been designed for another ORM (using Java) that includes a number of columns such as:
oid (int), created (timestamp), modified (timestamp), etc.
These columns may have been automatically set by the previous ORM so it would make sense to extend ActiveRecord so that it can cleanly assume the same automatic functions for setting the timestamps, etc.
--Pat Podenski #23578: Current support for IBM DB2 while claimed for Ruby doesn't appear to work at all on Windows. There is an appeal to IBM to fix this, but this i ...more...
|
B1.0
20-Nov-05
|
|