Programming Phoenix (Pragprog)

Another nice update!

2 Likes

I love the intro “Don’t accept the compromise between fast and beautiful: you can have it all.”

3 Likes

Hi @chrismccord would you please add a chapter on Phoenix LiveView to the book Programming Phoenix 1.4?
If you make it the last chapter and convert all the JavaScript used in Rumbl into the Phoenix LiveView(s), that will make much sense.
Rumbl will already be completed, so if someone don’t wanna use LiveView, s/he will already be done, but if someone want to use LiveView s/he will read the last chapter too.
Or you can also release a separate booklet on Phoenix LiveView, doing the same (rewriting all the JavaScript used in Rumbl, to LiveView)

5 Likes

I agree that having a chapter on LiveView would be spectacular :003:

I think LiveView is going to be one of Phoenix’s killer features, and it being covered in the de-facto Phoenix book would be awesome (even if to begin with it is just enough to get people productive with it).

5 Likes

LiveView definitely won’t make it into the book given we are shipping the final three chapters and sending it off to production hopefully before end of year, which will be prior to a LiveView 1.0 for sure. Fortunately though, we have a great doc system with elixir and hexdocs so there will be plenty of docs/guides as we get underway.

7 Likes

What if you write a booklet (e.g., a small 10 to 20 pages booklet) and rewrite the JavaScript part of Rumbl in LiveView, and release it from the Pragmatic Bookshelf? I’ll happily buy it.

And thank you for creating Phoenix and now LiveView!

2 Likes

I’ve just tried to submit the following via PragProg’s errata page but it seems to be down… if anyone succeeds in submitting anything please also submit this (or please let us know when their system is back up)

Page 49 on the PDF version:

The view modules infer their template locations from the view module name. In our example, our Rumbl.UserView would look for templates in the web/templates/user/ directory.

Changes:

Rumbl.UserView to RumblWeb.UserView

web/templates/user/ to rumbl_web/templates/user/

B5 is out now.

Changes in This Release

  • We added a new chapter: Chapter 11, OTP. It’s the most heavily revised chapter yet with changes to the dynamic supervision and new child specs added in Elixir 1.5.
  • We addressed another big chunk of of the technical errors. It seems you’ve been busy too! Thanks for all of your help and keep them coming.
  • We know we still owe you a treatment of channel presence; that will come in about a month or so.
4 Likes

Is the book available as an upgrade to those who bought the previous version or it’s a completely new purchase?

Did you buy an ebook? If so I think you get a huge 80% off: (on my mobile so can’t check what I paid for the upgrade atm):

:023:

(Your coupon should be on your pragprog account page)

1 Like

Update available :023:

Changes in This Release

  • We added a new chapter: Chapter 12, Observer and Umbrellas.
  • We addressed another big chunk of of the technical errors.
  • We’re working on a treatment of channel presence; that will come in about a month or so.
2 Likes

Updating now to check it out. :+1:

1 Like

Looks like it is going to include some LiveView too :003:

https://twitter.com/redrapids/status/1091686560758710272

https://twitter.com/redrapids/status/1106289826486251521

5 Likes

Update out:

Changes in This Release

The last update to the regular chapters is IN! We finished the Testing OTP chapter. Due to some major restructuring of the OTP design, the testing chapter took a while to get right. We can see the finish line. Here’s what’s coming:

  • We still owe you a treatment of Channel Presence.
  • We will align the configuration with the deployment strategies necessary to build a release.
  • We will add a treatment of LiveVeiw in the last chapter. We hope you’re enjoying the rewrite so far. Happy reading!
1 Like

Dear, I don’t know whether this is the right place. In every case, thanks for writing your book, I love it.
However I’m confused here:
https://media.pragprog.com/titles/phoenix14/code/channels/listings/rumbl/lib/rumbl_web/channels/video_channel.change3.ex

the lines
{:error, changeset} ->
{:reply, {:error, %{errors: changeset}}, socket}

are those correct?
Since I made a typo somewhere else which resulted in:
protocol Jason.Encoder not implemented for #Ecto.Changeset

I read “5. Authenticating Users” - “In-context Relationships”, There is a one-to-one relationship between User and Credential. But I don’t see how it is easy to support third-party oauth2 login. Does it mean adding fields such as facebook_uid, twitter_uid in the table?

In my opinion, I will have an Authentication table with provider and uid fields. Then each third-party is one row in the table.

Thanks

I would love to see (will even pay/donate!) for someone to extend the Authentication chapter with a follow-up using Uberauth and Guardian, and then a jwt, to show not only how to integrate a library but also how to do authentication ‘properly’ and is also production quality.

5 Likes

I’ve bought the beta alongside Ecto from PragProg, I would love to see a chapter on deployment, logging and optimization. Thanks.

3 Likes

Changes in This Release

This is the last beta! With this release, we’re content complete. Among the changes are these:

  • You now have the last chapter: Chapter 14, What’s Next? In it we address LiveView, PubSub 2.0, and the coming additions to Phoenix.
  • We aligned the configuration with the deployment strategies necessary to build a release to prepare for Elixir’s deployment changes.
  • We have taken an extensive pass through the entire text, cleaning up each chapter along the way and making things consistent.
  • We have also taken an extensive pass through the errata. Thanks for all of your help with this! For those of you who have been keeping us busy, please accept our thanks. You’ve gotten us through to the production process when our editors and reviewers will go over the book in detail.

:023:

5 Likes

Is there a way to preorder the physical book and at the same time buy the PDFwith access to the beta ? Like some kind of package.