Taking Control of Map Sort Order in Elixir
OTP 26 was released and the Elixir 1.14.4 builds have been updated! Erlang OTP 26 changed how map keys are sorted, or not sorted actually. Check out this quick tip on how to customize IEx to always sort the map keys with your local development!
https://fly.io/phoenix-files/taking-control-of-map-sort-order-in-elixir/
Get previous values in IEx
To access previous values in IEx (and save some typing) use the v/1
helper:
-
v()
gets the last value -
v(n)
gets the nth expression -
v(-n)
gets the previous nth expression
See it in action! 👉 https://youtube.com/shorts/6Jaj0sOAnVk 👀
Intro to Protocols
Elixir protocols provide a powerful mechanism for polymorphism and code reuse. In this episode, we’ll get an introduction on how to use them.
ThinkingElixir 151: Peeking inside the Livebook
Episode 151 of Thinking Elixir. Recently Livebook had its first launch week. We met with Jonatan Kłosko, the developer behind most of the exciting new features, to learn what some of these additions are, how they actually work and what’s coming with the new Teams feature. Jonatan shares some of his favorite unsung features and where the new apps ability may go in the future. Livebook is an important community project and it’s fun getting a deeper look inside!
An Introduction to Absinthe for Elixir
In the first part of this Absinthe for Elixir series, let’s explore some of the basics of Absinthe and GraphQL: https://blog.appsignal.com/2023/05/16/an-introduction-to-absinthe-for-elixir.html
How to use Monaco editor with Phoenix LiveView and esbuild
Monaco is state-of-the-art browser-based code editor that powers VS Code. Let’s see how to integrate it with Phoenix LiveView using esbuild. https://szajbus.dev/elixir/2023/05/15/how-to-use-monaco-editor-with-phoenix-live-view-and-esbuild.html
EMPEX NYC speakers lineup announced
Join us in Brooklyn on June 9th for Heidi Howard’s keynote on the future of distributed computing as well as talks from none other than Andrea Leopardi, Lorena Mireles, Sean Moriarity and more! They’ll cover everything from why the Beam is the best choice for networking, to Elixir and the future of large language models. https://www.empex.co/new-york#speakers
Imagine whyelixirlang.com as a landing page for C-level executives and experienced engineering leaders.
It highlights the achievements of businesses leveraging the Elixir technology stack.
2023 and Beyond: Why Learning Elixir is Still a Smart Move for Developers
Supercharge Your App Development in 2023 and Beyond
Discover the Advantages of Elixir for Modern Application Development
https://blackode.in/2023-and-beyond-why-learning-elixir-is-still-a-smart-move-for-developers-65ea0c33ede2?sk=1080c17de0cdea9b26297668e3ded6f1
Elixir Adoption Survey
@teamlaunchscout is collecting information on Elixir adoption and will publish a report once it’s ready. If you want to contribute to that report, you can do so here! https://docs.google.com/forms/d/e/1FAIpQLScxQJV6twLVVoALSYTygthvkb8elvjmwoXCz_4Obm64q6ZJ1A/viewform
Build your own lazy operation evaluator in Elixir
I’m always fascinated by how Elixir’s Stream module handles operations lazily by storing them in a struct. So simple but so brilliant! 🤯
I wanted to see what it’d be like to write a simple implementation of a lazy math evaluator.
Hope you like it!
✍️ https://www.germanvelasco.com/blog/build-your-own-lazy-operation-evaluator-in-elixir
Live Event: Introduction to Elixir Security
Wednesday, May 17, 2pm EDT (New York) I’ll be hosting a live webinar on Elixir security, covering common issues such as SQL injection, Cross Site Scripting, Cross Site Request Forgery!
Empty values and Ecto changesets
I wanted to share an interesting bug I fixed this week with Ecto! If you ever noticed that empty strings sometimes look like a change to Ecto this post will explain why: https://0x7f.dev/post/empty_values/
NervesHub 2.0
We’re excited to announce that we’re actively working on NervesHub 2.0, an improved version of our IoT device firmware update and management platform for Nerves-based devices. Although NervesHub 1.0 is still available and maintained in the maint-v1.0 branch, we believe 2.0 will enable significant improvements to meet our evolving needs and those of the Nerves community.
See the introduction post for more! https://elixirforum.com/t/introducing-nerveshub-2-0/55531
Thinking Elixir News 150
Episode 150 of Thinking Elixir. News covers Chris McCord’s keynote speech on LiveView 1.0. We cover the EEF’s final election results, latest from the LiveView Native space, ex_cldr updates for localizing our apps, an OTP patch release, and more!
Monolith vs Microservices: With Elixir You Don't Need to Choose
In this blog post I’m chiming in on the microservices vs monolith debate that heated up again and show how with Elixir and Phoenix Framework you don’t need to even “choose” a side, looking at the features that make building hybrid applications in Elixir a breeze.
Deploying After Mix ecto.dump
At some point, large projects may choose to delete many old migrations and run mix ecto.dump
to generate a structure.sql file. But then how do you deploy to a new clean server or start a staging server? This post connects the dots to get a safe, repeatable, automated deployment process for setting up a database from a structure.sql file.
https://fly.io/phoenix-files/deploying-after-a-mix-ecto-dump/
How to check if two lists contain overlapping elements
Want to check if two lists have overlapping elements in Elixir?
Use some set theory! đź’ˇ
-
Turn the lists into MapSets with
MapSet.new(list)
-
See if the two sets are disjoint with
MapSet.disjoint?/2
Check it out: 👉 https://youtube.com/shorts/X9Gl-gd3tEg 👀
Upload Encrypted Files to S3
When uploading sensitive user files to S3, you better encrypt them or you risk data breaches and fines! This post explains how to encrypt, decrypt, upload, and download files from S3 and how to display them in LiveView. https://www.peterullrich.com/upload-encrypted-files-to-s3