QFM018: Elixir Reading List May 2024
Everything I found interesting about the Elixir programming ecosystem during May 2024
In this month’s Elixir Reading List, we start with José Valim’s presentation at YOW! 2023, “Livebook & Elixir: Where AI, Web & Concurrency Meet”. The presentation explores the integration of AI, web development, and concurrency within Elixir and Livebook.
A second presentation from José is his keynote at ElixirConf EU 2024, “Gang of None? Design Patterns in Elixir” discusses how Elixir’s unique concurrency and functional programming features enable distinct design patterns, setting it apart from traditional object-oriented approaches. Valim provides practical examples to illustrate these patterns, highlighting Elixir’s innovative approach to building scalable and maintainable software.
In addition to these talks, the article “Using Dependency Injection in Elixir” examines the application of dependency injection (DI) in functional programming. This covers DI’s core principles, types, and practical implementation in Elixir, emphasizing how this technique can enhance modularity and testability.
Lastly, the guide “Building Real-Time Applications with Phoenix LiveView” offers a tutorial on leveraging Phoenix LiveView for creating dynamic, real-time web applications. This guide emphasises the integration of server-rendered HTML updates, showcasing LiveView’s power in simplifying real-time functionality without the need for extensive use of JavaScript.
And many more! As always, the Quantum Fax Machine Propellor Hat Key will guide your browsing. Enjoy!
Livebook & Elixir: Where AI, Web & Concurrency Meet • José Valim • YOW! 2023 (youtube.com): José Valim discusses how Livebook and Elixir can integrate AI, web, and concurrency to enhance development workflows and problem-solving in a talk at YOW! 2023. He highlights the practical applications and benefits of using these tools in various technological domains.
#Elixir
#AI
#WebDevelopment
#Concurrency
#Livebook
Keynote: Gang of None? Design Patterns in Elixir — José Valim | ElixirConf EU 2024 (youtube.com): José Valim discusses how Elixir’s concurrency and functional features enable unique design patterns distinct from traditional object-oriented patterns, emphasizing the language’s suitability for scalable and maintainable applications. He illustrates these patterns with practical examples, showcasing Elixir’s innovative approach to problem-solving in software design.
#Elixir
#DesignPatterns
#FunctionalProgramming
#Concurrency
#SoftwareDevelopment
Using Dependency Injection in Elixir (appsignal.com): The article explains how dependency injection (DI) can be applied in Elixir, a functional programming language, to manage dependencies, enhance modularity, and improve testability. It covers the basics of DI, including its core principles and types, and demonstrates its practical use in Elixir through examples of injecting mock dependencies for testing.
#Elixir
#FunctionalProgramming
#DependencyInjection
#SoftwareTesting
#CodingTips
Least Privilege And Elixir Ecto (onor.io): The article discusses the principle of least privilege, emphasizing its importance in limiting user permissions to only what is necessary to perform their tasks, thereby enhancing security. It then explores implementing least privilege in Elixir applications using Ecto, demonstrating how to create read-only and read-write users at the database level to safeguard against unauthorized access and data manipulation.
#Elixir
#Ecto
#DatabaseSecurity
#LeastPrivilege
#Cybersecurity
Empowering Learning: Peter Ullrich’s Journey from Psychology to Indie Courses (adolfont.substack.com): Peter Ullrich, founder of Indie Courses and a senior Elixir engineer, discusses his journey from a psychology degree to a career in software engineering, highlighting his discovery of Elixir, the creation of Indie Courses, and the importance of continuous learning.
#CareerJourney
#SoftwareEngineering
#IndieCourses
#ContinuousLearning
#ElixirProgramming
Building Forms with Phoenix LiveView (indiecourses.com): The course “Building Forms with Phoenix LiveView” from Indie Courses teaches developers how to create forms using Phoenix 1.7 and LiveView 0.20, covering topics such as schemaless changesets, embedded schemas, and dynamic form fields to streamline and modernize form building in web development.
#PhoenixLiveView
#WebDevelopment
#Forms
#Programming
#TechCourses
This Release Makes Me Want To Leave React (youtube.com): The video discusses how the introduction of Elixir and Phoenix LiveView has significantly impacted the creator’s perception of web development, highlighting a shift away from React due to frustrations with JSON and the appeal of functional programming and real-time server updates offered by Elixir.
#Elixir
#PhoenixLiveView
#WebDevelopment
#React
#FunctionalProgramming
1h Build #1 — Rock Paper Scissors in Elixir (youtube.com): Ed Lepedus demonstrates building a Rock-Paper-Scissors game from scratch in one hour using Elixir and LiveBook on YouTube, engaging viewers with a detailed walkthrough of the process.
#Elixir
#LiveBook
#CodingTutorial
#GameDevelopment
#RockPaperScissors
10 Elixir gotchas — Journeys of a not so young anymore Software Engineer (pragtob.wordpess.com): The article highlights ten common pitfalls encountered when using Elixir, focusing on issues such as charlists versus strings, pattern matching with maps, and the nuances of structs. The author draws from personal experience and teaching to explain these challenges and offers solutions, emphasizing the importance of understanding Elixir’s unique behaviours and how they differ from other programming languages.
#Elixir
#Programming
#CodingTips
#SoftwareEngineering
#TechInsights
BloomSite — Phoenix Framework (bloom-ui.fly.dev): BloomSite is an opinionated, open-source extension for Phoenix Core Components, allowing users to quickly install and customise various UI elements such as avatars, bento grids, calendars, and cards through a simple mix command. It is designed to save time and offer extensive customisation options, and it is freely available to all.
#PhoenixFramework
#OpenSource
#WebDevelopment
#ElixirLang
#CustomUIComponents
What I mean when I say that machine learning in Elixir is production-ready (cigrainger.com): Machine learning in Elixir is production-ready due to its seamless integration with BEAM and OTP, allowing developers to build and deploy models efficiently using the Nx library, which benefits from advanced architectural choices and offers powerful tools like Nx.Serving for distributed and hardware-agnostic model serving. The Elixir ecosystem’s concurrency model and robust libraries make it ideal for scalable and fault-tolerant machine learning applications.
#Elixir
#MachineLearning
#Nx
#ProductionReady
#TechInnovation
How to Serve Multiple Domains in a Single Phoenix App (dockyard.com): The article explains how to configure a single Phoenix application to handle multiple domains and subdomains using specific routing techniques, including the scope/4
macro and the host
option for grouping routes. It also covers setting the :check_origin
option in the configuration to avoid transport errors.
#Phoenix
#WebDevelopment
#Elixir
#MultipleDomains
#ProgrammingTips
The use
Macro in Elixir. How to Use use
and __using__
(brooklinmyers.medium.com): The article explains that the 'use' macro in Elixir enables code reuse by injecting code from one module into another, which is particularly useful for creating templates and common patterns, but should be used sparingly to avoid over-complicating the codebase. Phoenix, a web framework for Elixir, leverages 'use' to implement various components like controllers and views efficiently.
#Elixir
#Programming
#CodeReuse
#PhoenixFramework
#SoftwareDevelopment
Free & simple CI/CD for Elixir Phoenix app (dev.to): The article explains how to set up a simple, cost-free continuous integration and continuous deployment (CI/CD) workflow for an Elixir Phoenix app using Docker and Caddy. It details the steps for configuring a virtual machine, creating necessary scripts, and setting up automated deployment to ensure zero downtime and SSL configuration.
#Elixir
#Phoenix
#CICD
#Docker
#DevOps
A cool use of Elixir’s String.split/2
I didn't know about (elixirstreams.com): Elixir's String.split/2
can split a string using multiple delimiters by passing a list of delimiters, enabling extraction of substrings between specified characters. For example, splitting "{hello}"
with delimiters "{"
and "}"
yields "hello"
.
#ElixirLang
#Programming
#CodeTips
#ElixirTricks
#SoftwareDevelopment
Boilerplate Busting in Functional Languages (lambdaland.org): This article discusses overcoming the challenges of cumbersome boilerplate code in Elixir by using the writer monad to separate concerns and improve code clarity and maintainability. By abstracting the logic for handling auxiliary data, they transform messy, state-dependent code into a clean, functional pattern.
#FunctionalProgramming
#Elixir
#CodingTips
#Monads
#SoftwareDevelopment
The elixir-tools Update Vol. 6 (elixir-tools.dev): Elixir-tools has announced Nikola Jichev as a new team member and celebrated José Valim joining as a sponsor. The project now has 44 sponsors and numerous new features, including enhanced autocompletion and code actions. The community is encouraged to contribute via GitHub or financially through sponsorships.
#ElixirTools
#OpenSource
#Coding
#SoftwareDevelopment
#CommunitySupport
ElixirConf 2022 — Angel Martinez — Designing Data Intensive Applications in Elixir with Flow (youtube.com): At ElixirConf 2022, Angel Martinez presented on designing data-intensive applications using Elixir’s Flow library, demonstrating how batch processing and event streaming can resolve data integration issues while maintaining performance and correctness across distributed systems. The talk also highlighted practical examples and referenced Martin Kleppmann’s “Designing Data-Intensive Applications” to provide insights on optimising data workflows.
#Elixir
#DataIntegration
#FlowLibrary
#ElixirConf
#DistributedSystems
Ash Framework Q&A — Erlang & Elixir Asia (youtube.com): In the video, Zach Daniel, creator of the Ash framework for Elixir, discusses the framework’s declarative approach, answers audience questions, and provides mini coding tutorials during the Erlang & Elixir Asia meetup.
#Elixir
#Erlang
#AshFramework
#TechTalk
#CodingTutorials
Ash. The hidden champion of low-code tools (lukasender.at): Ash, a low-code tool, streamlines software development by eliminating repetitive boilerplate code and allowing developers to focus on creative problem-solving. It leverages Elixir’s macro system and integrates with tools like Ecto and Absinthe, providing extensible abstractions that simplify CRUD operations and offer flexibility without locking users in.
#LowCode
#SoftwareDevelopment
#AshFramework
#Elixir
#CodingTools
Regards,
M@
[ED: If you’d like to sign up for this content as an email, click here to join the mailing list.]
Originally published on quantumfaxmachine.com.
You can also grab the Slideshare version here: