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!
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.
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).
Check out the latest episode of Elixir Wizards here: https://podcast.smartlogic.io/s3e9-zelenka
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…
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.
How @Postlight leveraged Elixir to build a truly ephemeral chat app:
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.
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.
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…
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.
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.
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 :)
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.
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.
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.
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