Real World Phoenix |> The Making Of
Migrating Production Data in Elixir
Find out how to handle migrations that involve systems other than the database itself, while keeping the entire process idempotent and backward-compatible.
https://blog.appsignal.com/2020/02/25/migrating-production-data-in-elixir.html
Where is Elixir in the Type System Quadrant?
Elixir is a strong dynamic language in the Type System Quadrant. What does that mean? My blog post explains it!
In addition to OO vs FP, understanding where in the quadrant the language you are coming from is helpful as you learn Elixir.
phoenix_integration 0.8.0 released to hex
Fairly large update to handle forms with hidden fields. This update treats forms as parsed trees, has more informative output, and is generally more flexible. This entire update is brought to you by the hard work of Brian Marick (@marick on GitHub). Thank you!
WordCount in Elixir
I stumbled upon the reimplementation of the very limited wc
unix utility functionality in Haskell by Chris Penner, and have it redone in pure Elixir.
In this post I cover the whole “optimization” process, starting from naïve implementation and walking down the road with generated pattern-matching clauses and using Flow
to make it concurrent with two lines of code.
Spoiler: I was able to beat C and be even with the aforementioned Haskell solution.
FastRSS - A fast RSS parser implemented using a Rust NIF
It’s really dumb and naive, not at all optimized but still >18x faster than the library I was using.
GitHub: https://github.com/avencera/fast_rss
hex: https://hex.pm/packages/fast_rss
bechmarks: https://avencera.github.io/fast_rss/
Morphix 0.8.0 released! Now compatible with Elixir 1.10!
This version of Morphix (0.8.0) is compatible with Elixir 1.10. We had our own is_struct
method implemented which will now be replaced with Kernel.is_struct
. Morphix is a tiny library of helper methods for transforming and partitioning Enumerables.
Elixir Wizards S3E13 Alex Garibay and Mike Binns from DockYard on Hiring and Training
Latest episode of the Elixir Wizards podcast out today: https://podcast.smartlogic.io/s3e13-binns-garibay
Deploy Elixir apps that utilize Rust NIFs on Render.com
Learn how to deploy your Elixir application that utilizes Rust NIFs on Render.com.
https://frank.kumro.io/using-docker-to-deploy-elixir-rust-nifs-on-render-com/
ElixirMix Podcast 088: Adopting Elixir and RabbitMQ with Steven Nunez
In this episode of ElixirMix, we visit with Steven Nunez about how Flatiron School adopted Elixir and is using RabbitMQ. He shares how he decides to “rails new” or “mix phx.new” for a project. How adopting Elixir in a team goes better when the team “falls in love” with what it gives them. Steven shares how their RabbitMQ queues are setup, how the messages are designed, how to spread the patterns throughout the teams and projects, and much more!
Inertiajs Adapter for Phoenix
Just released a Phoenix adapter for Inertiajs (The Modern Monolith):
https://github.com/devato/inertia_phoenix
Inertia.js lets you quickly build modern single-page React, Vue and Svelte apps using classic server-side routing and controllers.
inner_cotton v0.6.0
inner_cotton is a set of static analysis of Elixir codes, and a set of mix tasks to help initializing and maintaining OSS/production codes.
https://hex.pm/packages/inner_cotton/0.6.0
Changes in v0.6.0 are :
- Support Elixir 1.10
- Drop Support Elixir 1.8 (It may work but not supported.)
- rrrene/inch_ex returns
-
Moves Travis CI from
mix cotton.init
tomix cotton.init.travisci
-
Supports GitHub Action in
mix cotton.init.github
-
Supports GitLab CI in
mix cotton.init.gitlab
-
Remove
fast_yaml
dependency - Update deps
Adventures in Ecto and PostgreSQL: Partial unique indexes and upserts with associations
Article about pitfalls when handling partial unique indexes and upserts with Ecto. And dog politics.
Complex Unique Constraints with PostgreSQL Triggers in Ecto
http://johnwilger.com/2020/02/16/ecto-custom-unique-constraint-trigger.html
I recently needed to enforce a database constraint similar in spirit to a unique index, however the criteria for what should be considered “unique” was more complex than what a simple unique index in PostgreSQL would be able to deal with. Knowing that Ecto’s unique constraint validation works by intercepting an error raised by the database, I set out to see if I could implement the complex unique constraint logic in the database and still be able to use the Ecto.Changeset.unique_constraint/3
validation without needing to modify any Elixir code.
Simple Phoenix LiveView App: Socket Session info, CSRF & .leex
Part 4 of the Simple Phoenix LiveView App series. This episode covers three things:
- Pass connection info to our socket in endpoint.ex
- Set up CSRF tokens for use with LiveView via sockets
- Convert the embedded ~L template in our LiveView render function to a separate .leex file
https://alchemist.camp/episodes/phoenix-live-view-socket-csrf
phoenix_integration 0.8.0 pre-release
Have just merged in a great PR by @marick into phoenix_integration, which much improves form testing. Am going to leave it in master for a week before pushing to hex, so let me/us know if there is any feedback. This bumps the version to 0.8.0
ElixirConf EU 30 speakers and training announced
ElixirConf EU 30 speakers and training all live and early bird open. New website too and its hosted on github, any ideas on anything you’d like to see added? https://www.elixirconf.eu/
Elixir Wizards S3E12 - Sean Lewis from Divvy on Performance and Hiring
Latest episode of the Elixir Wizards podcast out today! Check it out here: https://podcast.smartlogic.io/s3e12-divvy
ExARI: An Elixir Library for interfacing with Asterisk the Open Source Communications Software using ARI
ARI stands for Asterisk REST Interface. It provides a REST and websocket interface for controlling an Asterisk server. Check out the Elixir Forum post at https://elixirforum.com/t/exari-an-elixir-library-for-interfacing-with-asterisk-the-open-source-communications-software-using-ari/29077 #asterisk #voip #myelixirstatus
Skogsrå: Simplifying Your Elixir Configuration
Once an Elixir project is large enough, maintaining config files and config variables becomes a nightmare.
This blog post shows the basics of using Skogsra to simplify your Elixir project’s configuration:
https://dev.to/alexdesousa/skogsra-simplifying-your-elixir-configuration-35im