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: P1.0 (30-May-16)
#80372
PDF page: NA
I am reading the online version on safari. I can't locate the page number on it. In chapter 6, "Managing Related Data", after adding the video relatio...more...
  • Reported in: P1.0 (19-Aug-16)
#80639
PDF page: 9
emulate failures by crashing a database connections on purpose,... should be emulate failures by crashing a database connection on purpose,... ...more...
  • Reported in: P1.0 (14-May-16)
#80316
PDF page: 18
The original, with surrounding text for context, is "you’ll want to separate the code that calls another web server, or fetches code from a database, ...more...
  • Reported in: P1.0 (29-Dec-16)
#81010
PDF page: 19
Problem: root@backdraft:~# mix local.hex ** (UndefinedFunctionError) undefined function :inets.stop/2 (module :inets is not available) :inets.s...more...
  • Reported in: P1.0 (29-Dec-16)
#81011
PDF page: 19
On page 19 you tell the user to check the postgresql version number, but do not tell them to actually create a user. Therefore, when mix ecto.create...more...
  • Reported in: P1.0 (29-May-16)
#80364
Paper page: 19
"Good online resources3 exist, but we recommend the excellent book , by Dave Thomas, ..." I believe the name of the book was left out. Or maybe a h...more...
  • Reported in: P1.0 (18-May-16)
#80337
Paper page: 21
The complete output of "mix phoenix.new hello" should be formatted as output in the book. The output from "We're all set!" to "$ iex -S mix phoenix.se...more...
  • Reported in: P1.0 (28-May-16)
#80363
PDF page: 21-27
I just try to install the phoenix framework following the book (mix phoenix.new hello; cd hello; mix ecto.create;), and I find a error on this last co...more...
  • Reported in: P1.0 (25-Jun-16)
#80481
PDF page: 22
2nd paragraph talks about .ex being a "extension for compiled elixir files". IMHO that should be changed to "is the extension for elixir source files...more...
  • Reported in: P1.0 (19-Aug-16)
#80640
PDF page: 24

... please define a clause for render/2 ...

should be

... please define a matching clause for render/2 ...
--Kosmas Chatzimichalis

  • Reported in: P1.0 (18-May-16)
#80338
Paper page: 24
"We call the functions invoked by the router on our controller's actions, but don't get confused." is confusing (ironically) and the grammar is wrong....more...
  • Reported in: P1.0 (30-Nov-16)
#80937
PDF page: 25
"Replace the first route in web/router.ex with this one:" I suggest to add a hint, that changing the route will result in an error, when sending a...more...
  • Reported in: P1.0 (18-May-16)
#80339
Paper page: 25-26
Include the assignment of third to :bears in the first example: ". . . and it can do so by assigning first to :lions, second to :tigers, and third to ...more...
  • Reported in: P1.0 (28-Sep-16)
#80772
PDF page: 26
Super wishlist... After assigning values to `austin`, it would be nice if you had showed how they can be used. Something like: iex(3)> Place.city...more...
  • Reported in: P1.0 (07-May-16)
#80297
PDF page: 26
In the mobi edition at around location 776 there are blocks from the next chapter. The block that was atom keys vs strings in the pdf seems to have...more...
  • Reported in: P1.0 (22-Jun-17)
#81711
PDF page: 27
it is a parameter, not a different route. so the line says "point your browser to localhost:4000/hello/phoenix." should say, "localhost:4000/hello?na...more...
  • Reported in: P1.0 (26-May-17)
#81577
Paper page: 27
navigating to localhost:4000/hello/phoenix generates the error: Phoenix.Router.NoRouteError at GET /hello/phoenix but navigating to localhost:40...more...
  • Reported in: P1.0 (02-May-16)
#80285
PDF page: 29

Box "José says": Photo with image of José is missing (it displays a red cross).
Also on page 32, 64, 225, 249.--Robert

  • Reported in: P1.0 (10-Oct-16)
#80803
PDF page: 29

There is a missing image icon in the "José says" box indicating something did not render properly when the pdf was generated.--Andrew Cain

  • Reported in: P1.0 (06-May-16)
#80293
PDF page: 29

José's avatar is broken (a small red cross appears instead of his face).--Jaime Iniesta

  • Reported in: P1.0 (19-Aug-16)
#80641
PDF page: 31
the line: root: Path.dirname(__DIR__), does not appear in the generated config/config.exs from the latest phoenix release. --Kosmas Chatzimicha...more...
  • Reported in: B10.0 (21-Apr-16)
#80258
PDF page: 33

double slashes in it between 'raw' and 'master' in the archive.install URL--Dorian Mcfarland

  • Reported in: P1.0 (21-Jul-16)
#80536
Paper page: 34

The bullet list should have an entry for the router.--Rich Morin

  • Reported in: P1.0 (05-Jun-16)
#80395
PDF page: 41

Is:
user = %{usernmae: "jose", password: "elixir"}
should_be:
user = %{username: "jose", password: "elixir"}

typo in username--Bartosz Nowak

  • Reported in: P1.0 (29-Apr-16)
#80278
PDF page: 41

iex> user = %{usernmae: "jose", password: "elixir"}

usernmae should be username--Thomas Nys

  • Reported in: P1.0 (03-Aug-16)
#80571
PDF page: 41

error in "username"

iex> user = %{usernmae: "jose", password: "elixir"}--Paul Arsiyenko

  • Reported in: P1.0 (30-Jan-17)
#81094
PDF page: 41

The map key "username" is spelled "usernmae".--Chris McCann

  • Reported in: P1.0 (28-Feb-17)
#81170
Paper page: 42
I was a little confused by how the get_by function works. It is described in following sentence: "Let's also add a couple of functions to get a use...more...
  • Reported in: P1.0 (30-Aug-17)
#82003
Paper page: 43
There is an error running the code up to here. Error when start iex : Rumpl.Repo.start_link/0 is undefined or private You need this snipped ...more...
  • Reported in: P1.0 (30-Oct-16)
#80841
PDF page: 43
In "Coding VIews" the example for index.html.eex should use "users_path" instead of "user_path", otherwise it will not compile. BROKEN: <%= link "Vie...more...
  • Reported in: P1.0 (21-Jul-16)
#80537
Paper page: 44
The code for user_controller.ex shows a render call which (somehow) sets the value of @users for later use in a view. In Rails, @users would be an ins...more...
  • Reported in: P1.0 (21-Jul-16)
#80538
Paper page: 46
The book explains that <%= %> tags inject results into templates, while <% %> tags do not. This seems like a side effect to me. It then says "We'll t...more...
  • Reported in: P1.0 (21-Jul-16)
#80539
Paper page: 46

"... within our index action." should be "... within our index action, via the call to render/3."--Rich Morin

  • Reported in: P1.0 (12-Aug-16)
#80614
PDF page: 46
Coming from a non-Rails/ERB background, I was briefly stumped by this sentence. "Remember, we’ve already populated @users within our index acti...more...
  • Reported in: P1.0 (30-May-16)
#80373
PDF page: 46
In the iex listing at the bottom of the page,`Phoenix.HTML.Link.link("Delete" ....)` is called, but the example response shows the anchor text as `[x]...more...
  • Reported in: P1.0 (16-Nov-16)
#80887
PDF page: 46
The *link* function seems to work differently in newer versions of Elixir. iex> Phoenix.HTML.Link.link("Home", to: "/") {:safe, ["<a href=\"/\">",...more...
  • Reported in: B10.0 (21-Apr-16)
#80257
PDF page: 48
Hi, I'me reasonably new to Elixir and phoenix...So, I'm not 100% sure this is a real issue or i may have done something wrong earlier in the exerci...more...
  • Reported in: B10.0 (20-Apr-16)
#80255
PDF page: 50
Chapter 3 -> Nesting Templates It should be </td> in another place in web/templates/user/index.html to have nice formatting on web page: Wrong: ...more...
  • Reported in: P1.0 (21-Jul-16)
#80540
Paper page: 51

In "... receives a couple of special assigns ...", "assigns" should either be clarified as a code term or changed to "assignments".--Rich Morin

  • Reported in: B10.0 (24-Apr-16)
#80263
PDF page: 54
"For now, it only uses Ecto.Model and import functions to work with changesets and queries, but this function serves as an extension point that will l...more...
  • Reported in: P1.0 (06-Aug-16)
#80580
PDF page: 55
There is a line that states: "import Ecto.Query, only: [from: 1, from: 2]". As far as I know, we're not instructed to actually write ", only: [from:1...more...
  • Reported in: P1.0 (01-Feb-17)
#81099
PDF page: 55

It seems that Elixir now dislikes the timestamps macro in a migration file. The correct syntax is timestamps()

--Chris McCann

  • Reported in: P1.0 (21-Jul-16)
#80541
Paper page: 56
Somewhere around the migration example, I'd like to see an explanation of the specific changes that were made (eg, :passwd went away, :username added ...more...
  • Reported in: P1.0 (20-Feb-17)
#81130
Paper page: 56
My 2¢: These two sentences sound redundant. "The mix ecto.gen.migration creates a migration file for us with a special timestamp to ensure ordering...more...
  • Reported in: P1.0 (14-Dec-16)
#80972
PDF page: 60

`:empty` atom in params in the changeset function is deprecated in newer versions of Phoenix. Suggest that you change it to `:invalid`.--Allan Reyes

  • Reported in: P1.0 (01-May-17)
#81491
PDF page: 60
This worked for me: def changeset(user, params \\ %{}) do user |> cast(params, [:name, :username]) |> validate_required([:name, :...more...
  • Reported in: P1.0 (07-Jul-16)
#80504
PDF page: 60
I ran into some error when following the code because the "name" field isn't validated. This means that the code actually allows to insert a user w...more...
  • Reported in: P1.0 (12-Jan-17)
#81054
PDF page: 60
Another deprecation error warning: `Ecto.Changeset.cast/4` is deprecated, please use `cast/3` + `validate_required/3` instead Changing mo...more...
  • Reported in: P1.0 (06-Aug-16)
#80579
Paper page: 60
:empty atom is passed to the changeset (and the next page describes the reason). But now I get a warning warning: passing :empty to Ecto.Changes...more...
  • Reported in: P1.0 (19-Feb-17)
#81120
PDF page: 60
Text: "alias Rumbl.User def new(conn, _params) do changeset = User.changeset(%User{}) render conn, "new.html", changeset: changeset end Notice...more...
  • Reported in: P1.0 (20-Feb-17)
#81128
Paper page: 62
resources "/users", UserController, only: [:index, :show, :new, :create] is wrong, it must be resources "/users", UserController, only: [:index...more...
  • Reported in: P1.0 (21-Jul-16)
#80542
Paper page: 64

In the first sentence of the Creating Resources section, I would change "macro" to "macro call", for clarity.--Rich Morin

  • Reported in: P1.0 (01-Jun-17)
#81618
PDF page: 67
The method: def first_name(%User{name: name}) do name |> String.split(" ") |> Enum.at(0) end Fails with the String.split(" "). t...more...
  • Reported in: P1.0 (01-Nov-16)
#80845
PDF page: 70
** (KeyError) key :password_hash not found in: %Rumbl.User{id: nil, name: "Jose", password: nil, username: "josevalim"} (stdlib) :maps.update(:...more...
  • Reported in: P1.0 (12-Jan-17)
#81055
PDF page: 71
Another deprecation error warning: `Ecto.Changeset.cast/4` is deprecated, please use `cast/3` + `validate_required/3` instead Changing mo...more...
  • Reported in: P1.0 (05-Sep-17)
#82027
PDF page: 72
I am running Elixir 1.5.1, Erlang/OTP 20. When I ran this page code, I got error: "module Comeonin.Bcrypt is not available". I thought to mention...more...
  • Reported in: P1.0 (24-May-16)
#80356
PDF page: 72
In this line of code: |> cast(params, ~w(name username), []) it is requiring parameters. Further down, you are expected to navigate to "/users/n...more...
  • Reported in: P1.0 (30-Apr-16)
#80279
PDF page: 73
The code to be entered into IEx has an error. for u <- Rumbl.Repo.all(User) do Rumbl.Repo.update!(User.registration_changeset(u, %{ passwor...more...
  • Reported in: P1.0 (17-May-16)
#80330
PDF page: 73

"You’ll see a good example of this policy segregation when your learn about authentication."

Should be "when *you* learn".--Clint Gibler

  • Reported in: P1.0 (05-Nov-16)
#80857
PDF page: 74
Paper page: 62
When adding the users as resources you need to specify the "only" methods in a different order. resources "/users", UserController, only: [:index, ...more...
  • Reported in: P1.0 (21-Jul-16)
#80543
Paper page: 78

"... downstream functions including ..." should be "... downstream functions, including ..."--Rich Morin

  • Reported in: P1.0 (21-Jul-16)
#80544
Paper page: 78

I'd like to see some discussion of the fact that the return value from init/1 magically gets handed in as the second argument to call/2.--Rich Morin

  • Reported in: P1.0 (21-Aug-16)
#80645
PDF page: 79
iex> changeset = Rumbl.User.changeset(%Rumbl.User{username: "eric"}) returns a deprication error: warning: passing :empty to Ecto.Changeset.cast/...more...
  • Reported in: P1.0 (11-Nov-17)
#82232
PDF page: 82
In the most recent versions of Elixir and Comeonin, a few of the instructions here will not work, and need minor changes: 1. As of Elixir 1.4, the ...more...
  • Reported in: P1.0 (10-Dec-17)
#82365
PDF page: 82
"As you recall, the Plug.Conn struct has a field called assigns . We call setting a value in that structure an assign. Our function stores the given ...more...
  • Reported in: P1.0 (21-Aug-16)
#80646
PDF page: 83
|> cast(params, ~w(password), []) in block: def registration_changeset(model, params) do model |> changeset(params) |> cast(params, ~w(password...more...
  • Reported in: P1.0 (21-Jul-16)
#80545
Paper page: 85

The sentence "This hardens our ... application secure" seems a bit awkward. I would rewrite it for clarity.--Rich Morin

  • Reported in: B10.0 (22-Apr-16)
#80259
PDF page: 94
There is a picture/diagram of the model Annotation and the relationship with User and Video. In this version this diagram is split in two pages. It wo...more...
  • Reported in: P1.0 (07-Jul-16)
#80508
PDF page: 97
This text The VideoController, like any other controller, also has a pipeline, and the Phoenix generator plugs a function called scrub_params for ...more...
  • Reported in: P1.0 (25-Sep-16)
#80761
Paper page: 99
Chapter 6: Building relationships - @required_fields ~w(url title description) @optional_fields ~w() Those module attributes do not a...more...
  • Reported in: B10.0 (23-Apr-16)
#80260
PDF page: 101

It looks like the paragraph between ecto.rollback and ecto.migrate examples is out of place. Maybe it needs some review.

  • Reported in: P1.0 (01-Apr-17)
#81347
PDF page: 102
the signatures: ​def​ all(Rumbl.User) ​do​ ​def​ all(_module), ​do​: [] throw this compilation error now: lib/rumbl/repo.ex:14: def all/1 conflict...more...
  • Reported in: P1.0 (03-Jun-16)
#80390
PDF page: 119

In the SQL fragment description "downcase(uname)" should be "downcase(username)" in both places where downcase is used as an example.--Mahboob Hussain

  • Reported in: P1.0 (09-Jan-17)
#81047
PDF page: 119
Someone before me submitted it as a bug, because uname is not username. The real issue is that uname is not declared eg. add one line with uname = "Jo...more...
  • Reported in: P1.0 (30-Apr-16)
#80281
PDF page: 122
The error message contains "constraint error when attempting to insert struct", but in my setup, it reads: "constraint error when attempting to insert...more...
  • Reported in: P1.0 (17-May-16)
#80327
PDF page: 124

"but suppose tried to update" -> "but suppose WE tried to update"--Jaime Iniesta

  • Reported in: P1.0 (18-May-16)
#80333
PDF page: 126
You write: "There are three approaches to solving this problem, and all have tradeoffs. First, you might decide to let the application (and the web f...more...
  • Reported in: P1.0 (03-Sep-17)
#82012
PDF page: 135
When inserting test users, the line: "user#{Base.encode16(:crypto.rand_bytes(8))}" must be changed to "user#{Base.encode16(:crypto.strong_rand_bytes(8...more...
  • Reported in: P1.0 (18-May-16)
#80335
PDF page: 137

Not all the dots from the first integration test are green, some are purple.--Jaime Iniesta

  • Reported in: P1.0 (08-Jul-16)
#80511
PDF page: 138
The CLI prints a warning: ...warning: using conn/0 to build a connection is deprecated. Use build_conn/0 instead. test/controllers/video_con...more...
  • Reported in: P1.0 (27-Jul-16)
#80562
PDF page: 138
test lists all user's videos on index (Rumbl.VideoControllerTest) ** (ArgumentError) cannot retrieve association :videos for empty list--Thomas Iovi...more...
  • Reported in: P1.0 (12-Jan-17)
#81053
PDF page: 139
Not an error but Deprecation Notice. warning: using conn/0 to build a connection is deprecated. Use build_conn/0 instead. Changing conn = assig...more...
  • Reported in: P1.0 (24-Oct-17)
#82184
PDF page: 140
The first assert of the second test, namely "does not create video and renders errors when invalid", assets a status code of 200, when the test itself...more...
  • Reported in: P1.0 (23-Feb-17)
#81145
Paper page: 144
Hey, On the tests with ``login / logout. I would highly suggest to add a 'recycle(conn)' before the new 'get'. The new 'get' simulate a new ...more...
  • Reported in: P1.0 (23-Sep-17)
#82101
Paper page: 145
"[...] and finally make that no user_id is in the session" I think you missed a word. It could be "finally make sure that no..." or "finally asse...more...
  • Reported in: P1.0 (11-Nov-16)
#80872
PDF page: 145

Using `Dict.merge/2` instead of `Map.merge/2`. Dict is deprecated.--Uri Gorelik

  • Reported in: P1.0 (18-May-16)
#80336
PDF page: 148

"on line 5" and "on line 18" do not match the code above, should be 6 and 19.--Jaime Iniesta

  • Reported in: P1.0 (22-Nov-17)
#82290
PDF page: 149
The test for invalid attributes fails with Phoenix 1.2.5/Ecto 2.0 since the definition of cast/4 changed: changeset = User.changeset(%User{}, @inva...more...
  • Reported in: P1.0 (09-Jul-16)
#80513
PDF page: 150
This test: test "changeset does not accept long usernames" do attrs = Map.put(@valid_attrs, :username, String.duplicate("a", 30)) assert {:us...more...
  • Reported in: P1.0 (03-Aug-16)
#80574
PDF page: 150
The test "changeset does not accept long usernames" keeps failing because lhs & rhs don't match (one is a list and another is a tuple). I think I foun...more...
  • Reported in: P1.0 (14-Aug-16)
#80624
PDF page: 150
Ran into the same error someone else reported (#80513), and the test on page 150 line 18 passes if changed to the following: ``` test "changeset...more...
  • Reported in: P1.0 (18-Jul-16)
#80522
PDF page: 152

When I run test user_repo_test with mix I getting error:
test/models/user_repo_test.exs:8: undefined function insert_user/1--Ruslan

  • Reported in: P1.0 (18-Jul-16)
#80524
PDF page: 152

Please ignore my previous reported error on page 152. I missed to add 'import Rumbl.TestHelpers' to the model_case.ex

Ruslan--Ruslan Kenzhebekov

  • Reported in: P1.0 (09-Oct-16)
#80798
Paper page: 159

The book states:
"We extract the player ID from the video url field by a function aptly named player_id."

I think "aptly" is a typo.--Tiago Duarte

  • Reported in: P1.0 (16-Nov-16)
#80883
Paper page: 159
In `watching_videos/listings/rumbl/web/views/watch_view.ex` when creating the player_id function it uses `Kernel.get_in/2` to create a single pipe rat...more...
  • Reported in: P1.0 (30-May-16)
#80378
PDF page: 161
"That’s the file loaded by browsers at the end of web/templates/layout.html.eex when we call static_path(@conn, "/js/app.js")." should be "That...more...
  • Reported in: P1.0 (16-Nov-16)
#80882
Paper page: 162
In the Javascript for `watching_videos/listings/rumbl/web/static/js/player.js`, in the `events` object, there is an extra space: "onReady": (event ...more...
  • Reported in: P1.0 (16-Nov-16)
#80884
Paper page: 163
"Our onYouTubeReady function needs..." `onYouTubeReady` was never created, or mentioned. I believe it's supposed to be `onIframeReady`.--Uri Goreli...more...
  • Reported in: P1.0 (16-Nov-16)
#80885
Paper page: 164
In `watching_videos/listings/rumbl/web/static/css/video.css` it might be worth mentioning that you do not need to manually add this CSS file in your `...more...
  • Reported in: B10.0 (24-Apr-16)
#80264
PDF page: 166
The video.css should be set to a fixed height with scroll enabled, or the scroll-to-bottom code in Chapter 10 won't work. #msg-container { min-...more...
  • Reported in: P1.0 (06-Dec-16)
#80957
Paper page: 167
Once the Phoenix.Param.to_param is overridden for Rumbl.Video to include the slug as part of the id, the Rumbl.VideoControllerTest test "update user v...more...
  • Reported in: P1.0 (31-May-16)
#80382
PDF page: 167
We are instructed to add the code snippet that implements the Phoenix.Param protocol for the Rumbl.Video struct to the bottom of web/models/video.ex ...more...
  • Reported in: P1.0 (06-Dec-16)
#80956
Paper page: 189
Once annotations are added to the code, videos that are associated with annotations cannot be deleted. I see a constraint violation on annotations_vid...more...
  • Reported in: P1.0 (14-Jan-17)
#81062
Paper page: 191
`resp = %{annotations: Phoenix.View.render_many(annotations, AnnotationView, "annotation.json")}` should be `resp = %{annotations: Phoenix.View.render...more...
  • Reported in: P1.0 (15-May-16)
#80318
PDF page: 198
In section 4, "building forms", right before “ecto/listings/rumbl/web/router.change1.ex” “You’ll see a good example of this policy segregation when...more...
  • Reported in: P1.0 (21-Nov-17)
#82284
PDF page: 200
On Erlang/OTP 20, Elixir 1.5.2 Running the simple OTP Counter example, code is here gist.github.com/daya/865116d1fed01577f8764f5f1a691d85, causes A...more...
  • Reported in: P1.0 (09-Jun-16)
#80411
Paper page: 203
1) The explanation of the code is a bit unclear, especially the "notice the _from in the function head" as I thought you were still referring to the G...more...
  • Reported in: P1.0 (11-Dec-16)
#80966
PDF page: 212
In the subsection "Choosing an Information Strategy", there's a full stop where there should be a comma - "It doesn’t make sense for us to retry the c...more...
  • Reported in: P1.0 (23-Sep-16)
#80758
PDF page: 225
The additional info box "What About Task.async/await?" slipped in between the following code-example lines, which shows only a single line on the prev...more...
  • Reported in: P1.0 (30-Jun-16)
#80490
PDF page: 227
Paper page: 228

info_sys.change1.ex:
18: await_results(opts)
31&35: await_result (not plural).

Typo?--Erik

  • Reported in: P1.0 (06-Jun-16)
#80399
PDF page: 232
On line 20 of video_channel.ex, it should either be Rumbl.AnnotationView, or you need to alias it first. Once I prefixed it with Rumbl, it worked grea...more...
  • Reported in: P1.0 (28-May-17)
#81583
PDF page: 235
The listing for the app.html.eex on the book is different from the file linked: /code/authentication/listings/rumbl/web/templates/layout/app.change1.h...more...
  • Reported in: P1.0 (28-Sep-16)
#80770
Paper page: 237
`mix test` should show 33 tests, rather than 37 tests. By the end of Chapter 8, there are 31 tests. At page 189, two tests are added automatically ...more...
  • Reported in: P1.0 (16-Jun-16)
#80434
Paper page: 247

I had the same problem as Marc Linsangan in both print and PDF versions; the wolfram test fails. "1+%2B+1" should be "1%20+%201"
--AJ Murphy

  • Reported in: P1.0 (15-Sep-16)
#80725
Paper page: 247
In the book testing_otp/listings/rumbrella/apps/info_sys/test/fixtures/wolfram.xml is incomplete. In media.pragprog.com/titles/phoenix/code/testing_o...more...
  • Reported in: P1.0 (14-Aug-16)
#80622
Paper page: 247
The listing for http_client.exs has an error on line 6. The encoded version of "1 + 1" is shown as "1+%2B+1" but it should be "1%20+%201". I double...more...
  • Reported in: B10.0 (19-Apr-16)
#80249
PDF page: 251

The Wolfram test was failing for me. I had to replace the URI-encoded "1 + 1" string from "1+%2B+1" to "1%20+%201".--Marc Linsangan

  • Reported in: P1.0 (14-Jun-16)
#80430
PDF page: 253
The line 6 of second code sample should be ``` String.contains?(url, "1%20+%201") -> {:ok, {[], [], @wolfram_xml}} ``` instead of "1+%2B+1" --Taia...more...
  • Reported in: P1.0 (16-Oct-17)
#82153
Paper page: 262

Bottom of the page "we recommend that you to study...".
Remove the "to".--David Carlin

  • Reported in: P1.0 (08-May-16)
#80299
Paper page: 343
In “rumbrella/apps/info_sys/test/backends/http_client.exs” I had to change @wolfram_xml File.read!("test/fixtures/wolfram.xml") to @w...more...
  • Reported in: P1.0 (23-Sep-16)
#80759
PDF page: 5562
Im reading it on the kindle reader so no page number. Location 5652, code "watching_videos/listings/rumbl/web/views/watch_view.ex" The original reg...more...