small medium large xlarge

The latest version of the book is P1.0, released over 1 year 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.

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: B2.0 (15-Sep-15)
#78826
PDF page: all

Google Play Books is not able to process the epub version of the eBook.

  • Reported in: B4.0 (25-Dec-15)
#79426
PDF page: xxiv
Intro page xxiv contains the link for source code, but when code download is attempted, the following error is reported back: ERROR The request co...more...
  • Reported in: P1.0 (19-Feb-16)
#79943
PDF page: 0
Paper page: 0
In source code media.pragprog.com/titles/dcbang/code/materialized-views/data-model/shine/db/seeds.rb on line 106: # ecah time through should be ...more...
  • Reported in: P1.0 (23-Jan-16)
#79690
PDF page: 1
When reading with the Kindle application on a Mac the diagrams are on the wrong pages. I can supply screen shots if you like (no way to attach an imag...more...
  • Reported in: P1.0 (03-May-16)
#80290
PDF page: 1
Paper page: 318
Inconsistent and confusing with code examples: 1. There are many instances in the Angular and Bootstrap chapters where it's not apparent which file i...more...
  • Reported in: P1.0 (12-Feb-16)
#79856
Paper page: 1
Organize the Erratum by page numbers in order. I say page number plural because there seems to be different pagination for the pdf and the book. Ma...more...
  • Reported in: P1.0 (23-Feb-17)
#81148
PDF page: 13
In the procedure to install bootstrap with Bower, there is no step to create the Bowerfile. From the repo I found the following command to create the...more...
  • Reported in: P1.0 (25-Feb-16)
#80009
PDF page: 19
The text on the image for the login page shows: 'You need to sign in or sign up before continuing.' but this is not in the code and is not displ...more...
  • Reported in: P1.0 (16-Feb-16)
#79920
Paper page: 27

The email regex in the migration is incorrect and does not match what it shown on the following pages (28, 29).--Tyler F

  • Reported in: P1.0 (06-Mar-16)
#80057
PDF page: 29
Paper page: 3
The app creation code suggested is this: "$ rails new --skip-turbolinks \ --skip-spring \ --skip-test-unit \ ...more...
  • Reported in: P1.0 (20-Nov-16)
#80913
Paper page: 31
"We'll then need to remove the old db/schema.rb file, create db/structure.sql by running migrations,......... How is structure.sql created?--drew l...more...
  • Reported in: P1.0 (15-Feb-16)
#79897
Paper page: 39
Last td: <td><%= l customer.created_at.to_date %></td> Does the 'l' belong there? It's in the Example Code too, so maybe it does. But does...more...
  • Reported in: P1.0 (30-Jan-16)
#79729
PDF page: 58

Should not we add `disabled` if statement for "next" button as we did for "previous"?--Vladislav Starkov

  • Reported in: P1.0 (30-Jan-16)
#79734
PDF page: 62
Paper page: 87
I looked at the Node semver documentation which resolves versions of packages. I see that you can use the tilde operator, however I do not think that ...more...
  • Reported in: P1.0 (24-Mar-17)
#81255
PDF page: 63
Paper page: 63
You appear to install 1.5 but the book and PDF show 1.4.3 bower angular#1.4.3 not-cached bower angular#1.4.3 resolve bower angular#1.4.3 downlo...more...
  • Reported in: P1.0 (27-Jan-16)
#79712
PDF page: 68
In sentence: "Armed with this knowledge, as well as our helper method extract_name_from_email, we can now implement build_for_email_search." "extr...more...
  • Reported in: P1.0 (27-Jan-16)
#79713
PDF page: 68
In source code snippet on this page and all other pages I suggest to UPPERCASE all SQL keywords, i.e. LIKE, OR, AND, ASC, DESC, etc.--Vladislav Starko...more...
  • Reported in: P1.0 (11-Aug-16)
#80604
PDF page: 68
I was enjoying this book until page 68. It starts throwing JS code onto the reader without explaining where it goes, making it very confusing and fru...more...
  • Reported in: P1.0 (27-Jan-16)
#79714
PDF page: 69
Image should not contain filled search input at this stage of development. On this stage search input should be empty as search form re-renders alo...more...
  • Reported in: P1.0 (17-Jun-16)
#80446
PDF page: 70

Our $scope argument might be renamed a during minification.
sould be
Our $scope argument might be renamed during minification.--Laura

  • Reported in: P1.0 (30-Jan-16)
#79735
PDF page: 73
Not obvious when did we get rid off the section: <h1 class="searchedFor" ng-if="searchedFor"> <small>Searched for:</small> {{searchedFor}} </h1>-...more...
  • Reported in: P1.0 (01-Mar-16)
#80018
Paper page: 73
The angular code for the ng-repeat of customer in customers is trying to render {{ customer.name }} however the data structure for each customer doesn...more...
  • Reported in: P1.0 (30-Jan-16)
#79736
PDF page: 76
Paper page: 101
The name of the helper method in Rails has been omitted: > One thing you’ll notice is that created_at is a timestamp, not a date, so it’s not rend...more...
  • Reported in: P1.0 (24-May-16)
#80357
PDF page: 79

Missing only in the book text, not the source code: the three "$scope.loading =" statements.--Mark Fowler

  • Reported in: P1.0 (02-Oct-16)
#80781
PDF page: 90
Here, we define our matcher and state its name...We’ve named the argument we’re expecting constaint_name. <--- ****should be "constraint_name"--Scott...more...
  • Reported in: P1.0 (19-Mar-16)
#80117
PDF page: 90

we're expecting constaint_name

should be

we're expecting constraint_name
--Kosmas Chatzimichalis

  • Reported in: P1.0 (20-Apr-16)
#80252
PDF page: 93

Did you miss some preprocessor directives in the code:

# START_HIGHLIGHT
gem 'poltergeist'
# END_HIGHLIGHT--Michail Pantelelis

  • Reported in: P1.0 (30-Jan-16)
#79737
PDF page: 103
Paper page: 78
Not obvious when did we switched from $http.get().then() syntax to $http.get().success().error() ? media.pragprog.com/titles/dcbang/code/typeahead/...more...
  • Reported in: P1.0 (27-May-16)
#80361
PDF page: 108

In order * to do * pass in a real scope.....--Mark Fowler

  • Reported in: P1.0 (30-Mar-16)
#80160
PDF page: 110
In order for the test to run successfully the listing needs the following two changes (add the var and enclosing quotes in $scope): var scope ...more...
  • Reported in: P1.0 (03-Feb-16)
#79756
PDF page: 110
Paper page: 86

Should we omit ".rb" and just do require 'rails_helper' ?--Vladislav Starkov

  • Reported in: P1.0 (04-Feb-16)
#79774
PDF page: 123
Paper page: 99
Instead of email ||= "#{Faker::Internet.user_name}#{rand(1000)}@" + "#{Faker::Internet.domain_name}" should not we make email ||= "#{Faker::I...more...
  • Reported in: P1.0 (15-Aug-16)
#80626
PDF page: 132
The requested URL /titles/dcbang/code/complex-views/navigation-to-new-view/shine/spec ƒ p/controllers/customer_detail_controller_spec.js was not found...more...
  • Reported in: P1.0 (07-Feb-16)
#79800
PDF page: 134
Paper page: 110
Broken link to code snippet source. media.pragprog.com/titles/dcbang/code/testing/angular-unit-test/shine/spec/javascript%20…%20p/controllers/custo...more...
  • Reported in: P1.0 (07-Mar-16)
#80058
PDF page: 135
Paper page: 111
It appears that the 2.3.4 version of teaspoon-jasmine (current at time of writing) has a syntax change to the addMatchers syntax. The example from thi...more...
  • Reported in: P1.0 (07-Feb-16)
#79801
PDF page: 137
Paper page: 113

Would not be better to add `beforeEach(module('customers'));` right after `serverResults = {...}` block?--Vladislav Starkov

  • Reported in: P1.0 (09-Feb-16)
#79822
PDF page: 151
Paper page: 128
The following code missed in snippet: <h3 class="pull-right"> <small class="text-uppercase">Joined</small> {{ customer.created_at | da...more...
  • Reported in: P1.0 (09-Feb-16)
#79823
PDF page: 152
Paper page: 129
Sentence "Remember that the Rails portion of the URL for our Angular app is /customers/" should end with dot instead of forward slash.--Vladislav Star...more...
  • Reported in: P1.0 (09-Feb-16)
#79824
PDF page: 155
Paper page: 132
Broken link to snippet source. Should be fixed to: media.pragprog.com/titles/dcbang/code/complex-views/navigation-to-new-view/shine/spec/javascrip...more...
  • Reported in: P1.0 (16-Feb-16)
#79910
PDF page: 169
Paper page: 147
The image under caption "The result looks pretty nice:" should not contain "@" symbol in "username" input. As "@" symbol appears only in the next sect...more...
  • Reported in: P1.0 (16-Feb-16)
#79912
PDF page: 171
Paper page: 149
Footnote #1. There is large amount of directories in source code archive. Probably it worth mention that complete UI template for this chapter can...more...
  • Reported in: P1.0 (21-Feb-16)
#79962
PDF page: 176
Paper page: 154

shipping_address: customer.shipping_address

should be

shipping_address: customer.primary_shipping_address--Vladislav Starkov

  • Reported in: P1.0 (02-Feb-17)
#81100
Paper page: 178
For the dynamically filled in customer_show.html template: {{ customer.joined_at | date }} ought to be {{ customer.created_at | date }}--Russell S...more...
  • Reported in: P1.0 (21-Feb-16)
#79964
PDF page: 184
Paper page: 162
Broken link to materialized view migration: "media.pragprog.com/titles/dcbang/code/materialized-views/actual-materialized-view/shi%20…%20204_create_c...more...
  • Reported in: P1.0 (21-Feb-16)
#79969
PDF page: 189
Paper page: 167
Broken link to migration: media.pragprog.com/titles/dcbang/code/materialized-views/actual-materialized-view/shi%20…%20150626120132_trigger_refresh_...more...
  • Reported in: P1.0 (21-Feb-16)
#79970
PDF page: 189
Paper page: 167

Regarding 20150626120132_trigger_refresh_customer_details.rb.

Empty methods
def up
end
def down
end

Should be removed.--Vladislav Starkov

  • Reported in: P1.0 (08-Mar-16)
#80062
PDF page: 202
Paper page: 180
In angular-async/start/shine/app/controllers/fake_billing_controller.rb there is extra comma in statement "detailsLink: Faker::Internet.url,".--Vladis...more...
  • Reported in: P1.0 (08-Mar-16)
#80063
PDF page: 206
Paper page: 184
Missed couple of closing </div> tags in snippet "angular-async/progress/shine/app/assets/javascripts/templates/customer_detail.html".--Vladislav Stark...more...
  • Reported in: P1.0 (19-Mar-16)
#80118
PDF page: 239
Paper page: 219
postgres (PostgreSQL) 9.5.0 Does not work for me: sql> select id,insights from customers where insights@>'{ "curiosity": { "accessories": true ...more...
  • Reported in: P1.0 (19-Mar-16)
#80119
PDF page: 242
Paper page: 222
Probably it's more convenient to use symbol instead of string here: add_column :customers, :status, "customer_status", default: "signed_up", null: ...more...
  • Reported in: P1.0 (21-Mar-16)
#80127
PDF page: 247
Paper page: 227
There is no mention of how `customer_summary.html` should look like. Especially it needs to point that we use `cust` instead of `customer` and `vie...more...
  • Reported in: P1.0 (21-Mar-16)
#80128
PDF page: 250
Paper page: 230
Missed open open parenthesis in: function() { var app = angular.module( ... Should be: (function() { var app = angular.module( ...--Vladi...more...
  • Reported in: P1.0 (21-Mar-16)
#80129
PDF page: 250
Paper page: 230

Should `app.config([...` be included in IIFE?--Vladislav Starkov

  • Reported in: P1.0 (26-Mar-16)
#80140
PDF page: 260
Paper page: 240
It's, probably, better to remove quotes. So `Then, we’ll add //= require 'angular-bootstrap' to app/assets/javascripts/application.js.` will ...more...
  • Reported in: P1.0 (21-Feb-16)
#79961
PDF page: 275
Paper page: 256
In media.pragprog.com/titles/dcbang/code/materialized-views/actual-materialized-view/shine/app/models/customer.rb on line 13: self.customers_shippi...more...
  • Reported in: P1.0 (18-May-16)
#80332
PDF page: 4136
"Testing Jasmine" ->Error: LoadError: cannot load such file -- coffee_script Added coffee-script to gemfile then many: Rails.application.config.ass...more...