We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Erlang
Erlang, a concurrent programming language with a strong emphasis on fault-tolerance and high-availability, forms the foundation upon which the Elixir ecosystem is built. Its underlying runtime, language constructs, and standard libraries empower developers to build scalable applications that excel in environments where uptime and data transport are critical, such as the fintech industry. Renowned for enabling cost savings—significantly reducing server expenses for companies like Pinterest and Bleacher Report—Erlang’s functionalities have been seamlessly integrated into Elixir, providing resilience, real-time processing, and reduced latency for enhanced user experiences.
Experts from the Erlang OTP team at Ericsson continue to expand and refine the language, diving into technical details that ensure Erlang's capabilities are at the cutting edge. Innovations such as Native Implemented Functions (NIFs) and custom libraries like EXGBoost enrich the Elixir landscape, offering powerful extensions for complex, real-world applications. The applicability of Erlang's philosophy, especially the 'let it crash' approach, manifests tangibly in both the creation of the language server solutions for Elixir and in the infrastructure powering globally distributed systems. Elixir’s Phoenix framework, a project thriving on the maturity and stability of Erlang, proves itself time and again as an adaptable platform for web applications, deploying features such as LiveView for real-time interactivity and tailored authentication methods.
Monitoring and diagnostics tools borne from the BEAM runtime offer observability into running systems, making debugging a more streamline process. Tools like Dialyzer promote static code analysis to minimize the introduction of type errors, and the Elixir core team continues to enhance the language with updates for improved performance, like compilation and boot time optimizations. With Erlang infrastructure in use at major tech conferences and implemented in projects from chat applications to health care solutions, its influence reverberates through industries. Further, the exploration of language interop, the use of TDD, the importance of system restart strategies, and the adoption of Elixir in replacing legacy systems all speak to the versatility of Erlang and the BEAM VM. Engagement from key figures such as José Valim and Saša Jurić, alongside contributions from many other developers, ensures the sustained growth and exploration of Erlang's potential in modern software development.
Understanding Exception Handling in Elixir
Pulkit Goyal gives an introduction to exceptions in Elixir, discussing how to handle and recover from errors using Elixir's API, the 'let it crash' strategy, and various exception handling techniques. He also emphasizes the importance of monitoring exceptions in real-world applications.
Understanding Set-Theoretic Types and Strong Arrows in Elixir's Gradual Typing
José Valim expands on the topic of gradual set-theoretic typing and discusses how the proposed type system will tackle gradual typing and how it relates to set-theoretic types, with the goal of providing an introduction to the ideas presented in their paper.
Exploring Elixir's Process Restart Strategies
Herminio Torres explains the importance of process restart strategies in Elixir and how they ensure system reliability and resilience.
Summary of Elixir News from Thinking Elixir Podcast Episode 169
News covers the conclusion of ElixirConf US 2023 with key highlights being Chris McCord's keynote on improved Phoenix debugging tools, and Jose Valim's keynote introducing the "Strong Arrows" concept for handling dynamic types.
Discussion and Insights on Elixir Development
Adi, Allen, and Sascha dive deep into observability and tracing in the Beam, discussing the advantages of using open telemetry and exploring different levels of observability, from Phoenix Live View to telemetry and tracing operations in large pipelines.
Fundamentals of Elixir's Upcoming Type System
José Valim delivers the closing keynote at ElixirConf 2023, discussing the foundations of the Elixir type system.
Kanta: A New Translation Management Tool for Elixir and Phoenix Web Applications
Artur Ziętkiewicz introduces Kanta, an open source solution to translations in Elixir & Phoenix web apps. Kanta simplifies the process of managing translations, saving time and reducing errors.
Understanding Elixir's Low Latency Capabilities
Lars explores how Elixir leverages Erlang's soft real-time capability and consistently low latency to provide a near-realtime experience and enhance user satisfaction.
An Overview of Elixir's Syntax
In this blog post titled "Unpacking Elixir", Lars provides a thorough exploration of the Elixir programming language, explaining its syntax, conventions, features, and interop with Erlang. Lars discusses various aspects of the language, such as modules, functions, pipes, pattern matching, macros, and more, offering insights and observations along the way.
Explained: How Elixir and Erlang Handle Arrays Functionally
Many data structures including arrays don't translate equally from imperative to functional programming languages and there are important reasons why.
Cost Savings and Increased Performance with Elixir
Elixir, a dynamic and functional programming language, has saved businesses millions of dollars per year in server costs. Companies like Pinterest and Bleacher Report have experienced significant reductions in server expenses, with improved reliability and performance, by leveraging the power of Elixir and the underlying Erlang platform.
Understanding Elixir Tokenization and Parsing Using Erlang Tools
Andrea Leopardi explains how to tokenize and parse in Elixir using the leex and yecc modules. He mentions that lexers and parsers are often avoided due to their complexity, but these tools simplify the process and provide more powerful options for parsing text.
Understanding TCP Connections in Elixir Applications
Andrea Leopardi explains how to handle TCP connections in Elixir. He provides a detailed guide on using the :gen_tcp module to establish connections, send messages, and handle responses. He also discusses implementing a queuing system, handling errors, and using pooling libraries like poolboy.
Managing Persistent Connections Using gen_statem in Elixir
Andrea Leopardi explores how to maintain persistent connections to external services using gen_statem, a behavior in Erlang and Elixir for building state machine processes. By leveraging gen_statem, processes can stay connected to the external services and handle events such as connection failures and client requests more efficiently.
Using Elixir's Registry for Process Pooling
Andrea Leopardi explores process pooling strategies in Elixir using Elixir's built-in Registry. The post discusses the differences between checkout pools and routing pools, provides code examples, and explains how to implement different routing strategies within a pool.
Setting Up a Phoenix Project with Gitpod for Remote Development
Richard Taylor shares his experience setting up a remote development environment for Phoenix using Gitpod. He provides a sample repository and explains the setup process, highlighting the ease of use and the benefits it offers to new developers and teams.
Resolving Signature Issues with Map Key Ordering in Elixir
A writeup of a tricky bug Richard Taylor had to investigate when upgrading to OTP26 due to the change in map key ordering.
Understanding Phoenix LiveView as an Elixir Process
Jason Stiebs from Fly.io explains how Elixir Processes work in Phoenix LiveViews. He emphasizes the importance of understanding that a LiveView is a process and discusses the benefits and implications of using processes in building scalable applications.
Integrating Dialyzer into Existing Elixir Projects Smoothly
This blog post by Noah Betzen discusses how to successfully implement Dialyzer, a static code analysis tool, in an existing Elixir project without causing inconvenience to the team. The post includes tips on ignoring existing errors, preventing new errors, fixing errors, and integrating Dialyzer into the CI pipeline to catch type errors before merging code.
Building an Elixir-based NTP Server
Andrei created a fake NTP server as an exercise in reverse engineering the NTP protocol using Elixir. He explored the NTP request and response packets and built a UDP server in Elixir to handle and respond to NTP packets. Overall, he had fun implementing his own custom sigil and learned more about tcpdump and GenServers in the process.
Overview of Elixir's HTTP Clients
Andrea Leopardi provides an overview of various HTTP clients available in Elixir, including Mint, Finch, Req, and httpc. He discusses the features and use cases of each client, offering recommendations based on different scenarios.
Explanation of syntax for calling anonymous functions in Elixir
In this article by José Valim, he explains why Elixir uses a dot when calling anonymous functions. The main reason for this choice is because functions in Elixir have to be identified by name and arity, and using the dot helps avoid naming conflicts and provides clarity in the code.
© HashMerge 2024