ElixirWeekly: The Elixir Community Newsletter, covering community news you easily miss, shared on ElixirStatus and the web, in one email every Thursday.
I’ve previously written about why one might want to write custom Credo checks, but I didn’t talk about the way I actually like to go about doing it in that post, so today I’m going to break down my workflow for writing custom Credo checks. A really important part of this is the testing, and luckily there is an awesome way you can easily test these checks which really helps with the development as well.
This is a blog post series describing design of an object store from scratch in Elixir. We follow a layered design approach which helps breaks down the problem in small, simple to understand modules.
Here is Part-I of the series, introducing the overall design:
Here are some helpful techniques I’ve learned with Ecto over the last several months:
- You can interpolate into @doc. This is really helpful for documenting defaulted, required, and optional fields on changeset docs.
- How to get DB-generated UUIDs with Ecto.
- How to compose changesets together.
My Hungarian/Munkres algorithm implementation in Elixir
for french speaking people in Paris, next Tuesday we have a new meetup: https://www.meetup.com/Erlang-Paris/events/267270583/ see you there!
Episode 8 of Elixir Wizards out today! Check it out:
At my company we’ve been using Elixir for the past 24 months, so we decided to put together a guide that compares Elixir with Ruby.
We detail why we prefer Elixir to Ruby and we included several case studies and resources we used along the way.
If you want to have a look, here’s the link: https://foxbox.com/blog/elixir-vs-ruby/
We are happy to announce the release of the Elixir Web Console! 🎉
This website is a place where people can try the Elixir language without the need to leave the browser or installing it on their computers. We hope this is a contribution to the effort to promote the language, providing a convenient way to assess the capabilities of this technology.
This is just the beginning of the journey. We are aware that only a portion of the language is available in this online console at the moment, but we plan to extend its capabilities.
In addition, we hope to keep adding more features to have a UI experience similar to
iex. In particular, we are lacking a way to write multiline Elixir code, but we expect to address it shortly.
You can read more about this project and all the security concerns about it (I bet you are thinking about that, after all, running foreign Elixir code in a server is kind of crazy!) in the Readme of the project.
Here is the site: https://elixirconsole.wyeworks.com/
Becoming a Testing Hero will not need a spider bite or a pocket full of kryptonite. How to become one? Discover and master the set of Testing Best Practices (TDD). It’s like approaching the next level of every game - from a random user who just plays a game to a Pro who creates the reality.
Read the article here: https://selleo.com/blog/learn-elixir-from-zero-to-a-testing-hero
In this post Nick explores how we can delegate to Rust when we need more compute power in our Elixir app.
Recently I wanted to clean up a large LiveView that had too many responsibilities. I used LiveComponents to break apart to the view into smaller bits that are mostly self-contained. The pattern ended up feeling pretty similar to work I’ve previously done in React and Redux using a one way data flow.
Apologies, after making this video I learned that one way data flow was inspired by Elm.
Latest episode of Elixir Wizards was released yesterday! Check it out:
Loading dynamic configuration is still challenging. In this post, I try to make a case for why we shouldn’t be using
config/*.exs for managing configuration and demonstrate alternative patterns using Vapor.
The third and final part of the saga. This is what I ended up doing for my multi-tenant application using Ecto prefixes and PostgreSQL schema as a simpler alternative to dynamic repos.
Environment variables are used to connect different services and configure an application for different environments without hard coding the sensitive values.
This post demonstrates some useful patterns for Phoenix configuration and doesn’t require any new dependencies:
In Elixir/Erlang, error cases can be easily modeled as tagged tuples:
But in a more Object-Oriented language like Ruby, it’s hard to model error as a lightweight data structure like Elixir tuples.
After some trial-and-error, I’ve found a great way to model errors in OO languages: Result Object.
Ever wonder how you could write a rate limiter in Elixir? Check out my latest post https://akoutmos.com/post/rate-limiting-with-genservers/ to learn about GenServers, Task.Supervisor and Erlang’s built in queue data structure.