QFM026: Elixir Reading List July 2024

Everything I found interesting about the Elixir programming ecosystem during July 2024

Matthew Sinclair
13 min readAug 2, 2024
Photo by Thomas Tastet on Unsplash

We kick of this month’s Elixir reading list with Oliwer Iwanicki’s journey from frontend development to Elixir and Phoenix, we witness a firsthand account of transitioning between different programming paradigms. This personal insight is complemented by Daniel Berg’s Elixir Crash Course #2, which introduces basic Elixir types for beginners. Both resources highlight Elixir’s readability and the learning curve for those new to the language.

Polo, an open-source REST client operating within browsers using Phoenix LiveView. It emphasizes asynchronous operations and dynamic forms. The importance of Elixir for scalable app development is reinforced by Juvet, an MVC framework for chat applications, supporting platforms like Slack and Facebook Messenger with features like message queuing and NLP.

For those eager to master Elixir, Masters of Elixir offers an extensive compilation of resources, including courses, forums, and programming challenges. This collection aligns well with the open-source ethos of Elixir, as seen in 12 Elixir Open-Source Projects to Build Your SaaS Ground-Up, which explores essential libraries for SaaS development, enhancing productivity and performance.

Elixir’s growing role in AI and machine learning is highlighted in ExVision and Data Visualization for Machine Learning in Elixir. ExVision introduces AI models for computer vision tasks and the second article focuses on integrating visualization into machine learning projects, showcasing Elixir’s use of tools like Axon’s native plotter. The tool theme continues with Testing LLMs with Elixir, which tackles the challenges of evaluating large language models and offers strategies for robust testing.

Unification in Elixir takes a look at unification and its potential for logic programming. Elixir Supervisor examines the Supervisor model’s role in process management, providing insights into maintaining system reliability.

Moving to mobile development, the series Mobile App Development with LiveView Native and Elixir explores creating mobile apps using LiveView Native, emphasizing state management, GenServer integration, and SwiftUI form creation. This highlights how Elixir’s functional programming principles can be applied to mobile platforms.

Finally, we conclude with a look at innovative projects like Building a WoW Server in Elixir, showcasing Elixir’s application in game development with challenges in authentication and server synchronization. Igniter — Rethinking code generation with project patching offers a fresh perspective on code generation, focusing on project patching and abstract syntax tree modification, enhancing Elixir’s compatibility with frameworks like Phoenix and Ash.

As always, the Quantum Fax Machine Propellor Hat Key will guide your browsing. Enjoy!

Learning Elixir as a Frontend Developer: Oliwer Iwanicki shares his experience of transitioning from frontend development to learning the Elixir programming language and using the Phoenix framework at his new job. He describes his motivations, learning process, and initial challenges with Elixir. Oliwer also highlights both the positive aspects of the language and ecosystem, such as its readability, community, and consistency, as well as some drawbacks like its lack of a type system and occasional issues with language servers.

#Elixir #FrontendDevelopment #Programming #TechJourney #WebDevelopment

Elixir crash course #2: Basic types: Elixir Crash Course #2 by Daniel Berg dives into the basic types in Elixir. The video includes practical examples and explanations, making it suitable for beginners looking to understand Elixir’s core data types. This video is a great follow-up to the first crash course for those continuing their journey in functional programming.

#Elixir #Programming #CrashCourse #BeginnerFriendly #FunctionalProgramming

A REST client for browsers: The article introduces Polo, an open-source REST client that operates within your browser, leveraging Elixir and Phoenix LiveView. Polo’s main aspects include asynchronous operations via Phoenix.LiveView.AsyncResult, dynamic forms with Ecto schemas, and the use of NimblePublisher for managing request collections. With Docker and a modern browser, Polo aims to work locally or in the cloud, providing a flexible and powerful tool for developers.

#OpenSource #RESTClient #Elixir #PhoenixLiveView #DevTools

Masters of Elixir: Masters of Elixir is a comprehensive collection of resources for anyone looking to master the Elixir programming language. It includes chats, courses, newsletters, documentation, blogs, forums, books, online tutorials, cheatsheets, job listings, social media, podcasts, programming challenges, YouTube channels, hosting services, package information, community events, and academic initiatives. This repository is maintained by multiple contributors and offers a rich array of learning materials for both beginners and advanced users.

#Elixir #Programming #Learning #Resources #Tech

ExVision: ExVision is a new library for the Elixir programming language, featuring AI models for computer vision tasks like object detection, semantic segmentation, and image classification. It includes an easy-to-use API, support for various input types such as image paths and Nx Tensors, and built-in preprocessing and post-processing functionality. Aimed at those new to AI, ExVision emphasizes simplicity, usefulness, and thorough documentation.

#AI #Elixir #ComputerVision #MachineLearning #Tech

What About the Business Logic in Elixir?: This article delves into the intricacies of implementing business logic in Elixir. It discusses how business logic, the core rules and operations of an application, should be separated from infrastructure logic for better maintainability and testability. The piece further explores the concept of Contexts in Elixir, which helps in organizing and encapsulating related functionalities within an application, thereby promoting modular architecture and ease of scalability.

#Elixir #BusinessLogic #SoftwareDevelopment #Contexts #Programming

Unification in Elixir: Pattern matching in Elixir is a powerful tool, heavily inspired by its parent language, Erlang, and ultimately, Prolog. This article explores the concept of unification in Elixir, an algorithm for solving symbolic equations, and contrasts it with pattern matching. The author walks through the implementation of two-sided pattern matching in Elixir, providing detailed examples and explanations to illustrate this advanced feature. The unification algorithm’s potential for more general logic programming is also showcased, along with practical code segments and the importance of substitutions in this process.

#Elixir #Erlang #Prolog #Unification #LogicProgramming

Testing LLMs with Elixir: This article explores the complexities of testing LLM (Large Language Model) outputs using Elixir. The author discusses the challenges presented by the nondeterministic nature of LLM outputs and presents strategies to evaluate these outputs effectively. Techniques such as Basic Evals for structured outputs and Model-graded Evals for unstructured outputs are showcased, providing insights into integrating LLM tests with Elixir code.

Additionally, the article provides a step-by-step guide on configuring and implementing tests, ensuring robust and reliable LLM deployments. The author emphasizes real-world application, sharing practical examples and code snippets to illustrate the concepts discussed.

#Elixir #LLM #AI #Testing #Programming

Resilient Sync for Local First: The article discusses the challenges and solutions in synchronizing data while keeping it local first. It explores the evolution of data storage from local disks to the cloud and the issues of data loss and provider dependence. The local-first movement aims to bring data back to users while retaining internet benefits, using CRDT for data consistency. The author proposes a simple data exchange format working both on file systems and the internet, ensuring resilience and adaptability for future tech conditions.

#LocalFirst #DataSync #CRDT #TechResilience #Decentralization

Juvet: An MVC Framework for Chat Apps: Juvet is an MVC framework designed for developing chat applications on various platforms, such as Slack, Amazon Alexa, Facebook Messenger, and Twilio SMS. The framework aims to provide a scalable and maintainable architecture using familiar development patterns like model-view-controller. It includes essential features such as API wrappers, message queuing, middleware, plugins, and NLP support.

#Juvet #MVC #ChatApps #Framework #OpenSource

High Performance Web Crawler in Elixir: Fred Wu’s Crawler is a web crawler/scraper written in Elixir, focused on high performance. It offers features like worker pooling, rate limiting, and the ability to crawl various asset types. The project also provides extensive configuration options and supports custom modules for more complex use cases. Documentation is available via Hex.

#Elixir #WebCrawler #OpenSource #WorkerPooling #RateLimiting

Creating an RSS feed in Elixir and Phoenix: This article discusses how to create an RSS feed using Elixir and Phoenix frameworks. It includes a step-by-step guide on setting up the necessary modules, controllers, templates, and views. The process is described to be straightforward and does not require adding external dependencies.

#Elixir #PhoenixFramework #RSSFeed #WebDevelopment #Programming

Quick Tip: Make an RSS Atom feed with Phoenix LiveView: This tutorial on Fullstack Phoenix explains how to add an RSS/Atom feed to your blog posts using Phoenix LiveView. It gives step-by-step instructions, including adding the Atomex package, creating a controller and route, and updating the layout to include a feed link. This guide also outlines the necessary code snippets and configurations to make your feed SEO-friendly and accessible to feed readers.

#Phoenix #RSS #Atom #LiveView #FullstackPhoenix

RSS Feed Reader with Phoenix Part 1 — Design and Setup: This article is a detailed walkthrough on developing an RSS Feed Reader using Elixir with the Phoenix framework. It covers the design, implementation, and setup phases extensively, making use of Phoenix LiveView for real-time updates and Bulma for CSS styling. It provides valuable insights on leveraging Elixir’s concurrency features for efficient feed parsing, highlighting common pitfalls and error handling strategies.

#Elixir #PhoenixFramework #LiveView #RSSFeed #WebDevelopment

Retrieval Augmented Generation: What It Is and How to Start Using It: The article provides an overview of Retrieval Augmented Generation (RAG), a method that combines information retrieval and large language models to generate contextually relevant responses. It details the basics of RAG, its implementation in Elixir, and advanced techniques to improve RAG pipelines such as query expansion, re-ranking, function calling, document averaging, and generating citations. The post aims to help readers understand how to design effective RAG solutions using Elixir.

#MachineLearning #Elixir #RAG #AI #Tech

Elixir Supervisor: A Powerful Thing for Dev & DevOps to Sleep Well: This article explores the concept and application of the Supervisor model in Elixir, comparing it to other languages like Golang which lack robust process control. It details how Elixir’s Supervisor, DynamicSupervisor, and PartitionSupervisor work to handle process management and ensure system reliability by restarting or replacing failed processes. Practical examples and strategies for different types of supervisors are provided, along with code snippets for better understanding.

#Elixir #Supervisor #DevOps #ProcessManagement #TechTalk

Building a WoW server in Elixir: Pikdum chronicles the development of ‘Thistle Tea,’ a World of Warcraft private server project built using Elixir. Over the span of a month, Pikdum detailed the technical challenges and solutions, including authentication, game server synchronization, handling various game protocols, and optimizing server-client interactions. The blog emphasizes learning Elixir through practical application and highlights the ongoing nature of the project with plans for future enhancements.

#Elixir #WorldOfWarcraft #Programming #GameDevelopment #MMO

Boost Your App with Self-Hosted LLMs on Fly.io — Step-by-Step Guide: Fly.io presents a step-by-step video guide on leveraging self-hosted Large Language Models (LLMs) to enhance your applications. This video tutorial is perfect for developers looking to boost their app performance with cutting-edge technology using Fly.io’s platform.

#LLM #Flyio #AppDevelopment #TechTutorial #SelfHosted

How to build a GitHub-style Markdown Editor: The article details the process of building a GitHub-style Markdown editor using a combination of a plain textarea and GitHub’s markdown-toolbar and paste-markdown libraries. It describes how to set up the editor, implement a preview feature, and ensure secure rendering of HTML, emphasizing simplicity and reliability for code syntax highlighting.

#MarkdownEditor #GitHubStyle #WebDevelopment #Coding #TechTutorial

Data Visualization for Machine Learning in Elixir: This article explores the integration of data visualization into machine learning projects using Elixir. Using the iris dataset as an example, it delves into basic and advanced scatter plots, real-time plotting of training data, and customizing charts to display model accuracy and loss. Additionally, the piece introduces Axon’s native plotter and emphasizes the importance of visual tools in understanding and improving machine learning models.

#Elixir #MachineLearning #DataVisualization #Programming #Tech

Igniter — Rethinking code generation with project patching: Igniter rethinks code generation by focusing on project patching and modifying abstract syntax trees (ASTs) instead of generating boilerplate files. It aims to integrate code in a way that better blends with frameworks like Phoenix and Ash, while allowing developers to add or modify configurations seamlessly. The approach acknowledges project patching as a ‘best effort transformation’, providing tools for semantic changes rather than text modifications.

#Elixir #CodeGeneration #DeveloperTools #PhoenixFramework #AshFramework

12 Elixir Open-Source Projects to Build Your SaaS Ground-Up: Explore 12 essential open-source Elixir projects that can help you build your SaaS from the ground up. From background job processing with Oban to localization with ex_cldr, these libraries offer a range of capabilities to enhance your application. Learn how to leverage these tools to boost productivity and performance in your Elixir-based projects.

#Elixir #OpenSource #SaaS #WebDevelopment #Programming

Mobile App Development with LiveView Native and Elixir: The article discusses LiveView Native, a new framework developed by Dockyard, allowing Elixir developers to create mobile applications using the LiveView framework. By using LiveView Native, developers can streamline their efforts by writing code for both web and mobile applications in Elixir. The framework offers tools to create native and customized user interfaces for iOS and Android platforms, helping small teams improve productivity. The article also includes a detailed setup guide for integrating LiveView Native with Phoenix and Elixir, focusing on building an iOS app.

#Elixir #LiveViewNative #MobileDevelopment #PhoenixFramework #Dockyard

Mobile App Development with LiveView Native and Elixir: Part 2: In this article, Rushikesh Pandit continues his series on mobile app development using LiveView Native and Elixir. The focus is on handling state in a mobile application, providing code examples and detailed explanations. Starting from where the previous part left off, the article guides you through setting up a counter using GenServer, integrating it with both web and mobile components, and ensuring they work seamlessly together.

#LiveViewNative #Elixir #MobileDevelopment #GenServer #PhoenixFramework

Mobile App Development with LiveView Native and Elixir: Part 3: The article dives into advanced concepts in LiveView Native and Elixir, guiding readers through creating forms for SwiftUI applications using Phoenix Framework and LiveView Native. It details the steps to set up authentication, run mix tasks, and create user registration functionalities. With practical examples and code snippets, it aims to boost the development of powerful mobile applications.

#LiveViewNative #Elixir #MobileDev #PhoenixFramework #SwiftUI

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.

--

--