<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="30940" data-post-id="30940">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Cortrah" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Cortrah/120/390_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Cortrah
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’d like to suggest that this desired chapter on persistence might be better for another and fairly different book. I disagree that it’s pointless to cover this stuff without covering persistence. There is plenty to cover in what it is doing and to do a decent job on the various persistence options and their tradeoffs well could double the books size and dilute it’s focus.</p>
<p>This book has a good clear focus. Using purely functional modules instead of agents as suggested in  Saša Jurić’s article poses a really nice counter to the style in this book and it would seem important to try and flesh out the pros and cons of each in some way if possible, but Saša’s own Blackjack example would clearly need revision once other very simple elements were added as he noted himself.</p>
<p>I think some fleshing out of this space in between these two options would be valuable, but I think somebody else should be left the fertile ground of persistence for a different book.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="30940" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/functional-web-development-with-elixir-otp-and-phoenix-pragprog/4231/66">Post #65</a>
	                </div>
	            </div>
              <div id="likers-container-30940" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="30940"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #65"></div>
  </section>
</div>
    <div class="postbit" id="30944" data-post-id="30944">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="JEG2" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/JEG2/120/936_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  JEG2
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Author of Designing Elixir Systems with OTP</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="Cortrah" data-post="66" data-topic="4231">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/cortrah/48/390_2.png" class="avatar"> Cortrah:</div>
<blockquote>
<p>I’d like to suggest that this desired chapter on persistence might be better for another and fairly different book.</p>
</blockquote>
</aside>
<p>I think the goal of the book is to show programmers a new type of web development available to them.  However, very few people could make use of that without understanding how persistence plays into the design.  <a href="https://github.com/JEG2/hanabi_umbrella#long-term-storage" rel="noopener nofollow ugc">It doesn’t need to be complex.</a></p>
<aside class="quote no-group quote-modified" data-username="Cortrah" data-post="66" data-topic="4231">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/cortrah/48/390_2.png" class="avatar"> Cortrah:</div>
<blockquote>
<p>Using purely functional modules instead of agents as suggested in Saša Jurić’s article poses a really nice counter to the style in this book and it would seem important to try and flesh out the pros and cons of each in some way if possible…</p>
</blockquote>
</aside>
<p>I’m pretty confident that you’ll want to be closer to Saša’s style.  The processes-for-everything style presented in early versions of the book creates a big spanning tree of mutable data with the added problem of being overly complex.  You lose too many advantages of functional programming that way.</p>
<p>I expect the book will improve on both of these fronts.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="30944" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/functional-web-development-with-elixir-otp-and-phoenix-pragprog/4231/67">Post #66</a>
	                </div>
	            </div>
              <div id="likers-container-30944" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="30944"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #66"></div>
  </section>
</div>
    <div class="postbit" id="30950" data-post-id="30950">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Cortrah" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Cortrah/120/390_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Cortrah
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Well it may not need to be complex. But it may need to be written. I promise to look at this application in detail. I’m excited for the link, but it’s not a book. Maybe it should be? I see the focus of this book as a concrete example of how you can separate your state from your framework and as more of an example of an option than a formula for how you should do stuff.</p>
<p>The thing is that I think that this book explains an idea well, and it seems that a bunch of folk who have deep experience want it to explain their better and more refined practices, which I’d love to hear about, but you can’t talk about a camel without having that strange creature in front of you to draw reference to.</p>
<p>One of the things I like about Elixir is that it takes a very “first do no harm” approach to things and I understand that you guys are following that, but it takes the camel and it takes the words and I’m thankfull for this camel and these words.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="30950" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/functional-web-development-with-elixir-otp-and-phoenix-pragprog/4231/68">Post #67</a>
	                </div>
	            </div>
              <div id="likers-container-30950" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="30950"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #67"></div>
  </section>
</div>
    <div class="postbit" id="30976" data-post-id="30976">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Cortrah" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Cortrah/120/390_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Cortrah
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Incidentally watching the presentation now. Really appreciate it.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="30976" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/functional-web-development-with-elixir-otp-and-phoenix-pragprog/4231/69">Post #68</a>
	                </div>
	            </div>
              <div id="likers-container-30976" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="30976"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #68"></div>
  </section>
</div>
    <div class="postbit" id="30979" data-post-id="30979">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Letmecode" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Letmecode/120/18215_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Letmecode
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I bought the book and I can honestly recommend it (even though it’s not even finished, yet). There is one bitter pill for me, though, and that’s the amount of redundancy in the author’s manner of writing (“chaining/adding/composing together”, for example, where the “together” is entirely superfluous, and he sometimes manages to even use double redundancies, which always makes me cringe a bit).</p>
<p>Yes, it’s nothing serious, it’s just that excessive redundancy in language is a major pet peeve on mine, all the more when it’s coming from a (really good) programmer, who should give examples in keeping it DRY in the first place.</p>
<p>Redundancies aside, the book is excellent and really explains important concepts, instead of just hinting at them and then doing things that have been done, talked about and explained a hundred times. The application is fun to build and the beautiful decoupling is also something that doesn’t have enough space in currently available Books and Tutorials about Elixir, OTP and Phoenix.</p>
<p>Give it a try!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="30979" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/functional-web-development-with-elixir-otp-and-phoenix-pragprog/4231/70">Post #69</a>
	                </div>
	            </div>
              <div id="likers-container-30979" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="30979"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #69"></div>
  </section>
</div>
    <div class="postbit" id="30987" data-post-id="30987">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="frigidcode" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/frigidcode/120/7594_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  frigidcode
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Purchased and used the ElixirForum coupon code, can’t wait to get time to read it!!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="30987" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/functional-web-development-with-elixir-otp-and-phoenix-pragprog/4231/71">Post #70</a>
	                </div>
	            </div>
              <div id="likers-container-30987" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="30987"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #70"></div>
  </section>
</div>
    <div class="postbit" id="31676" data-post-id="31676">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="peerreynders" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/peerreynders/120/5826_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  peerreynders
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><strong>Wow</strong> - this is just above and beyond. Drastic “mid-voyage course correction” despite the consequences, dedication to a quality product, you have to respect that!</p>
<p>So - don’t bother with any more errata?</p>
<blockquote>
<p>Sometimes, beta happens. We just got some great technical feedback from people we trust in the Elixir community. Since the book is so far along, the feedback was especially painful, but we have decided to incorporate it before we go forward with the rest of the book. We chose to use Agents as a way to approach OTP, but we overused them. Unfortunately, that sent the wrong message about good application design in Elixir, and we sincerely apologize for that. The next beta will put functional principles front and center. We’ll use separate processes only when the design calls for them, and we’ll stick to plain modules and functions when it doesn’t. So you’re getting a better book. The downside is that it will take some time. You won’t see the next beta version until approximately mid-May. Know that we have your best interests in mind. As one of the more popular Elixir books right now, we want our guidance to be rock solid, so we’re enlisting some great talent in our review process to improve the book. Since it’s delaying our betas, we wanted you to know.</p>
</blockquote>
<blockquote>
<p>Thanks for your readership and your patience.</p>
</blockquote> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="31676" data-batch-url="/posts/batch_likers">
                        17
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/functional-web-development-with-elixir-otp-and-phoenix-pragprog/4231/72">Post #71</a>
	                </div>
	            </div>
              <div id="likers-container-31676" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="31676"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #71"></div>
  </section>
</div>
    <div class="postbit" id="31737" data-post-id="31737">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="gregvaughn" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/gregvaughn/120/954_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  gregvaughn
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I already had amazing respect for the Prags as publishers and this just reinforces it. Additionally, <a class="mention" href="/u/lance" rel="nofollow">@lance</a>, this can’t be easy on you personally, and I appreciate your devotion to the book. For what it’s worth, if I can help, let me know.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="31737" data-batch-url="/posts/batch_likers">
                        7
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/functional-web-development-with-elixir-otp-and-phoenix-pragprog/4231/73">Post #72</a>
	                </div>
	            </div>
              <div id="likers-container-31737" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="31737"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #72"></div>
  </section>
</div>
    <div class="postbit" id="31739" data-post-id="31739">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="lance" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  lance
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Author of Functional Web Development with Elixir, OTP, and Phoenix</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thanks so much for your support <a class="mention" href="/u/peerreynders" rel="nofollow">@peerreynders</a>!</p>
<p>I’ll be honest, rewriting chapters is no fun, but what would be worse is releasing a book that isn’t the absolute best it can be.</p>
<p>For your errata question, if you have any for chapters 6 and 7, send them along. I would say it’s probably better to hold off on any for the other chapters for now.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="31739" data-batch-url="/posts/batch_likers">
                        16
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/functional-web-development-with-elixir-otp-and-phoenix-pragprog/4231/74">Post #73</a>
	                </div>
	            </div>
              <div id="likers-container-31739" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="31739"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #73"></div>
  </section>
</div>
    <div class="postbit" id="31740" data-post-id="31740">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="lance" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  lance
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Author of Functional Web Development with Elixir, OTP, and Phoenix</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thank you so much <a class="mention" href="/u/gregvaughn" rel="nofollow">@gregvaughn</a>! I appreciate your support. I’ll let you know if there’s anything you can do. &lt;3</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="31740" data-batch-url="/posts/batch_likers">
                        10
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/functional-web-development-with-elixir-otp-and-phoenix-pragprog/4231/75">Post #74</a>
	                </div>
	            </div>
              <div id="likers-container-31740" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="31740"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #74"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/4231/load_more?page=8">Load more posts (54 remaining)</a>
</div></template></turbo-stream>