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 B1.12, released about 1 month 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.

Key: Typo Tech. Error Suggestion Not a problem Next edition

By default this page displays the errata for the latest version of the book. If you have a previous version, select it here:  

(To find out what version you have, look at the copyright page, a few pages in from the front of the book. If it says (say) 'Second Printing', then here it'll be P2.0. If there are interim PDF releases in that printing, they'll be 2.1, 2.2, and so on.)

PDF Paper Description Found in Fixed in
5

#35322: It would be useful to have all hierarchies of the TOC in the PDF-TOC as well (for ease of navigation). --Thomas Pellizzari

B1.11
17-Oct-08
35
#35578: "MISSING: MacPorts doesn’t yet have 1.9. Check comment before going to print" It does - not sure when that changed, but the version I have ...more...
B1.12
02-Nov-08
39

#35945: TIme should read Time.

Context: (Note that the second string contains the text TIme.now between curly braces, and not paren-
theses.)
--Steve

B1.12
17-Nov-08
60
#33198: It looks like you're trying to keep a clean set of numbered "tutclasses_##.rb" files. But it seems a little strange that we have a java class ...more...
B1.09
25-Jul-08
64

#35851: Footnote 2:
"When we multiple 33.8 times 100".sub(/multiple/, multiply)--Gerald Van Baren

B1.12
12-Nov-08
64
#35852: The method "price_in_cents" uses "price", not "@price" (inconsistent with the other uses). I both work, but I presume "@price" is a better ch...more...
B1.12
12-Nov-08
65
#33199: It looks like you're trying to have a cleanly numbered set of "tutclasses_##.rb" files, but in the example on this page we're calling the file...more...
B1.09
25-Jul-08
72

#33046: The bookmark "Inheritance and Messages" does not lead to that section on page 72 but links to the box "Inheritance and Mixins" on page 78

B1.09
14-Jul-08
142

#35850: "Get out their and match some strings.".sub(/their/, "there")--Gerald Van Baren

B1.12
12-Nov-08
146

#35492: Error on all Pages.......

On the Footer the "Prepared by ..." and the Report Erratum" are overlapping..--Shree

B1.12
27-Oct-08
263
#36069: samples/packaging_14.rb class Runner, def run: if no anagrams found, output line should puts "No anagrams in #{word} in #{@options.dictionary}...more...
B1.12
23-Nov-08
272
#35620: "The two character sequence "\xcf\x80" represents pi in UTF-8, but is not a valid byte sequence..." should be "The two byte sequence..." (In a...more...
B1.12
05-Nov-08
339

#35963: at the start of this page, \d should be \w.--Shu Cho

B1.12
18-Nov-08
343

#35585: class variables will are private--Jon Pliske

B1.12
02-Nov-08
368
#35438: Access Control section says, "Private methods therefore can be called only in the defining class and by direct descendents within the same obj...more...
B1.12
25-Oct-08
397

#34293: title of "instance_eval and class_eval" on the side panel is linked to page 398, not 397.--Kyo Endo

B1.10
29-Aug-08
428
#32757: In the table of contents, the “Array” and similar sections are on the same level than the “Built-in Classes and Modules” section, thus, it is ...more...
B1.09
09-Jul-08
436

#35618: "You can ask it to compile the Ruy code" should be "... Ruby code"--Todd Reed

B1.12
05-Nov-08
437

#35619: "Maybe you want to know you Ruby..." should be "Maybe you want to know how Ruby..."--Todd Reed

B1.12
05-Nov-08
440
#35422: YAML.dump produces; --- !ruby/object:Special precious: World valuable: Hello volatile: there (Dave says: not if you define to_ya...more...
B1.12
23-Oct-08
461
#35515: For the Array Class, the "first" method is defined on page 454 but not described in the following ones (which may be 461). Hope It Helps ;)...more...
B1.12
28-Oct-08
464

#35500: Note in the Array#pack method references String#unpack on page 699. The actual page is 701 and the link sends you to page 689.--David Johnson

B1.12
27-Oct-08
466

#36037: a.sample(6) should be something like ["a", "d", "c", "b"]--Shu Cho

B1.12
21-Nov-08
498

#36048: at the bottom of page, the description of max_by would be enum.max_by {|item| block } -> obj or enumerator--Shu Cho

B1.12
21-Nov-08
505

#35427: "alls block with two arguments,…" for each_with_object
should be
"Calls block with two arguments,…"--Kyo Endo

B1.12
23-Oct-08
505
#36211: The documentation for each_with_object is unclear. Where is 'block' in the declaration? How can it return 'memo' or 'enumerator'? The exa...more...
B1.12
01-Dec-08
507

#35426: "ynonym for each_with_object."
should be
"Synonym for each_with_object."--Kyo Endo

B1.12
23-Oct-08
534

#36288: "Compares fix to other numbers. Fixnum.
<, <=, ==, >=, and >."

I believe "between?" make the list too.--Marc-Andre Lafortune

B1.12
04-Dec-08
537

#36289: "Compares flt to other numbers. Fixnum.
<, <=, ==, >=, >, and between?.".sub("Fixnum", "Float")--Marc-Andre Lafortune

B1.12
04-Dec-08
562

#36063: At the start of description for `try_convert', it would be `If obj is not already an io object, ...'--Shu Cho

B1.12
22-Nov-08
563

#36064: In the description of close_on_exec?, it would be `... close on exec ...', not `esxec' --Shu Cho

B1.12
22-Nov-08
565

#36066: In the description of `getbyte', it might be `8-bit byte'--Shu Cho

B1.12
22-Nov-08
599
#35397: Hello Dave, When describing Module.instance_methods you explain: "Returns an array containing the names of public instance methods in the r...more...
B1.11
22-Oct-08
683

#36137: Under String#chars:

< See also CIMString.bytes.
> See also String.bytes.--Emiel van de Laar

B1.12
26-Nov-08
702
#35403: Struct::new has two different 1.9 indicators, but as near as I can tell, it's behavior is unchanged from Ruby 1.8. The block trick has been p...more...
B1.12
22-Oct-08
710

#36286: to_proc for Symbol is defined only in ruby 1.9 (the little "1.9" sign is missing)--Marc-Andre Lafortune

B1.12
04-Dec-08
712

#35408: The thread.exclusive section is mislabeled as 'pass'.--Rob Holland

B1.12
23-Oct-08
747
#35405: The second bullet point of the CSV description sounds like broken English, though I guess it is technically OK: "Some CSV files have a heade...more...
B1.12
22-Oct-08
774

#35428: 1.9 symbol is out of alignment.--Kyo Endo

B1.12
23-Oct-08
781
#30437: Chapter 28 (extending ruby) doesn't discuss the treading model in 1.9, and the big VM lock. I think this is a big change, and should be addres...more...
B1.03
10-Jan-08
818
#35432: You are missing coverage for some nice additions to the shellwords library: * shellsplit() is added as an alias for shellwords() * shelles...more...
B1.12
24-Oct-08
833

#35424: The documentation for tmpdir doesn't cover the new Dir.mktmpdir method.--James Edward Gray II

B1.12
23-Oct-08
868

#36276: In the first paragraph of 'Embedding a Ruby Interpreter' the last sentence begins with 'Install', it seems that it should begin with 'Instead'.--Jakob Skov-Pedersen

B1.12
04-Dec-08
906
#35401: For the PDF version, please include a clickable A-Z list for the Index, as is done in the Rails PDF. I'm not sure what the proper PDF terminol...more...
B1.12
22-Oct-08
906
#35444: Under "#" in the index, please add an entry pointing to the preface where you explain the Classname#methodname notation that you use. I remem...more...
B1.12
25-Oct-08