SlideShare a Scribd company logo
Quantum Fax Machine
QFM010: Elixir Reading List March
2024
quantumfaxmachine.com
1
QFM010: Elixir Reading List March
2024
Here is everything I found interesting about Elixir Programming Ecosytem during March 2024.
The March Edition Quantum Fax Machine's Elixir Reading List starts with a discussion on the Doctest
Formatter plugin for enhancing code readability, then dives into practical solutions for developers, such
as managing environment-specific configurations efficiently without external dependencies as
discussed in Simple .env-like configuration in Elixir.
We then look at Elixir's GenServer in What is Elixir GenServer?, reflecting on the language's capabilities
handling complex asynchronous operations. We also take a look at architectural principles, comparing
the Phoenix and Rails frameworks in "Phoenix is not your application (unlike Rails)".
We also look at error handling within Elixir projects as well as integration with large language models
(LLMs) through the thmsmlr / instructor_ex library, which makes generating regular and
programmatically workable output from LLMs much easier.
Security practices and tools like Semgrep are discussed, offering insights into protecting Elixir code,
highlighted by a Fireside chat with Holden Oullette on secure coding practices. We take a quick look at
Credo for static analysis, linting, and code quality improvements in "Credo rules you’ve been sleeping on".
Among other links, this month's collection also looks at a very practical guide for integrating GraphQL
with the Phoenix Framework via Absinthe.
As always, the Quantum Fax Machine Propellor Hat Key will guide your browsing. Enjoy!
Key:
: Mentions Elixir and related technologies
: Talks about the Elixir ecosystem in real-world use cases
: Talks about technical details of Elixir ecosystem components
: Using and working with Elixir ecosystem technologies in software
: Programming new Elixir technology concepts and implementations
Source: Photo by Michael Dziedzic on Unsplash
2
How to format Elixir doctests?: The article
introduces "Doctest Formatter," a plugin
created to format Elixir doctests within
documentation, making it easier to maintain
clean and readable code examples. It details
installation instructions, usage for
formatting .ex files and doctests, and mentions
the plugin's compatibility requirements with
Elixir version 1.13.2 or higher. The formatter
also standardizes the appearance of iex>
prompts in doctests, adhering to best practices
recommended in Elixir documentation.
#Elixir #DoctestFormatter
#CodeFormatting #ElixirProgramming
#DevelopmentTools
3
Simple .env-like configuration in Elixir: The
article outlines a method for managing
environment-specific configurations in
Elixir projects without external
dependencies, by leveraging plain Elixir
scripts (.exs files) for setting environment
variables, thereby simplifying the
development and testing process.
#Elixir #EnvConfig
#DevelopmentBestPractices
#ElixirProgramming
#NoExternalDependencies
4
What is Elixir GenServer?: This article
describes Elixir's GenServer as a behavior
module for building concurrent and stateful
processes in a more idiomatic and user-
friendly way than its Erlang counterpart. It
provides an overview of implementing
GenServer with practical examples and
discusses when to use or not use it for
specific applications.
#Elixir #GenServer
`#ConcurrentProgramming #ErlangOTP
#FunctionalProgramming
5
Phoenix is not your application (unlike
Rails): The article contrasts the
architectural philosophies of Ruby on Rails
and Phoenix, highlighting that while Rails
often becomes tightly coupled with
applications, Phoenix encourages a clear
separation between the web layer and the
core business logic. This distinction allows
developers to build more modular,
maintainable applications with Phoenix.
#WebDevelopment #PhoenixFramework
#RubyOnRails
#SoftwareArchitecture #ElixirLang
6
Safer Error Systems in Elixir: This article
discusses improving error handling in Elixir
by merging the clarity of strings with the
simplicity of atoms for more manageable
and insightful errors, and introduces the
ErrorMessage library to standardise and
simplify error representation, making
debugging and user experience better.
#ElixirLang #ErrorHandling
#CodingBestPractices
#ErrorMessageLibrary
#SoftwareDevelopment
7
thmsmlr / instructor_ex: instructor_ex is an
Elixir library designed for structured, Ecto-based
outputs with OpenAI and other open-source large
language models (LLMs), facilitating JSON
mapping to Ecto schemas for more structured
responses than traditional unstructured text
outputs. It highlights ease of use, adaptability to
various models, and potential for automated
prompt retrying upon validation failure. This
library adds a missing layer that makes working
with LLMs much more controllable, robust, and
reliable. Here is a really good video that explains
Instructor in practice: Thomas Millar, Instructor -
The bridge between Elixir and AI.
#Elixir #OpenAI #StructuredData
#LanguageModels #EctoSchema
8
exliris-haystack / Haystack: This is an Elixir
library that offers a simple, extendable full-
text search engine, facilitating the creation
and management of search indexes with
customisable fields and storage, and
enabling easy querying of those indexes.
#Haystack #ElixirLibrary
#FullTextSearch
#SoftwareDevelopment
#TextIndexing
9
How to secure Elixir codebases: Fireside
chat with Holden Oullette: This webinar
features Holden Oullette, a key member of
the Elixir community and maintainer of
Sobelow, discussing secure coding
practices in Elixir, his contributions to
Semgrep for Elixir, and his visions for the
language and community's future.
Semgrep is highlighted as a scalable code
security tool for organizations.
#Elixir #CodingSecurity #Sobelow
#Semgrep #ElixirCommunity
10
Credo rules you’ve been sleeping on: This
article discusses optimising Elixir projects
by adjusting Credo settings for better code
quality, highlighting enabling strict mode,
disabling certain checks like AliasOrder,
and activating others like MixEnv and
PassAsyncInTestCases. It suggests a
balanced approach to using Credo for
linting/static analysis in Phoenix projects.
#Elixir #Credo #CodeQuality
#PhoenixFramework
#SoftwareDevelopment
11
Absinthe with Phoenix Framework - a
guide to properly get started with GraphQL
using Elixir: This article is a comprehensive
tutorial on setting up a GraphQL server
using the Elixir Phoenix Framework with
Absinthe, covering everything from basic
setup and configuration to defining
queries, mutations, and subscriptions. It
assumes basic knowledge of Phoenix and
GraphQL.
#Absinthe #PhoenixFramework
#GraphQL #Elixir #APIDevelopment
12
Implementing Natural Conversational Agents
with Elixir: This article details the author's
efforts to improve a conversational agent
named Nero by implementing an "always
on" recording feature and refining the end-
to-end conversation flow using Elixir,
focusing on natural interaction and reducing
latency for a more seamless user experience.
Part 1 where Sean builds the first version of
his Nero home assistant is here.
#ConversationalAI
#ElixirProgramming #VoiceTech
#NaturalLanguageProcessing
#TechInnovation
13
Thankyou!
hello@matthewsinclair.com
matthewsinclair.com
masto.ai/@matthewsinclair
medium.com/@matthewsinclair
twitter.com/@matthewsinclair
Originally published on
quantumfaxmachine.com
If you’d like to sign up for this content as an
email, click here to join the mailing list.
Image: Photo by Austin Chan on Unsplash
14

More Related Content

Similar to 20240412 QFM010 Elixir Reading List March 2024

CLR_via_CSharp_(Jeffrey_Richter_4th_Edition).pdf
CLR_via_CSharp_(Jeffrey_Richter_4th_Edition).pdfCLR_via_CSharp_(Jeffrey_Richter_4th_Edition).pdf
CLR_via_CSharp_(Jeffrey_Richter_4th_Edition).pdf
ssuserbe139c
 
Introduction to vb.net
Introduction to vb.netIntroduction to vb.net
Introduction to vb.net
suraj pandey
 
An overview of the architecture of electron.js
An overview of the architecture of electron.jsAn overview of the architecture of electron.js
An overview of the architecture of electron.js
Moon Technolabs Pvt. Ltd.
 
All the amazing features of asp.net core
All the amazing features of asp.net coreAll the amazing features of asp.net core
All the amazing features of asp.net core
GrayCell Technologies
 
Security & fault tolerance in fresco
Security & fault tolerance in frescoSecurity & fault tolerance in fresco
Security & fault tolerance in fresco
Amit Lanjewar
 
dotNET frameworks
dotNET frameworksdotNET frameworks
dotNET frameworks
nawal saad
 
Visual studio
Visual studioVisual studio
Visual studio
anupathak17jul
 
c#.pptx
c#.pptxc#.pptx
OOP Comparative Study
OOP Comparative StudyOOP Comparative Study
OOP Comparative Study
Darren Tan
 
Elixir紹介
Elixir紹介Elixir紹介
Elixir紹介
Masato HORINOUCHI
 
#Epicor #ERP 10 Architected for Efficiency
#Epicor #ERP 10 Architected for Efficiency#Epicor #ERP 10 Architected for Efficiency
#Epicor #ERP 10 Architected for Efficiency
Index InfoTech
 
AbusingExploitingAndPWN-ingWithFirefoxAdd-Ons
AbusingExploitingAndPWN-ingWithFirefoxAdd-OnsAbusingExploitingAndPWN-ingWithFirefoxAdd-Ons
AbusingExploitingAndPWN-ingWithFirefoxAdd-Ons
achettih
 
Net Fundamentals
Net FundamentalsNet Fundamentals
Net FundamentalsAli Taki
 
basic of .net programming in computer language
basic of .net programming in computer languagebasic of .net programming in computer language
basic of .net programming in computer language
PGopinath3
 
Epicor 10-architected-for-efficiency-whitepaper
Epicor 10-architected-for-efficiency-whitepaperEpicor 10-architected-for-efficiency-whitepaper
Epicor 10-architected-for-efficiency-whitepaper
Le Quoc Vuong
 
Office OpenXML: a technical approach for OOo.
Office OpenXML: a technical approach for OOo.Office OpenXML: a technical approach for OOo.
Office OpenXML: a technical approach for OOo.Alexandro Colorado
 
Introduction Java Web Framework and Web Server.
Introduction Java Web Framework and Web Server.Introduction Java Web Framework and Web Server.
Introduction Java Web Framework and Web Server.
suranisaunak
 
Elixir in a nutshell - Ecosystem (session 1)
Elixir in a nutshell - Ecosystem (session 1)Elixir in a nutshell - Ecosystem (session 1)
Elixir in a nutshell - Ecosystem (session 1)
Héla Ben Khalfallah
 
Flex and .NET Integration
Flex and .NET IntegrationFlex and .NET Integration
Flex and .NET Integration
icaraion
 

Similar to 20240412 QFM010 Elixir Reading List March 2024 (20)

CLR_via_CSharp_(Jeffrey_Richter_4th_Edition).pdf
CLR_via_CSharp_(Jeffrey_Richter_4th_Edition).pdfCLR_via_CSharp_(Jeffrey_Richter_4th_Edition).pdf
CLR_via_CSharp_(Jeffrey_Richter_4th_Edition).pdf
 
Introduction to vb.net
Introduction to vb.netIntroduction to vb.net
Introduction to vb.net
 
An overview of the architecture of electron.js
An overview of the architecture of electron.jsAn overview of the architecture of electron.js
An overview of the architecture of electron.js
 
All the amazing features of asp.net core
All the amazing features of asp.net coreAll the amazing features of asp.net core
All the amazing features of asp.net core
 
Security & fault tolerance in fresco
Security & fault tolerance in frescoSecurity & fault tolerance in fresco
Security & fault tolerance in fresco
 
dotNET frameworks
dotNET frameworksdotNET frameworks
dotNET frameworks
 
Visual studio
Visual studioVisual studio
Visual studio
 
c#.pptx
c#.pptxc#.pptx
c#.pptx
 
OOP Comparative Study
OOP Comparative StudyOOP Comparative Study
OOP Comparative Study
 
Elixir紹介
Elixir紹介Elixir紹介
Elixir紹介
 
#Epicor #ERP 10 Architected for Efficiency
#Epicor #ERP 10 Architected for Efficiency#Epicor #ERP 10 Architected for Efficiency
#Epicor #ERP 10 Architected for Efficiency
 
AbusingExploitingAndPWN-ingWithFirefoxAdd-Ons
AbusingExploitingAndPWN-ingWithFirefoxAdd-OnsAbusingExploitingAndPWN-ingWithFirefoxAdd-Ons
AbusingExploitingAndPWN-ingWithFirefoxAdd-Ons
 
Net Fundamentals
Net FundamentalsNet Fundamentals
Net Fundamentals
 
basic of .net programming in computer language
basic of .net programming in computer languagebasic of .net programming in computer language
basic of .net programming in computer language
 
Epicor 10-architected-for-efficiency-whitepaper
Epicor 10-architected-for-efficiency-whitepaperEpicor 10-architected-for-efficiency-whitepaper
Epicor 10-architected-for-efficiency-whitepaper
 
dot NET Framework
dot NET Frameworkdot NET Framework
dot NET Framework
 
Office OpenXML: a technical approach for OOo.
Office OpenXML: a technical approach for OOo.Office OpenXML: a technical approach for OOo.
Office OpenXML: a technical approach for OOo.
 
Introduction Java Web Framework and Web Server.
Introduction Java Web Framework and Web Server.Introduction Java Web Framework and Web Server.
Introduction Java Web Framework and Web Server.
 
Elixir in a nutshell - Ecosystem (session 1)
Elixir in a nutshell - Ecosystem (session 1)Elixir in a nutshell - Ecosystem (session 1)
Elixir in a nutshell - Ecosystem (session 1)
 
Flex and .NET Integration
Flex and .NET IntegrationFlex and .NET Integration
Flex and .NET Integration
 

More from Matthew Sinclair

20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
20240608 QFM019 Engineering Leadership Reading List May 2024
20240608 QFM019 Engineering Leadership Reading List May 202420240608 QFM019 Engineering Leadership Reading List May 2024
20240608 QFM019 Engineering Leadership Reading List May 2024
Matthew Sinclair
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
Matthew Sinclair
 
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
Matthew Sinclair
 
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
Matthew Sinclair
 
20240413 QFM011 Engineering Leadership Reading List March 2024
20240413 QFM011 Engineering Leadership Reading List March 202420240413 QFM011 Engineering Leadership Reading List March 2024
20240413 QFM011 Engineering Leadership Reading List March 2024
Matthew Sinclair
 
20240414 QFM012 Irresponsible AI Reading List March 2024
20240414 QFM012 Irresponsible AI Reading List March 202420240414 QFM012 Irresponsible AI Reading List March 2024
20240414 QFM012 Irresponsible AI Reading List March 2024
Matthew Sinclair
 
20240411 QFM009 Machine Intelligence Reading List March 2024
20240411 QFM009 Machine Intelligence Reading List March 202420240411 QFM009 Machine Intelligence Reading List March 2024
20240411 QFM009 Machine Intelligence Reading List March 2024
Matthew Sinclair
 
20240302 QFM005 Machine Intelligence Reading List February 2024
20240302 QFM005 Machine Intelligence Reading List February 202420240302 QFM005 Machine Intelligence Reading List February 2024
20240302 QFM005 Machine Intelligence Reading List February 2024
Matthew Sinclair
 
20240304 QFM007 Engineering Leadership Reading List February 2024
20240304 QFM007 Engineering Leadership Reading List February 202420240304 QFM007 Engineering Leadership Reading List February 2024
20240304 QFM007 Engineering Leadership Reading List February 2024
Matthew Sinclair
 
20240305 QFM008 Irresponsible AI Reading List February 2024
20240305 QFM008 Irresponsible AI Reading List February 202420240305 QFM008 Irresponsible AI Reading List February 2024
20240305 QFM008 Irresponsible AI Reading List February 2024
Matthew Sinclair
 
FinovateEurope 2024 Summary Insights Demos
FinovateEurope 2024 Summary Insights DemosFinovateEurope 2024 Summary Insights Demos
FinovateEurope 2024 Summary Insights Demos
Matthew Sinclair
 

More from Matthew Sinclair (14)

20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
20240608 QFM019 Engineering Leadership Reading List May 2024
20240608 QFM019 Engineering Leadership Reading List May 202420240608 QFM019 Engineering Leadership Reading List May 2024
20240608 QFM019 Engineering Leadership Reading List May 2024
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
 
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
 
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
 
20240413 QFM011 Engineering Leadership Reading List March 2024
20240413 QFM011 Engineering Leadership Reading List March 202420240413 QFM011 Engineering Leadership Reading List March 2024
20240413 QFM011 Engineering Leadership Reading List March 2024
 
20240414 QFM012 Irresponsible AI Reading List March 2024
20240414 QFM012 Irresponsible AI Reading List March 202420240414 QFM012 Irresponsible AI Reading List March 2024
20240414 QFM012 Irresponsible AI Reading List March 2024
 
20240411 QFM009 Machine Intelligence Reading List March 2024
20240411 QFM009 Machine Intelligence Reading List March 202420240411 QFM009 Machine Intelligence Reading List March 2024
20240411 QFM009 Machine Intelligence Reading List March 2024
 
20240302 QFM005 Machine Intelligence Reading List February 2024
20240302 QFM005 Machine Intelligence Reading List February 202420240302 QFM005 Machine Intelligence Reading List February 2024
20240302 QFM005 Machine Intelligence Reading List February 2024
 
20240304 QFM007 Engineering Leadership Reading List February 2024
20240304 QFM007 Engineering Leadership Reading List February 202420240304 QFM007 Engineering Leadership Reading List February 2024
20240304 QFM007 Engineering Leadership Reading List February 2024
 
20240305 QFM008 Irresponsible AI Reading List February 2024
20240305 QFM008 Irresponsible AI Reading List February 202420240305 QFM008 Irresponsible AI Reading List February 2024
20240305 QFM008 Irresponsible AI Reading List February 2024
 
FinovateEurope 2024 Summary Insights Demos
FinovateEurope 2024 Summary Insights DemosFinovateEurope 2024 Summary Insights Demos
FinovateEurope 2024 Summary Insights Demos
 

Recently uploaded

National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 

Recently uploaded (20)

National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 

20240412 QFM010 Elixir Reading List March 2024

  • 1. Quantum Fax Machine QFM010: Elixir Reading List March 2024 quantumfaxmachine.com 1
  • 2. QFM010: Elixir Reading List March 2024 Here is everything I found interesting about Elixir Programming Ecosytem during March 2024. The March Edition Quantum Fax Machine's Elixir Reading List starts with a discussion on the Doctest Formatter plugin for enhancing code readability, then dives into practical solutions for developers, such as managing environment-specific configurations efficiently without external dependencies as discussed in Simple .env-like configuration in Elixir. We then look at Elixir's GenServer in What is Elixir GenServer?, reflecting on the language's capabilities handling complex asynchronous operations. We also take a look at architectural principles, comparing the Phoenix and Rails frameworks in "Phoenix is not your application (unlike Rails)". We also look at error handling within Elixir projects as well as integration with large language models (LLMs) through the thmsmlr / instructor_ex library, which makes generating regular and programmatically workable output from LLMs much easier. Security practices and tools like Semgrep are discussed, offering insights into protecting Elixir code, highlighted by a Fireside chat with Holden Oullette on secure coding practices. We take a quick look at Credo for static analysis, linting, and code quality improvements in "Credo rules you’ve been sleeping on". Among other links, this month's collection also looks at a very practical guide for integrating GraphQL with the Phoenix Framework via Absinthe. As always, the Quantum Fax Machine Propellor Hat Key will guide your browsing. Enjoy! Key: : Mentions Elixir and related technologies : Talks about the Elixir ecosystem in real-world use cases : Talks about technical details of Elixir ecosystem components : Using and working with Elixir ecosystem technologies in software : Programming new Elixir technology concepts and implementations Source: Photo by Michael Dziedzic on Unsplash 2
  • 3. How to format Elixir doctests?: The article introduces "Doctest Formatter," a plugin created to format Elixir doctests within documentation, making it easier to maintain clean and readable code examples. It details installation instructions, usage for formatting .ex files and doctests, and mentions the plugin's compatibility requirements with Elixir version 1.13.2 or higher. The formatter also standardizes the appearance of iex> prompts in doctests, adhering to best practices recommended in Elixir documentation. #Elixir #DoctestFormatter #CodeFormatting #ElixirProgramming #DevelopmentTools 3
  • 4. Simple .env-like configuration in Elixir: The article outlines a method for managing environment-specific configurations in Elixir projects without external dependencies, by leveraging plain Elixir scripts (.exs files) for setting environment variables, thereby simplifying the development and testing process. #Elixir #EnvConfig #DevelopmentBestPractices #ElixirProgramming #NoExternalDependencies 4
  • 5. What is Elixir GenServer?: This article describes Elixir's GenServer as a behavior module for building concurrent and stateful processes in a more idiomatic and user- friendly way than its Erlang counterpart. It provides an overview of implementing GenServer with practical examples and discusses when to use or not use it for specific applications. #Elixir #GenServer `#ConcurrentProgramming #ErlangOTP #FunctionalProgramming 5
  • 6. Phoenix is not your application (unlike Rails): The article contrasts the architectural philosophies of Ruby on Rails and Phoenix, highlighting that while Rails often becomes tightly coupled with applications, Phoenix encourages a clear separation between the web layer and the core business logic. This distinction allows developers to build more modular, maintainable applications with Phoenix. #WebDevelopment #PhoenixFramework #RubyOnRails #SoftwareArchitecture #ElixirLang 6
  • 7. Safer Error Systems in Elixir: This article discusses improving error handling in Elixir by merging the clarity of strings with the simplicity of atoms for more manageable and insightful errors, and introduces the ErrorMessage library to standardise and simplify error representation, making debugging and user experience better. #ElixirLang #ErrorHandling #CodingBestPractices #ErrorMessageLibrary #SoftwareDevelopment 7
  • 8. thmsmlr / instructor_ex: instructor_ex is an Elixir library designed for structured, Ecto-based outputs with OpenAI and other open-source large language models (LLMs), facilitating JSON mapping to Ecto schemas for more structured responses than traditional unstructured text outputs. It highlights ease of use, adaptability to various models, and potential for automated prompt retrying upon validation failure. This library adds a missing layer that makes working with LLMs much more controllable, robust, and reliable. Here is a really good video that explains Instructor in practice: Thomas Millar, Instructor - The bridge between Elixir and AI. #Elixir #OpenAI #StructuredData #LanguageModels #EctoSchema 8
  • 9. exliris-haystack / Haystack: This is an Elixir library that offers a simple, extendable full- text search engine, facilitating the creation and management of search indexes with customisable fields and storage, and enabling easy querying of those indexes. #Haystack #ElixirLibrary #FullTextSearch #SoftwareDevelopment #TextIndexing 9
  • 10. How to secure Elixir codebases: Fireside chat with Holden Oullette: This webinar features Holden Oullette, a key member of the Elixir community and maintainer of Sobelow, discussing secure coding practices in Elixir, his contributions to Semgrep for Elixir, and his visions for the language and community's future. Semgrep is highlighted as a scalable code security tool for organizations. #Elixir #CodingSecurity #Sobelow #Semgrep #ElixirCommunity 10
  • 11. Credo rules you’ve been sleeping on: This article discusses optimising Elixir projects by adjusting Credo settings for better code quality, highlighting enabling strict mode, disabling certain checks like AliasOrder, and activating others like MixEnv and PassAsyncInTestCases. It suggests a balanced approach to using Credo for linting/static analysis in Phoenix projects. #Elixir #Credo #CodeQuality #PhoenixFramework #SoftwareDevelopment 11
  • 12. Absinthe with Phoenix Framework - a guide to properly get started with GraphQL using Elixir: This article is a comprehensive tutorial on setting up a GraphQL server using the Elixir Phoenix Framework with Absinthe, covering everything from basic setup and configuration to defining queries, mutations, and subscriptions. It assumes basic knowledge of Phoenix and GraphQL. #Absinthe #PhoenixFramework #GraphQL #Elixir #APIDevelopment 12
  • 13. Implementing Natural Conversational Agents with Elixir: This article details the author's efforts to improve a conversational agent named Nero by implementing an "always on" recording feature and refining the end- to-end conversation flow using Elixir, focusing on natural interaction and reducing latency for a more seamless user experience. Part 1 where Sean builds the first version of his Nero home assistant is here. #ConversationalAI #ElixirProgramming #VoiceTech #NaturalLanguageProcessing #TechInnovation 13
  • 14. Thankyou! hello@matthewsinclair.com matthewsinclair.com masto.ai/@matthewsinclair medium.com/@matthewsinclair twitter.com/@matthewsinclair Originally published on quantumfaxmachine.com If you’d like to sign up for this content as an email, click here to join the mailing list. Image: Photo by Austin Chan on Unsplash 14