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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I think either could serve your needs.  I enjoy the Pragmatic Studio because I like the silliness between Mike and Nicole as work their way along.  Dave Thomas is very smart, but since he’s by himself he’s not quite as entertaining.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="76094" 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/developing-with-elixir-pragmatic-studio/4429/22">Post #21</a>
	                </div>
	            </div>
              <div id="likers-container-76094" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="76094"
                     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 #21"></div>
  </section>
</div>
    <div class="postbit" id="87025" data-post-id="87025">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’m following the same course. At one point when they’re reading the <code>about.html</code> file, they typed the path as “<code>../../page/about.html</code>”, because the handler.ex file lives 2 levels down than the root.<br>
Here is the screenshot.<br>
</p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/8/86ea80c74636ef834f186f830b6dd5fd5941aedc.png" data-download-href="https://forum.elixirforum.com/uploads/default/86ea80c74636ef834f186f830b6dd5fd5941aedc" title="elixir" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/2X/8/86ea80c74636ef834f186f830b6dd5fd5941aedc.png" alt="elixir" data-base62-sha1="jfwoTjLaaZkVxnP3rQwXExOcsKE" width="662" height="451"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">elixir</span><span class="informations">662×451 130 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<p>When I did the same, it gave me :enoent (file not found), but when I typed the path as “pages/about.html”, it worked.<br>
Is there anything changed in BEAM that it now handles files paths differently? (or what they did differently?)</p>
<p>Here is the function:</p>
<pre><code>  def route(%{method: "GET", path: "/about"} = conv) do
    case File.read("pages/about.html") do
      {:ok, content} -&gt;
        %{conv | status: 200, resp_body: content}

      {:error, :enoent} -&gt;
        %{conv | status: 404, resp_body: "File not found!"}

      {:error, reason} -&gt;
        %{conv | status: 500, resp_body: "File error: #{reason}"}
    end
  end
</code></pre>
<p>And here is the files and folders structure:</p>
<pre><code>.
├── config
│   └── config.exs
├── lib
│   ├── servy
│   │   └── handler.ex
│   └── servy.ex
├── mix.exs
├── pages
│   └── about.html
├── README.md
└── test
    ├── servy_test.exs
    └── test_helper.exs
</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="87025" 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/developing-with-elixir-pragmatic-studio/4429/23">Post #22</a>
	                </div>
	            </div>
              <div id="likers-container-87025" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="87025"
                     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 #22"></div>
  </section>
</div>
    <div class="postbit" id="87056" data-post-id="87056">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Elixir has a concept of the current working directory that relative paths are resolved against.  Perhaps Mike an Nicole we’re running the application from a different path than you were.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="87056" 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/developing-with-elixir-pragmatic-studio/4429/24">Post #23</a>
	                </div>
	            </div>
              <div id="likers-container-87056" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="87056"
                     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 #23"></div>
  </section>
</div>
    <div class="postbit" id="87067" data-post-id="87067">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I first tried the way they taught and it gave me an error with the reason <code>:enoent</code> then I removed the <code>../../</code> part from it, and it worked.<br>
Now I don’t know, why it worked this ( <code>case File.read("pages/about.html") do</code> )<br>
way, because if you look at the directory structure, it should work the way Nicole and Mike taught ( <code>case File.read("../../pages/about.html") do</code> ).</p>
<p><strong>Edit:</strong> The only difference in our setups is that they’re running the script inside Sublime, and I have <code>coderunner</code> extension installed in VSCode, which does the job.</p>
<p><strong>Edit2:</strong></p>
<aside class="quote no-group" data-username="easco" data-post="24" data-topic="4429">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/easco/48/1250_2.png" class="avatar"> easco:</div>
<blockquote>
<p>Elixir has a concept of the current working directory that relative paths are resolved against.</p>
</blockquote>
</aside>
<p>I even ran it from the terminal, being in the root of the project I ran <code>elixir lib/servy/handler.ex</code>, still it worked without <code>../../</code></p>
<p>Thank you for the reply!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="87067" 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/developing-with-elixir-pragmatic-studio/4429/25">Post #24</a>
	                </div>
	            </div>
              <div id="likers-container-87067" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="87067"
                     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 #24"></div>
  </section>
</div>
    <div class="postbit" id="87068" data-post-id="87068">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I don’t use Sublime for Elixir development, but looks like Sublime takes the current directory from the file being run, and VSCode takes the project’s root as the current directory. Simple!<br>
And that’s what <a class="mention" href="/u/easco" rel="nofollow">@easco</a> also said.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="87068" 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/developing-with-elixir-pragmatic-studio/4429/26">Post #25</a>
	                </div>
	            </div>
              <div id="likers-container-87068" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="87068"
                     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 #25"></div>
  </section>
</div>
    <div class="postbit" id="87070" data-post-id="87070">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I watched that video further and they explained the same in the video. Thank you <a class="mention" href="/u/devotiongeo" rel="nofollow">@DevotionGeo</a> and <a class="mention" href="/u/easco" rel="nofollow">@easco</a>!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="87070" 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/developing-with-elixir-pragmatic-studio/4429/27">Post #26</a>
	                </div>
	            </div>
              <div id="likers-container-87070" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="87070"
                     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 #26"></div>
  </section>
</div>
    <div class="postbit" id="153825" data-post-id="153825">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Here russian guys stole the course and resale it for profit :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="153825" 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/developing-with-elixir-pragmatic-studio/4429/28">Post #27</a>
	                </div>
	            </div>
              <div id="likers-container-153825" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="153825"
                     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 #27"></div>
  </section>
</div>
    <div class="postbit" id="153826" data-post-id="153826">
  <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>You should report that directly to the Pragmatic Studio:</p>
<aside class="onebox allowlistedgeneric" data-onebox-src="https://pragmaticstudio.com">
  <header class="source">
      <img src="https://pragmaticstudio.com/favicon-32x32.png" class="site-icon" alt="" width="32" height="32">

      <a href="https://pragmaticstudio.com" target="_blank" rel="noopener nofollow">pragmaticstudio.com</a>
  </header>

  <article class="onebox-body">
    <div class="aspect-image" style="--aspect-ratio:690/359;"><img src="https://pragmaticstudio.com/open-graph-image.jpg" class="thumbnail" alt="" width="690" height="359"></div>

<h3><a href="https://pragmaticstudio.com" target="_blank" rel="noopener nofollow">The Pragmatic Studio</a></h3>

  <p>Premium video courses for software developers. Real apps. Real code. Really good stuff!</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="153826" 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/developing-with-elixir-pragmatic-studio/4429/29">Post #28</a>
	                </div>
	            </div>
              <div id="likers-container-153826" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="153826"
                     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 #28"></div>
  </section>
</div>
    <div class="postbit" id="183122" data-post-id="183122">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I just finished the course and it is great. They did an amazing job explaining most of what you would want to know.<br>
I hope they do more courses on Elixir and Phoenix. I started the one on Bingo game development and it looks interesting.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="183122" 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/developing-with-elixir-pragmatic-studio/4429/30">Post #29</a>
	                </div>
	            </div>
              <div id="likers-container-183122" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="183122"
                     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 #29"></div>
  </section>
</div>
    <div class="postbit" id="203045" data-post-id="203045">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Anybody know which versions of Elixir/Phoenix the Pragmatic Studio courses support, specifically <code>Elixir &amp; OTP</code> and <code>Full-Stack GraphQLwith Absinthe, Phoenix, and React</code>  ?</p>
<p><code>Multi-Player Game with Elixir, Phoenix, Vue &amp; Elm</code> uses Phoenix 1.4 which is slightly outdated as 1.6 is on its way out (and a few important features came out in 1.5)</p>
<p>If the courses use outdated versions, did anyone encounter any difficulties?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="203045" 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/developing-with-elixir-pragmatic-studio/4429/31">Post #30</a>
	                </div>
	            </div>
              <div id="likers-container-203045" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="203045"
                     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 #30"></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/4429/load_more?page=4">Load more posts (2 remaining)</a>
</div></template></turbo-stream>