small medium large xlarge

The latest version of the book is P1.0, released about 3 years ago. If you've bought a PDF of the book and would like to update it to this version (for free), visit your home page.

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

If you've found a new error, please submit it.

  • Typo
  • Tech. error
  • Suggestion
  • Maybe next edition
  • Not a problem
  • Reported in: P1.0 (26-Nov-15)
PDF page: 7
In Chapter 3 on the bottom page 7 (Streaming Lines with the -n Switch) of the free excerpt the text after the code snippet " $ printf "foo\nbar\n" | r...more...
  • Reported in: P1.0 (25-Jan-18)
PDF page: 13
Paper page: 13
The book incorrectly specifies that: "The first column, containing the date of the week in question, is always twelve characters long." - taken from ...more...
  • Reported in: B4.0 (08-Jul-15)
PDF page: 13
Maybe put an inline reference to an URL where one can get this data? "The National Oceanic and Atmospheric Administration releases data "--James Se...more...
  • Reported in: P1.0 (10-Nov-15)
PDF page: 20
When having process ids with different digit numbers (ie 3003 and 12755), then using the cut with the space delimiter will not display the smaller num...more...
  • Reported in: P1.0 (30-May-18)
Paper page: 29
Third paragraph, last sentence reads: "At times like these, it would nice if we could introduce Ruby ..." I think it was meant to say, "At times li...more...
  • Reported in: P1.0 (08-Dec-15)
PDF page: 31
There seems to be some HTML mark up left at the bottom of the page (below the FOO/BAR) $ printf "foo\nbar\n" | ruby -ne 'puts $_.upcase' FOO BAR...more...
  • Reported in: P1.0 (06-Jun-18)
Paper page: 37
The return value is not given for the command to return the longest line from ` a\nbb` I'm thinking it should be `bb`, but when I ran the command, ...more...
  • Reported in: P1.0 (18-Dec-15)
PDF page: 60
Paper page: 47

Second line of "Deleting Elements" section has "... is to to allow ...".

One to too many--Tony

  • Reported in: P1.0 (09-Aug-16)
Paper page: 85
The code example for LeagueTable#initialize is incorrect, as url as passed in as a method argument, but the first line uses @url ||= 'default' without...more...
  • Reported in: P1.0 (06-Mar-16)
Paper page: 99

In paragraph 2, 'detect_encoding' should be 'detect_encoding!' (i.e. with a '!' suffix). --Richard Willson

  • Reported in: P1.0 (09-Dec-15)
PDF page: 134
In chapter 5 (delimited data) there are a couple of places where you refer to $; as a record separator and others as a field separator - also there ar...more...
  • Reported in: P1.0 (02-Mar-17)
Paper page: 138
The text and code are out of sync and in conflict. - The text is talking about specifying the assignment token, but the code snippet starts with de...more...
  • Reported in: P1.0 (06-Mar-16)
Paper page: 162

In nlp/simple-search.rb: the return value of '' should be assigned to the variable 'matches', not 'articles'.--Richard Willson

  • Reported in: P1.0 (06-Mar-16)
Paper page: 225
In erb/purchase-ledger-decorators.erb: 'Currency' doesn't match the class name defined in purchase-ledger-decorators.rb, which is 'Dollars'. [In t...more...
  • Reported in: B5.0 (15-Sep-15)
PDF page: 238
If you want to pipe the contents of a file, you have two options. The first is to use cat. The second is to have the shell pass the file as input, so...more...