ElixirMix Podcast 056 - Security and Sobelow with Griffin Byatt

In this episode of ElixirMix, we talk with Griffin Byatt about his library sobelow that performs static security analysis of your Phoenix applications. We discuss using the tool, common vulnerability patterns, upstream security fixes, thinking like a hacker, areas that need focus, resources for gaining security skills and much more!

Podcast Episode

Serving iOS/Android Deep Links from Phoenix

A quick overview showing you how to serve the iOS Universal Links and Android App Links manifest files from your Phoenix application.

Using Tailwind with Phoenix

A quick tutorial on getting up and running with CSS utilities.

https://www.derrickreimer.com/tech/2019/06/12/tailwind-phoenix.html

ElixirWeekly: The Elixir Community Newsletter, covering community news you easily miss, shared on ElixirStatus and the web, in one email every Thursday.

Automate Phoenix + ngrok configuration

Using a free ngrok account means you get a new domain name each time. With some clever bash scripting you can automate the configuration and never mess with manual hostname changes again.

Event Sourcing With Elixir - Part 7

Last post of the series with some tips on running Commanded apps in production, and a few thoughts on DDD and Event Sourcing.

ElixirMix Podcast 055 - Params Modules for Phoenix with Kuba Subczynski

In this episode of ElixirMix, we talk with Kuba Subczynski about the Params Modules for Phoenix requests pattern. We discuss the heuristics we use when deciding to add a dependency or not. We cover code organization, module design, how TheScore.com brought in Elixir, when not use this pattern and much more!

Podcast Episode

erlang-rocksdb version 1.2.0 a binding of rocksdb for Erlang applications has been released https://hex.pm/packages/rocksdb/1.2.0

just published erlang-rocksdb version 1.2.0, a binding of Rocksdb for #Erlang applications with the support of latest rocksdb 6.1.2 and some other improvements.

Getting started there: https://gitlab.com/barrel-db/erlang-rocksdb/wikis/Getting-started

Enjoy!

Workshops for @ElixirConfLA were announced

I’ll be giving a workshop about #FP on ElixirConfLA and Mariano Guerra will be giving one about #riak_core. It will be awesome!!

Check them out!

Real World Phoenix |> Let's Auth Some Users

In this episode of ‘Real World Phoenix’, Tjaco will explore and find out if there is a library in Elixir/Phoenix land to get user authentication up-and-running easily.

https://www.theguild.nl/real-world-phoenix-lets-auth-some-users/

ElixirWeekly: The Elixir Community Newsletter, covering community news you easily miss, shared on ElixirStatus and the web, in one email every Thursday.

Credo v1.1.0 released (Credo Plugins are here!)

I released v1.1.0 of Credo, the static code analysis tool emphasizing code consistency and teaching.

Credo Plugins are finally here!

For details, please refer to the CHANGELOG.

How do you update relations in Phoenix forms?

In this episode, I answered a learner’s question about how to create and update has_one and belongs_to associations with Phoenix forms.

The short answer is:

use a <%= inputs_for f, :your_association, fn f2 -> %> block inside your form and put the labels and inputs for the associated inside of that.

https://alchemist.camp/episodes/belongs-to-has-one-forms

Pattern Matching is FP's Polymorphism Affordance

In this post, I discussed what is affordance, why pattern matching is FP’s polymorphism affordance, and thus FP and OOP are compatible.

https://dsdshcym.github.io/clipping/2019/06/06/pattern-matching-is-fp's-polymorphism-affordance/

How I deploy (Phoenix apps)

I did some listener Q&A—the biggest question was if it’s hard to deploy Elixir apps, so I went through an example of how my site is deployed.

How I deploy

Understanding Genservers

Walkthrough how a Genserver works by designing a small prototype from scratch.

https://manzanit0.github.io/elixir/2019/05/21/understanding-genservers.html

Enforcing code quality in Elixir

Enforcing your Elixir code to be well formatted, with no warnings and hopefully free of bugs. A mix alias to automate code quality.

https://itnext.io/enforcing-code-quality-in-elixir-20f87efc7e66

Latest ElixirOutlaws - Let it Crash

https://elixiroutlaws.com/42

This week Elixir has been uninstalled from Amos’s laptop and Chris is reading books and writing C. Chris explains why he still chooses to write C and why most people don’t need to manually manage memory.

During the main topic Amos describes a problem he’s having with Tesla and Hackney. This leads to a discussion about how to build systems that can handle failure. Amos brings up Let It Crash and where it applies. Chris provides some insights into building stable systems and how supervisors influence design.

Memento – Mnesia Distributed Database in Elixir

Memento

Memento is a fast, powerful and extremely easy-to-use Elixir wrapper around Mnesia, the Erlang Distributed Realtime Database.

Rabbit - RabbitMQ with ease!

Just released rabbit - a library for simplifying RabbitMQ usage within applications. Some benefits include:

  • Durable connections and channels - with failure backoff.
  • Module-based connections, producers, and consumers - with runtime setup.
  • Automatic payload serialization based on content type.
  • Automatic acknowledgements based on callback return values.

And lots more! Check it out:

Add a Progress Bar in the Phoenix File Upload app

Add a Progress Bar in the Phoenix File Upload app

In this part (Part 3) we focus on the front-end and see how to use JavaScript to upload a file while animating a progress bar.

At first we see how to add jQuery to our Phoenix file upload app and using it in our JavaScript files. We then see how to use jQuery to upload a file and listen to progress events to update an HTML5 progress bar.

ElixirMix Podcast 054 - Phoenix LiveView with Leandro Pereira

In this episode of ElixirMix, we talk with Leandro Pereira about LiveView, the advantages over an SPA, javascript fatigue, the graceful fallback story, the growing set of community demo projects, and what types of projects may or may not be a good fit and much more!

Podcast Episode