Welcome! Submit your posts for the next ElixirWeekly!

Code BEAM STO very early bird tickets available now!

Code BEAM STO is back with a festival of talks by and for the Erlang, Elixir, Phoenix, LiveView, Nerves communities! Get the best rates now! Book conference and training tickets now!


Lumen - Elixir in the Browser

My thoughts on Lumen and a guide to trying the current bleeding-edge development version yourself. Where you can write Erlang or Elixir to run in your browser. Thanks to the Lumen team for the help on all of this.


A layered object store design in Elixir (Part V) - The Web layer

This is the final layer for our object store responsible for exposing it over the web. It exposes endpoints: /upload for uploading a file and /file/:file_id for getting a file by ID.

We used simple and elegant plug abstraction for providing an HTTP interface with routing, avoiding use of any web frameworks: though Phoenix is quite modular, it may not be needed for thin Web layers (as they should be).


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

Elixir Wizards S3E9 - Brooklyn Zelenka on Functional Programming

Check out the latest episode of Elixir Wizards here: https://podcast.smartlogic.io/s3e9-zelenka

Cool Elixir libraries

All Ruby/Rails developers know that for features neither provides, there is probably a Ruby Gem contributed by someone in the community that solves that problem.

Elixir’s equivalent to Ruby Gems are Hex packages. Hex is a package manager that provides reusable libraries for both Elixir and the Erlang ecosystem…

Cool Elixir libraries

How does Elixir work under the hood?

Elixir on Erlang VM demystified: https://k.lelonek.me/elixir-under-the-hood

A layered object store design in Elixir (Part IV) - The API layer

In this post we focus on the API layer of our object store. All layers till now were just concerened about storing the input file together with some file-format specific transforms (like generating thumbnails). It is at the API layer where we will be storing per-file system and user metadata. This metadata can be used to support application specific business logic and security policies.


The Magic Elixir behind Yap

How @Postlight leveraged Elixir to build a truly ephemeral chat app:


Real-time Object Detection with Phoenix and Python

Real-time Object Detection with Phoenix and Python

This article is about Elixir-Python interoperability with Elixir Port, and how to bring YOLO real-time object detection functionalities on a Phoenix app.

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

Basic Phoenix LiveView App: Setup (Part 1)

I’ve just released the first episode of a new series using Phoenix LiveView to create a site to host podcast show notes and discussion.

This screencast tutorial starts the app from scratch, sets up and configures everything needed and then makes a simple LiveView module with dynamic behavior.

The plan for this series is to make a new site for a podcast. It won’t have the DB-side complexity of the CMS project, but it will include accounts, LiveView forms with validations, show notes, comments and interfacing with an external API.


Real World Phoenix |> Let's D4Y |> __using__ K8S

In this follow up on Tjaco’s adventures in deploying Phoenix apps, he dives deep into Kubernetes to see if it is really that hard…


An example of nested forms, nested changesets, and error handling

I have a form that allows (1) editing of an animal’s properties, (2) addition of a new “service gap” to an animal, and (3) editing existing service gaps. It took me some time to get the server-side code working. There are some special cases around error handling. If you want to do something similar, this post may be of use.

ElixirMix Podcast 086: Teaching Your Team Elixir with Mike Binns

In this episode of ElixirMix, we talk with Mike Binns about how DockYard helped Cars.com adopt Elixir. We cover their strategies for teaching, tactics for training, mob programming, supporting remote teams, and much more!

Podcast Episode

A layered object store design in Elixir (Part III): ImageStore and VideoStore

In part-3 of our blog series on developing an object store, we will work on file-format specific modules: ImageStore and VideoStore.

The ImageStore module is responsible for normalizing input images, generating thumbnail, and finally use the FileStore layer (which we developed in part-1) to store both of them to underlying filesystem.

The VideoStore module stores input videos as-is, together with its thumbnail. It uses the ImageStore module for thumbnail generation and FileStore module for actual storage.

These example modules show how they leverage a lower layer (FileStore) for actual storage which each focusing on file-format specific details only.


Why am I still excited about Elixir

About 6 months ago I wrote one of my early posts on Elixir and why I was very excited about it. With some of the honeymoon period and conference high behind me, how are things? Spoiler: Pretty good :)


Building a Functional Core in Elixir

I recently read through “Designing Elixir Systems with OTP” and thoroughly enjoyed it. I’ve had an idea for a project in my head for a while now, so I decided to try and apply some of the advice in the book to my project.

In this blog post I talk about the “Building a Functional Core” part of the book and how I applied it to my project and how layering things this way actually makes writing code fun.

Building a Functional Core in Elixir

Two days left on the Joe Armstrong tribute: Prolog

The on-line subscription-based version of Seven Languages in Seven Weeks is in full swing. We’re working through Prolog, Elixir, and OTP for the next three languages. You can see the chapter for free for two more days at http://grox.io/language/prolog

After this chapter, we’ll do eight-queens and sudoku next, and chase those chapters with some scheduling and graph algorithms in Prolog. Learn Joe’s favorite language before Erlang. Join us.

A layered object store design in Elixir (Part II): FileStore

In part-2 of our blog series on developing an object store, we will work on our first layer, the FileStore. This layer is responsible for actually storing the file in our object store. At this level, we are not concerned about what kind of file it is (image, video, document, or whatever else), nor do we have any notion of security. We just store whatever input path is given to us.


Generate API Docs Effortlessly from your Phoenix code

We’re going to use phoenix_swagger library to generate swagger spec file directly from our controllers. Then we’re going to use library called bureaucrat that consumes that swagger file, runs your controller tests and generates a markdown file containing information from both (macros + tests). Finally we’re going to use slate, which is a static API documentation renderer, feed it with a generated markdown file and generate a beautiful HTML documentation from it. This is Part 1 from 3 part series.


Got a kick-start on elixir and phoenix (1.2) by building a discussion web app through a udemy course

Got a kick-start on elixir and phoenix (1.2) by building a discussion web app through a udemy course https://github.com/geoffsan/discussion