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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="redrapids">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/redrapids/48/4931_2.png" class="avatar"> redrapids:</div>
<blockquote>
<p>Groxio is building a series targeted to beginner and intermediate Elixir developers at <a href="http://grox.io/series/quad" class="inline-onebox" rel="noopener nofollow ugc">Quadblock- Elixir/LiveView videos</a>. </p>
</blockquote>
</aside>
<p>The link of “[Project repo, branch by branch, base]” at the bottom of this page is <a href="https://grox.io/series/github.com/groxio-learning/tetris-video" rel="noopener nofollow ugc">https://grox.io/series/github.com/groxio-learning/tetris-video</a> but should be <a href="https://github.com/groxio-learning/tetris-video" class="inline-onebox" rel="noopener nofollow ugc">GitHub - groxio-learning/tetris-video: Tetris implementation for Youtube video series · GitHub</a>.</p>
<p>But there is also <a href="https://github.com/groxio-learning/tetris" rel="noopener nofollow ugc">https://github.com/groxio-learning/tetris</a> and <a href="https://github.com/groxio-learning/tetris-ui" class="inline-onebox" rel="noopener nofollow ugc">GitHub - groxio-learning/tetris-ui: User interface for Tetris user interface series · GitHub</a>… Should any show the final “product”? I would like to see what we build first.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="159233" 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/has-anyone-seen-building-tetris-on-elixir-liveview/27997/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-159233" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="159233"
                     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 #11"></div>
  </section>
</div>
    <div class="postbit" id="159347" data-post-id="159347">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="redrapids" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/redrapids/120/4931_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  redrapids
                    <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 class="user-title">
									<span>Author of Adopting Elixir</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Good feedback. Sorry you didn’t find what you were looking for.</p>
<p>Quick question. Did the free videos in the series and the name of the problem give you a hint of what was coming? I hope you don’t feel mislead!</p>
<p>My intention (as a mentor teaching this problem and as a business selling it) is for programmers to bet better by seeing others wrestle with a problem real time, and to show what’s possible.</p>
<p>What you are looking for is definitely in plan for me this year. Later this year, I’ll be releasing the LiveView pragprog book and some companion content that will cover diff comparisons and techniques, the different ui hooks including possibly javascript, forms, components and more.</p>
<p>I am pretty sure it won’t be for ten bucks though <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"> We are wrestling whether to make it available to all annual Groxio subscribers, and making the annual subscription more comprehensive.</p>
<p>In any case, thanks for the feedback!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="159347" 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/has-anyone-seen-building-tetris-on-elixir-liveview/27997/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-159347" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="159347"
                     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 #12"></div>
  </section>
</div>
    <div class="postbit" id="159348" data-post-id="159348">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="redrapids" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/redrapids/120/4931_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  redrapids
                    <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 class="user-title">
									<span>Author of Adopting Elixir</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thanks! I’ll catch that up.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="159348" 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/has-anyone-seen-building-tetris-on-elixir-liveview/27997/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-159348" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="159348"
                     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 #13"></div>
  </section>
</div>
    <div class="postbit" id="159779" data-post-id="159779">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thanks for taking the time to answer..<br>
Indeed I first watched the first 7 free videos.. And since they explained how to deal with the “domain” part (the Tetris game related stuff) I thought that the remaining paid 14 videos will be related to Phoenix and LiveView.. But besides some very little parts (if I don’t have a crappy sense of the time and to do estimation I would say maybe 10 minutes accumulated) where everything is set, those episodes still dealt with Tetris.<br>
It was for sure interesting, but not really related to LiveView imho.</p>
<p>Well, they indeed used LiveView but I can’t call this course a course on LiveView. Anyway, I’m impatient to see more materials from Groxio.. Particularly related to Elixir/Erlang/OTP</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="159779" 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/has-anyone-seen-building-tetris-on-elixir-liveview/27997/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-159779" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="159779"
                     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 #14"></div>
  </section>
</div>
    <div class="postbit" id="159839" data-post-id="159839">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="redrapids" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/redrapids/120/4931_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  redrapids
                    <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 class="user-title">
									<span>Author of Adopting Elixir</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thanks for the insight.</p>
<p>I would like to offer a counter perspective.  I could have built an app in LiveView that built all of this code, or most of it, into the view. Some of the examples are built in this way. Doing so would have given the appearance of being a video about LiveView. That approach would have been misguided.</p>
<p>Coding a nontrivial LiveView or OTP will be like what I presented most of the time. If you build something nontrivial, the hard part won’t be the LiveView. It will be the pure core of what your building.</p>
<p>Layering your code into pure elixir for consumption in LiveView IS the problem. It’s the separation of boundary and pure code, the use of reducers, and the like that separate a good codebase from a poor one.</p>
<p>It’s very much like designing elixir systems for OTP. It’s not a book about OTP. It’s a book about building things that uses OTP, and it should be.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="159839" 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/has-anyone-seen-building-tetris-on-elixir-liveview/27997/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-159839" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="159839"
                     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 #15"></div>
  </section>
</div>
    <div class="postbit" id="159843" data-post-id="159843">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="Sanjibukai" data-post="15" data-topic="27997">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/s/ecd19e/48.png" class="avatar"> Sanjibukai:</div>
<blockquote>
<p>And since they explained how to deal with the “domain” part (the Tetris game related stuff) I thought that the remaining paid 14 videos will be related to Phoenix and LiveView</p>
</blockquote>
</aside>
<p>Had the same impression, but it is definitely a good thing how little work was required to make it render with live-view.</p>
<aside class="quote no-group" data-username="redrapids" data-post="16" data-topic="27997">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/redrapids/48/4931_2.png" class="avatar"> redrapids:</div>
<blockquote>
<p>I would like to offer a counter perspective. I could have built an app in LiveView that built all of this code, or most of it, into the view. Some of the examples are built in this way. Doing so would have given the appearance of being a video about LiveView. That approach would have been misguided.</p>
</blockquote>
</aside>
<p><a class="mention" href="/u/redrapids" rel="nofollow">@redrapids</a> you not only show the “pragmatic” way of building Tetris with elixir and LiveView, but you also give a small window on your “thought process” while designing the game’s API. It is not a “perfect” tutorial… mistakes, retries, decision changes are abundant <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="159843" 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/has-anyone-seen-building-tetris-on-elixir-liveview/27997/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-159843" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="159843"
                     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 #16"></div>
  </section>
</div>
    <div class="postbit" id="159844" data-post-id="159844">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="redrapids" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/redrapids/120/4931_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  redrapids
                    <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 class="user-title">
									<span>Author of Adopting Elixir</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Yep. It’s like a pairing session with me. Many coding videos start with a completed solution in mind. This one started with a blank canvas. There are up sides and down sides. The up side is that you get to see the decisions I made, as I made them. the down side is that you only get to see a single problem context, and you have to suffer through the mistakes I made right along with me!</p>
<p>Thanks for your comments.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="159844" 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/has-anyone-seen-building-tetris-on-elixir-liveview/27997/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-159844" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="159844"
                     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 #17"></div>
  </section>
</div>
    <div class="postbit" id="159848" data-post-id="159848">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="redrapids" data-post="18" data-topic="27997">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/redrapids/48/4931_2.png" class="avatar"> redrapids:</div>
<blockquote>
<p>It’s like a pairing session with me.</p>
</blockquote>
</aside>
<p>Wait!<br>
Indeed I didn’t even talk about that part.. But the format of the course itself is indeed <strong>great</strong> and even more than I expected!<br>
That process of building from scratch is by far the best way to show things imho, since as you said it’s almost as a pair programming session.. And it enforces the reader to almost think at the same time than the instructor which is way more involving than simply monkey typing already written stuff.</p>
<p>And this format remind me the course from <a href="https://codestool.coding-gnome.com/courses/elixir-for-programmers" rel="noopener nofollow ugc">Dave Thomas (Elixir for Programmers)</a>, so definitely a great thing!</p>
<p>As I said (at least I believe I said) in my first feedback, overall I was not unhappy with the course..<br>
Since LiveView is relatively new I just expected more material on that specific topic (like what Chris described in his talk)</p>
<aside class="quote no-group" data-username="redrapids" data-post="16" data-topic="27997">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/redrapids/48/4931_2.png" class="avatar"> redrapids:</div>
<blockquote>
<p>Layering your code into pure elixir for consumption in LiveView IS the problem. It’s the separation of boundary and pure code, the use of reducers, and the like that separate a good codebase from a poor one.</p>
</blockquote>
</aside>
<p>To be honest this kind of concern <strong>is</strong> where we as developer need to bring solution.. The rest is indeed the job of the framework. So I couldn’t agree more with this. And again, all the process around the domain part was indeed very valuable (more than some reference-like description of LiveView.. So in a sense, a course without that separation of concerne with more LiveView related stuff would be indeed less valuable)</p>
<aside class="quote no-group" data-username="chouzar" data-post="17" data-topic="27997">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/chouzar/48/36037_2.png" class="avatar"> chouzar:</div>
<blockquote>
<p>Had the same impression, but it is definitely a good thing how little work was required to make it render with live-view.</p>
</blockquote>
</aside>
<p>Indeed, this is why I said above that maybe there is no need to talk more about LiveView.. I just learnt more about LiveView in Chris talk than here, this is just what I wanted to say.. Not that the course doesn’t worth the money.. Quite the opposite regarding the very accessible $10.</p>
<p>Anyway, I love Elixir and all the ecosystem and i’m just hungry for more valuable resources!<br>
Thank you all btw..</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="159848" 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/has-anyone-seen-building-tetris-on-elixir-liveview/27997/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-159848" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="159848"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-last-post cat-last-post" title="Last post!"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <span class="all-loaded">— All posts loaded —</span>
</div></template></turbo-stream>