Async Elixir book
Hey Elixir Enthusiasts!
I’ve got something cool for you. It’s a free book on Elixir that dives into the nitty-gritty of concurrency and processes. Perfect if you already know the basics of Elixir and want to learn more about concurrency and processes in elixir. Check it out at Async Elixir Book https://github.com/Arp-G/async-elixir
Elixir Streams |> Types Operator Precedence
The Elixir types paper talks about operator precedence.
I thought it was interesting how it changes how we read type signatures when we have combinations of not
, and
, or
, and other type constructors.
Check it out!
Understanding Process Restart Strategies: Transient, Temporary, and Permanent
In today’s world, building software systems that can gracefully handle failures and maintain uninterrupted operation is crucial. These process restart strategies, including permanent, temporary, and transient, play a pivotal role in ensuring system reliability and resilience.
#MyElixirStatus #elixirlang #elixir #erlang
Thinking Elixir News 169
Episode 169 of Thinking Elixir. 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. Looking forward, the next ElixirConf will take place in Lisbon, EU in April 2024, followed by ElixirConf US 2024 at SeaWorld. Alex Koutmos points us towards a valuable resource on Erlang.org about efficiencies and performance myths, and a handy blog post walks you through customizing Phoenix generators, and more!
Announcing Beware of Dragons
This free and open-source Phoenix & LiveView book combines high fantasy elements and fundamental blocks of distributed system concepts to build a Multi-User Dungeon (MUD) rooted in Souls-like mechanics. https://kevinavignon.com/2023/09/16/beware-of-dragons-a-distributed-systems-adventure/
Observability: Reducing noise in Elixir applications
This article is aimed at experienced Elixir developers looking to improve their observability practices and build stronger experience of handling logs and exceptions. https://medium.com/wttj-tech/observability-reducing-noise-in-elixir-applications-5bd39d494101
Bun javascript integration with Phoenix
If you are using Phoenix you may be using the Esbuild integration pacakge. I’ve wrote a new package that can be used to replace Esbuild with Bun and get access to all its features. Switch from Elixir to Bun is mostly straightforward.
Elixir Streams |> Elixir's intersection types
Elixir might be getting types. During ElixirConf, José Valim talked about some of the special challenges in creating types for Elixir.
One of the things he mentioned is the need for an intersection type when we might think a union type would suffice for multiple function heads.
I was a little confused by it, so I did a little more digging. Let me show you why we need that type!
👉 https://www.elixirstreams.com/tips/elixir-intersection-types
Managing Timeouts in GenServer in Elixir: How to Control Waiting Time in Critical Operations
Elixir’s GenServer is a crucial component for building concurrent, fault-tolerant systems. GenServers allow you to create concurrent processes that can maintain internal state and respond to asynchronous messages. One of the most important and versatile options when working with GenServers is :timeout.
IntelliJ Elixir v16.0.0
Changelog
v16.0.0
Incompatible Changes
-
#3327 - @marceloneppel
- Drop support for <= 2023.1 IDEs.
Enhancements
-
#3327 - @marceloneppel
- Support 2023.2 IDEs.
Thinking Elixir News 168
Episode 168 of Thinking Elixir. News includes a new “async” feature being added to LiveView, a new translation library called Kanta was announced, formatted logging, improved keyboard navigation in ExDocs, the Membrane framework released a pure Elixir H264 video plugin, and more!
The Incredible Migration from C++ to Elixir
Ben Murphy gives a walkthrough of the process of migrating from writing C/C++ code to writing Elixir code, and the benefits and lessons learned from it.
Customizing Phoenix Generators
During a recent interview, I learned how easily the Phoenix generators can be customized for our projects. How did I not know this? Do others not know this? This post documents this invisible feature that’s easy to use and can be really powerful for teams with either new or mature projects.
https://fly.io/phoenix-files/customizing-phoenix-generators/
Choosing your tech stack guide
From understanding the anatomy of a tech stack to why it matters, and popular tech stacks to consider. Check this out ➡ https://curiosum.com/blog/choosing-your-tech-stack-guide
#techstack #elixir #reactnative
Unpacking Elixir: Real-time & Latency
Elixir was built on Erlang. Erlang was built to provide “consistently low latency” and a few other audacious goals.
This is the third part of my effort to unpack Elixir and we cover real-time and latency. https://underjord.io/unpacking-elixir-realtime-latency.html
Combining Elixir Gettext functions and macros
Gettext macros can sync PO files automatically but require compile time strings. Gettext functions allow runtime strings but cannot sync PO files automatically. What if there was a way to combine them and get the best of both worlds?
https://crbelaus.com/2023/09/08/combining-elixir-gettext-functions-macros.html
Thinking Elixir 167: Customizing mix phx.new?
Episode 167 of Thinking Elixir. We’ve all run “mix phx.new”, but have you ever thought to customize what that does? We talk with Victor Björklund who explains how we can create customized Phoenix project generators and why we might want to. We also discuss customizing the phoenix generators for our already generated projects. We explore the idea of supporting 3rd-party maintained generators and what that might look like. A fun discussion sure to “generate” ideas for your project!