Pogo - distributed supervisor for Elixir
Pogo is a distributed supervisor built on top of Erlang process groups. It abstracts away the complexity process scheduling and supervision in distributed environment. https://szajbus.dev/elixir/2023/05/22/pogo-distributed-supervisor-for-elixir.html
Recompile your code from within IEx
I’ve seen people quit out of IEx and restart it to load new changes to their code.
No need for that! Here are some cool helpers for you 👇
- recompile/0 will recompile your whole project
- r/1 will reload and recompile a single module
See it in action 👉 https://youtube.com/shorts/L52bYdfwwe8 👀
Super simple guide to Livebook
Improve your productivity in Elixir with LiveBook. This tool allows you to collaborate and experiment on interactive code notebooks.
Editing forms with live_file_input
Ever tried to use live_file_input in a form and edit the previously uploaded files? I did and learned some things. Check here
ThinkingElixir 152: Rust and Elixir Play Great Together
Episode 152 of Thinking Elixir. Rust is a popular lower level language and the community has created a number of libraries to solve different problems. We talk with Jason Stiebs, a Phoenix Core Team member, about how Elixir and Rust can play well together. Jason wrote an article about how he leveraged an image processing library available in Rust by using the Elixir Rustler package. We talk about how Rustler works through NIFs, and we learn how easy using Rustler has become. It’s great to understand that we have a powerful escape hatch like Rustler for those times we need it. We also get Jason’s insights into the Phoenix project and talk about the importance of improving the developer experience when a LiveView crashes and more!
Tackling Performance Issues in Ecto Applications
Let’s dive into three common performance issues in Ecto applications and see how to fix them: https://blog.appsignal.com/2023/05/23/tackling-performance-issues-in-ecto-applications.html
Leveling up your Elixir codebase with types
Types in Elixir, while not mandatory, can greatly improve your code base and developer experience while simultaneously preventing the project from falling into the “legacy” space. https://medium.com/wttj-tech/leveling-up-your-elixir-codebase-with-types-795bd17d4d70
Experimenting with graph databases with Memgraph and Elixir
I had a conversation with Marko Budiselić, the CTO at Memgraph, during this year’s DORS/CLUC conference. We discussed graph databases in detail and explored their capabilities and applications. Since I had no prior experience with graph databases, I found the discussion fascinating. As an enthusiastic user of Elixir, I was especially curious about the possibility of integrating Elixir with Memgraph and using its features within the Elixir ecosystem.
The idea of this post is to experiment with Memgraph and see (1) if we can use it with Elixir at all, and (2) how it all works under the hood. As of the time of writing this I haven’t found any tutorials or guides on how to use it with Elixir, and we obviously need to fix that ASAP 😀.
Mind Games in Elixir: Crafting a Command Line Number Guessing Game
Loading a structure.sql File on Prod Without Mix
Have you run
mix ecto.dump and now rely on a
structure.sql file to bootstrap a new DB? When you deploy a release to a production-like environment, you don’t have MIX and you can’t run
mix ecto.load. See how we can still bootstrap a clean staging environment or deploy to a fresh prod DB! (Spoiler: We’ll steal code from ecto_sql!)
Adoption of Elixir in production by top companies
Discover our new publication about using Elixir in production in companies such as Stord, Allegro Lokalnie, V7, Multiverse.io, Remote, Slab, Mozilla Hubs and Heroku.
Taking Control of Map Sort Order in Elixir
OTP 26 was released and the Elixir 1.14.4 builds have been updated! Erlang OTP 26 changed how map keys are sorted, or not sorted actually. Check out this quick tip on how to customize IEx to always sort the map keys with your local development!
Get previous values in IEx
To access previous values in IEx (and save some typing) use the
v()gets the last value
v(n)gets the nth expression
v(-n)gets the previous nth expression
See it in action! 👉 https://youtube.com/shorts/6Jaj0sOAnVk 👀
Intro to Protocols
Elixir protocols provide a powerful mechanism for polymorphism and code reuse. In this episode, we’ll get an introduction on how to use them.
ThinkingElixir 151: Peeking inside the Livebook
Episode 151 of Thinking Elixir. Recently Livebook had its first launch week. We met with Jonatan Kłosko, the developer behind most of the exciting new features, to learn what some of these additions are, how they actually work and what’s coming with the new Teams feature. Jonatan shares some of his favorite unsung features and where the new apps ability may go in the future. Livebook is an important community project and it’s fun getting a deeper look inside!
An Introduction to Absinthe for Elixir
In the first part of this Absinthe for Elixir series, let’s explore some of the basics of Absinthe and GraphQL: https://blog.appsignal.com/2023/05/16/an-introduction-to-absinthe-for-elixir.html
How to use Monaco editor with Phoenix LiveView and esbuild
Monaco is state-of-the-art browser-based code editor that powers VS Code. Let’s see how to integrate it with Phoenix LiveView using esbuild. https://szajbus.dev/elixir/2023/05/15/how-to-use-monaco-editor-with-phoenix-live-view-and-esbuild.html
EMPEX NYC speakers lineup announced
Join us in Brooklyn on June 9th for Heidi Howard’s keynote on the future of distributed computing as well as talks from none other than Andrea Leopardi, Lorena Mireles, Sean Moriarity and more! They’ll cover everything from why the Beam is the best choice for networking, to Elixir and the future of large language models. https://www.empex.co/new-york#speakers
Imagine whyelixirlang.com as a landing page for C-level executives and experienced engineering leaders.
It highlights the achievements of businesses leveraging the Elixir technology stack.