Syncing SQLite and Postgres using Elixir and Erlang
I had a load of fun figuring out everything for making this video on @ElectricSQL. Syncing between SQLite and Postgres. Local first. Active-Active replication.
If you like SQLite AND/OR Postgres. This should be for you. https://www.youtube.com/watch?v=_U5Z8AQy0hc
Using LiveView's New Primitives for Accessibility
Phoenix LiveView 0.18 added new features to manipulate focus and improve accessibility in your Phoenix LiveView apps. In this post, I show you all of these features, and provide real-life examples to demonstrate just how simple it is to use them and enhance your app’s accessibility. https://fly.io/phoenix-files/liveview-accessible-focus/
[Video] Elixir and Phoenix Security, Remote Code Execution (RCE)
Did you miss the webinar on exploiting serialization in Elixir? Don’t worry, the recording is up on the Paraxial.io YouTube channel.
Add full-text search to an Elixir Phoenix application
In this tutorial, we’re going to build a simple Phoenix application based upon NimblePublisher. I will then show you how you can integrate Haystack to add full-text search for your content.
https://culttt.com/2023/03/23/add-full-text-search-to-an-elixir-phoenix-application
Building a Chat App With LiveView Streams
Building a LiveView powered chat app is easier than ever when using Streams! Sophie DeBenedetto shows us how in this article. She createa a Slack-like chat client with infinite scroll back, editing message, deleting messages, and appending new message to the bottom. It’s slick and efficient, not storing any of that data in the LiveView.
https://fly.io/phoenix-files/building-a-chat-app-with-liveview-streams/
Missing the Elixir Slack community? Join the new Elixir Discord!
While we wait for things to get sorted I’ve set up a new discord server for Elixir enthusiasts to gather. Join here! https://discord.gg/HH8Dqbs3
Better function component tests with ~H
There are 2 ways to test Phoenix function components:
- render_component/3
- rendered_to_string/1 + ~H sigil
Use the second one every time!
So much nicer ergonomics ✨and allows us to test more complex components (e.g. with slots). 🎉
Building a full-text search engine in Elixir
This blog post is an overview of how Haystack is built, the motivations for the project, and the design decisions I have made to allow Haystack to be as simple and extendable as possible.
https://culttt.com/2023/03/22/building-a-full-text-search-engine-in-elixir
Dynamic Function Calls
In this episode, we’ll utilize dynamic function calls to build a web-based application that helps people learn Elixir.
Lisbon |> Elixir Meetup 19th Edition
next @LisbonElixir meetup is happening on April 18, 18:30! come join us 🤗 we’d like to thank @bouncemystuff for the meetup space (their office) and @CodeSyncGlobal for the tickets we’ll raffle! 🎟️ 🎫 #elixir #meetup #myelixirstatus @elixirlang @josevalim https://www.meetup.com/lisbon-elixir/events/292379655/
Announcing Potion Shop - An Open Source Vulnerable Elixir/Phoenix App for Security Education
Potion Shop is a Phoenix application vulnerable to common web security issues, such as RCE, XSS, and CSRF.
Thinking Elixir News 143
Episode 143 of Thinking Elixir. New minor LiveView release, a new Nerves focused Elixir case study was published, a post about audio transcriptions using Bumblebee and another about using Tailscale to cluster Elixir apps across cloud providers. ElixirConf US was announced, nimble_options reaches 1.0 and more!
Generating Data Functions in Your Elixir App
In part two of this three-part series on testing data with Elixir, we’ll look at using data generation functions: https://blog.appsignal.com/2023/03/21/generating-data-functions-in-your-elixir-app.html
IV Vitamin Therapy- McDowall Psychology & Healthcare
Are you looking for the best Naturopath in Toronto?
To get to the root of your health issues, our multidisciplinary team uses a mind-body approach that examines the interaction between all aspects of health.
We utilise cutting edge lab diagnostics, clinical dietary intervention, botanicals, and other modalities, at our Naturopathic clinic in Toronto.
In conjunction, you can expect to make progress with treatments such as CBT and DBT in sessions with our psychotherapists.
Our IV Vitamin Therapy Toronto staff creates custom infusions to address both mental and physical symptoms.
The best naturopath in Toronto found at McDowall Integrative Psychology & Healthcare works alongside the psychotherapy team to make sure all your needs are met and addressed. Our one-of-a-kind integrative method is like nothing you’ve seen before.
Functional Arrays in Elixir and Erlang
A brief walk-through of functional arrays in Elixir and Erlang: https://readreplica.io/functional-arrays-in-elixir-erlang/
"Programming Machine Learning" in Nx and Axon
“Programming Machine Learning” guides you through the creation of an image recognition application from scratch with supervised learning, iteratively and step-by-step.
All the code examples provided with the book are in Python/numpy, but I wanted to give Elixir a spin using Livebook, Nx and Axon, therefore I started to rewrite all the Jupyter notebooks in Elixir.
All the livebooks can be found in this Github repository https://github.com/nickgnd/programming-machine-learning-livebooks
Phoenix Dev Blog - Sounds Like a Bug
In Chris McCord‘s 2nd Phoenix Dev Blog post, he delves into diagnosing and fixing an 8-year old LiveView race condition when long-polling. Even if the bug didn’t affect you personally, his deep dive illuminates how things work as he walks us through the diagnosis and multiple levels of the problem and the final changes. A great guided-tour with insights shared along the way!
https://fly.io/phoenix-files/phoenix-dev-blog-sounds-like-a-bug
New library - `map_with_indifferent_access`
Have you ever found it difficult to work with maps that sometimes have string keys (if it’s controller params coming from outside) and sometimes atom keys (if it’s params defined inside of the code)?
If so, consider using our newly published map_with_indifferent_access library, which gives you functions such as MapWithIndifferentAccess.get/3
, MapWithIndifferentAccess.put/3
, that mimic the Map.*
functions.
The advantage of using them is that you don’t have to worry if the map currently uses string or atom keys. You, as the caller, only use atom keys. The underlying code will automatically deduce if the map uses string or atom keys, and depending on it, convert the key to string or leave it as atom, before handing it further to the original Map.*
function.
This will prevent you from reaching a Ecto.CastError
saying it received a map with mixed key types.
(Inspired by Ruby on Rails’ HashWithIndifferentAccess.)
The benefits of using Elixir for backend development: Our perspective
At Welcome to the Jungle, we have been using Elixir in production for five years now, and in this article we are going to share our feedback on how things have worked out. https://medium.com/wttj-tech/the-benefits-of-using-elixir-for-backend-development-our-perspective-9d421fde426a