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


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="anandpotukuchi" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/anandpotukuchi/120/8713_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  anandpotukuchi
                    <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><a class="mention" href="/u/radar" rel="nofollow">@radar</a>  Thanks for sharing that - I’ve been there. what I believe ( and experienced) is that people learn more from interactive code challenges than a book. That’s why people find codecademy simpler than reading some book or the official docs. I personally prefer the docs but the latter is much more effective than reading or watching videos.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="73715" 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/a-free-and-open-source-online-elixir-and-phoenix-bootcamp-thoughts/13032/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-73715" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="73715"
                     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="74369" data-post-id="74369">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Learning code by challenges works very well for lots of Developers that do not like to read books or documentation, thus I agree that would be nice to have some interactive way of learning Elixir to make this language more popular and easy to adopt <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"></p>
<p>For DevOps I love this <a href="https://www.katacoda.com" rel="noopener nofollow ugc">https://www.katacoda.com</a> that really makes easy to grasp what we want to learn while having fun by doing it.</p>
<p>Why Vue and not Elm for the front-end?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="74369" 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/a-free-and-open-source-online-elixir-and-phoenix-bootcamp-thoughts/13032/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-74369" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="74369"
                     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="76037" data-post-id="76037">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="anandpotukuchi" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/anandpotukuchi/120/8713_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  anandpotukuchi
                    <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>Nice. Elm, huh? Cool idea. Wondering why it didn’t strike me.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="76037" 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/a-free-and-open-source-online-elixir-and-phoenix-bootcamp-thoughts/13032/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-76037" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="76037"
                     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="76299" data-post-id="76299">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>We’ve been playing with the idea of more interactive examples on Elixir School for a long time now but safely (and affordably) sandboxing Elixir is no easy task.  It can be done with some Docker hackery but then you’ve got the expense of spinning up <em>N</em> containers to run sandboxed code.  Out of curiosity <a class="mention" href="/u/anandpotukuchi" rel="nofollow">@anandpotukuchi</a> how much experience do you have with Elixir, Erlang, and the BEAM runtime?</p>
<p>As <a class="mention" href="/u/astonj" rel="nofollow">@AstonJ</a> mentioned <a class="mention" href="/u/anandpotukuchi" rel="nofollow">@anandpotukuchi</a> there are a number of established projects around the community that would welcome your involvement, Elixir School being just one of them.  We always welcome suggestions.  You could get started by adding examples and code challenges to existing lessons.  With thousands of weekly visitors around the world you’d certainly help a lot of people.</p>
<p>There’s been a handful of attempts at interactive Elixir environments online, it would benefit everyone if we could all collaborate collectively on a solution <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="76299" 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/a-free-and-open-source-online-elixir-and-phoenix-bootcamp-thoughts/13032/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-76299" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="76299"
                     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="76301" data-post-id="76301">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="anandpotukuchi" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/anandpotukuchi/120/8713_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  anandpotukuchi
                    <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>Cool. Good to hear that ElixirSchool"s trying that out. Will definitely look up other projects. As far as my experience goes, I’ve been using it for like 3 months now.</p>
<p>Yeah. That’s the purpose of this thread - getting people involved, getting feedback.</p>
<p>Well you didn’t seem to get the Idea - sandboxing elixir is just a part of this. I was speaking of a free and open source full stack developer bootcamp, To make a candidate job ready isthe end goal of this program.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="76301" 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/a-free-and-open-source-online-elixir-and-phoenix-bootcamp-thoughts/13032/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-76301" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="76301"
                     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="76330" data-post-id="76330">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="anandpotukuchi" data-post="16" data-topic="13032">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/anandpotukuchi/48/8713_2.png" class="avatar"> anandpotukuchi:</div>
<blockquote>
<p>Well you didn’t seem to get the Idea</p>
</blockquote>
</aside>
<p>Apologizes <a class="mention" href="/u/anandpotukuchi" rel="nofollow">@anandpotukuchi</a> but I don’t think I missed the idea.  In addition to writing Elixir School I’ve partnered up with a few other sites to write the Elixir side of their full stack lessons.  You may want to take a peek at <a href="https://www.learnphoenix.io" rel="noopener nofollow ugc">https://www.learnphoenix.io</a>.  While paid they do provide free courses on Phoenix + React.</p>
<p>I’d encourage you to reach out to Sam @ <a href="http://learnphoenix.io" rel="noopener nofollow ugc">learnphoenix.io</a>.  I helped write a number of their Elixir lessons, he’s a super nice guy, and I’m sure he’d be happy to share some of the insights he’s learned in the last two years running Learn Phoenix <img src="https://forum.elixirforum.com/images/emoji/apple/grin.png?v=15" title=":grin:" class="emoji" alt=":grin:" loading="lazy" width="20" height="20"></p>
<aside class="quote no-group" data-username="anandpotukuchi" data-post="16" data-topic="13032">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/anandpotukuchi/48/8713_2.png" class="avatar"> anandpotukuchi:</div>
<blockquote>
<p>sandboxing elixir is just a part of this.</p>
</blockquote>
</aside>
<p>If you want true interactivity then you may be underestimating the role sandboxing would play in this.  There’s good reason why there aren’t existing solutions whereas there are numerous ones for Node, Ruby, and even Java.  The nature of the runtime presents some unique challenges due to some super cool features like hot code reloading.</p>
<p>You can demonstrate the need for a sandbox pretty easily with a simple Plug.Router example. We’ll accept a <code>POST</code> and evaluate a string in the JSON payload:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">defmodule SandboxEx do
  use Plug.Router

  plug :match
  plug Plug.Parsers, parsers: [:urlencoded, :json], pass:  ["text/*"], json_decoder: Poison
  plug :dispatch

  post "/result" do
    result =
      conn.params
      |&gt; Map.get("code")
      |&gt; Code.eval_string()

    send_resp(conn, 200, inspect(result))
  end

  match _ do
    send_resp(conn, 404, "Not Found")
  end
end
</code></pre>
<p>Submit a request that creates a new module like this:</p>
<pre data-code-wrap="json"><code class="lang-json">{"code": "defmodule NoSandbox do
  def hello, do: \"Hello World!\"
end"
}
</code></pre>
<p>Now from a second computer, browser, or device fire off a new request but this time let’s try to use the module from the last request:</p>
<pre data-code-wrap="json"><code class="lang-json">{"code": "NoSandbox.hello()"}
</code></pre>
<p>Our HTTP response:  <code>{"Hello World!", []}</code></p>
<p>The code from our first request was evaluated and is now part of the runtime, available to all subsequent requests.  Without sandboxing you run into the potential for redefinition of user submitted code or worse a malicious user has a field day.  That’s a pretty simple example but it highlights why this is so difficult.</p>
<p>Over at Elixir School we’re rolling out a blog in the next week or two and with it a series that’ll cover planning, designing, and building full fledged applications in Elixir albeit it without the frontend components and requiring the user compile code locally.  Feel free to jump into any of the existing conversations taking place over there, we always welcome new thoughts <img src="https://forum.elixirforum.com/images/emoji/apple/grin.png?v=15" title=":grin:" class="emoji" alt=":grin:" 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="76330" 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/a-free-and-open-source-online-elixir-and-phoenix-bootcamp-thoughts/13032/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-76330" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="76330"
                     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="76612" data-post-id="76612">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="doomspork" data-post="15" data-topic="13032">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/doomspork/48/2012_2.png" class="avatar"> doomspork:</div>
<blockquote>
<p>It can be done with some Docker hackery but then you’ve got the expense of spinning up N containers to run sandboxed code.</p>
</blockquote>
</aside>
<p>This  is not expensive at all from the a wall clock time point of view, may be time <code>£$€</code> consuming if you have thousands of users trying to run them at same time <img src="https://forum.elixirforum.com/images/emoji/apple/wink.png?v=15" title=":wink:" class="emoji" alt=":wink:" 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="76612" 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/a-free-and-open-source-online-elixir-and-phoenix-bootcamp-thoughts/13032/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-76612" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="76612"
                     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="107886" data-post-id="107886">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I would definitely be interested in something like freecodecamp for elixir.</p>
<p>I completed about 1/2 of the curriculum and loved the format.  However I really don’t enjoy the working with the JS stack.</p>
<p>I’ve only recently started learning Elixir, through books and currently going through some online courses. If there was a “freeexlixircamp” it would be very awesome.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="107886" 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/a-free-and-open-source-online-elixir-and-phoenix-bootcamp-thoughts/13032/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-107886" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="107886"
                     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 #18"></div>
  </section>
</div>
    <div class="postbit" id="107901" data-post-id="107901">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="anandpotukuchi" data-post="4" data-topic="13032">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/anandpotukuchi/48/8713_2.png" class="avatar"> anandpotukuchi:</div>
<blockquote>
<p>I want to build a thing that has challenges and really gets the concept rooted in in the learner’s mind and make them industry-ready.</p>
</blockquote>
</aside>
<p>Sounds like Excercism to me, they have a whole elixir section.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="107901" 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/a-free-and-open-source-online-elixir-and-phoenix-bootcamp-thoughts/13032/20">Post #19</a>
	                </div>
	            </div>
              <div id="likers-container-107901" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="107901"
                     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>