small medium large xlarge

The latest version of the book is P1.0, released 29 days 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: B8.0 (15-Jan-18)
#82501
PDF page: xvii
On pages xvii and xviii, use of commas after chapter titles is inconsistent. For example: "In Chapter 2, Model Data and Behavior, on page 9, we’ll ...more...
  • Reported in: B8.0 (15-Jan-18)
#82502
PDF page: 1

There are only two clauses in "We’re about to go exploring, and it’s going to be a blast.",
so I don't think the comma is needed.--Rich Morin

  • Reported in: B8.0 (15-Jan-18)
#82503
PDF page: 5
In "The players can move the islands around as much as they like until they say that they are set.", the multiple uses of "they" are distracting and a...more...
  • Reported in: B8.0 (15-Jan-18)
#82504
PDF page: 10

I'd change "It frees us to focus ..." to "This frees us to focus ..."--Rich Morin

  • Reported in: B8.0 (15-Jan-18)
#82505
PDF page: 11

The reuse of the word "end" seems awkward here: "In the end, we end up ...".--Rich Morin

  • Reported in: B8.0 (15-Jan-18)
#82506
PDF page: 12

I'd explain the use of the term "engine".--Rich Morin

  • Reported in: B8.0 (15-Jan-18)
#82507
PDF page: 13
The board images have poor contrast between blue and green (at least on my printer's output). Be sure that the published book does not have this probl...more...
  • Reported in: P1.0 (08-Feb-18)
#82758
PDF page: 14
Thank you for the book. I noticed that you are using the final placement of coordinate.ex here as a reference that includes model_data in the file pa...more...
  • Reported in: B8.0 (15-Jan-18)
#82509
PDF page: 14

I'd change "We should be careful ..." to "However, we should be careful ...".--Rich Morin

  • Reported in: B8.0 (15-Jan-18)
#82510
PDF page: 15
I'd rewrite "Make sure that you define @enforce_keys before defstruct—otherwise it won’t have any effect, and you’ll get a warning saying that @enforc...more...
  • Reported in: P1.0 (29-Jan-18)
#82670
PDF page: 15

test

  • Reported in: P1.0 (29-Jan-18)
#82671
PDF page: 15

test

  • Reported in: B8.0 (15-Jan-18)
#82511
PDF page: 16
Page 14 says "The first thing we’ll need is a Coordinate module that aliases itself." Also, the code for the Coordinates and Guesses modules each incl...more...
  • Reported in: B8.0 (15-Jan-18)
#82512
PDF page: 18
I'd change "Once that rebinding happens, the original value will fall out of scope and be garbage collected." to "Once that rebinding happens, the ori...more...
  • Reported in: B8.0 (15-Jan-18)
#82513
PDF page: 18

I'd change "Now let’s add coordinate2 to the :hits set as well:" to "Now let’s add coordinate2 to the :hits set, as well:".--Rich Morin

  • Reported in: B8.0 (15-Jan-18)
#82514
PDF page: 18

I'd change "It kept the set unique." to "MapSet kept the set unique.".--Rich Morin

  • Reported in: B8.0 (15-Jan-18)
#82515
PDF page: 19

I'd change "Let’s create new Island module at ..." to "Let’s create a new Island module at ...".--Rich Morin

  • Reported in: P1.0 (17-Feb-18)
#82783
PDF page: 19
The first code snippet does not compile. It's missing an "alias __MODULE__". Either that expression should be added or "%IslandsEngine.Island{...}" sh...more...
  • Reported in: P1.0 (29-Jan-18)
#82680
PDF page: 92
when calling :sys.replace_state, the parameter for the anonymous function (data) does not correspond to anything in the function body suggest chang...more...
  • Reported in: B8.0 (22-Jan-18)
#82530
PDF page: 94
Rather than creating a new instance of Rules in IslandsEngine.Game.init/1 with %Rules{}: {:ok, %{player1: player1, player2: player2, rules: %Rules{...more...
  • Reported in: B8.0 (22-Jan-18)
#82529
PDF page: 101
GenServer callback for :position_island does not handle {:error, :overlapping_island} in the with clause. As the reply is simply an echo of the err...more...
  • Reported in: P1.0 (14-Feb-18)
#82778
PDF page: 160
Template file path is wrong. /islands_interface/web/templates/page/index.html.eex maybe this should /islands_interface/lib/islands_interface_...more...
  • Reported in: P1.0 (14-Feb-18)
#82779
PDF page: 171

Typo : JS command does not work
> new_game(game)

Ought to be :
> new_game(game_channel)

--Christophe GAREYTE

  • Reported in: P1.0 (31-Jan-18)
#82714
PDF page: 174
with Elixir 1.6, the call to String.to_existing_atom(island) where island = "atoll" fails as: [debug] INCOMING "position_island" on "game:moon" to ...more...