<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="102583" data-post-id="102583">
  <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
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>2018-11-02</p>
<aside class="quote no-group">
<blockquote>
<p>This is just to let you know that <em>Programming Ecto (eBook)</em> has recently been updated.<br>
<strong>Changes in This Release</strong></p>
<ul>
<li>Added chapter 16, Using Schemas Without Tables</li>
<li>Fixed many errata – thanks to the beta readers for continuing to submit these!</li>
</ul>
</blockquote>
</aside> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="102583" 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/programming-ecto-pragprog/13287/37">Post #36</a>
	                </div>
	            </div>
              <div id="likers-container-102583" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="102583"
                     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 #36"></div>
  </section>
</div>
    <div class="postbit" id="113228" data-post-id="113228">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>2019-01-24</p>
<blockquote>
<p>This is just to let you know that  <em>Programming Ecto (eBook)</em>  has recently been updated. You own an electronic version of this book, and so you’ll be able to download this latest version.</p>
<h3>Changes in This Release</h3>
<ul>
<li>Added chapter 17, Tuning For Performance</li>
<li>Made several edits and additions throughout to book to reflect the changes for <strong>Ecto 3.0</strong></li>
<li>Fixed many errata</li>
</ul>
</blockquote> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="113228" data-batch-url="/posts/batch_likers">
                        4
                      </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/programming-ecto-pragprog/13287/38">Post #37</a>
	                </div>
	            </div>
              <div id="likers-container-113228" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="113228"
                     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 #37"></div>
  </section>
</div>
    <div class="postbit" id="123926" data-post-id="123926">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="darinwilson" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/darinwilson/120/15104_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  darinwilson
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Author of Programming Ecto</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Aaaaand that’s a wrap - the book is officially completed and released!</p>
<p>Thanks to all who participated in the beta - the early feedback was super helpful <img src="https://forum.elixirforum.com/images/emoji/apple/heart.png?v=15" title=":heart:" class="emoji" alt=":heart:" loading="lazy" width="20" height="20"></p>
<aside class="onebox allowlistedgeneric" data-onebox-src="https://pragprog.com/search/?q=p">
  <header class="source">

      <a href="https://pragprog.com/search/?q=p" target="_blank" rel="noopener nofollow ugc">pragprog.com</a>
  </header>

  <article class="onebox-body">
    

<h3><a href="https://pragprog.com/search/?q=p" target="_blank" rel="noopener nofollow ugc">Search</a></h3>

  <p>We improve the lives of professional developers. We create timely, practical books on classic and cutting-edge topics to help you learn and practice your craft, and accelerate your career. Come learn with us.</p>


  </article>

  <div class="onebox-metadata">
    
    
  </div>

  <div style="clear: both"></div>
</aside>
 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="123926" data-batch-url="/posts/batch_likers">
                        13
                      </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/programming-ecto-pragprog/13287/39">Post #38</a>
	                </div>
	            </div>
              <div id="likers-container-123926" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="123926"
                     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 #38"></div>
  </section>
</div>
    <div class="postbit" id="139006" data-post-id="139006">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<h3><a name="p-139006-interim-review-continued-in-post-below-1" class="anchor" href="#p-139006-interim-review-continued-in-post-below-1" aria-label="Heading link" rel="nofollow"></a>Interim-review (continued in post below)</h3>
<p>It’s summer here and as I try not being glued to my desk all day, I needed a book to read where it wasn’t strictly necessary to follow along with the examples. I chose this book after what <a class="mention" href="/u/peerreynders" rel="nofollow">@peerreynders</a> said in <a href="https://forum.elixirforum.com/t/programming-ecto-pragprog/13287/16" rel="nofollow">his post above</a> <img src="https://forum.elixirforum.com/images/emoji/apple/smiley.png?v=15" title=":smiley:" class="emoji" alt=":smiley:" loading="lazy" width="20" height="20"></p>
<p>I’m only 60% of the way through this book (chapters 1-6 as per Peer’s recommendation, and will be going back to Programming Phoenix now - edit - I actually ended up finishing the book as I was enjoying it so much! See the rest of my review in the post below…) but I just wanted to post a mini-review to say I’m really really really loving this book! It’s been one of the most enjoyable Elixir books I’ve read so far. Why? Because it’s sooooooooooooooooooooooooooooo easy to read!! <img src="https://forum.elixirforum.com/uploads/default/original/2X/7/776053aa22968f83c10e90c98b23aa0ddd5c9d47.gif?v=15" title=":lol:" class="emoji emoji-custom" alt=":lol:" loading="lazy" width="20" height="20"></p>
<p>There are a number of reasons for this, in part it is because of the pace and well thought out progression of topics, but the thing I really appreciated, is that it seems to have been produced with those of us who use e-readers in mind; there’s absolutely no having to flick back through pages to review code that is spoken about. Code is either just before or just after it’s covered or (and I really appreciate this..) repeated if it is spoken about again. The output is also included, eradicating the need to actually follow along as the results are there in front of you. On top of that, since everything is well explained and at an even pace, the cognitive load required to progress through the book is relatively low if you already know the basics of SQL. All this makes reading on e-readers frustration free and a real joy.</p>
<p>The other thing I really like about this book is that it acts as a bit of a SQL refresher (in fact so far my only suggestion would have been to run with this and cover more SQL and how to do it with Ecto - though I’m guessing the remainder of the book may do some of that anyway).</p>
<p>The other reason I like this book is because it (perhaps obviously) showcases what’s so great about Ecto. Ecto has been put together very nicely and I like that it follows the Elixir theme of keeping magic to a minimum. The query syntax is pretty close to SQL query syntax, and I think this will make converting SQL to Ecto a lot easier than trying to do the same in other DB libraries or ORMs such as Active Record. It will also mean if you ever need to drop into raw SQL it should be a bit easier.</p>
<p>So my thoughts so far are… get this book!! It’s so incredibly easy to read that I’m pretty sure you’ll enjoy it just as much as I am!</p>
<p>Well done Eric and Darin! <img src="https://forum.elixirforum.com/uploads/default/original/2X/a/a1c41c89c299189a3f85edfeb4973563d8bac781.gif?v=15" title=":023:" class="emoji emoji-custom" alt=":023:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="139006" 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/programming-ecto-pragprog/13287/40">Post #39</a>
	                </div>
	            </div>
              <div id="likers-container-139006" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="139006"
                     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 #39"></div>
  </section>
</div>
    <div class="postbit" id="140122" data-post-id="140122">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<h3><a name="p-140122-my-review-continued-1" class="anchor" href="#p-140122-my-review-continued-1" aria-label="Heading link" rel="nofollow"></a>My review - continued..</h3>
<p>I’ve now finished this book! So here’s the rest of my review <img src="https://forum.elixirforum.com/uploads/default/original/2X/6/6c3193d1dd46244da3c8c6f719c9f5e2abdd5ae8.gif?v=15" title=":003:" class="emoji emoji-custom" alt=":003:" loading="lazy" width="20" height="20"></p>
<p>I’ll start by saying that I wasn’t really sure what I was expecting from this book - I mean, how deep can a database library be? Or how involved might it be using one? Of course that was based on my experience with ActiveRecord. Well it turns out a DB library can be more than what you may be used to or expect, and I was very pleasantly surprised by this book as well as Ecto itself.</p>
<p>One of the things I’ve said numerous times about Elixir - that it and the community show us a ‘better way’ -  is most definitely echoed in this book! Some of the things I learned that I didn’t know before are that I can create custom Ecto types, or use table-less schemas, or that polymorphism can be handled in several different ways - all with different pros and cons.</p>
<p>I also learned about upserts and transactions and as I mentioned in the <a href="https://forum.elixirforum.com/t/programming-ecto-book-club/20448/2" rel="nofollow">book club thread</a>, there was a very welcomed chapter on application design which covers separating the Pure from the Impure, (Phoenix) Contexts and Umbrellas! I really wasn’t expecting to see that in a book about Ecto and it was definitely very much appreciated.</p>
<p>I also enjoyed the chapter and details regarding Phoenix, and I agree with <a class="mention" href="/u/peerreynders" rel="nofollow">@peerreynders</a> that it may actually be beneficial to read this book before Programming Phoenix (or as I did, after the initial part of it) - it is <em>so</em> easy to read and doesn’t require much cognitive load if you are already familiar with the basics of SQL and something like ActiveRecord, so you will finish it in no time!</p>
<p>Miss this book at your peril! It will show you why Ecto is different.. and why Ecto guides you down a ‘better’ path. Isn’t that in part why we came to Elixir?</p>
<p>Well done <a class="mention" href="/u/darinwilson" rel="nofollow">@darinwilson</a> and <a class="mention" href="/u/ericmj" rel="nofollow">@ericmj</a>  (and for all your work on Ecto!) <img src="https://forum.elixirforum.com/uploads/default/original/2X/a/a1c41c89c299189a3f85edfeb4973563d8bac781.gif?v=15" title=":023:" class="emoji emoji-custom" alt=":023:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="140122" data-batch-url="/posts/batch_likers">
                        6
                      </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/programming-ecto-pragprog/13287/41">Post #40</a>
	                </div>
	            </div>
              <div id="likers-container-140122" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="140122"
                     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 #40"></div>
  </section>
</div>
    <div class="postbit" id="140130" data-post-id="140130">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Nice review; now I’m even more excited to dig into this book after I revisit <em>Programming Elixir &gt;= 1.6</em> and work through <em>Elixir in Action</em>. <img src="https://forum.elixirforum.com/images/emoji/apple/tada.png?v=15" title=":tada:" class="emoji" alt=":tada:" loading="lazy" width="20" height="20"></p>
<aside class="quote no-group" data-username="AstonJ" data-post="41" data-topic="13287">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/astonj/48/15_2.png" class="avatar"> AstonJ:</div>
<blockquote>
<p>I also enjoyed the chapter and details regarding Phoenix, and I agree with <a class="mention" href="/u/peerreynders" rel="nofollow">@peerreynders</a> that it may actually be beneficial to read this book before Programming Phoenix</p>
</blockquote>
</aside>
<p>Thanks for reiterating this point; I’m going to follow suit. <img src="https://forum.elixirforum.com/images/emoji/apple/spades.png?v=15" title=":spades:" class="emoji" alt=":spades:" loading="lazy" width="20" height="20"> <img src="https://forum.elixirforum.com/images/emoji/apple/diamonds.png?v=15" title=":diamonds:" class="emoji" alt=":diamonds:" loading="lazy" width="20" height="20"> <img src="https://forum.elixirforum.com/images/emoji/apple/clubs.png?v=15" title=":clubs:" class="emoji" alt=":clubs:" loading="lazy" width="20" height="20"> <img src="https://forum.elixirforum.com/images/emoji/apple/purple_heart.png?v=15" title=":purple_heart:" class="emoji" alt=":purple_heart:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="140130" data-batch-url="/posts/batch_likers">
                        2
                      </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/programming-ecto-pragprog/13287/42">Post #41</a>
	                </div>
	            </div>
              <div id="likers-container-140130" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="140130"
                     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 #41"></div>
  </section>
</div>
    <div class="postbit" id="140137" data-post-id="140137">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Nice one <a class="mention" href="/u/ted" rel="nofollow">@Ted</a>! Let us know how you get on <img src="https://forum.elixirforum.com/uploads/default/original/2X/6/6c3193d1dd46244da3c8c6f719c9f5e2abdd5ae8.gif?v=15" title=":003:" class="emoji emoji-custom" alt=":003:" loading="lazy" width="20" height="20"></p>
<p>You have selected great books so you can’t go wrong no matter which order you may end up reading them <img src="https://forum.elixirforum.com/uploads/default/original/2X/a/a1c41c89c299189a3f85edfeb4973563d8bac781.gif?v=15" title=":023:" class="emoji emoji-custom" alt=":023:" loading="lazy" width="20" height="20"></p>
<p><em>I started a related thread <a href="https://forum.elixirforum.com/t/what-is-your-recommended-order-of-reading-elixir-books-in-2019/24695" rel="nofollow">here</a> so as to not go off-topic in this thread <img src="https://forum.elixirforum.com/images/emoji/apple/smiley.png?v=15" title=":smiley:" class="emoji" alt=":smiley:" loading="lazy" width="20" height="20"></em></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="140137" 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/programming-ecto-pragprog/13287/44">Post #43</a>
	                </div>
	            </div>
              <div id="likers-container-140137" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="140137"
                     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 #43"></div>
  </section>
</div>
    <div class="postbit" id="140621" data-post-id="140621">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I started reading the book and I agree with <a class="mention" href="/u/astonj" rel="nofollow">@AstonJ</a> the book is very easy to follow <img src="https://forum.elixirforum.com/images/emoji/apple/point_up.png?v=15" title=":point_up:" class="emoji" alt=":point_up:" loading="lazy" width="20" height="20"> (I am far from being a DB expert) knowing how important Ecto in the elixir ecosystem reading it is a no brainer for anyone learning elixir or phoenix</p>
<p>This is my favorite elixir book so far <img src="https://forum.elixirforum.com/images/emoji/apple/heart.png?v=15" title=":heart:" class="emoji" alt=":heart:" loading="lazy" width="20" height="20"></p>
<p>Thank you to the authors <a class="mention" href="/u/darinwilson" rel="nofollow">@darinwilson</a> <a class="mention" href="/u/ericmj" rel="nofollow">@ericmj</a> and to everyone involved in this project!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="140621" data-batch-url="/posts/batch_likers">
                        4
                      </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/programming-ecto-pragprog/13287/45">Post #44</a>
	                </div>
	            </div>
              <div id="likers-container-140621" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="140621"
                     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 #44"></div>
  </section>
</div>
    <div class="postbit" id="140650" data-post-id="140650">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>This is my next 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="140650" data-batch-url="/posts/batch_likers">
                        2
                      </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/programming-ecto-pragprog/13287/46">Post #45</a>
	                </div>
	            </div>
              <div id="likers-container-140650" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="140650"
                     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 #45"></div>
  </section>
</div>
    <div class="postbit" id="151552" data-post-id="151552">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="neuone" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  neuone
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Just wanted to stated that I enjoyed this book a lot. <img src="https://forum.elixirforum.com/images/emoji/apple/grinning.png?v=15" title=":grinning:" class="emoji" alt=":grinning:" loading="lazy" width="20" height="20"><br>
Thank you <a class="mention" href="/u/ericmj" rel="nofollow">@ericmj</a> and <a class="mention" href="/u/darinwilson" rel="nofollow">@darinwilson</a> for putting this together.</p>
<p><strong>Favourite aspects of the book.</strong></p>
<p>• I liked that  <strong>Part I - Ecto Fundamentals</strong>  encourages the reader to test and play with all the key features of <code>Ecto</code>. It made the book easy to jump into and kept me focused on first playing and testing things out. The ability to “play” is a key feature for learning.</p>
<p>• A lot of knowledge about <code>Querying</code>, <code>Changesets</code>, <code>Schemas</code> before even dealing with migrations. Thinking about structure, tables, columns and table joins later on in the book was a good move.</p>
<p>• Appreciate the ability to always reset the test data in the demo app.</p>
<p>• <strong>Part II - Optimizing IEx for Ecto</strong>. I had no clue you can do that. Huge time saving tip for customizing IEx.</p>
<p>• Embedded schemas. Did not realize some of the things you can do with embedded schemas.</p>
<p>• Performing upserts with <code>:on_conflict chapter</code>. This now makes a lot of sense.</p>
<p>Whether your a beginner or an expert in Elixir this book is easy and fun to go through. I have already started refactoring some code on a current project with the new knowledge I have on Ecto.</p>
<p>Highly recommend the book.  <img src="https://forum.elixirforum.com/images/emoji/apple/+1.png?v=15" title=":+1:" class="emoji" alt=":+1:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="151552" data-batch-url="/posts/batch_likers">
                        5
                      </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/programming-ecto-pragprog/13287/47">Post #46</a>
	                </div>
	            </div>
              <div id="likers-container-151552" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="151552"
                     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 #46"></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/13287/load_more?page=5">Load more posts (10 remaining)</a>
</div></template></turbo-stream>