Want to run a simple LiveView with as less keystrokes possible?
https://hexdocs.pm/liveview_playground/0.1.1/readme.html
I wanted to give beginners an alternate path on getting started with LiveView that didn’t need a lot of setup.
- Copy and paste file.exs
- $ elixir file.exs
Done!
Content Security Policy header with Phoenix LiveView
How to set up Content Security Policy header with Phoenix LiveView and support inline styles and scripts with CSP nonces.
https://danschultzer.com/posts/content-security-policy-with-liveview
Fabulous Speaker Line Up at GigCityElixir 2024!
NervesConf and GigCityElixir - May 9-11th! Tickets: GigCityElixir.com Nestled in a valley along the Tennessee River, Chattanooga is known as Gig City for pioneering gigabit internet speed. Our community tells us that Gig City Elixir feels like home, and there’s a reason for that. We mix great speakers and excellent hospitality in a setting built to foster relationships and community.
🔔 NervesConf and GCE Training day both take place on May 9th. Training: Ash Framework (Zach Daniel and Josh Price) Training: Effective Teaching and Training Practices for Software Developers (Andrew Ek and Ruth Kohtz Ek.) NervesConf: Full day of your favorite Elixir IoT people and talks!
So whether you’re looking to deepen your knowledge of Elixir, meet like minded individuals, or simply be inspired by the vibrant tech scene, Gig City is the place to be.
Join us in Chattanooga and be a part of two conferences where programming meets community, innovation, and fun!
Tickets and details: www.gigcityelixir.com May 9-11, 2024 https://youtu.be/r8WFnnxfgYk
Easy empty states for Phoenix LiveView streams using Tailwind
When rendering a collection in LiveView using streams, we commonly want to display a special empty state when the collection is empty. It’s tricky to do this with Elixir constructs like if/else, but fortunately there’s a neat trick we can use to get the desired behavior using Tailwind CSS.
https://phoenixonrails.com/blog/easy-empty-states-for-phoenix-liveview-streams-using-tailwind
Clustering Elixir From Laptop to Cloud
Cluster the Elixir app running on your laptop to an Elixir app running on Fly.io! Can be the same or different app. Step-by-step guide created and a script to help automate the process. Works great for:
- offloading AI/ML tasks to a machine with a GPU and develop our applications locally as normal
- develop and debug truly globally distributed applications right from your laptop
- And, it’s freaking cool!
https://fly.io/phoenix-files/clustering-elixir-from-laptop-to-cloud/
ElixirConf EU 2024 coming up!
Another ElixirConf EU is getting closer. If you haven’t already, check the schedule and book your ticket: https://elixirconf.eu/#schedule
Check out the training offer:: https://elixirconf.eu/#training This is your reminder about additional opportunity to upskill: training sessions with experts, just before the conference.
You can choose from 4 in-person trainings: Practical testing with Elixir (and Phoenix) with Saša Jurić
Ash Framework: The Fast Track to Full Stack with Zach Daniel & Josh Price
Mastering Phoenix LiveView: Essential Insights with Łukasz Pauszek
Elixir Application Security with Michael Lubas
Bun 1.2.0 released
This new version of the Bun installer uses Bun as a process wrapper that kills the process when the stdin closes. We now use Bun to wrap Bun itself, which allows us to remove the POSIX shell dependency on development.
You are welcome to take a look at the GitHub repo and the Hex.pm package for detailed release notes and more information.
Operational Elixir: Knowing When to Grow Up
Episode 194 of Thinking Elixir. In the final installment of our series, we sit down with the creator of the Ash framework, Zach Daniel, to move beyond his expertise in Ash and explore his experiences with the other systems we use to support our Elixir applications. Zach shares his journey from the dynamic environment of startups to the structured world of midsize companies, giving us a glimpse into the strategic timing for scaling monitoring and data collection tools. He emphasizes the value of fostering a blame-free culture and sheds light on his hands-on encounters with deployments, Kubernetes, and more!
Elixir Streams |> ⚡️ Stream Server Logs to Console!
If you recently upgraded to phoenix_live_reload
1.5 without looking at the changelog you may have missed an awesome update.
With a small change to two files, we can stream our server logs directly to our browser’s console!
Direct File Uploads to Amazon S3 with Phoenix LiveView
Let’s explore how you can upload from Phoenix LiveView directly to Amazon S3: https://blog.appsignal.com/2024/03/19/direct-file-uploads-to-amazon-s3-with-phoenix-liveview.html
Fundamentals of Object Storage in Elixir
After my previous livestream I went ahead and made a text version of what we covered. If you want to learn about S3-compatible Object Storage and cool things you can do to it with Elixir, read on. Basics as well as presigning, chunked uploads and range requests. https://underjord.io/fundamentals-of-object-storage.html
Exploring Erlang, Elixir and Beyond: A Conversation with Professor Laura Castro
In this episode of the Professor Adolfo Neto podcast, join me, Adolfo, as we sit down with Laura Castro.
Laura is a distinguished professor at Universidade da Coruña (UDC), Spain, and the chair of Cátedra CICAS, a collaborative project aimed at advancing Open Science through Software. She is involved in the BEAM (Erlang and Elixir) community and is a member of the Erlang Ecosystem Foundation.
During our conversation, Laura shares her journey into Erlang and Elixir, her role at the University of A Coruña, and her involvement in the BEAM community and the Erlang Ecosystem Foundation. We also delve into the topic of gender diversity in computing and Laura’s thoughts on knowledge sharing within the field. A big thank you to Laura for sharing her expertise with us.
YouTube: https://www.youtube.com/watch?v=m1RgrdTF5B8
Audio platforms: https://podcasters.spotify.com/pod/show/adolfont/episodes/Exploring-Erlang–Elixir-and-Beyond-A-Conversation-with-Professor-Laura-Castro-e2h8btk
Adding OpenTelemetry and custom traces
I’m using OpenTelemetry to get custom data about FIT file decoding in a LiveView app. Includes a custom sampler to drop some redundant traces.
https://arathunku.com/b/2024/notes-on-adding-opentelemetry-to-an-elixir-app/
Idempotent seeds in Elixir
Agathe went on a journey to explore how to “run your database seeds a million times with deterministic UUIDs in Elixir” 🌱
Spoiler: there’s a fun path and a short path 🪧
Elixir Streams |> 🔄 Refactoring an anti-pattern: complex extractions in function heads
I use pattern matching in function heads for logic flows OR extracting data. Not both at the same time! ❌
Doing both makes it difficult to follow the code 🤔 🔀
Elixir’s docs call it the “complex extraction in clauses” anti pattern. 👇
🎥 Elixir Streams |> 🔄 Refactoring an anti-pattern: complex extractions in function heads
Operational Elixir: Observing the Midsize Madness
Episode 193 of Thinking Elixir. In this engaging third episode of our series, Dave Lucia returns to delve into the various systems that support small and medium-sized teams and companies for their Elixir systems. Dave shares insights gained from a range of situations including working at startups on up to Series C and D sized companies, with a particular focus on the critical role of observability tools. Drawing on his extensive experience, Dave discusses how these tools can greatly enhance a team’s ability to monitor and troubleshoot applications, ensuring high performance and reliability. Tune in for a comprehensive look at the essential systems and tools that can make a tangible difference in the day-to-day operations of Elixir-powered organizations, and more!
`Keyword.get` Considered Harmful
Keyword.get/3
is often used to fetch named optional arguments in functions. However, this introduces the possibility of a specific class of bugs. There’s a neat way to solve this with Keyword.pop/3
- see examples in the the blog post.
https://lakret.net/blog/2024-03-05-keyword-get-considered-harmful
Andrés Alejos, My First Year with Elixir: Livebook, Machine Learning, and Open Source
Great talk from Andrés on getting started in the Elixir community.
Powerful Caching in Elixir with Cachex
Improve the performance of your Elixir application with Cachex, a powerful caching library: https://blog.appsignal.com/2024/03/05/powerful-caching-in-elixir-with-cachex.html