Implementing Service modules in Phoenix app

Looking at a small Elixir library that helps with business logic, data casting and data validation via Ecto.Changeset. https://arathunku.com/b/2019/service-modules-in-phoenix-app-elixir/

Elixir Outlaws - Write code and read books and stuff

https://elixiroutlaws.com/41

This week Amos is back from his yearly vision quest and Chris faces the problem of being interested in too many things at once. Amos discusses some experiences using Broadway and GenStage which gives Chris an excuse to bring up Little’s Law (as if he needed one).

The main topic this week is observability. This topic is motivated by Amos’s latest book: Behind Human Error. Amos provides a brief rundown and Chris talks with authority about things he really doesn’t understand. The guys discuss the importance of setting goals for your services and how those goals will inform your metrics gathering and alerting strategies. The show wraps up with some tips on benchmarking and profiling.

Ace vs Cowboy - HTTP server benchmark

http://www.devstopfix.com/posts/2019/elixir-http-benchmark/

Basic HTTP benchmark comparing cowboy (erlang) and Ace (Elixir)

Continuous deployment of a Phoenix project using GitLab CI/CD

Walk through the config to setup continuous integration and deployment using GitLab for a Phoenix project.

https://blog.kewah.com/2019/gitlab-ci-for-elixir-phoenix-project/

Elixir: Containerized development environment

In this new blogpost we are discussing the ways to create containerized development environment for your Elixir hackings.

Phoenix in Action has been released (and other updates)

It’s been 18 months since I’ve updated my blog, but that is because I was busy focusing on Phoenix in Action. It has been released! Learn a little about it plus what I see for the future of my site. I’ve been doing some pretty neat experiments and now I just need to write about them. https://geoffreylessel.com/2019/phoenix-in-action-released/

Free course: Migrating from Ruby to Elixir

I created a free e-mail course with the following topics:

  • Is Elixir the right choice?
  • Getting the team up to speed
  • How to start your first Elixir project
  • How to reduce migration risks and delivering a successful project
  • Next steps after shipping the first project

https://www.elviovicosa.com/free-migration-course

Exop 1.3.0

Exop 1.3.0 version is out with coercion revised, :length and :numericality checks improvements, process/1 params set revised, elixir >= 1.6.0 support and more.

The Modular Monolith: Elixir Architecture

Inspired by The Modular Monolith: Rails Architecture – Dan Manges – Medium, I wrote an article about Elixir Umbrella app and this kind of modular monolith.

TL;DR: Umbrella app is how we structure modular monolith in Elixir. It simplifies so much work compared to Ruby/Rails as in the original article.

The Modular Monolith: Elixir Architecture - dsdshome

Creating Thumbnails of uploaded Images and PDF in Phoenix

Creating Thumbnails of uploaded Images and PDF in Phoenix

In this second part, we start from what built in part one, a Phoenix app that handles users uploads, and we see how to integrate ImageMagick and the Mogrify wrapper to create thumbnails for images and PDF files.

Building an Orb in CircleCI (Elixir example)

This is a more detailed post about the creation of a CircleCI orb for Elixir. https://coletiv.com/blog/creating-circleci-orbs-elixir/

ElixirMix Podcast 053 - Contexts and DDD with Andrew Hao

In this episode of ElixirMix, we talk with Andrew Hao about Domain Driven Design (DDD) in Elixir system, how it maps to contexts, and higher abstractions called Aggregates. We discuss the need for design balance, not over-engineering solutions and much more!

Podcast Episode

IntelliJ Elixir 10.6.0

  • Add Linux Mint Erlang and Elixir home paths to SDK home path suggestions. Linux Mint installs to /usr/lib/erlang and /usr/lib/elixir instead of /usr/local/lib/erlang and /usr/local/lib/elixir. This likely helps on other distros too.
  • Fix Evaluate expression in debugger with Elixir 1.8. Elixir 1.8 made :elixir.quoted_to_erl/3 private, so in Elixir 1.8+, the debugger needs to inline the private version to maintain < 1.8 and >= 1.8 compatibility.

Installation Instructions

4 tips for mastering test-driven development

Need some guidance for the best way to carry out test-driven development (TDD) with Elixir? Read on.

Here, we share some useful tips, such as how to isolate your code to simplify unit testing. We’ll also look at an important aspect that doesn’t often get tested—database-migration rollback—as well as how code coverage could prevent you from omitting testing some important parts of your code. Finally, there’s a helpful overview of property-based testing—a new way of writing tests that’s a great complement to unit testing.

https://www.welcometothejungle.co/fr/articles/tips-test-driven-development

ExUnit Deep Dive

@dnlserrano on ExUnit and how it works internally. In it, some details of how the @elixirlang testing framework uses macros and process spawning to run our tests blazingly fast 🏃‍♂️💨

Event Sourcing With Elixir - Part 5

In Part 5 of this series on Event Sourcing we’ll round up account closure, deposits and withdrawals to set the stage for transfers using process managers.

Phoenix Live View debounce

While waiting for phoenix live view debounce feature, it is easy to add it with very few lines of code. A blog post

Using protocols in your own code

Protocols can be a useful tool when building Elixir libraries and provide a way for users to extend your library for their own uses. I haven’t had much occasion to work with protocols, but recently had occasion to use them in a side project. I found that they are also a useful tool for encapsulating logic and wrote up my experience in a blog post.

IntelliJ Elixir 10.5.1

  • Numerous users have reported that annotation can encounter a StackOverflowError. A reproduction case shows that they are called by Phoenix Web modules where one function containing quote block uses the same module again, such as an admin_view depending on the base view through use App.Web, :view. When the use App.Web, :view is resolving, the defmacro __using__ is re-entered as is the admin_view because there was no tracking of already visited PsiElements. The fix is to track the visited elements and not re-enter the visited elements so that admin_view is skipped and the other call definition clauses can be checked to find view.

Installation Instructions

Configuring Distillery

Latest post from Eric over at the SmartLogic blog: “Following up on our last post about generating an Erlang release through Docker, let’s talk about how we configure Distillery to generate the actual release. Here again I’m using the example of the scripts I use to deploy Grapevine, to give us a real example to look at.”

Previous page Next page