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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Just learning and thinking how to apply.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="23082" 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/what-elixir-related-stuff-are-you-doing/113/146">Post #145</a>
	                </div>
	            </div>
              <div id="likers-container-23082" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="23082"
                     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 #145"></div>
  </section>
</div>
    <div class="postbit" id="23093" data-post-id="23093">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><a class="mention" href="/u/hlx" rel="nofollow">@hlx</a> &amp; <a class="mention" href="/u/swelham" rel="nofollow">@swelham</a> You guys mind sharing links if your works are open source?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="23093" 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/what-elixir-related-stuff-are-you-doing/113/147">Post #146</a>
	                </div>
	            </div>
              <div id="likers-container-23093" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="23093"
                     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 #146"></div>
  </section>
</div>
    <div class="postbit" id="23101" data-post-id="23101">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I don’t have a lot of (any) extra time right now, so I’ve just been going slowly through some of the online resources for the language on <a href="http://elixir-lang.org" rel="nofollow">elixir-lang.org</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="23101" 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/what-elixir-related-stuff-are-you-doing/113/148">Post #147</a>
	                </div>
	            </div>
              <div id="likers-container-23101" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="23101"
                     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 #147"></div>
  </section>
</div>
    <div class="postbit" id="23104" data-post-id="23104">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Yeah sure the payment library is called <a href="https://github.com/swelham/cashier" rel="noopener nofollow ugc">cashier</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="23104" 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/what-elixir-related-stuff-are-you-doing/113/149">Post #148</a>
	                </div>
	            </div>
              <div id="likers-container-23104" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="23104"
                     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 #148"></div>
  </section>
</div>
    <div class="postbit" id="23131" data-post-id="23131">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Currently rewriting one project from Laravel PHP to Phoenix Elixir &lt;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="23131" 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/what-elixir-related-stuff-are-you-doing/113/150">Post #149</a>
	                </div>
	            </div>
              <div id="likers-container-23131" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="23131"
                     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 #149"></div>
  </section>
</div>
    <div class="postbit" id="23679" data-post-id="23679">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Still very much in learning mode but started using Elixir for text mining. At some point I want to get very familiar with Nerves Project to use on my stash of SBC’s (RPi’s, BBB, ChiP and probably a few I have forgotten about) so I can bring extra nodes on-line for additional processing power as required.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="23679" 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/what-elixir-related-stuff-are-you-doing/113/151">Post #150</a>
	                </div>
	            </div>
              <div id="likers-container-23679" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="23679"
                     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 #150"></div>
  </section>
</div>
    <div class="postbit" id="24325" data-post-id="24325">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Some updates on my crawling system in Elixir now that I’m at the 90 day mark of production. (<em>see <a href="https://forum.elixirforum.com/t/what-elixir-related-stuff-are-you-doing/113/115" class="inline-onebox" rel="nofollow">What Elixir related stuff are you doing? - #115 by adammokan</a> for context</em>)</p>
<ul>
<li>The “clocking” mechanism I put in place has had no issues so far. It has actually helped a lot in troubleshooting the live system since I can adjust the clock rate at runtime. This allows me to really watch state changes without stopping the system entirely as well as being able to pause the system in its tracks and inspect a specific process - I think it turned out real well with the way I am handling the processes this way, at least for my use-case where I have a lot of post-processing after scraping and around 40 or so state changes per job.</li>
<li>I now have 12 distributed nodes running in production and will likely scale out to about 20 by April or May.</li>
<li>My current numbers as of right now are 20,554,562 crawls with 23,754 data errors - “data errors” represent something that went wrong during the entire crawl/post-processing cycle but does not represent data loss or anything like that. These 23k items still sent a response - just one that was less than ideal. At the end of the day its well under our SLA.</li>
<li>I don’t have hard numbers here, but I think I’ve only had two legitimate “crashes”. One was due to some poor logging I put in a portion of code that caused my message queue to get too large. I paused my system but got impatient and just killed it rather than wait for the logging message queue to burn down. The other time I added some new state transitions, managed to misspell them, and forgot to add a default fall through <code>handle_info</code> for a scenario without a match. Both of these situations were human error on my part and they happened in the middle of the day when I was working on the system - that is better than 4am on a Sunday.</li>
</ul>
<p>I’ll never really be done with this system as it will continue to grow, but I’m at the point where I sleep at night not worrying about this portion of my tech stack at all. I think that is a plus. I still deal with issues on our old crawlers, but as I migrate them each over to Elixir, life is getting easier for sure.</p>
<p>At the end of the day, my goal was to get to the point where I had stability and resiliency in a world that is tough to achieve this (crawling/scraping). I think I’m moving in the right direction.</p>
<p>Financially, the Elixir system has cut costs for this particular type of crawl job compared to our legacy system in regards to the amount hardware used and throughput achieved. Aside from this the data quality has improved quite a bit. Elixir isn’t the real hero on the data quality, but it allowed me to write a lot more code around data validation in many less lines than another language due to things like pattern matching. (I was lazy and writing crappy code before <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>Hopefully this inspires someone to give it a go if you find yourself maintaining a legacy system with a lot of moving parts like myself. Not saying Elixir will be a life saver for you, but in my case its been a positive one.</p>
<p>Start small and experiment is my advice.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="24325" data-batch-url="/posts/batch_likers">
                        11
                      </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/what-elixir-related-stuff-are-you-doing/113/152">Post #151</a>
	                </div>
	            </div>
              <div id="likers-container-24325" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="24325"
                     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 #151"></div>
  </section>
</div>
    <div class="postbit" id="24401" data-post-id="24401">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Right now I’m thinking about small-but-real-world projects to play around with.</p>
<p>I (still) don’t have a lot of time, so getting my hands dirty seems like the best use of the time I do have…</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="24401" 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/what-elixir-related-stuff-are-you-doing/113/153">Post #152</a>
	                </div>
	            </div>
              <div id="likers-container-24401" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="24401"
                     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 #152"></div>
  </section>
</div>
    <div class="postbit" id="24539" data-post-id="24539">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>This week I have been</p>
<ul>
<li>Watching videos from Elixir Conf 2016</li>
<li>Bought the Programming Phoenix</li>
<li>Trying to promote Elixir/Phoenix to friends (unsuccessful so far)</li>
<li>Starting to write a new app using Phoenix while learning it</li>
</ul> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="24539" 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/what-elixir-related-stuff-are-you-doing/113/154">Post #153</a>
	                </div>
	            </div>
              <div id="likers-container-24539" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="24539"
                     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 #153"></div>
  </section>
</div>
    <div class="postbit" id="24565" data-post-id="24565">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="grych" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/grych/120/5610_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  grych
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Drab</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Just released version 0.2.5 of <a href="https://tg.pl/drab" rel="noopener nofollow ugc">Drab</a> - the Phoenix extension to access the browser directly from Elixir and eliminate JS/Ajax.</p>
<p>Since I wrote to the forum the last time (v 0.1.0) many exctiting changes has been made:</p>
<ul>
<li>modularity: based on popular React fans request (<a class="mention" href="/u/vic" rel="nofollow">@vic</a>) now you can choose which Drab modules you want to use, so you are not fixed to jquery anymore</li>
<li>new Query functions, like cycling (<code>update(:text, set: ["One", "Two", "Three"], on: "#thebutton")</code>) - <a class="mention" href="/u/eiji" rel="nofollow">@Eiji</a></li>
<li>more callbacks, like <code>onconnect</code> or <code>ondisconnect</code></li>
<li>own Store (similar to Plug Session, key/value store available in your functions)</li>
<li>access to Plug Session values (read-only, we don’t want to mess with Phoenix core)</li>
</ul> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="24565" data-batch-url="/posts/batch_likers">
                        7
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/what-elixir-related-stuff-are-you-doing/113/155">Post #154</a>
	                </div>
	            </div>
              <div id="likers-container-24565" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="24565"
                     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 #154"></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/113/load_more?page=16">Load more posts (765 remaining)</a>
</div></template></turbo-stream>