DATABASE_URL with Phoenix, Ecto 3+ and Distillery
Running Gigalixir or Heroku? Containers? I’ve had multiple developers ask me how to set this up properly in this type of environment. Here’s a simple example on how you can rely on DATABASE_URL when it’s present (e.g. production) and resort to the phoenix config in other environments (e.g. development).
https://medium.com/@martin.samami/database-url-with-phoenix-ecto-3-and-distillery-26cda811c6a7
Why go for Redis when you can use Mnesia?
Mnesia is cool. It’s quite cryptic but worth the pain. Already present in the OTP framework, it’s easy to use in both simple cases and out-of-the-box replication inside a cluster. This article covers what happened when we implemented Mnesia, including the difficulties we encountered and the results we got.
https://www.welcometothejungle.co/articles/redis-mnesia-distributed-database
Elixir vs. Ruby and Phoenix vs. Rails
For a couple of years now, web developers have been actively discussing a new programming language called Elixir and its most popular Phoenix framework. The most favorite topics are Elixir vs. Ruby and Phoenix vs. Rails because Elixir has caused the greatest interest in the community of Ruby developers.
Here https://mlsdev.com/blog/elixir-vs-ruby-and-phoenix-vs-rails-what-to-choose-and-why you will learn more about these web programming languages, compare them, and see the way they should be better utilized.
Time to Try Elixir
There many well-known web development languages as Python, PHP, and Ruby that have been successfully used by developers for a long time. There has recently been brought a new technology that is being thoroughly discussed which is called the Elixir programming language.
These days the Elixir programming language is getting more and more popular, and the feedback from developers, who have worked with it, is positive that is why it must be researched further.
Follow this article https://mlsdev.com/blog/elixir-programming-facts-to-know-for-better-app-development to find out more details about the Elixir programming.
JSON API with Phoenix 1.4
In this episode we’ll explore how we can use Phoenix to help us build a JSON API.
ElixirMix Podcast 040 - Elixir Outlaws and Adopting Elixir with Chris Keathley
In this episode of ElixirMix, the panel talks with Chris Keathley about Elixir at Bleacher Report, his ElixirOutlaws podcast, the ease of Elixir scaling, deployment and releases, config using his vapor library and much more!
New Podcast - Smart Software with SmartLogic
SmartLogic is starting a new podcast called Smart Software with SmartLogic. This will be a season based show, and our first season is centered around Elixir in Production. We’ve interviewed a few developers from companies with Elixir in production, to try and survey the landscape of what’s out there.
Our trailer episode is up now, and the first full episodes come out this Thursday.
Locality-sensitive hashing in Elixir
Learn how to perform fuzzy deduplication of strings using locality-sensitive hashing, and how to make recursive binary pattern matching faster with macros in this post about Meltwater’s recently open-sourced ExLSH library
just released hackney version 1.15.1 an HTTP client library
just released hackney version 1.15.1 an HTTP client library. This releases fixe some issues with URL and domain name encoding: https://github.com/benoitc/hackney/blob/master/NEWS.md#1151—2019-02-26 Enjoy!
Binary Pattern Matching in Elixir
For my side project Grapevine, I do binary pattern matching to grab out telnet data that is “out of band.” I show off how that works and provide links to the source so you can see the full example!
https://blog.smartlogic.io/binary-pattern-matching-in-elixir/
Phoenix 1.4 Chat Server: Part 5
This new screencast is part 5 of a Phoenix 1.4 chat server series.
It covers making a chatroom page, and sets up Phoenix Channels along with the JavaScript to connect to them. At the end of this episode, we have an anonymous chat set up for each room created.
Event Sourcing With Elixir - Part 1
New blog post on my Event Sourcing With Elixir series https://blog.nootch.net/post/event-sourcing-with-elixir-part-1/ #blogpost #elixir #eventsourcing #cqrs #intro
CustomerIO v0.2.1
CustomerIO library v0.2.1 is out.
Changes:
-
Deps moved from
HTTPoison
tohackney
- Added devices, supperssion, segments from Customer.IO API
Bugfixes:
- Fixed hackney authorization issues
Comeonin version 5
Comeonin version 5 has just been released, and here is a short guide (which includes important information for users of Argon2) to help you update your app.
Major changes:
-
Comeonin is now a dependency of each password hashing library
- it offers two behaviours, Comeonin and Comeonin.PasswordHash which the hashing library needs to implement
-
The default configuration values for Argon2 have been updated
- Argon2id is now the default type
- the memory allocation has been increased to 128 MiB
Experiment in the REPL
Languages like Elixir offer interactive shells like IEx that provide a convenient sandbox for experimenting with new concepts and libraries.
Soft delete with Ecto 3 and Postgres
One thing that folks sometimes want or need to do is to be able to “soft delete” records in a database. This means that instead of actually removing the record from a database, you in some way keep it there but make it “invisible” to your application.
There are many different ways of doing this, but I’ve recently settled on the way I think I’m going to do it from now on when I have applications on Ecto 3 and using Postgres. I’ve put together a little example application to show how it works, and that’s what I cover in this post:
http://devonestes.herokuapp.com/soft-delete-with-ecto-3-and-postgres
The Beauty of Pattern Matching in Elixir
The Beauty of Pattern Matching in Elixir
One of the reasons I fell in love with Elixir is pattern matching and how it can be extensively used all over the code.
In this video we see pattern matching with tuples, lists and maps, a bit of control flow and recursion.
ElixirMix Podcast 039 - Types in Erlang / Elixir with Zachary Kessin
In this episode of ElixirMix, the panel talks with Zach Kessin about types in Elixir and Erlang. We talk about getting access to type information at runtime, dialyzer, TypedStruct and much more!
Recursion, Tail Call Optimization and Recursion.
How Elixir uses recursions and tail call optimization
https://dev.to/edisonywh/recursion-tail-call-optimization-and-recursion-2enh