Programming Phoenix LiveView: All the errata I found
Hi, I just finished reading Programming Phoenix LiveView B10 PDF edition.
I found some typos and errata, and I will report them all in this post.
Note that when I refer to a page number, I’m referring to the PDF page number, and not the number present on the book.
PAGES WHERE THERE IS SOME CODE WITHOUT THE USUAL HEADER (file name with a link)
189, 190, 200, 204, 206, 211, 227, 271, 317, 357, 368, 376, 377, 381, 384, 393, 394 and in almost all the paragraphs relating to tests.
TYPOS
- Page 90: replace
updated_at
with:updated_at
- Page 92: the sentence “[…] and the sku to be unique” does not end with a full stop
- Page 117: replace “once LiveVie” with “once LiveView”
- Page 155: replace “on longer” with “no longer”
- Page 172:
params_with_image
is not highlighted - Page 260: replace “dataset for our chat” with “dataset for our chart”
- Page 285: replace “let’s you render” with “lets you render”
- Page 376: replace “rastor graphics” with “raster graphics”
OTHER ERRATA
- Page 120:
header/0
should beheader/1
- Page 153: says to try the code written so far but it won’t compile because the form is not assigned in the
mount
method - Page 170: there is a missing
<% end %>
in the code - Page 194: queries other than
base
should be removed because they will be added later - Page 195: you don’t use
preload/2
inwith_user_ratings
but in the other function. The book does not even explain what it means to preload something in a query - Page 210:
use Phoenix.HTML
is no longer supported, use should add it to mix.deps and import it - Page 230: there is no handler for the
validate
event - Page 235: remove the call to rating live show
- Page 258:
assign_products_with_average_rating/2
should beassign_products_with_average_rating/1
- In the chart template section, there is the code for the gender filter, but it won’t compile because all the other code should be implemented by the user in the exercises, remove it
- Page 306: the mentioned code is swapped with the code at the next page
- Page 316: remove
:register_and_log_in_user
from the setup - Page 314: in
create_user_attrs
andcreate_user2_attrs
the education field is missing; it should be there if the user followed the exercises. - Page 322: code is not matching description
- Page 326: URL should be
/admin/dashboard
- Page 322: HTML tag is not
title
buttext
so the assert condition should be changed - Page 334: URL should be
/admin/dashboard
- Page 363: alias of
Shape
is missing - Page 375: the subdirectory should not be called
pento
butgame_live
- Page 381: code does not compile because
GameLive.Colors
is not yet defined, so you should not tell the reader to try it - Page 381: svg attribute should be
viewBox
instead ofview_box
- Page 383: no need to create another file called
component.ex
, we already did that - Page 388: factors are 4 and 5, not 3 and 4
- Page 386: code has no header, and it should be called
palette
instead ofdraw
- Page 394: the code should call
Board.to_shapes
instead ofBoard.to_shape
and should not encapsulate the result in another list - Page 397: function should not be called
draw
and does not renderinner_block
correctly - Page 398: function should not be called
draw
- Page 398: No braces encapsulating
rotate
in the code because it is svg function - Page 398: The function is not
triangle/1
buttriangle/4
- Page 398: attribute
fill
cannot be equal to the color of shape because there is no shape here - Page 411: setting a flash inside a live_component does not work! (Phoenix.LiveView — Phoenix LiveView v0.20.14)
- Page 415: Code does not work until now because it does not call
Board.puzzles()
- Page 412: the icon component should be called with
class="mini'
instead of addingmini
directly as a class
OTHER SUGGESTIONS
- Provide solutions to exercises! They are very, very, very useful.
- Do not give an exercise about creating an Ecto migration before explaining what migrations are at page 133
- Explain in more detail the difference between
Conn.struct
andsocket
- Show how to create and authenticate administrators, it’s a common task for which it is useful to have a good practice (or an example at least)
- At page 329, explain what are the “some params” you mention
- At page 415 the capture syntax is explained but it’s used in the book before
These are a lot of errata! I hope you will fix them before the “stable” release of the book.
Cheers
Jacopo
Popular Prag Prog topics

Whilst the author has been careful to provide exact results for the tests elsewhere in the book (such as surds with the transformation te...
New

The following is cross-posted from the original Ray Tracer Challenge forum, from a post by garfieldnate. I’m cross-posting it so that the...
New

Hi Jamis,
I think there’s an issue with a test on chapter 6. I own the ebook, version P1.0 Feb. 2019.
This test doesn’t pass for me:
...
New

Hello! On page xix of the preface, it says there is a community forum "… for help if your’re stuck on one of the exercises in this b...
New

This isn’t directly about the book contents so maybe not the right forum…but in some of the code apps (e.g. turbo/06) it sends a TURBO_ST...
New

In case this helps anyone, I’ve had issues setting up the rails source code. Here were the solutions:
In Gemfile, change
gem 'rails...
New

I’m under the impression that when the reader gets to page 136 (“View Data with the Database Inspector”), the code SHOULD be able to buil...
New

Is the book’s epub format available to read on Google Play Books?
New

Modern Front-End Development for Rails - application does not start after run bin/setup (page xviii)
After some hassle, I was able to finally run bin/setup, now I have started the rails server but I get this error message right when I vis...
New

@parrt
In the context of Chapter 4.3, the grammar Java.g4, meant to parse Java 6 compilation units, no longer passes ANTLR (currently 4....
New
Other popular topics

I am thinking in building or buy a desktop computer for programing, both professionally and on my free time, and my choice of OS is Linux...
New

Curious to know which languages and frameworks you’re all thinking about learning next :upside_down_face:
Perhaps if there’s enough peop...
New
New

Do the test and post your score :nerd_face:
:keyboard:
If possible, please add info such as the keyboard you’re using, the layout (Qw...
New

Small essay with thoughts on macOS vs. Linux:
I know @Exadra37 is just waiting around the corner to scream at me “I TOLD YOU SO!!!” but I...
New

The V Programming Language
Simple language for building maintainable programs
V is already mentioned couple of times in the forum, but I...
New

Saw this on TikTok of all places! :lol:
Anyone heard of them before?
Lite:
New

This is going to be a long an frequently posted thread.
While talking to a friend of mine who has taken data structure and algorithm cou...
New

The overengineered Solution to my Pigeon Problem.
TL;DR: I built a wifi-equipped water gun to shoot the pigeons on my balcony, controlle...
New

Large Language Models like ChatGPT say The Darnedest Things.
The Errors They MakeWhy We Need to Document Them, and What We Have Decided ...
New
Latest in PragProg
Latest (all)
Categories:
My Saved Portals
-
None saved yet
Popular Portals
- /elixir
- /opensuse
- /rust
- /kotlin
- /ruby
- /erlang
- /python
- /clojure
- /react
- /quarkus
- /go
- /vapor
- /v
- /react-native
- /wasm
- /security
- /django
- /nodejs
- /centos
- /haskell
- /rails
- /fable
- /gleam
- /swift
- /js
- /deno
- /assemblyscript
- /tailwind
- /laravel
- /symfony
- /phoenix
- /crystal
- /typescript
- /debian
- /adonisjs
- /julia
- /arch-linux
- /svelte
- /spring
- /preact
- /flutter
- /c-plus-plus
- /actix
- /java
- /angular
- /ocaml
- /zig
- /kubuntu
- /scala
- /zotonic
- /vim
- /rocky
- /lisp
- /html
- /keyboards
- /vuejs
- /nim
- /emacs
- /nerves
- /elm