12factor Elixir/Phoenix releases
Finally, we can easily do Elixir releases with runtime configuration.
ThinkingElixir 038: Maintainable Elixir with Saša Jurić
In episode 38 of Thinking Elixir, Saša Jurić shares how the team at Very Big Things is building maintainable Elixir code. This ranges from the development processes to code design and organization. He takes some “radical” positions and challenges conventions on a mission to find what actually works well. We talk about his library Boundary and how it helps enforce API designs. He talks about the “Junk Drawer Pattern” and how code analysis helps identify lines of separation for refactoring. A thought provoking and fun discussion!
Building Git in Elixir — Part 1 (Initialize Repo & Store blobs)
I recently got hold of this book Building Git, written by James Coglan. It’s a pretty thick book covering, as the title says, building Git version control system using Ruby programming language. I thought it would be a fun exercise to implement Git using Elixir as I read the book. This article is the first introductory one in a series of articles focusing on my journey implementing Git in Elixir programming language.
Asynchronous browser tests with Phoenix (making our tests faster 🚀)
A deep-dive into how Wallaby uses the “sandbox” in Phoenix/Ecto, and how we can use it to keep browser tests asychronous even when using resources that must be explicitly shared between processes (such as Mox definitions).
Resources to learn Elixir - A study path
Here you can find resources for getting started with Elixir. It’s what I am following and it could be helpful for programmers that want to learn Elixir.
Elixir Wizards S5E14 Sophie DeBenedetto on Programming Phoenix LiveView
Latest episode of Elixir Wizards is out today! Check it out here: https://smartlogic.io/podcast/elixir-wizards/s5e14-debenedetto/
How we use Python within Elixir
A blog post explaining how we added Python to an existing Elixir application:
https://medium.com/stuart-engineering/how-we-use-python-within-elixir-486eb4d266f9
😻-language
To promote Tarearbol.DynamicManager I created the 😻-language (which is a brainfuck dialect.)
Code outputting “Meow” to the console looks like this:
😺😺😺😺 😺😺😺😺
😸😼😺😺😺😺 😸😼😺😺😹 😸🐱😹 🐱😾😹
😼😼😺😺😺😺😺😻
😼😾😾😾😻
😺😺😺😺😺😺😺😺😺😺😻
😺😺😺😺😺😺😺😺😻
How I sped up one of our test suites by 17.5x by explicitly defining Elixir protocol implementations
A few months ago, I sped up one of our test suites from about 6 minutes to around 20 seconds. I describe my debugging journey and how I found out that fallback protocols could be causing slower tests when running with code coverage and defining protocol implementations can improve the speed.
https://www.synopsys.com/blogs/software-security/tinfoil-define-protocol-implementations/
Announcing Hush: Configure your Elixir Applications Securely
Today I am happy to announce https://github.com/gordalina/hush - the simplest way to inject secrets into your app configuration.
Hush was purpose built to solve a common use case for projects that require secrets and want to inject them in a secure way without having to depend on secret files or hardcoded configuration.
Read more about the announcement in the blog post: https://gordalina.com/articles/announcing-hush
Event Socket Outbound version 0.5.1 released
The version 0.5.1 includes package updates. Check it out: https://hex.pm/packages/event_socket_outbound
ThinkingElixir 037: The Lambda Days Conference and Elixir
In episode 37 of Thinking Elixir, after covering the news, we share a live recording of the show from the Lambda Days conference. It was a lot of fun! We covered topics like learning and teaching Elixir, functional programming, strengths of Elixir over Erlang, the developer tooling, why Elixir is awesome even when not building distributed systems, and much more!
DRY enums for Absinth
If you ever wondered, how to reference existing enum functions in Absinth enum macros, wonder no more.
Adding truly custom page to Phoenix LiveDashboard
Here’s a quick tip on how you can add more customized page, using own Phoenix LiveComponent to your LiveDashboard. https://www.amberbit.com/blog/2021/3/1/adding-truly-custom-page-to-phoenix-live-dashboard/
Handling Async Responses with Tarearbol
To build a supervised, fault-tolerant and robust system, to run many processes holding nearly the same state, it saves a lot of boilerplate, claiming to implement perform/2 callback only (and maybe two optional callbacks call/3 and terminate/2.)
▸ https://rocket-science.ru/hacking/2021/02/28/async-response-handling-with-tarearbol
Scripting Elixir applications
This post describes how we can script Elixir applications, that is provide and execute some code after the application had been compiled. http://www.buguigny.org/english/2020/12/26/scripting-elixir_applications.html
The Erlang Paris meetup is back! Come with your project and your questions to discuss. https://www.meetup.com/Erlang-Paris/events/276603063/
This group is intended for those who wish to progress in learning Erlang-OTP technology including Elixir and other languages over the Erlang VM (BEAM). You can be start-up creators, beginner or expert, or simply seek to progress on this know-how with the intention of implementing it soon .
The Erlang Paris meetup is back! Come with your project and your questions to discuss. If you are planning to do a little presentation, please post a message on the forum here so we can get organized on D-Day. See you Tuesday!
RSVP & Forum: https://www.meetup.com/Erlang-Paris/events/276603063/
Another approach to Testing Phoenix Controller + Plug setup
I came up with a way to test a Phoenix Controller’s plug call without regular requests tests (conn tests). By digging a little deeper into Phoenix.Controller.Pipeline & some minor meta-programming:
https://www.adiiyengar.com/blog/20210225/testing-phoenix-controller-plug-setup
