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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>please please don’t make it 2.0 yet! I’m still in the learning phase with the language itself! too overwhelming! <img src="https://forum.elixirforum.com/images/emoji/apple/scream_cat.png?v=15" title=":scream_cat:" class="emoji" alt=":scream_cat:" 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="300277" 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/elixir-blog-posts/150/983">Post #982</a>
	                </div>
	            </div>
              <div id="likers-container-300277" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="300277"
                     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 #982"></div>
  </section>
</div>
    <div class="postbit" id="300501" data-post-id="300501">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>If you need i18n or i10n in an Elixir project you’ll most likely use Gettext.</p>
<p>The provided macros and functions have their own benefits and downsides. But there is a way to combine them and get the best of both worlds.</p>
<aside class="onebox allowlistedgeneric" data-onebox-src="https://crbelaus.com/2023/09/08/combining-elixir-gettext-functions-macros">
  <header class="source">

      <a href="https://crbelaus.com/2023/09/08/combining-elixir-gettext-functions-macros" target="_blank" rel="noopener nofollow ugc">crbelaus.com</a>
  </header>

  <article class="onebox-body">
    

<h3><a href="https://crbelaus.com/2023/09/08/combining-elixir-gettext-functions-macros" target="_blank" rel="noopener nofollow ugc">Combining Elixir Gettext functions and macros | Cristian Álvarez Belaustegui</a></h3>

  <p>Use Elixir's Gettext macros and functions together to translate dynamic messages without losing the automatic sync between code and PO files.</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="300501" 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/elixir-blog-posts/150/984">Post #983</a>
	                </div>
	            </div>
              <div id="likers-container-300501" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="300501"
                     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 #983"></div>
  </section>
</div>
    <div class="postbit" id="300695" data-post-id="300695">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I was recently looking at a front-end video by FreeCodeCamp where they introduced the site <a href="https://codewars.com" rel="noopener nofollow ugc">https://codewars.com</a>.  I was surprised to see that they had some Elixir problems, but this post is not about one you can solve using Elixir on that site (at least not yet).  Instead, it is about a JavaScript problem on that site that I had difficulty translating into Elixir code.  This is because the problem (or, at the very least, the naive solution) requires in-place modification of a few variables within a loop.  If you would like to see the problem, its statement, and how I came up with a naive Elixir solution using ETS tables, feel free to check it out here: <a href="https://danieljaouendevelopment.com/2023/09/09/elixir-codewars-problem/" rel="noopener nofollow ugc">https://danieljaouendevelopment.com/2023/09/09/elixir-codewars-problem/</a></p>
<p>Thanks for reading!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="300695" 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/elixir-blog-posts/150/985">Post #984</a>
	                </div>
	            </div>
              <div id="likers-container-300695" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="300695"
                     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 #984"></div>
  </section>
</div>
    <div class="postbit" id="300679" data-post-id="300679">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>As a side note, I have been using GitHub Copilot for a few months now and am amazed at how well it knows how to extend my code.  I was typing up the solution not using ETS a moment ago, and it knew to filter out the <code>nil</code>s from my <code>Enum.with_index</code>.  Amazing!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="300679" 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/elixir-blog-posts/150/986">Post #985</a>
	                </div>
	            </div>
              <div id="likers-container-300679" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="300679"
                     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 #985"></div>
  </section>
</div>
    <div class="postbit" id="300687" data-post-id="300687">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Interesting that you consider using ETS the naive solution. I would use recursion or reduce for this type of thing.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="300687" 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/elixir-blog-posts/150/987">Post #986</a>
	                </div>
	            </div>
              <div id="likers-container-300687" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="300687"
                     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 #986"></div>
  </section>
</div>
    <div class="postbit" id="300688" data-post-id="300688">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I think ETS is a serious overcomplication. It should be possible to solve it in a go with <code>Enum.scan</code>. Nice post though!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="300688" 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/elixir-blog-posts/150/988">Post #987</a>
	                </div>
	            </div>
              <div id="likers-container-300688" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="300688"
                     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 #987"></div>
  </section>
</div>
    <div class="postbit" id="300690" data-post-id="300690">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I tried to solve it with parsing combinators in another language and I like how simple it came out to be. Sadly I’m not accustomed with NimbleParsec’s API so if anyone could post an Elixir solution with parsing combinators it would be 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="300690" 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/elixir-blog-posts/150/989">Post #988</a>
	                </div>
	            </div>
              <div id="likers-container-300690" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="300690"
                     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 #988"></div>
  </section>
</div>
    <div class="postbit" id="300691" data-post-id="300691">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Interesting post, and thanks for sharing.</p>
<p>Although, I think the normal “naive” way to do this in Elixir would be to use a function from <code>Enum</code> module, or plain recursive functions like</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">defmodule Challenge do
  def solution(string) do
    squeeze(string, [])
  end
  
  defp squeeze(&lt;&lt;&gt;&gt;, acc), do: Enum.reverse(acc)
  defp squeeze(&lt;&lt;c, rest::binary&gt;&gt;, [c | _] = acc), do: squeeze(rest, acc)
  defp squeeze(&lt;&lt;c, rest::binary&gt;&gt;, acc), do: squeeze(rest, [c | acc])
end
</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="300691" 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/elixir-blog-posts/150/990">Post #989</a>
	                </div>
	            </div>
              <div id="likers-container-300691" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="300691"
                     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 #989"></div>
  </section>
</div>
    <div class="postbit" id="300701" data-post-id="300701">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thanks to the mods for moving my post to this thread.  <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> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="300701" 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/elixir-blog-posts/150/991">Post #990</a>
	                </div>
	            </div>
              <div id="likers-container-300701" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="300701"
                     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 #990"></div>
  </section>
</div>
    <div class="postbit" id="301480" data-post-id="301480">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>NimbleOptions is a small but very powerful library that I think everyone should be aware of. It allows you to define powerful validation definitions to use with Keyword List options, and I have found it to be great!<br>
Check out my latest blog post, where I share some advanced techniques that helped me when writing EXGBoost!</p>
<aside class="onebox allowlistedgeneric" data-onebox-src="https://www.thestackcanary.com/elixir-nimble-options/">
  <header class="source">
      <img src="https://www.thestackcanary.com/content/images/size/w256h256/2022/11/stack_canary-2.png" class="site-icon" alt="" width="256" height="256">

      <a href="https://www.thestackcanary.com/elixir-nimble-options/" target="_blank" rel="noopener nofollow ugc" title="09:55PM - 17 September 2023">The Stack Canary – 17 Sep 23</a>
  </header>

  <article class="onebox-body">
    <div class="aspect-image" style="--aspect-ratio:690/344;"><img src="https://www.thestackcanary.com/content/images/2023/09/nimble_options_banner.png" class="thumbnail" alt="" width="690" height="345"></div>

<h3><a href="https://www.thestackcanary.com/elixir-nimble-options/" target="_blank" rel="noopener nofollow ugc">Leveling Up Your Elixir Option Handling</a></h3>

  <p>With the NimbleOptions library, you can define powerful and flexible argument validation schemas.</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="301480" 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/elixir-blog-posts/150/992">Post #991</a>
	                </div>
	            </div>
              <div id="likers-container-301480" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="301480"
                     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 #991"></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/150/load_more?page=94">Load more posts (291 remaining)</a>
</div></template></turbo-stream>