蠎周刊 - ElixirWeeklyhttps://weekly.pychina.org/2019-05-09T19:42:00+08:00Elixir Weekly #1482019-05-09T19:42:00+08:002019-05-09T17:46:27+08:00Pythoneermtag:weekly.pychina.org,2019-05-09:/elixirweekly/elixirweekly-148.html<p>原文: <a href="https://elixirweekly.net/issues/148">ElixirWeekly - Elixir Community Newsletter, one email every Thursday.</a></p>
<p><img alt="elixirweekly" src="https://elixirweekly.net/images/envelope.png"></p>
<hr>
<blockquote>
<blockquote>
<p>Every Thursday: No frills, no click-through, no spam.
</p>
</blockquote>
</blockquote>
<h2>当周 不老药</h2>
<blockquote>
<p>This week in Elixir</p>
</blockquote>
<ul>
<li><a href="https://jackmarchant.com/the-problem-with-elixir-umbrella-apps/">伞形应用的问题</a></li>
</ul>
<p>Jack's makes the point that umbrella projects/apps are hard to maintain and shouldn’t be …</p><p>原文: <a href="https://elixirweekly.net/issues/148">ElixirWeekly - Elixir Community Newsletter, one email every Thursday.</a></p>
<p><img alt="elixirweekly" src="https://elixirweekly.net/images/envelope.png"></p>
<hr>
<blockquote>
<blockquote>
<p>Every Thursday: No frills, no click-through, no spam.
</p>
</blockquote>
</blockquote>
<h2>当周 不老药</h2>
<blockquote>
<p>This week in Elixir</p>
</blockquote>
<ul>
<li><a href="https://jackmarchant.com/the-problem-with-elixir-umbrella-apps/">伞形应用的问题</a></li>
</ul>
<p>Jack's makes the point that umbrella projects/apps are hard to maintain and shouldn’t be used unless you’re deploying the child apps individually.</p>
<p>(<code>是也乎:</code></p>
<p>和微服务一样, 某一架构泛滥时,总是撞到不合适的场景</p>
<p>)</p>
<ul>
<li><a href="https://shift.infinite.red/phoenix-liveview-round-up-the-story-so-far-3cbb1648e940">Phoenix LiveView Round-Up: 迄今为止的故事</a></li>
</ul>
<p>Darin wrote a blog post showing off some of the fantastic work that folks are doing with Phoenix LiveView.</p>
<ul>
<li><a href="https://medium.com/@leandrocesquini/phoenix-liveview-collection-8259f35ff2b0">Phoenix LiveView 集锦</a></li>
</ul>
<p>Another amazing collection of demos and experiments that people are building with Phoenix LiveView by Leandro.</p>
<p>(<code>是也乎:</code></p>
<p>Phoenix LiveView 杂耍</p>
<p>)</p>
<ul>
<li><a href="https://medium.com/@derek.kraan2/whats-new-in-horde-0-5-0-f5a282bc8814">Horde 0.5.0 有什么新东西 ?</a></li>
</ul>
<p>Horde 0.5.0 just got released and it’s a big one! Derek wrote about some of the highlights in this post.</p>
<ul>
<li><a href="https://10consulting.com/2019/05/03/telemetry-for-elixir-applications/">Telemetry 之于 Elixir 应用</a></li>
</ul>
<p>Learn how to produce and report on telemetry metrics for your Elixir application in this post by Ben.</p>
<ul>
<li><a href="https://medium.com/@ItizAdz/ecto-cast-ing-sugar-31bddbc62cd7">Ecto - Cast-ing Sugar</a></li>
</ul>
<p>Adam wrote a blog post introducing his library EctoMorph!</p>
<h2>📆🐍 社区</h2>
<blockquote>
<p>Even more from around the Elixir community</p>
</blockquote>
<ul>
<li>
<p><a href="https://devchat.tv/elixir-mix/emx-050-elixir-origin-story-with-jose-valim/">ElixirMix Podcast 050 - Elixir Origin Story with José Valim</a></p>
<ul>
<li>Podcast</li>
</ul>
</li>
<li>
<p><a href="https://www.youtube.com/watch?v=8mXqxBBvNdk">Evadne Wu - 有效利用 ETS</a></p>
<ul>
<li>ElixirConf EU 2019 </li>
<li>Video</li>
</ul>
</li>
<li>
<p><a href="https://www.youtube.com/watch?v=Dzi52dTOxT4">Wolfgang Loder - Elixir 的功能概念</a></p>
<ul>
<li>ElixirConf EU 2019 </li>
<li>Video</li>
</ul>
</li>
<li>
<p><a href="https://www.youtube.com/watch?v=sV5ValgY4ck&feature=youtu.be">Ju Liu 用 Scenic 现场编程生成 Escher 绘画</a></p>
<ul>
<li>ElixirConf EU 2019 </li>
<li>Video</li>
</ul>
</li>
<li>
<p><a href="https://medium.com/@adolfont/elixir-brasil-2019-and-other-elixir-news-939bf52dfea9">Elixir Brasil 2019 以及其它 Elixir 新闻</a></p>
<ul>
<li>Blog post</li>
</ul>
</li>
</ul>
<h2>好物</h2>
<blockquote>
<p>Interesting Projects, Tools and Libraries</p>
</blockquote>
<ul>
<li>
<p><a href="https://luizdamim.com/blog/tracking-changes-with-context/">追踪 Context 变化</a></p>
<ul>
<li>Blog post</li>
</ul>
</li>
<li>
<p><a href="https://medium.com/erlang-battleground/property-based-testing-erlang-elixir-de72ad24966b?source=friends_link&sk=6443f60d501b537dd18099b76b6ad7d0">对 Erlang & Elixir 基于属性的测试</a></p>
<ul>
<li>Blog post</li>
</ul>
</li>
<li>
<p><a href="http://big-elephants.com/2019-05/gun/">Gun. 强大的 Erlang HTTP 客户端t</a></p>
<ul>
<li>Blog post</li>
</ul>
</li>
</ul>
<p>(<code>是也乎:</code></p>
<p>和 golang 类似, 所有基础模块, 还在 PK 中...</p>
<div class="highlight"><pre><span></span><code><span class="w"> </span><span class="o">+----------+</span><span class="w"> </span><span class="o">+----------+</span><span class="w"> </span><span class="o">+----------+</span>
<span class="w"> </span><span class="o">|</span><span class="n">Insights</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="n">CostData</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="n">CostData</span><span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="o">+---></span><span class="w"> </span><span class="o">|</span><span class="n">Producer</span><span class="w"> </span><span class="o"><----+</span><span class="n">Producer</span><span class="w"> </span><span class="o"><----+</span><span class="n">Consumer</span><span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="n">Consumer</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">+----------+</span><span class="w"> </span><span class="o">+----------+</span><span class="w"> </span><span class="o">+----------+</span>
<span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="o">+------------+</span><span class="w"> </span><span class="o">+-----------+</span><span class="w"> </span><span class="o">+----------+</span><span class="w"> </span><span class="o">+----------+</span><span class="w"> </span><span class="o">+----------+</span>
<span class="w"> </span><span class="o">|</span><span class="n">Campaigns</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="n">Campaigns</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="n">Insights</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="n">CostData</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="n">CostData</span><span class="w"> </span><span class="o">|</span>
<span class="o">--|</span><span class="n">Producer</span><span class="w"> </span><span class="o"><-----+</span><span class="n">Consumer</span><span class="w"> </span><span class="o">+--></span><span class="w"> </span><span class="o">|</span><span class="n">Producer</span><span class="w"> </span><span class="o"><----+</span><span class="n">Producer</span><span class="w"> </span><span class="o"><----+</span><span class="n">Consumer</span><span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="n">Supervisor</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="n">Consumer</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="o">+------------+</span><span class="w"> </span><span class="o">+-----------+</span><span class="w"> </span><span class="o">+----------+</span><span class="w"> </span><span class="o">+----------+</span><span class="w"> </span><span class="o">+----------+</span>
<span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">+----------+</span><span class="w"> </span><span class="o">+----------+</span><span class="w"> </span><span class="o">+----------+</span>
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="n">Insights</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="n">CostData</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="n">CostData</span><span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="o">+---></span><span class="w"> </span><span class="o">|</span><span class="n">Producer</span><span class="w"> </span><span class="o"><----+</span><span class="n">Producer</span><span class="w"> </span><span class="o"><----+</span><span class="n">Consumer</span><span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="n">Consumer</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="o">+----------+</span><span class="w"> </span><span class="o">+----------+</span><span class="w"> </span><span class="o">+----------+</span>
</code></pre></div>
<p>)</p>
<ul>
<li>
<p><a href="https://dev.to/niku/how-to-write-bits-as-read-on-elixir-2abf">如何在 Elixir 中读写 bit 为 0001 1101</a></p>
<ul>
<li>Blog post</li>
</ul>
</li>
<li>
<p><a href="https://www.poeticoding.com/dealing-with-long-running-http-requests-and-timeouts-in-phoenix/">在 Phoenix 中处理长时间运行的 HTTP 请求和超时</a></p>
<ul>
<li>Blog post</li>
</ul>
</li>
<li>
<p><a href="https://www.botsquad.com/2019/05/06/atom-safe-elixir-parser/">Making the Elixir Parser Atom-safe</a></p>
<ul>
<li>Blog post</li>
</ul>
</li>
<li>
<p><a href="https://github.com/CrowdHailer/raxx/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22">Raxx Ecosystem 1.0 路线图</a></p>
<ul>
<li>Project update</li>
</ul>
</li>
<li>
<p><a href="https://github.com/alfredbaudisch/GodotPhoenixChannels">GDScript and Godot Client for Real-time Phoenix Framework Channels</a></p>
<ul>
<li>Project update</li>
</ul>
</li>
<li>
<p><a href="https://hex.pm/packages/interceptor">Interceptor 现在允许您访问截获的函数参数</a></p>
<ul>
<li>Project update</li>
</ul>
</li>
</ul>
<h2>Questions & Answers</h2>
<blockquote>
<p>俺能提交信息并发布到下一期周刊嘛 ?</p>
</blockquote>
<p>当然, 简单的发布到 <a href="http://elixirstatus.com/">ElixirStatus</a>
就等于落入编辑视野中.</p>
<p>(<code>是也乎:</code></p>
<p><a href="http://elixirstatus.com/">ElixirStatus</a></p>
<p>是纯 Elixir 开发的...值得拿来借鉴</p>
<p>)</p>
<blockquote>
<p>俺的邮箱地址安全嘛?</p>
</blockquote>
<p>必须的, 编辑都是好银, 难道你不是?</p>
<p>当然, 编辑是 开源Elixir社区 的活跃成员,也是 <a href="https://github.com/rrrene/credo">Credo</a> 和 <a href="http://elixirstatus.com/">ElixirStatus</a> 的维护者。
不会通过将您的数据出售给第三方来破坏我的声誉。</p>
<blockquote>
<p>那为毛要确认俺提交的邮箱地址?</p>
</blockquote>
<p>那什么, 这是所有新闻组必须的礼节,
双方确认, 以便检验邮箱的确是你本人使用,
否则, 我们也不想无意间变成那什么;
而且, 你也可以在开始接收周刊前明确订阅是安全的.</p>
<p>I just believe that requiring double opt-in to subscribe to any email-based system is a win for both parties: You are safe from unintentionally subscribing and I can be confident that you actually own the email address and want to receive the newsletter I send you :)</p>
<h3>Contact</h3>
<blockquote>
<p>反馈? 问题? 或是其它?</p>
</blockquote>
<p>请直接吼: René Föhring (<a href="http://trivelop.de/imprint">email</a> or tweet <a href="https://twitter.com/rrrene">@rrrene</a> 开展快速交流). </p>
<p>PS:</p>
<ul>
<li>有关中文版本快译的问题</li>
<li>可以直接在每一页底部点评中反馈</li>
<li>实在想直接吼人? -> <code>zoomquiet+exs(at)gmail.com</code></li>
</ul>
<h2>DAMA</h2>
<blockquote>
<p>❤️ Happy Pythonic!</p>
</blockquote>
<p>(<code>大妈私人无责任播报</code>)</p>
<ul>
<li><a href="https://www.yuque.com/zengzhi/elixir-weekly-report/tdyp8f">5-6 第6期简讯 #issue6 · 语雀</a></li>
</ul>
<h1>是也乎</h1>
<ul>
<li>190509 <a href="http://zoomquiet.io/">Zoom.Quiet</a>(大妈) 用时 42 分钟 完成快译</li>
<li>190509 <a href="http://zoomquiet.io/">Zoom.Quiet</a>(大妈) 用时 17 分钟 完成格式转抄.</li>
</ul>Elixir Weekly #1442019-04-11T16:42:00+08:002019-04-21T17:01:33+08:00Pythoneermtag:weekly.pychina.org,2019-04-11:/elixirweekly/elixirweekly-144.html<p>原文: <a href="https://elixirweekly.net/issues/144">ElixirWeekly - Elixir Community Newsletter, one email every Thursday.</a></p>
<p><img alt="elixirweekly" src="https://elixirweekly.net/images/envelope.png"></p>
<hr>
<blockquote>
<blockquote>
<p>Every Thursday: No frills, no click-through, no spam.
</p>
</blockquote>
</blockquote>
<h2>当周 不老药</h2>
<blockquote>
<p>This week in Elixir</p>
</blockquote>
<ul>
<li><a href="https://kubasub.proseful.com/params-modules-for-phoenix">Phoenix 的 Params 模块</a></li>
</ul>
<p>The Params modules pattern can be used in Phoenix to validate and massage a controller action’s params …</p><p>原文: <a href="https://elixirweekly.net/issues/144">ElixirWeekly - Elixir Community Newsletter, one email every Thursday.</a></p>
<p><img alt="elixirweekly" src="https://elixirweekly.net/images/envelope.png"></p>
<hr>
<blockquote>
<blockquote>
<p>Every Thursday: No frills, no click-through, no spam.
</p>
</blockquote>
</blockquote>
<h2>当周 不老药</h2>
<blockquote>
<p>This week in Elixir</p>
</blockquote>
<ul>
<li><a href="https://kubasub.proseful.com/params-modules-for-phoenix">Phoenix 的 Params 模块</a></li>
</ul>
<p>The Params modules pattern can be used in Phoenix to validate and massage a controller action’s params into data that can be passed to contexts.</p>
<p>(<code>是也乎:</code></p>
<p>所谓中间件模块</p>
<p>)</p>
<ul>
<li><a href="https://blog.smartlogic.io/genserver-nightly-task/">使用 GenServer 进行夜间任务</a></li>
</ul>
<p>Eric set up a nightly process that uses OTP primitives to run nightly tasks for his games. Nice!</p>
<p>(<code>是也乎:</code></p>
<p>只是为了游戏刷分?</p>
<p>)</p>
<ul>
<li><a href="http://blog.plataformatec.com.br/2019/04/exdoc-v0-20-keyboard-shortcuts-autocompletion-full-text-search-and-more/">ExDoc v0.20</a></li>
</ul>
<p>Wojtek wrote about keyboard shortcuts, autocompletion, full-text search, and other stuff in the latest version of ExDoc.</p>
<ul>
<li><a href="https://dom.events/2019/04/09/read-cmd-line-pipes-in-elixir.html">Micro: 读取 elixir 中的 cmd pipes</a></li>
</ul>
<p>Regis wrote a blog post about reading pipes from the command line in Elixir CLI tools.</p>
<ul>
<li><a href="https://link.medium.com/u2pVO4TMIV">清理 Phoenix 控制器操作</a></li>
</ul>
<p>Damon writes about a pattern he came across that helps when you need to pass a lot of variables to the view / template.</p>
<p>(<code>是也乎:</code></p>
<p>在 Elixir 中, 多少算大量?</p>
<p>)</p>
<ul>
<li><a href="http://marianoguerra.org/posts/elixir-protocols-how-do-they-work-the-erlang-perspective.html">Elixir 协议,它们如何工作? erlang 的观点</a></li>
</ul>
<p>Mariano gives "the erlang perspective" on protocols in Elixir.</p>
<h2>📆🐍 社区</h2>
<blockquote>
<p>Even more from around the Elixir community</p>
</blockquote>
<ul>
<li>
<p><a href="https://docs.google.com/forms/d/e/1FAIpQLSes4zJptuQH8Qvbfa1wgJy4tBZYsQerXMsoqyv6mRYfR9jDzg/viewform?usp=send_form">The ElixirConf US 2019 Speaker CFP is NOW OPEN!</a></p>
<ul>
<li>Misc</li>
</ul>
</li>
<li>
<p><a href="https://podcast.smartlogic.io/season-1-cava">Jay Ashe from Cava - Elixir in Production</a></p>
<ul>
<li>Podcast</li>
</ul>
</li>
<li>
<p><a href="https://devchat.tv/elixir-mix/emx-046-dont-repeat-your-domain-knowledge-with-yiming-chen/">ElixirMix Podcast 046 - 嫑重复你的领域知识 Yiming Chen</a></p>
<ul>
<li>Podcast</li>
</ul>
</li>
</ul>
<p>(<code>是也乎:</code></p>
<p>一鸣大大?</p>
<p>)</p>
<h2>好物</h2>
<blockquote>
<p>Interesting Projects, Tools and Libraries</p>
</blockquote>
<ul>
<li>
<p><a href="https://circleci.com/blog/contributing-the-elixir-orb/">Elixir Orb for CircleCI</a></p>
<ul>
<li>Blog post</li>
</ul>
</li>
<li>
<p><a href="https://www.poeticoding.com/hashing-a-file-in-elixir/">Hashing Files in Elixir</a></p>
<ul>
<li>Blog post</li>
</ul>
</li>
<li>
<p><a href="https://hlongvu.com/post/qnqceslup4-Passing-a-function-inside-atassigns-in-Phoenix-Elixir">Passing a Function Inside @assigns in Phoenix</a> </p>
<ul>
<li>Blog post</li>
</ul>
</li>
<li>
<p><a href="https://kubasub.proseful.com/elixir-tips-function-clauses">Make Multi-clause Functions More Readable with This Quick Tip</a> </p>
<ul>
<li>Blog post</li>
</ul>
</li>
<li>
<p><a href="https://pragtob.wordpress.com/2019/04/08/revisiting-tail-call-optimization-in-elixir-erlang-with-benchee-1-0/">复习 “Elixir & Erlang 的尾调用优化” with Benchee 1.0</a> </p>
<ul>
<li>Blog post</li>
</ul>
</li>
</ul>
<h2>DAMA</h2>
<blockquote>
<p>❤️ Happy Pythonic!</p>
</blockquote>
<p>(<code>大妈私人无责任播报</code>)</p>
<ul>
<li><a href="https://www.yuque.com/zengzhi/elixir-weekly-report/vn8itv">4-21 第4期简讯 #issue4 · 语雀</a></li>
<li><a href="https://medium.com/@tylerpachal/creating-an-http-server-using-pure-otp-c600fb41c972">Creating an HTTP Server using pure OTP – Tyler Pachal – Medium</a><ul>
<li>OTP</li>
</ul>
</li>
</ul>
<h1>是也乎</h1>
<ul>
<li>190411 <a href="http://zoomquiet.io/">Zoom.Quiet</a>(大妈) 用时 42 分钟 完成快译</li>
<li>190411 <a href="http://zoomquiet.io/">Zoom.Quiet</a>(大妈) 用时 17 分钟 完成格式转抄.</li>
</ul>Elixir Weekly #1432019-03-28T23:42:00+08:002019-04-11T15:58:58+08:00Pythoneermtag:weekly.pychina.org,2019-03-28:/elixirweekly/elixirweekly-143.html<p>原文: <a href="https://elixirweekly.net/issues/143">ElixirWeekly - Elixir Community Newsletter, one email every Thursday.</a></p>
<p><img alt="elixirweekly" src="https://elixirweekly.net/images/envelope.png"></p>
<hr>
<blockquote>
<blockquote>
<p>Every Thursday: No frills, no click-through, no spam.
</p>
</blockquote>
</blockquote>
<h2>当周 不老药</h2>
<blockquote>
<p>This week in Elixir</p>
</blockquote>
<ul>
<li><a href="https://phoenix-liveview-ant-farm.herokuapp.com/">Phoenix LiveView 蚂蚁农场</a><ul>
<li>..</li>
</ul>
</li>
</ul>
<p>Holy cow! Ricardo created this small experiment consisting of a bunch of old school ants running around …</p><p>原文: <a href="https://elixirweekly.net/issues/143">ElixirWeekly - Elixir Community Newsletter, one email every Thursday.</a></p>
<p><img alt="elixirweekly" src="https://elixirweekly.net/images/envelope.png"></p>
<hr>
<blockquote>
<blockquote>
<p>Every Thursday: No frills, no click-through, no spam.
</p>
</blockquote>
</blockquote>
<h2>当周 不老药</h2>
<blockquote>
<p>This week in Elixir</p>
</blockquote>
<ul>
<li><a href="https://phoenix-liveview-ant-farm.herokuapp.com/">Phoenix LiveView 蚂蚁农场</a><ul>
<li>..</li>
</ul>
</li>
</ul>
<p>Holy cow! Ricardo created this small experiment consisting of a bunch of old school ants running around (using Phoenix LiveView).</p>
<ul>
<li><a href="https://www.elviovicosa.com/2019/03/29/5-reasons-elixir-competitive-advantage.html">5 个原因 Elixir 可成就您的竞争优势</a><ul>
<li>...</li>
</ul>
</li>
</ul>
<p>Inspired by a recent discussion about the topic, Elvio wrote a blog post with some of the reasons that might make Elixir your competitive advantage.</p>
<p>(<code>是也乎:</code></p>
<p>不老, 万能, 炼金, OTP, FP </p>
<p>)</p>
<ul>
<li><a href="https://github.com/bencheeorg/benchee">benchee 1.0 终于来了</a><ul>
<li>...</li>
</ul>
</li>
</ul>
<p>Congrats to Tobias, Devon and everbody who helped to make 1.0 happen! 🎉</p>
<p>(<code>是也乎:</code></p>
<p>压力测试工具...</p>
<p>)</p>
<ul>
<li><a href="https://coletiv.com/blog/scrapping-data-elixir-otp/">如何使用 OTP 进行多源数据废弃和聚合</a><ul>
<li>..</li>
</ul>
</li>
</ul>
<p>Just like in the documentary series “Big, Bigger, Biggest” we are going to show the different versions we developed on a real project, alongside the pitfalls and breakthroughs of each version.</p>
<ul>
<li><a href="https://10consulting.com/2019/03/29/event-sourcing-in-practice/">Event Sourcing in Practice Screencast</a><ul>
<li>...</li>
</ul>
</li>
</ul>
<p>In this Event sourcing in practice screencast Ben demonstrates how you can apply event sourcing to an Elixir application.</p>
<ul>
<li><a href="https://eng.heetch.com/our-experience-writing-elixir-microservices-53c2a37d06c2?gi=5b4a338aedfc">编写 Elixir 微服务的经验</a><ul>
<li>...</li>
</ul>
</li>
</ul>
<p>Jean-Phillipe just published our blog post about writing Elixir microservices in their polyglot environment.</p>
<p>(<code>是也乎:</code></p>
<p>不同其它语言纷纷回到巨型应用守护,</p>
<p>Elixir 基于 OTP -> 天然万能巨型守护,</p>
<p>微服务可能是 Elixir 开发原有体验的最先进描述.</p>
<p>)</p>
<ul>
<li><a href="https://www.poeticoding.com/elixir-stream-and-large-http-responses-processing-text/">Elixir Streams 和大型 HTTP 响应: 处理文本</a><ul>
<li>...</li>
</ul>
</li>
</ul>
<p>This is a second part of the article of last week. This time we are going to process on the fly a 30 million lines remote file, summing the numbers of each line.</p>
<p>(<code>是也乎:</code></p>
<p><img alt="..." src="https://1o6jjh24p1t92lcqci49qg8a-wpengine.netdna-ssl.com/wp-content/uploads/2019/04/rev_lines.png"></p>
<p>简单说, 就是切切切切切切切...切到合适的嗯哼</p>
<p>)</p>
<h2>📆🐍 社区</h2>
<blockquote>
<p>Even more from around the Elixir community</p>
</blockquote>
<ul>
<li>
<p><a href="https://podcast.smartlogic.io/season-1-hunleth">Frank Hunleth - 生产中的 Elixir</a></p>
<ul>
<li>Podcast</li>
</ul>
</li>
<li>
<p><a href="https://devchat.tv/elixir-mix/emx-045-where-the-wild-things-are-with-johnny-winn/">ElixirMix Podcast 045 - 和 Johnny Winn 一起狂野的事情</a></p>
<ul>
<li>Podcast</li>
</ul>
</li>
<li>
<p><a href="https://elixircasts.io/phoenix-live-view">Getting Started with Phoenix LiveView</a></p>
<ul>
<li>LiveView Video</li>
</ul>
</li>
<li>
<p><a href="https://www.codemy.net/posts/elixir-gracefully-shutting-down-genserver-process-026/sets/elixir-foundation">Elixir: 优雅的关闭 GenServer Process</a></p>
<ul>
<li>Video</li>
</ul>
</li>
<li>
<p><a href="https://medium.com/@TehBrofessor/the-poison-pill-process-f027415dafe4">The Poison Pill Process</a></p>
<ul>
<li>Blog post</li>
</ul>
</li>
</ul>
<p>(<code>是也乎:</code></p>
<p>毒丸进程...</p>
<p>)</p>
<ul>
<li>
<p><a href="https://www.theguild.nl/real-world-phoenix-of-groter-dan-a-liveview-dashboard/">Real World Phoenix |> A LiveView Dashboard</a></p>
<ul>
<li>Blog post</li>
</ul>
</li>
<li>
<p><a href="https://www.welcometothejungle.co/fr/articles/invalid-file-path-error">探寻 invalid_file_path 错误背后真正的嗯哼</a></p>
<ul>
<li>Blog post</li>
</ul>
</li>
<li>
<p><a href="https://frank.kumro.io/building-a-gitlab-ci-light-using-nerves-hardware/">用 Elixir / Nerves 构建 Gitlab CI 警告灯 - Hardware</a></p>
<ul>
<li>
<ul>
<li>Hardware Blog post</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>(<code>是也乎:</code></p>
<p>这种现实降临最有感觉了~最好通电到对应提交人椅子上...</p>
<p><img alt="..." src="https://frank.kumro.io/content/images/2019/03/light-cycle-1.gif"></p>
<p>)</p>
<ul>
<li><a href="https://medium.com/@derek.kraan2/why-should-every-process-be-supervised-4fbd39c495c6">为什么每个过程都应该受到监督 ?</a><ul>
<li>Blog post</li>
</ul>
</li>
</ul>
<p>(<code>是也乎:</code></p>
<p>这个还要嗯哼? 应该是基本习惯了,</p>
<p>)</p>
<ul>
<li>
<p><a href="http://nts.strzibny.name/basic-http-authentication-in-elixir-phoenix/">基本HTTP身份验证 Elixir/Phoenix</a></p>
<ul>
<li>Blog post</li>
</ul>
</li>
<li>
<p><a href="https://samuelmullen.com/articles/elixir-protocols/">Elixir Protocols</a></p>
<ul>
<li>Blog post</li>
</ul>
</li>
<li>
<p><a href="https://coletiv.com/blog/handling-elixir-processes-dynamicsupervisor/">From 0 to DynamicSupervisor — Handling Processes in Elixir</a> </p>
<ul>
<li>Blog post</li>
</ul>
</li>
</ul>
<h2>好物</h2>
<blockquote>
<p>Interesting Projects, Tools and Libraries</p>
</blockquote>
<ul>
<li><a href="https://github.com/mirego/elixir-boilerplate">Open-source Elixir Boilerplate App</a><ul>
<li>Project update</li>
</ul>
</li>
<li><a href="https://github.com/madeinussr/exop_data">ExopData 0.1.5</a> <ul>
<li>Project update</li>
</ul>
</li>
<li><a href="https://github.com/madeinussr/exop">Exop 1.2.4</a> <ul>
<li>Project update</li>
</ul>
</li>
</ul>
<h2>DAMA</h2>
<blockquote>
<p>❤️ Happy Pythonic!</p>
</blockquote>
<p>(<code>大妈私人无责任播报</code>)</p>
<ul>
<li><a href="https://medium.com/@tylerpachal/creating-an-http-server-using-pure-otp-c600fb41c972">Creating an HTTP Server using pure OTP – Tyler Pachal – Medium</a><ul>
<li>OTP</li>
</ul>
</li>
<li><a href="https://py.101.camp/">蟒营 Python 入门班</a><ul>
<li>嗯哼...</li>
</ul>
</li>
</ul>
<h1>是也乎</h1>
<ul>
<li>190404 <a href="http://zoomquiet.io/">Zoom.Quiet</a>(大妈) 用时 42 分钟 完成快译</li>
<li>190404 <a href="http://zoomquiet.io/">Zoom.Quiet</a>(大妈) 用时 17 分钟 完成格式转抄.</li>
</ul>Elixir Weekly #1422019-03-28T21:42:00+08:002019-04-08T20:41:01+08:00Pythoneermtag:weekly.pychina.org,2019-03-28:/elixirweekly/elixirweekly-142.html<p>原文: <a href="https://elixirweekly.net/issues/142">ElixirWeekly - Elixir Community Newsletter, one email every Thursday.</a></p>
<p><img alt="elixirweekly" src="https://elixirweekly.net/images/envelope.png"></p>
<hr>
<blockquote>
<blockquote>
<p>Visual Programming with Elixir: Learning to Write Binary Parsers</p>
<p>by @elixirstatus</p>
</blockquote>
</blockquote>
<h2>这周不老药</h2>
<blockquote>
<p>This week in Elixir</p>
</blockquote>
<ul>
<li><a href="https://dev.to/edisonywh/functionmethod-look-up-in-elixirruby-622">Function/Method 查找在 Elixir/Ruby</a></li>
</ul>
<p>Edison thought GenServer function injections were done through inheritance and discovered the inner …</p><p>原文: <a href="https://elixirweekly.net/issues/142">ElixirWeekly - Elixir Community Newsletter, one email every Thursday.</a></p>
<p><img alt="elixirweekly" src="https://elixirweekly.net/images/envelope.png"></p>
<hr>
<blockquote>
<blockquote>
<p>Visual Programming with Elixir: Learning to Write Binary Parsers</p>
<p>by @elixirstatus</p>
</blockquote>
</blockquote>
<h2>这周不老药</h2>
<blockquote>
<p>This week in Elixir</p>
</blockquote>
<ul>
<li><a href="https://dev.to/edisonywh/functionmethod-look-up-in-elixirruby-622">Function/Method 查找在 Elixir/Ruby</a></li>
</ul>
<p>Edison thought GenServer function injections were done through inheritance and discovered the inner workings of defoverridable!</p>
<p>(<code>是也乎:</code></p>
<p>这还用比较嘛? 海量 end 堆起来比括号要恶心多了...</p>
<p>)</p>
<ul>
<li><a href="https://medium.com/@hansonkd/visual-programming-with-elixir-1bd7f865bf17?source=friends_link&sk=6f7b440eb04ee81679c3ddfede9bab07">使用Elixir进行可视化编程:学习编写二进制解析器</a></li>
</ul>
<p>Kyle writes about what makes Elixir an unexpected front-runner for learning and prototyping binary protocols.</p>
<ul>
<li><a href="https://teamweek.com/jobs/backend-developer.html">Teamweek正在寻找远程Elixir后端开发人员</a></li>
</ul>
<p>It's a fully remote job and 100% Elixir even though the title says Ruby as well. According to Teamweek, it's simply easier to find Ruby devs that want to learn Elixir ;-)</p>
<p>(<code>是也乎:</code></p>
<p>倾向找到在学 Elixir 的 Rubista ..
)</p>
<ul>
<li><a href="https://tylerscript.dev/ecto-filtering-tutorial/">More Readable Repos with the Ecto Filter Pattern</a></li>
</ul>
<p>Tyler writes about a great pattern for Ecto query composition he's come across at work.</p>
<ul>
<li><a href="https://medium.com/@iacobson/split-brain-ex-5d5f1c19b133">构建小型分布式 Elixir 应用程序</a></li>
</ul>
<p>Keeping state consistency while running an Elixir application on many servers.</p>
<p>(<code>是也乎:</code></p>
<p>日常技巧...</p>
<div class="highlight"><pre><span></span><code><span class="nb">+--------------------+</span>
<span class="c">| APP SUPERVISOR |</span>
<span class="nb">+---------+----------+</span>
<span class="c"> |</span>
<span class="c"> |</span>
<span class="nb">+---------</span><span class="c">v</span><span class="nb">----------+</span><span class="c"> </span><span class="nb">+-----------+</span><span class="c"> </span><span class="nb">+-----------+</span>
<span class="c">| WORKER SUPERVISOR </span><span class="nb">+---------</span><span class="nv">></span><span class="c"> WORKERS | </span><span class="nb">+</span><span class="c"> </span><span class="nv"><</span><span class="nb">--------</span><span class="nv">></span><span class="c"> DATABASE |</span>
<span class="nb">+--------------------+</span><span class="c"> </span><span class="nb">+-----------+</span><span class="c"> | | </span><span class="nb">+-----------+</span>
<span class="c"> </span><span class="nb">+------------+</span><span class="c"> |</span>
<span class="c"> </span><span class="nb">+-------------+</span>
</code></pre></div>
<p>)</p>
<ul>
<li><a href="https://elixirschool.com/blog/til-ecto-validations-and-constraints/">TIL Ecto 约束 vs. 验证</a></li>
</ul>
<p>ElixirSchool shows us how Ecto can put validations and constraints onto specific fields to ensure data integrity. </p>
<h2>📆🐍 社区</h2>
<blockquote>
<p>Even more from around the Elixir community</p>
</blockquote>
<ul>
<li><a href="https://www.youtube.com/watch?v=OR2Gc6_Le2U">Fred Hebert - 可操作的 Erlang 和 Elixir | Code BEAM SF 19</a><ul>
<li>Video</li>
</ul>
</li>
<li><a href="https://elixircasts.io/api-authorization-with-api-keys-part-2">使用API密钥进行API授权 - 第2/2</a><ul>
<li>Video</li>
</ul>
</li>
<li><a href="https://lure.is/blog/elixir/dangers-of-genservers">ElixirMix Podcast 044 - GenServers 和 Mika Kalathil 的危险</a><ul>
<li>Podcast</li>
</ul>
</li>
<li><a href="https://blog.oestrich.org/2019/03/starting-epmd-separately">用 epmd 进行本地聚类</a><ul>
<li>Blog post</li>
</ul>
</li>
<li><a href="https://medium.com/@blackode/write-better-elixir-code-4bcf12062fd5">编写更好的 Elixir Code</a><ul>
<li>Blog post</li>
</ul>
</li>
</ul>
<p>(<code>是也乎:</code></p>
<p><img alt="floss" src="http://floss.zoomquiet.top/data/20190329154415/direct.jpg"></p>
<p>和 <a href="https://github.com/christopheradams/elixir_style_guide">christopheradams/elixir_style_guide: A community driven style guide for Elixir</a>
同嚼, 有火腿味儿...</p>
<p>)</p>
<ul>
<li><a href="https://medium.com/codes-for-elixir-phoenix/ecto-select-data-by-computed-column-elixir-phoenix-cd71150f1653">Ecto. Select Data by Computed Column</a><ul>
<li>Blog post</li>
</ul>
</li>
<li><a href="https://lobotuerto.com/blog/building-a-json-api-in-elixir-with-phoenix/">Building a JSON API in Elixir with Phoenix 1.4+</a><ul>
<li>Blog post</li>
</ul>
</li>
<li><a href="https://haughtcodeworks.com/blog/software-development/elixir-phoenix-liveview/">'Phoenix LiveView Impressions' by Scott Meade</a><ul>
<li>Blog post</li>
</ul>
</li>
<li><a href="https://www.poeticoding.com/elixir-streams-to-process-large-http-responses-on-the-fly/">Elixir Streams 在 Fly 处理大型 HTTP 请求</a><ul>
<li>Blog post</li>
</ul>
</li>
<li><a href="https://elixirschool.com/blog/phoenix-live-view">Walk-Through of Phoenix LiveView by Sophie DeBenedetto</a><ul>
<li>Blog post</li>
</ul>
</li>
<li><a href="https://github.com/llxff/coney">Coney v2.2.0 释放</a><ul>
<li>Project update</li>
</ul>
</li>
<li><a href="https://github.com/techgaun/zxcvbn-elixir">ZXCVBN Port For Elixir</a><ul>
<li>update</li>
</ul>
</li>
<li><a href="https://hex.pm/packages/deep_merge">Released deep_merge 1.0.0</a><ul>
<li>update</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/blob/v10.4.0/README.md#installation">IntelliJ Elixir 10.4.0</a><ul>
<li>update</li>
</ul>
</li>
</ul>
<h2>好物</h2>
<blockquote>
<p>Interesting Projects, Tools and Libraries</p>
</blockquote>
<h2>DAMA</h2>
<blockquote>
<p>❤️ Happy Pythonic!</p>
</blockquote>
<p>(<code>大妈私人无责任播报</code>)</p>
<ul>
<li><a href="https://medium.com/@tylerpachal/creating-an-http-server-using-pure-otp-c600fb41c972">Creating an HTTP Server using pure OTP – Tyler Pachal – Medium</a><ul>
<li>OTP</li>
</ul>
</li>
<li><a href="https://py.101.camp/">蟒营 Python 入门班</a><ul>
<li>嗯哼...</li>
</ul>
</li>
</ul>
<h1>是也乎</h1>
<ul>
<li>190329 <a href="http://zoomquiet.io/">Zoom.Quiet</a>(大妈) 用时 42 分钟 完成快译</li>
<li>190328 <a href="http://zoomquiet.io/">Zoom.Quiet</a>(大妈) 用时 17 分钟 完成格式转抄.</li>
</ul>