Adding logger metadata to Oban jobs with telemetry
In this post I explain how to leverage Oban’s telemetry to add logger metadata that will be automatically included in every log made by an Oban job.
https://crbelaus.com/2024/05/28/adding-logger-metadata-to-oban-jobs-with-telemetry
Modeling System with Actors
In this post I try to explain how the actor model can be useful in modeling business-oriented systems or general-purpose applications.
Thinking Elixir 204: OTP 27 and Blend for Lib Maintainers
In this episode we sit down with Marcelo Dominguez, the driver behind the new “Blend” library, which assists Elixir library developers in testing their projects against multiple versions of dependencies. Marcelo explains the genesis of Blend and the inspiration from the Rubygem “appraisal.” He discusses how Blend tackles the common headache of dependency version clashes and integrates smoothly with CI systems to isolate and report specific compatibility issues. We learn how it works under-the-hood and helps library maintainers more easily keep their promises of supporting a library used in diverse environments. We cover the motivations, complexities, and real-world applications of Blend and more!
The Future Stack
In my talk at GigCity Elixir I touched on this low-latency stack built on Fly IO and friends. I think there is something there and I adapted my talk to a blog post. The talk will be available, probably next week but for now you can read.
The Elixir Book Club is reading A Philosophy of Software Design
💜📘 The Elixir Book Club has chosen our next book!
A Philosophy of Software Design, 2nd Edition
Our next meeting is Sunday, June 9th, and we will discuss chapters 1, 2, 3, and 4.
Join our Discord to participate!
Elixir vs Ruby
A Comprehensive Guide to Ruby v Elixir Let’s compare these widely popular and dynamic languages: Elixir and Ruby. We’ll explore the advantages and disadvantages of each language, as well as their optimal use cases and other key points, providing you with a clearer insight into both. https://www.erlang-solutions.com/blog/a-comprehensive-guide-to-ruby-v-elixir/
GigCity Elixir & NervesConf 2024 report
I went to Chattanooga, met my community, made three public presentations and these were my take-aways:
https://underjord.io/chattanooga-gigcityelixir-nervesconf-2024.html
Code BEAM Europe 2024 - Call for Talks closes soon
The Erlang and Elixir Conference in Europe is coming again to Berlin and you can be a part of it! https://codebeameurope.com
📆 Important dates:
28.05 the Call for Talks and Call for Training end ⌛️
3.06 the Waiting List closes ⌛️
4.06 Very Early Bird ticket sale opens for Waiting List 🎟
12.06 Early Bird ticket sale opens for everybody 🎟
Feature preview (PR review) apps on Fly.io
In this blog post, I explain how we approach manual testing of new features at Optimum.
https://optimum.ba/blog/feature-preview-pr-review-apps-on-fly-io
My Favorite new LiveView Feature: JS.toggle_class/1
Phoenix LiveView v0.20.4 offers a hidden gem with its handy little JS.toggle_class/1 feature. This addition simplifies toggling classes for developers, allowing for effortless visibility changes, multi-element toggles, and even animated transitions—all without needing additional tools. Check out the examples showcasing basic visibility toggles, simultaneous class manipulations, dynamic list item interactions, reusable click events, and more! Could this become your new favorite LiveView feature?
https://fly.io/phoenix-files/my-favorite-new-liveview-feature/
Taming data with Ecto.Enum and Ecto.Type!
I just posted this tutorial about Taming data with Ecto.Enum and Ecto.Type!
https://dev.to/herminiotorres/taming-data-with-ectoenum-and-ectotype-2pfm
Thinking Elixir News 203
News includes Phoenix LiveView hitting 1.0 soon, with thoughtful comparisons to the broader web development industry and detailed changelog insights. Theo reacts positively to the release from a React and JS perspective, highlighting its significance. José Valim’s keynote at ElixirConf EU 2024 revisits the famous “Gang of Four” design patterns and their relevance to Elixir today. Chris McCord introduces the innovative World Page Speed Test using FLAME, illustrating its ease of use and benefits over traditional solutions. Ash 3.0 is officially released after 46 RC releases. Additionally, Oban support is moving to ElixirForum to improve searchability, and more!
Using Dependency Injection in Elixir
Dependency injection can prove useful in Elixir. In this first part of a two-part series, we’ll look at some basic concepts, core principles, and types of dependency injection: https://blog.appsignal.com/2024/05/21/using-dependency-injection-in-elixir.html
A REST Client for Browsers
https://rfp.dev/blog/a-rest-client-for-browsers
We’ve built Polo, an open source REST client that runs in your browser. You can check it out at https://github.com/readyforproduction/polo. In this post, we will discuss some of its key features.
Babel - Data Transformations Made Easy
Did you ever have to write deeply nested JSON transformations and get increasingly annoyed by the “boilerplate-yness” of it all?
If yes, then this library is for you: https://github.com/alexocode/babel/
Babel is meant to make data transformations effortless by allowing you to specify the happy path. Take a look!
Nerves Meetup
The next Nerves meetup is Wednesday, May 29th! https://www.meetup.com/nerves/events/298253615/
Workspace - tools for elixir monorepos
We open sourced workspace
a set of tools for working with elixir monorepos.
Petal Components and Phoenix 1.7
In episode 190, we explore how to setup Petal Components to work with Phoenix 1.7.
Thinking Elixir News 202
Episode 202 of Thinking Elixir. In this week’s edition, we dive into the exciting release of ElixirLS 0.21.0, enhancing the developer experience with new code actions and more efficient dialyzing on the latest OTP. We also discuss José Valim’s insightful commentary on Elixir’s upcoming type system, addressing bug-prone comparison operations, and additional advancements in exception handling. Don’t miss the unveiling of “Bloom,” an opinionated extension to Phoenix core components, alongside Chris McCord’s demo of lightning-fast hot code deploys across a global Fly.io cluster. We round off with the legal tussle over the FTC’s ruling on non-compete clauses and AWS’s S3 billing adjustments that provide relief from unauthorized access charges, and more!