A RAG for Elixir
This is the second part of a series of blog find out on using a local RAG (Retrieval Augmented Generation) system for your team’s codebase without leaking any code or data to third parties.
In this part, we find out how the LLM (Large Language Model) can read and understand Elixir code and start a conversation about the codebase with the LLM 🤖.
An end-to-end ES/CQRS example with EventStoreDB and Phoenix/LiveView
A detailed guide to functional state handling, read/write model segregation and event sourcing built on production experience with EventStoreDB.
It features general awesomeness of asynchronicity and serves as a gateway drug for escaping the transactional fallacy.
Last but not least, it is so long that you can legitimately review it on X with “Too long, didn’t read”!
Thinking Elixir 206: BeamOps - DevOps on the BEAM
In this episode we dive into the exciting release of Elixir 1.17.0-rc.1 and other news from the community. Our main segment features an in-depth interview with Ellie Fairholm and Josep Giralt D’Lacoste about their new Elixir book “Engineering Elixir Applications: Navigate Each Stage of Software Delivery with Confidence.” We explore their professional experiences, the concept of “BeamOps,” and the unique DevOps challenges and advantages in the BEAM ecosystem. Ellie and Josep share insights about the writing process, their collaboration, and what’s next for the book. Tune in to hear all this and more!
Advanced Dependency Injection in Elixir with Rewire
Dependency injection can prove useful in Elixir. In this second 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/06/11/advanced-dependency-injection-in-elixir-with-rewire.html
Creating Tabular Representation of Database Indexes using Elixir Mix Task
https://abulasar.com/creating-tabular-representation-of-database-indexes-using-elixir-mix-task
This is a blog that explains steps to create a mix task to render Database Indexes in a project in a Tabular format.
Elixir Anti-Patterns - What Not to Do in Your Code
Practical strategies to improve your code quality and ensure your Elixir projects are efficient, secure, and maintainable. https://curiosum.com/blog/elixir-anti-patterns
Extending LiveView with stream_async() macro
Learn how to assign stream keys asynchronously in Phoenix LiveView.
- Blog post
- Hex package with the macro: https://hex.pm/packages/live_stream_async
NervesHub 2.0 Update (Nerves Meetup)
Join Eric Oestrich, engineering manager at SmartRent, for an overview of the new features in NervesHub 2.0. NervesHub is a web service to manage over-the-air (OTA) firmware updates of Nerves devices in the field. NervesHub 2.0 features significant improvements to meet the evolving needs of the Nerves community.
Thinking Elixir 205: Elixir 1.17 RC and Other News
Episode 205 of Thinking Elixir. In this episode, we delve into the latest developments including the release of Elixir 1.17-rc0, featuring significant type system improvements and new functions like DateTime.shift. We also discuss some unexpected compiler and JIT advancements in OTP 27, which are already showing performance boosts. Elixir celebrated its 12th birthday and the Erlang docs completed their migration to ExDoc, enhancing accessibility and integration. Tune in for these insightful updates and more!
CurlReq - a love letter to Elixir's sigils
Scratching an itch turned into a new library – curl_req
Writing about it in long form turned into a kind of love letter to Elixir’s sigils – blog post
Stingray: Remote management for firmware development [Nerves Meetup]
A walkthrough of building Stingray, a device for remote management of development kits and prototype hardware. See how Stingray controls a Microchip SAMA5D27 development kit running Nerves, and then learn how the enclosure was injection molded and PCB was fabricated.
🎥 Against the Grain by Saša Jurić | Code BEAM Europe 2023 🎥
This talk tells the story of developing a bespoke Kafka client. None of the existing libraries in the BEAM ecosystem fulfilled the needs of the team, and it was estimated that contributing new changes to those projects would be very difficult. At the same time, writing and maintaining a client from scratch would require a lot of time, much more than the team could afford:
✨This talk was recorded at Code BEAM Europe 2023. If you’re curious about our upcoming event, check https://codebeameurope.com ✨
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