Event Sourcing With Elixir - Part 5
In Part 5 of this series on Event Sourcing we’ll round up account closure, deposits and withdrawals to set the stage for transfers using process managers.
Phoenix Live View debounce
While waiting for phoenix live view debounce feature, it is easy to add it with very few lines of code. A blog post
Using protocols in your own code
Protocols can be a useful tool when building Elixir libraries and provide a way for users to extend your library for their own uses. I haven’t had much occasion to work with protocols, but recently had occasion to use them in a side project. I found that they are also a useful tool for encapsulating logic and wrote up my experience in a blog post.
IntelliJ Elixir 10.5.1
-
Numerous users have reported that annotation can encounter a
StackOverflowError
. A reproduction case shows that they are called by PhoenixWeb
modules where one function containingquote
blockuse
s the same module again, such as anadmin_view
depending on the baseview
throughuse App.Web, :view
. When theuse App.Web, :view
is resolving, thedefmacro __using__
is re-entered as is theadmin_view
because there was no tracking of already visitedPsiElement
s. The fix is to track the visited elements and not re-enter the visited elements so thatadmin_view
is skipped and the other call definition clauses can be checked to findview
.
Configuring Distillery
Latest post from Eric over at the SmartLogic blog: “Following up on our last post about generating an Erlang release through Docker, let’s talk about how we configure Distillery to generate the actual release. Here again I’m using the example of the scripts I use to deploy Grapevine, to give us a real example to look at.”
Tracking Users in a Chat App with LiveView, PubSub Presence
Supercharge your LiveView with PubSub and Phoenix Presence to track user state in a chat app! https://elixirschool.com/blog/live-view-with-presence/
Deploying Elixir - Demo
This week Eric live streamed a demo of how we deploy Elixir at SmartLogic with Distillery and Docker https://smr.tl/2LYawJt
ElixirMix Podcast 052 - Production Pitfall Pontification
Minimum Viable Phoenix
Follow along commit by commit as we build a minimum viable Phoenix application from the ground up.
http://www.petecorey.com/blog/2019/05/20/minimum-viable-phoenix/
Phoenix vs Rails benchmark. How fast is Phoenix?
To understand how fast Phoenix is when compared to Rails, I created a simple application to benchmark both frameworks. The results are quite interesting.
https://www.elviovicosa.com/2019/05/16/phoenix-vs-rails-benchmark
Introducing MerkleMap, the new library powering Horde's improved performance.
The newest version of Horde, v0.5.0, includes some large performance improvements. This blog post explores the new library that’s behind these performance improvements, MerkleMap.
Preload, or not preload, that is the question
Preload is a part of Ecto.Query module that provides the Query DSL. Preload is a powerful tool that allows you to avoid N+1 queries from negatively affecting our performance. We must explicitly preload the data that we are accessing for an association between data. However, it’s easy to make mistakes when using preload. During the article, I will try to answer questions about making a decision on how to use preload.
https://medium.com/@SergeyChechaev/preload-or-not-preload-that-is-the-question-2b706da51cea
Tracking changes with context using Phoenix and Ecto
Learn how to track data changes in your application using Phoenix and Ecto.
https://luizdamim.com/blog/tracking-changes-with-context-using-phoenix-and-ecto/
Registration for #spawnfest 2019 is OPEN! / #erlang #elixirlang
Registration for SpawnFest 2019 is OPEN! You can start building your teams and get ready to play on September 21st & 22nd!
We updated the rules this year with 2 major changes:
- You’ll be able to watch the action LIVE, since all repos will be public from the start! :scream:
- We added a deadline for our judges, that way you know when the results will be published and you don’t panic thinking we forgot about that :slight_smile:
And, as usual, we’re looking for sponsors. We have a very cool form where you can register your company and provide prizes for the contest.
Oban — Reliable and Observable Job Processing
Announcing Oban, an Ecto/PostgreSQL based job processing library with a focus on reliability and historical observability.
Oban’s primary goals are reliability , consistency and observability. It is fundamentally different from other background job processing tools because it retains job data for historic metrics and inspection.
Version 0.2.0
was released today!
Using Python Trained Machine Learning Models from Phoenix (Elixir) Applications
Python is the de facto language for machine learning and data science. There are numerous libraries and frameworks available in Python for this purpose. Elixir on the other hand is relatively new and doing machine learning in Elixir is still not easy. In this article, I will present how we can use a machine learning model trained using Python from a Phoenix (Elixir) web application. Since the process remains the same, it does not necessarily have to be web application. Any Elixir application can use similar approach and use pre-trained Python ML models.
https://itnext.io/using-machine-learning-models-python-from-phoenix-elixir-applications-cd028e4e5f01
ElixirMix Podcast 051 - Nerves and Farmbot with Connor Rigby
In this episode of ElixirMix, We talk with Connor Rigby about all things Nerves. We discuss FarmBot, embedded tooling, robots, SQLite Ecto, unit testing on Nerves, Grisp as an alternative to Nerves, Farmbot’s trip to NASA and much more!
Deploying with Distillery and Docker
At SmartLogic we use Distillery to generate Erlang releases for our Elixir applications. Through this post we’ll explain how we generate the releases that get shipped to production.
https://blog.smartlogic.io/deploying-with-distillery-and-docker/
ASDF, the package manager for all your languages
A full guide to installing ASDF and using it to install and choose versions of Erlang, Elixir, Node and Ruby