Lessons learned from a big Elixir refactoring

I’ve just finished my first really substantial refactoring of someone else’s code in Elixir. I wanted to make some changes to Benchee so that it would be easeir to add another feature later on. We needed a new data model, and there were some concepts that I felt needed a little shaking out and naming. Today I’m going to cover some of the reasons for this refactoring, as well as some of what I learned both specifically and in general about refactoring in Elixir.

http://www.devonestes.com/a-big-elixir-refactoring

Choosing Elixir for the Code, not the Performance

I wrote up some thoughts on how elixir helps you improve your code and why we should choose it for the code, and not just the performance. Because in the end, code clarity, understandability and extensibility is what mostly matters more than raw performance.

https://pragtob.wordpress.com/2017/07/26/choosing-elixir-for-the-code-not-the-performance/

ElixirStatus is 2 years old!

This was my first “complete” Phoenix project and I am amazed that it’s already been two years!

http://trivelop.de/2017/07/25/elixirstatus-is-two-years-old/

Clustering your Elixir application on AWS inside an Auto Scaling Group

This post describes how to cluster your Elixir application in an Auto Scaling Group with changing IPs.

https://blog.pryin.io/clustering-your-elixir-app-in-aws-auto-scaling-group/

An alternative approach for sensitive file uploads

Another post, this time about an alternative approach for sensitive file uploads: https://medium.com/@andrew_dryga/alternative-approach-for-sensitive-file-uploads-53f8f62b5d72

Event Bus Implementations with Elixir

Event driven architecture pattern is a distributed asynchronous architecture pattern to create highly scalable reactive applications. The pattern suits for on every level application stack from small to complex ones. The main idea is delivering and processing events asynchronously. https://medium.com/@mustafaturan/event-bus-implementation-s-d2854a9fafd5

Event Bus Library

I implemented a simple ‘event bus’ with Elixir: https://github.com/mustafaturan/event_bus @mustafaturan

Videos from #EFLBA2017 are online now

All videos from #EFLBA2017 are already on @YouTube, watch them!

Open your text editor with the migration file when you run mix ecto.gen.migration

https://goodcode.in/ecto/1/open-your-text-editor-with-the-migration-file-when-you-run-mix-ecto-gen-migration

Tarearbol :: handy task manager to retry/ensure tasks execution

https://github.com/am-kantox/tarearbol

Tarearbol is a lightweight application that transparently manages Task.Supervisor under the hood. It allows to ensure task completion, with a configurable number of attempts, return values to be treated as “correct” (read: those stopping retry loop,) delay between attempts and callbacks on retries, fail and success.

Visualise Elixir apps performance with charts, flame graphs and plotting

http://iacobson.net/performance-visualization-in-elixir/

The previous article was about tools to measure and improve the performance of an Elixir application. Now we look for ways to visually represent the benchmarks and the performance improvements.

How to use Elixir with Docker?

If you wonder whether you can run your Elixir application in a Docker container, I came up with a ready solution for that:

https://blog.lelonek.me/how-to-use-elixir-with-docker-836c9b4a25b0

Alchemist.vim 2.8.0

New version of Alchemist.vim includes a security patch and it’s important that you update the plugin ASAP.

https://github.com/slashmili/alchemist.vim/tree/2.8.0

ElixirMock: Inspectable mocks based on real elixir modules.

ElixirMock is new library for creating inspectable mocks based on real elixir modules for testing.

ElixirMock’s mocks have the same api as the modules they are created from and are:

  • Easy to create from already-defined modules
  • Do not modify or replace the modules they are based on
  • Are independent of each other
  • Allow you to inspect calls made to them, and much more!

See the Getting started guide for a gentle introduction. API docs available here

Guide to setting up HTTP/2.0 with Ace server

Ace 0.10.0 introduces support for HTTP/2 with the following features.

  • Stream isolation; one process per stream
  • Bidirectional streaming; stream data too and from clients
  • TLS(SSL) support via ALPN; data encrypted in transit
  • Raxx interface; simplicitfy for request/response interactions

https://hexdocs.pm/ace/getting_started.html

Sobelow, the Phoenix vulnerability scanner - v0.4.1

Changes include:

  • Save settings in a config file
  • JSON output formatting
  • Fuzzy finding for secrets
  • Bug fixes and improvements

Install the latest update with mix archive.install hex sobelow

https://github.com/nccgroup/sobelow

Recurring Tasks in Elixir

Carrying out recurring tasks is a common undertaking for any web application. Follow along with this article to build a recurring task in pure Elixir. 🍉

Creating slugs for Ecto schemas

This article covers a process of creating slugs for Ecto models with different use cases. https://medium.com/wemake-services/creating-slugs-for-ecto-schemas-7349513410f0

Keeping Elixir Packages Updated

Here is a short article on how to use some simple mix commands to help keep your Elixir packages updated.

http://tosbourn.com/keeping-elixir-packages-updated/

It contains a handy script you can use to make keeping Umbrella projects updated a breeze.

Phoenix Inside Out Series - Complete version now available

Last month I released a beta version of the series. On July 18th, I have launched the full release of this series.

It contains 3 books and 1 booklet.

  • Mastering Phoenix Framework
  • Garuda - Rebuild Phoenix
  • Ecto Cookbook
  • Blueprint for Phoenix Context

Read more about the book and buy it at: https://shankardevy.com/phoenix-book/

Previous page Next page