HighlanderPG: Use Postgres Advisory Locks to run a process just once in your cluster
I released HighlanderPG this week to solve the problem “how to run a process on just one node”. It is a follow-up / sister library to the Highlander library and it uses Postgres Advisory Locks.
Generate PDFs of Pages Behind Auth
The big wigs want PDFs. and Lots of them. Unfortunately, lots of the good info is behind authentication. How can we render a PDF of a page behind Auth?
What’s the fix? About 10 lines of Elixir!
The post: https://johnelmlabs.com/posts/pdf-behind-authentication
The tweet: https://x.com/JohnElmLabs/status/1779887067482185746
Thinking Elixir 198: Cade Gets the Last Word
Episode 198 of Thinking Elixir. This week’s show covers exciting updates in the Elixir world, including the peek at what’s coming with Elixir v1.17.0’s new “Duration” and “shift” features. We’ll also dive into the impressive Kino Benchee integration for Livebook, showcasing benchmarking visualizations. Not to be missed is the release of a fitting Phoenix emoji 🐦🔥 that’s set to ignite your dev conversations, as well as the announcement of Ash Framework’s v3 Release Candidate. Amidst these powerful tools and features, there’s an essential shift in our hosting lineup; Cade will discuss his decision to step back from the show due to the arrival of a new member in the family. Make sure to tune in for these stories, valuable Elixir tips, intriguing alternatives to Redis, and more!
Elixir Streams |> 2 Helpers to Keep Your Pipelines Flowing! 😎
Elixir code tends to be pipe-friendly. But sometimes that fails. You have a pesky break in your pipeline!
Here are 2 helpers that can help you keep your pipeline flowing!
👉 Elixir Streams |> 2 Helpers to Keep Your Pipelines Flowing! 😎
Thinking Elixir News 197
Episode 197 of Thinking Elixir. In this episode, we’re diving into the fascinating world of at-home AI with a ready-to-deploy project harnessing Bumblebee and Fly GPUs, unraveling the tale of how an Xz backdoor catastrophe was narrowly sidestepped, and highlighting the power of customizing your Elixir IEx environment. We’ll also touch upon the eager anticipation for ElixirConf EU, taking place in Lisbon, where innovations in vehicular tech meet Elixir, and the upcoming NervesConf US – a prime event for embedded systems enthusiasts. Tune in for these buzzworthy topics and more!
Segregate Responsibilities with Elixir Commanded
Explore how Elixir’s Commanded library revolutionizes application development through CQRS and Event Sourcing
https://curiosum.com/blog/segregate-responsibilities-with-elixir-commanded
Trainings at GigCityElixir 2024
Two excellent trainings at the GCE conference this year on May 9th-
Ash 3.0: The Fast Track to Full Stack (Trainers: Zach Daniel, Josh Price)
and
Effective Teaching and Training Practices for Software Developers (Trainers: Andrew Ek and Ruth Kohtz Ek)
Head to www.gigcityelixir.com for details and tickets.
Garmin API Client
Library for interacting with Garmin’s API client. Fetch activities, steps, and more. There’s a video in README of me using it in #LiveBook.
Elixir Streams |> 🤔 and/or Vs. &&/||. Which to use?
Someone recently asked me which to use: and
/or
OR &&
/||
?
Decided to make a short video about it.
Though they’re similar in many ways, they’re not the same! Here are some useful differences and some pitfalls. 👇
Nerves Meetup
The next Nerves embedded systems meetup is Wednesday, April 24th! This will be a social gathering to hang out with other Elixir/embedded engineers, share projects, ask questions, and get help! RSVP here:
Elixir + Phoenix: How to Raise Custom HTTP Error Responses in Your REST API
This blog post shows how, by adding a few lines of code, you can return a custom HTTP error response (with status code and custom message/payload) in your Elixir + Phoenix REST API, at any time in the request-response lifecycle.
https://www.nicholasmoen.com/blog/phoenix-custom-error-responses/
Phoenix admin frameworks - a very subjective evaluation
I needed to add a small admin interface to a webapp I’m making. See how I got there, and why I decided on using Kaffy in the end.
Elixir Enthusiasm: Insights from Senior Software Engineer Eduardo Borsa
Join Professor Adolfo Neto in this episode of the podcast as he delves into the world of Elixir with Eduardo Borsa, a Senior Software Engineer at Loomis, Sayles & Company. Eduardo shares his journey into software engineering and his early encounters with Elixir, highlighting the factors that sparked his interest in the language. As they discuss Eduardo’s role at Loomis, Sayles & Company, listeners gain insights into the projects Eduardo is involved in and the technologies he finds both exciting and challenging. Moreover, Eduardo explores the symbiotic relationship between industry work and education, drawing from his experiences with ELXPRO to provide a unique perspective. Throughout the conversation, Eduardo offers recommendations for staying abreast of developments in the field, from books and blogs to podcasts and courses.
Elixir development using Podman with VM in Parallels and Shared Folders
We’ve recently started to use containers instead of asdf on Mac for development again, and the setup I’m using is based on podman. We’ve chosen podman because from our perspective it’s easier to use in production when compared to docker, and we wanted to be closer to the production environment on our development machines as well. Since setting this up using Parallels instead of the default QEMU VM’s was rather involved, we’ve summarized all the necessary steps in a blog post for anyone else who’d like to check this setup out.
https://nobilisdata.com/blog/podman_using_parallels_and_shared_folders_for_elixir_development/
Interviewing Tips!
My fellow Elixir-devs (I’ve never grown too fond of “Alchemists”), I know this isn’t the most Elixir of all posts but I’ve seen many people make simple mistakes during hiring processes. And I want to help fix that, so I’ve written a series of posts geared towards programmers about interviewing that I hope y’all will find helpful!
Easy at-home AI with Bumblebee and Fly GPUs
A big barrier to getting started with local AI development is access to hardware. And by “local”, I mean having direct access to a GPU and not going through AI-as-a-Service. Some of us are lucky enough to have a beefy Nvidia GPU, if so, good for you. For the rest of us, we can use a GPU on Fly.io while editing the app on our machine. Sounds crazy? It’s actually really cool, and easy. Check out the ready-to-deploy server app with 3 LLMs setup for your immediate enjoyment.
https://fly.io/phoenix-files/easy-at-home-ai-with-bumblebee-and-fly-gpus/
Thinking Elixir News 196
Episode 196 of Thinking Elixir. This week’s news includes the release of OTP 27.0-rc2 featuring the new json module, Phoenix Live reload’s insightful update, and Chris McCord’s blog post that surfaces server logs directly in your browser console. We’re also discussing the streamlined workflows in Oban Pro 1.4.0, and a deeper discussion on recent Redis licensing changes that have sent ripples through the open-source community. If that’s not enough, we’ve got insights into the refactoring Elixir survey that’s underway and we share some innovative tools like the Livebook Smart Cell Template. Tune in for this and more!
How to Use Flume in your Elixir Application
Let’s learn how to handle background jobs in Elixir with Flume: https://blog.appsignal.com/2024/04/02/how-to-use-flume-in-your-elixir-app.html